Translation updates
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Mon, 10 Jul 2017 15:51:32 +0000 (11:51 -0400)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Mon, 10 Jul 2017 15:53:55 +0000 (11:53 -0400)
Source-Git-URL: git://git.postgresql.org/git/pgtranslation/messages.git
Source-Git-Hash: c5a8de3653bb1af6b0eb41cc6bf090c5522df52b

60 files changed:
src/backend/po/es.po
src/backend/po/it.po
src/bin/initdb/po/es.po
src/bin/initdb/po/fr.po
src/bin/initdb/po/it.po
src/bin/pg_archivecleanup/nls.mk
src/bin/pg_archivecleanup/po/es.po [new file with mode: 0644]
src/bin/pg_archivecleanup/po/fr.po [new file with mode: 0644]
src/bin/pg_basebackup/po/es.po
src/bin/pg_basebackup/po/fr.po
src/bin/pg_basebackup/po/it.po
src/bin/pg_config/po/es.po
src/bin/pg_config/po/it.po
src/bin/pg_controldata/po/es.po
src/bin/pg_controldata/po/fr.po
src/bin/pg_controldata/po/it.po
src/bin/pg_ctl/po/es.po
src/bin/pg_ctl/po/fr.po
src/bin/pg_ctl/po/it.po
src/bin/pg_dump/po/es.po
src/bin/pg_dump/po/fr.po
src/bin/pg_dump/po/it.po
src/bin/pg_resetwal/po/es.po
src/bin/pg_resetwal/po/fr.po
src/bin/pg_rewind/po/es.po
src/bin/pg_rewind/po/fr.po
src/bin/pg_rewind/po/it.po
src/bin/pg_test_fsync/nls.mk
src/bin/pg_test_fsync/po/es.po [new file with mode: 0644]
src/bin/pg_test_fsync/po/fr.po [new file with mode: 0644]
src/bin/pg_test_timing/nls.mk
src/bin/pg_test_timing/po/es.po [new file with mode: 0644]
src/bin/pg_test_timing/po/fr.po [new file with mode: 0644]
src/bin/pg_waldump/nls.mk
src/bin/pg_waldump/po/es.po [new file with mode: 0644]
src/bin/pg_waldump/po/fr.po [new file with mode: 0644]
src/bin/psql/po/es.po
src/bin/psql/po/fr.po
src/bin/psql/po/it.po
src/bin/scripts/po/es.po
src/bin/scripts/po/fr.po
src/bin/scripts/po/it.po
src/interfaces/ecpg/ecpglib/po/es.po
src/interfaces/ecpg/preproc/po/es.po
src/interfaces/ecpg/preproc/po/fr.po
src/interfaces/ecpg/preproc/po/it.po
src/interfaces/libpq/po/de.po
src/interfaces/libpq/po/es.po
src/interfaces/libpq/po/fr.po
src/interfaces/libpq/po/it.po
src/pl/plperl/po/es.po
src/pl/plperl/po/fr.po
src/pl/plperl/po/it.po
src/pl/plpgsql/src/po/es.po
src/pl/plpython/po/es.po
src/pl/plpython/po/fr.po
src/pl/plpython/po/it.po
src/pl/tcl/po/es.po
src/pl/tcl/po/fr.po
src/pl/tcl/po/it.po

index 955531c2958dc13dc50bd36b4647dbf23d9d6197..1e98ded782161e4ab82789a2abb7e822989cadea 100644 (file)
@@ -58,8 +58,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PostgreSQL server 9.6\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2016-05-02 20:08+0000\n"
-"PO-Revision-Date: 2016-07-22 19:04-0400\n"
+"POT-Creation-Date: 2017-07-05 15:09+0000\n"
+"PO-Revision-Date: 2017-05-27 21:42-0400\n"
 "Last-Translator: Álvaro Herrera <alvherre@alvh.no-ip.org>\n"
 "Language-Team: PgSQL Español <pgsql-es-ayuda@postgresql.org>\n"
 "Language: es\n"
@@ -68,70 +68,48 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
-#: ../common/config_info.c:131 ../common/config_info.c:139
-#: ../common/config_info.c:147 ../common/config_info.c:155
-#: ../common/config_info.c:163 ../common/config_info.c:171
-#: ../common/config_info.c:179 ../common/config_info.c:187
-#: ../common/config_info.c:195
-#, fuzzy
-#| msgid "not recorded\n"
+#: ../common/config_info.c:130 ../common/config_info.c:138
+#: ../common/config_info.c:146 ../common/config_info.c:154
+#: ../common/config_info.c:162 ../common/config_info.c:170
+#: ../common/config_info.c:178 ../common/config_info.c:186
+#: ../common/config_info.c:194
 msgid "not recorded"
-msgstr "no registrado\n"
+msgstr "no registrado"
 
-#: ../common/controldata_utils.c:52 commands/copy.c:2798
-#: commands/extension.c:3120 utils/adt/genfile.c:134
+#: ../common/controldata_utils.c:57 commands/copy.c:3116
+#: commands/extension.c:3330 utils/adt/genfile.c:135
 #, 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:56
+#: ../common/controldata_utils.c:61
 #, c-format
 msgid "%s: could not open file \"%s\" for reading: %s\n"
 msgstr "%s: no se pudo abrir el archivo «%s» para lectura: %s\n"
 
-#: ../common/controldata_utils.c:66 access/transam/timeline.c:346
-#: access/transam/xlog.c:3193 access/transam/xlog.c:10338
-#: access/transam/xlog.c:10351 access/transam/xlog.c:10714
-#: access/transam/xlog.c:10757 access/transam/xlog.c:10796
-#: access/transam/xlog.c:10839 access/transam/xlogfuncs.c:666
-#: access/transam/xlogfuncs.c:685 commands/extension.c:3130
-#: replication/logical/origin.c:665 replication/logical/origin.c:695
-#: replication/logical/reorderbuffer.c:3090 replication/walsender.c:499
-#: storage/file/copydir.c:176 utils/adt/genfile.c:151
+#: ../common/controldata_utils.c:71 access/transam/timeline.c:348
+#: access/transam/xlog.c:3384 access/transam/xlog.c:10781
+#: access/transam/xlog.c:10794 access/transam/xlog.c:11186
+#: access/transam/xlog.c:11229 access/transam/xlog.c:11268
+#: access/transam/xlog.c:11311 access/transam/xlogfuncs.c:668
+#: access/transam/xlogfuncs.c:687 commands/extension.c:3340 libpq/hba.c:499
+#: replication/logical/origin.c:661 replication/logical/origin.c:691
+#: replication/logical/reorderbuffer.c:3064 replication/walsender.c:506
+#: storage/file/copydir.c:178 utils/adt/genfile.c:152 utils/adt/misc.c:924
 #, c-format
 msgid "could not read file \"%s\": %m"
 msgstr "no se pudo leer el archivo «%s»: %m"
 
-#: ../common/controldata_utils.c:69
+#: ../common/controldata_utils.c:74
 #, c-format
 msgid "%s: could not read file \"%s\": %s\n"
 msgstr "%s: no se pudo leer el archivo «%s»: %s\n"
 
-#: ../common/controldata_utils.c:86
-msgid "calculated CRC checksum does not match value stored in file"
-msgstr ""
-
-#: ../common/controldata_utils.c:88
-#, 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"
-
-#: ../common/controldata_utils.c:97
-#, fuzzy
-#| msgid "%s: encoding mismatch\n"
+#: ../common/controldata_utils.c:95
 msgid "byte ordering mismatch"
-msgstr "%s: codificaciones no coinciden\n"
+msgstr "discordancia en orden de bytes"
 
-#: ../common/controldata_utils.c:99
+#: ../common/controldata_utils.c:97
 #, c-format
 msgid ""
 "WARNING: possible byte ordering mismatch\n"
@@ -182,7 +160,9 @@ msgstr "pclose falló: %s"
 
 #: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75
 #: ../common/fe_memutils.c:98 ../common/psprintf.c:181 ../port/path.c:632
-#: ../port/path.c:670 ../port/path.c:687
+#: ../port/path.c:670 ../port/path.c:687 utils/misc/ps_status.c:171
+#: utils/misc/ps_status.c:179 utils/misc/ps_status.c:209
+#: utils/misc/ps_status.c:217
 #, c-format
 msgid "out of memory\n"
 msgstr "memoria agotada\n"
@@ -192,6 +172,37 @@ 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:82 ../common/file_utils.c:186
+#, c-format
+msgid "%s: could not stat file \"%s\": %s\n"
+msgstr "%s: no se pudo hacer stat del archivo «%s»: %s\n"
+
+#: ../common/file_utils.c:162
+#, c-format
+msgid "%s: could not open directory \"%s\": %s\n"
+msgstr "%s: no se pudo abrir el directorio «%s»: %s\n"
+
+#: ../common/file_utils.c:198
+#, c-format
+msgid "%s: could not read directory \"%s\": %s\n"
+msgstr "%s: no se pudo leer el directorio «%s»: %s\n"
+
+#: ../common/file_utils.c:231 ../common/file_utils.c:291
+#: ../common/file_utils.c:367
+#, c-format
+msgid "%s: could not open file \"%s\": %s\n"
+msgstr "%s: no se pudo abrir el archivo «%s»: %s\n"
+
+#: ../common/file_utils.c:304 ../common/file_utils.c:376
+#, c-format
+msgid "%s: could not fsync file \"%s\": %s\n"
+msgstr "%s: no se pudo sincronizar (fsync) el archivo «%s»: %s\n"
+
+#: ../common/file_utils.c:387
+#, c-format
+msgid "%s: could not rename file \"%s\" to \"%s\": %s\n"
+msgstr "%s: no se pudo cambiar el nombre al archivo «%s» a «%s»: %s\n"
+
 #: ../common/pgfnames.c:45
 #, c-format
 msgid "could not open directory \"%s\": %s\n"
@@ -208,28 +219,32 @@ msgid "could not close directory \"%s\": %s\n"
 msgstr "no se pudo cerrar el directorio «%s»: %s\n"
 
 #: ../common/psprintf.c:179 ../port/path.c:630 ../port/path.c:668
-#: ../port/path.c:685 access/transam/twophase.c:1261
-#: access/transam/xlog.c:6069 lib/stringinfo.c:258 libpq/auth.c:847
-#: libpq/auth.c:1210 libpq/auth.c:1278 libpq/auth.c:1794
-#: postmaster/bgworker.c:289 postmaster/bgworker.c:797
-#: postmaster/postmaster.c:2323 postmaster/postmaster.c:2354
-#: postmaster/postmaster.c:3886 postmaster/postmaster.c:4576
-#: postmaster/postmaster.c:4644 postmaster/postmaster.c:5343
-#: postmaster/postmaster.c:5596 replication/logical/logical.c:170
-#: storage/buffer/localbuf.c:422 storage/file/fd.c:729 storage/file/fd.c:1126
-#: storage/file/fd.c:1244 storage/file/fd.c:1916 storage/ipc/procarray.c:1060
-#: storage/ipc/procarray.c:1546 storage/ipc/procarray.c:1553
-#: storage/ipc/procarray.c:1967 storage/ipc/procarray.c:2570
-#: utils/adt/formatting.c:1523 utils/adt/formatting.c:1643
-#: utils/adt/formatting.c:1764 utils/adt/regexp.c:219 utils/adt/varlena.c:4440
-#: utils/adt/varlena.c:4461 utils/fmgr/dfmgr.c:216 utils/hash/dynahash.c:431
-#: utils/hash/dynahash.c:537 utils/hash/dynahash.c:1049 utils/mb/mbutils.c:376
-#: utils/mb/mbutils.c:709 utils/misc/guc.c:3885 utils/misc/guc.c:3901
-#: utils/misc/guc.c:3914 utils/misc/guc.c:6859 utils/misc/tzparser.c:470
-#: utils/mmgr/aset.c:505 utils/mmgr/mcxt.c:770 utils/mmgr/mcxt.c:805
-#: utils/mmgr/mcxt.c:842 utils/mmgr/mcxt.c:879 utils/mmgr/mcxt.c:913
-#: utils/mmgr/mcxt.c:942 utils/mmgr/mcxt.c:976 utils/mmgr/mcxt.c:1058
-#: utils/mmgr/mcxt.c:1092 utils/mmgr/mcxt.c:1141
+#: ../port/path.c:685 access/transam/twophase.c:1306
+#: access/transam/xlog.c:6349 lib/stringinfo.c:258 libpq/auth.c:1108
+#: libpq/auth.c:1474 libpq/auth.c:1542 libpq/auth.c:2058
+#: postmaster/bgworker.c:337 postmaster/bgworker.c:908
+#: postmaster/postmaster.c:2391 postmaster/postmaster.c:2413
+#: postmaster/postmaster.c:3975 postmaster/postmaster.c:4675
+#: postmaster/postmaster.c:4750 postmaster/postmaster.c:5428
+#: postmaster/postmaster.c:5765
+#: replication/libpqwalreceiver/libpqwalreceiver.c:251
+#: replication/logical/logical.c:170 storage/buffer/localbuf.c:436
+#: storage/file/fd.c:773 storage/file/fd.c:1201 storage/file/fd.c:1319
+#: storage/file/fd.c:2044 storage/ipc/procarray.c:1057
+#: storage/ipc/procarray.c:1545 storage/ipc/procarray.c:1552
+#: storage/ipc/procarray.c:1969 storage/ipc/procarray.c:2580
+#: utils/adt/formatting.c:1579 utils/adt/formatting.c:1703
+#: utils/adt/formatting.c:1828 utils/adt/pg_locale.c:468
+#: utils/adt/pg_locale.c:652 utils/adt/regexp.c:219 utils/adt/varlena.c:4585
+#: utils/adt/varlena.c:4606 utils/fmgr/dfmgr.c:221 utils/hash/dynahash.c:429
+#: utils/hash/dynahash.c:535 utils/hash/dynahash.c:1047 utils/mb/mbutils.c:376
+#: utils/mb/mbutils.c:709 utils/misc/guc.c:3987 utils/misc/guc.c:4003
+#: utils/misc/guc.c:4016 utils/misc/guc.c:6965 utils/misc/tzparser.c:468
+#: utils/mmgr/aset.c:404 utils/mmgr/dsa.c:713 utils/mmgr/dsa.c:795
+#: utils/mmgr/mcxt.c:725 utils/mmgr/mcxt.c:760 utils/mmgr/mcxt.c:797
+#: utils/mmgr/mcxt.c:834 utils/mmgr/mcxt.c:868 utils/mmgr/mcxt.c:897
+#: utils/mmgr/mcxt.c:931 utils/mmgr/mcxt.c:982 utils/mmgr/mcxt.c:1016
+#: utils/mmgr/mcxt.c:1050
 #, c-format
 msgid "out of memory"
 msgstr "memoria agotada"
@@ -289,67 +304,66 @@ msgstr "no se pudo hacer stat al archivo o directorio «%s»: %s\n"
 msgid "could not remove file or directory \"%s\": %s\n"
 msgstr "no se pudo eliminar el directorio «%s»: %s\n"
 
-#: ../common/username.c:45
+#: ../common/saslprep.c:1090
+#, c-format
+msgid "password too long"
+msgstr "la contraseña es demasiado larga"
+
+#: ../common/username.c:43
 #, c-format
 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:47 libpq/auth.c:1741
+#: ../common/username.c:45 libpq/auth.c:2005
 msgid "user does not exist"
 msgstr "usuario no existe"
 
-#: ../common/username.c:62
+#: ../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"
 
-#: ../common/wait_error.c:47
+#: ../common/wait_error.c:45
 #, c-format
 msgid "command not executable"
 msgstr "la orden no es ejecutable"
 
-#: ../common/wait_error.c:51
+#: ../common/wait_error.c:49
 #, c-format
 msgid "command not found"
 msgstr "orden no encontrada"
 
-#: ../common/wait_error.c:56
+#: ../common/wait_error.c:54
 #, c-format
 msgid "child process exited with exit code %d"
 msgstr "el proceso hijo terminó con código de salida %d"
 
-#: ../common/wait_error.c:63
+#: ../common/wait_error.c:61
 #, c-format
 msgid "child process was terminated by exception 0x%X"
 msgstr "el proceso hijo fue terminado por una excepción 0x%X"
 
-#: ../common/wait_error.c:73
+#: ../common/wait_error.c:71
 #, c-format
 msgid "child process was terminated by signal %s"
 msgstr "el proceso hijo fue terminado por una señal %s"
 
-#: ../common/wait_error.c:77
+#: ../common/wait_error.c:75
 #, c-format
 msgid "child process was terminated by signal %d"
 msgstr "el proceso hijo fue terminado por una señal %d"
 
-#: ../common/wait_error.c:82
+#: ../common/wait_error.c:80
 #, c-format
 msgid "child process exited with unrecognized status %d"
 msgstr "el proceso hijo terminó con código no reconocido %d"
 
-#: ../port/chklocale.c:294
+#: ../port/chklocale.c:288
 #, c-format
 msgid "could not determine encoding for codeset \"%s\""
 msgstr "no se pudo determinar la codificación para el codeset «%s»"
 
-#: ../port/chklocale.c:295 ../port/chklocale.c:424
-#: postmaster/postmaster.c:4876
-#, c-format
-msgid "Please report this to <pgsql-bugs@postgresql.org>."
-msgstr "Por favor reporte esto a <pgsql-bugs@postgresql.org>."
-
-#: ../port/chklocale.c:416 ../port/chklocale.c:422
+#: ../port/chklocale.c:409 ../port/chklocale.c:415
 #, c-format
 msgid "could not determine encoding for locale \"%s\": codeset is \"%s\""
 msgstr "no se pudo determinar la codificación para la configuración regional «%s»: el codeset es «%s»"
@@ -374,25 +388,25 @@ msgstr "no se pudo obtener junction para «%s»: %s"
 msgid "could not get junction for \"%s\": %s\n"
 msgstr "no se pudo obtener junction para «%s»: %s\n"
 
-#: ../port/open.c:112
+#: ../port/open.c:111
 #, c-format
 msgid "could not open file \"%s\": %s"
 msgstr "no se pudo abrir el archivo «%s»: %s"
 
-#: ../port/open.c:113
+#: ../port/open.c:112
 msgid "lock violation"
 msgstr "infracción de bloqueo (locking violation)"
 
-#: ../port/open.c:113
+#: ../port/open.c:112
 msgid "sharing violation"
 msgstr "infracción de uso compartido (sharing violation)"
 
-#: ../port/open.c:114
+#: ../port/open.c:113
 #, c-format
 msgid "Continuing to retry for 30 seconds."
 msgstr "Reintentando durante 30 segundos."
 
-#: ../port/open.c:115
+#: ../port/open.c:114
 #, c-format
 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."
@@ -407,76 +421,127 @@ msgstr "no se pudo obtener el directorio de trabajo actual: %s\n"
 msgid "unrecognized error %d"
 msgstr "código de error no reconocido: %d"
 
-#: access/brin/brin.c:813
-#, fuzzy, c-format
-#| msgid "\"%s\" is not an index"
-msgid "\"%s\" is not a BRIN index"
-msgstr "«%s» no es un índice"
+#: ../port/win32security.c:62
+#, c-format
+msgid "could not get SID for Administrators group: error code %lu\n"
+msgstr "no se pudo obtener el SID del grupo Administrators: código de error %lu\n"
 
-#: access/brin/brin.c:829
-#, fuzzy, c-format
-#| msgid "could not open two-phase state file \"%s\": %m"
-msgid "could not open parent table of index %s"
-msgstr "no se pudo abrir el archivo de estado de COMMIT en dos fases «%s»: %m"
+#: ../port/win32security.c:72
+#, c-format
+msgid "could not get SID for PowerUsers group: error code %lu\n"
+msgstr "no se pudo obtener el SID del grupo PowerUsers: código de error %lu\n"
 
-#: access/brin/brin_pageops.c:76 access/brin/brin_pageops.c:362
-#: access/brin/brin_pageops.c:828
+#: ../port/win32security.c:80
 #, fuzzy, c-format
-msgid "index row size %lu exceeds maximum %lu for index \"%s\""
-msgstr "el tamaño de fila de índice %zu excede el máximo %zu para el índice «%s»"
+msgid "could not check access token membership: error code %lu\n"
+msgstr "no se pudo abrir el token de proceso: código de error %lu\n"
 
-#: access/brin/brin_revmap.c:455
+#: access/brin/brin.c:867 access/brin/brin.c:938
 #, c-format
-msgid "unexpected page type 0x%04X in BRIN index \"%s\" block %u"
-msgstr ""
+msgid "block number out of range: %s"
+msgstr "el número de bloque está fuera de rango: %s"
 
-#: access/brin/brin_validate.c:115
+#: access/brin/brin.c:890 access/brin/brin.c:961
 #, c-format
-msgid "brin opfamily %s contains function %s with invalid support number %d"
-msgstr ""
+msgid "\"%s\" is not a BRIN index"
+msgstr "«%s» no es un índice BRIN"
 
-#: access/brin/brin_validate.c:131
+#: access/brin/brin.c:906 access/brin/brin.c:977
 #, c-format
-msgid "brin opfamily %s contains function %s with wrong signature for support number %d"
-msgstr ""
+msgid "could not open parent table of index %s"
+msgstr "no se pudo abrir la tabla padre del índice %s"
 
-#: access/brin/brin_validate.c:153
+#: access/brin/brin_pageops.c:76 access/brin/brin_pageops.c:358
+#: access/brin/brin_pageops.c:824 access/gin/ginentrypage.c:110
+#: access/gist/gist.c:1363 access/nbtree/nbtinsert.c:577
+#: access/nbtree/nbtsort.c:488 access/spgist/spgdoinsert.c:1933
 #, c-format
-msgid "brin opfamily %s contains operator %s with invalid strategy number %d"
-msgstr ""
+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_validate.c:182
+#: access/brin/brin_revmap.c:382 access/brin/brin_revmap.c:388
 #, c-format
-msgid "brin opfamily %s contains invalid ORDER BY specification for operator %s"
+msgid "corrupted BRIN index: inconsistent range map"
 msgstr ""
 
-#: access/brin/brin_validate.c:195
+#: access/brin/brin_revmap.c:404
 #, c-format
-msgid "brin opfamily %s contains operator %s with wrong signature"
+msgid "leftover placeholder tuple detected in BRIN index \"%s\", deleting"
 msgstr ""
 
-#: access/brin/brin_validate.c:233
+#: access/brin/brin_revmap.c:601
 #, c-format
-msgid "brin opfamily %s is missing operator(s) for types %s and %s"
-msgstr ""
+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:243
-#, c-format
-msgid "brin opfamily %s is missing support function(s) for types %s and %s"
-msgstr ""
+#: access/brin/brin_validate.c:116 access/gin/ginvalidate.c:149
+#: access/gist/gistvalidate.c:146 access/hash/hashvalidate.c:131
+#: access/nbtree/nbtvalidate.c:101 access/spgist/spgvalidate.c:116
+#, fuzzy, c-format
+#| msgid "gin operator family \"%s\" contains function %s with invalid support number %d"
+msgid "operator family \"%s\" of access method %s contains function %s with invalid support number %d"
+msgstr "familia de operadores gin «%s» contiene la función %s con número de soporte %d no válido"
 
-#: access/brin/brin_validate.c:256
-#, c-format
-msgid "brin opclass %s is missing operator(s)"
-msgstr ""
+#: access/brin/brin_validate.c:132 access/gin/ginvalidate.c:161
+#: access/gist/gistvalidate.c:158 access/hash/hashvalidate.c:114
+#: access/nbtree/nbtvalidate.c:113 access/spgist/spgvalidate.c:128
+#, fuzzy, c-format
+#| msgid "gin operator family \"%s\" contains function %s with wrong signature for support number %d"
+msgid "operator family \"%s\" of access method %s contains function %s with wrong signature for support number %d"
+msgstr "familia de operadores gin «%s» contiene la función %s con signatura incorrecta para el número de soporte %d"
 
-#: access/brin/brin_validate.c:267
+#: access/brin/brin_validate.c:154 access/gin/ginvalidate.c:180
+#: access/gist/gistvalidate.c:178 access/hash/hashvalidate.c:152
+#: access/nbtree/nbtvalidate.c:133 access/spgist/spgvalidate.c:147
 #, fuzzy, c-format
-#| msgid "return type %s is not supported for SQL functions"
-msgid "brin opclass %s is missing support function %d"
-msgstr "el tipo de retorno %s no es soportado en funciones SQL"
+#| msgid "gin operator family \"%s\" contains operator %s with invalid strategy number %d"
+msgid "operator family \"%s\" of access method %s contains operator %s with invalid strategy number %d"
+msgstr "familia de operadores gin «%s» contiene el operador %s con número de estrategia %d no válido"
+
+#: access/brin/brin_validate.c:183 access/gin/ginvalidate.c:193
+#: access/hash/hashvalidate.c:165 access/nbtree/nbtvalidate.c:146
+#: access/spgist/spgvalidate.c:160
+#, fuzzy, c-format
+#| msgid "gin operator family \"%s\" contains invalid ORDER BY specification for operator %s"
+msgid "operator family \"%s\" of access method %s contains invalid ORDER BY specification for operator %s"
+msgstr "familia de operadores gin «%s» contiene especificación ORDER BY no válida para el operador %s"
+
+#: access/brin/brin_validate.c:196 access/gin/ginvalidate.c:206
+#: access/gist/gistvalidate.c:226 access/hash/hashvalidate.c:178
+#: access/nbtree/nbtvalidate.c:159 access/spgist/spgvalidate.c:173
+#, fuzzy, c-format
+#| msgid "gin operator family \"%s\" contains operator %s with wrong signature"
+msgid "operator family \"%s\" of access method %s contains operator %s with wrong signature"
+msgstr "familia de operadores gin «%s» contiene el operador %s con signatura incorrecta"
+
+#: access/brin/brin_validate.c:234 access/hash/hashvalidate.c:218
+#: access/nbtree/nbtvalidate.c:201 access/spgist/spgvalidate.c:201
+#, fuzzy, c-format
+#| msgid "brin operator family \"%s\" is missing operator(s) for types %s and %s"
+msgid "operator family \"%s\" of access method %s is missing operator(s) for types %s and %s"
+msgstr "el/los operador(es) para los tipos %2$s y %3$s faltan de la familia de operadores brin «%1$s»"
+
+#: access/brin/brin_validate.c:244
+#, fuzzy, c-format
+#| msgid "brin operator family \"%s\" is missing support function(s) for types %s and %s"
+msgid "operator family \"%s\" of access method %s is missing support function(s) for types %s and %s"
+msgstr "la(s) función/funciones de soporte para los tipos %2$s y %3$s faltan de la familia de operadores brin «%1$s»"
+
+#: access/brin/brin_validate.c:257 access/hash/hashvalidate.c:232
+#: access/nbtree/nbtvalidate.c:225 access/spgist/spgvalidate.c:234
+#, fuzzy, c-format
+#| msgid "brin operator class \"%s\" is missing operator(s)"
+msgid "operator class \"%s\" of access method %s is missing operator(s)"
+msgstr "faltan operadores de la clase de operadores brin «%s»"
+
+#: access/brin/brin_validate.c:268 access/gin/ginvalidate.c:247
+#: access/gist/gistvalidate.c:265
+#, fuzzy, c-format
+#| msgid "gin operator class \"%s\" is missing support function %d"
+msgid "operator class \"%s\" of access method %s is missing support function %d"
+msgstr "falta la función de soporte %2$d de la clase de operadores gin «%1$s»"
 
-#: access/common/heaptuple.c:708 access/common/heaptuple.c:1339
+#: access/common/heaptuple.c:708 access/common/heaptuple.c:1405
 #, c-format
 msgid "number of columns (%d) exceeds limit (%d)"
 msgstr "el número de columnas (%d) excede el límite (%d)"
@@ -486,68 +551,68 @@ 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:176 access/spgist/spgutils.c:641
+#: access/common/indextuple.c:176 access/spgist/spgutils.c:647
 #, 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:294 tcop/fastpath.c:182 tcop/fastpath.c:544
-#: tcop/postgres.c:1721
+#: access/common/printtup.c:290 tcop/fastpath.c:182 tcop/fastpath.c:532
+#: tcop/postgres.c:1726
 #, c-format
 msgid "unsupported format code: %d"
 msgstr "código de formato no soportado: %d"
 
-#: access/common/reloptions.c:488
+#: access/common/reloptions.c:540
 #, 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:770
+#: access/common/reloptions.c:821
 #, c-format
 msgid "RESET must not include values for parameters"
 msgstr "RESET no debe incluir valores de parámetros"
 
-#: access/common/reloptions.c:803
+#: access/common/reloptions.c:854
 #, c-format
 msgid "unrecognized parameter namespace \"%s\""
 msgstr "espacio de nombre de parámetro «%s» no reconocido"
 
-#: access/common/reloptions.c:1045 parser/parse_clause.c:281
+#: access/common/reloptions.c:1094 parser/parse_clause.c:270
 #, c-format
 msgid "unrecognized parameter \"%s\""
 msgstr "parámetro no reconocido «%s»"
 
-#: access/common/reloptions.c:1075
+#: access/common/reloptions.c:1124
 #, 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:1091
+#: access/common/reloptions.c:1140
 #, 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:1103
+#: access/common/reloptions.c:1152
 #, 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:1109 access/common/reloptions.c:1129
+#: access/common/reloptions.c:1158 access/common/reloptions.c:1178
 #, 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:1111
+#: access/common/reloptions.c:1160
 #, c-format
 msgid "Valid values are between \"%d\" and \"%d\"."
 msgstr "Los valores aceptables están entre «%d» y «%d»."
 
-#: access/common/reloptions.c:1123
+#: access/common/reloptions.c:1172
 #, 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:1131
+#: access/common/reloptions.c:1180
 #, c-format
 msgid "Valid values are between \"%f\" and \"%f\"."
 msgstr "Valores aceptables están entre «%f» y «%f»."
@@ -562,146 +627,116 @@ msgstr "El tipo retornado %s no coincide con el tipo de registro esperado %s en
 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/tupconvert.c:241
+#: access/common/tupconvert.c:318
 #, 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 el atributo correspondiente de tipo %s."
 
-#: access/common/tupconvert.c:253
+#: access/common/tupconvert.c:330
 #, 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/tupdesc.c:635 parser/parse_relation.c:1517
+#: access/common/tupdesc.c:728 parser/parse_clause.c:841
+#: parser/parse_relation.c:1544
 #, c-format
 msgid "column \"%s\" cannot be declared SETOF"
 msgstr "la columna «%s» no puede ser declarada SETOF"
 
 #: access/gin/ginbulk.c:44
-#, fuzzy, c-format
-#| msgid "payload string too long"
+#, c-format
 msgid "posting list is too long"
-msgstr "la cadena de carga es demasiado larga"
+msgstr "la «posting list» es demasiado larga"
 
 #: access/gin/ginbulk.c:45
 #, c-format
-msgid "Reduce maintenance_work_mem"
-msgstr ""
-
-#: access/gin/ginentrypage.c:109 access/gist/gist.c:1338
-#: access/nbtree/nbtinsert.c:575 access/nbtree/nbtsort.c:488
-#: access/spgist/spgdoinsert.c:1907
-#, 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»"
+msgid "Reduce maintenance_work_mem."
+msgstr "Reduzca maintenance_work_mem."
 
-#: access/gin/ginfast.c:991 access/transam/xlog.c:9795
-#: access/transam/xlog.c:10266 access/transam/xlogfuncs.c:294
-#: access/transam/xlogfuncs.c:321 access/transam/xlogfuncs.c:360
-#: access/transam/xlogfuncs.c:381 access/transam/xlogfuncs.c:402
-#: access/transam/xlogfuncs.c:472 access/transam/xlogfuncs.c:528
+#: access/gin/ginfast.c:991 access/transam/xlog.c:10202
+#: access/transam/xlog.c:10720 access/transam/xlogfuncs.c:296
+#: access/transam/xlogfuncs.c:323 access/transam/xlogfuncs.c:362
+#: access/transam/xlogfuncs.c:383 access/transam/xlogfuncs.c:404
+#: access/transam/xlogfuncs.c:474 access/transam/xlogfuncs.c:530
 #, c-format
 msgid "recovery is in progress"
 msgstr "la recuperación está en proceso"
 
 #: access/gin/ginfast.c:992
-#, fuzzy, c-format
-#| msgid "WAL control functions cannot be executed during recovery."
+#, c-format
 msgid "GIN pending list cannot be cleaned up during recovery."
-msgstr "Las funciones de control de WAL no pueden ejecutarse durante la recuperación."
+msgstr "La lista de pendientes GIN no puede limpiarse durante la recuperación."
 
 #: access/gin/ginfast.c:999
-#, fuzzy, c-format
-#| msgid "\"%s\" is not an index"
+#, c-format
 msgid "\"%s\" is not a GIN index"
-msgstr "«%s» no es un índice"
+msgstr "«%s» no es un índice GIN"
 
 #: access/gin/ginfast.c:1010
-#, fuzzy, c-format
-#| msgid "cannot access temporary tables of other sessions"
+#, c-format
 msgid "cannot access temporary indexes of other sessions"
-msgstr "no se pueden acceder tablas temporales de otras sesiones"
+msgstr "no se pueden acceder índices temporales de otras sesiones"
 
-#: access/gin/ginscan.c:409
+#: access/gin/ginscan.c:405
 #, c-format
 msgid "old GIN indexes do not support whole-index scans nor searches for nulls"
 msgstr "los índices GIN antiguos no soportan recorridos del índice completo ni búsquedas de nulos"
 
-#: access/gin/ginscan.c:410
+#: access/gin/ginscan.c:406
 #, c-format
 msgid "To fix this, do REINDEX INDEX \"%s\"."
 msgstr "Para corregir esto, ejecute REINDEX INDEX \"%s\"."
 
-#: access/gin/ginvalidate.c:92
+#: access/gin/ginutil.c:134 executor/execExpr.c:1765
+#: utils/adt/arrayfuncs.c:3803 utils/adt/arrayfuncs.c:6323
+#: utils/adt/rowtypes.c:927
 #, c-format
-msgid "gin opfamily %s contains support procedure %s with cross-type registration"
-msgstr ""
-
-#: access/gin/ginvalidate.c:148
-#, c-format
-msgid "gin opfamily %s contains function %s with invalid support number %d"
-msgstr ""
-
-#: access/gin/ginvalidate.c:160
-#, c-format
-msgid "gin opfamily %s contains function %s with wrong signature for support number %d"
-msgstr ""
-
-#: access/gin/ginvalidate.c:179
-#, c-format
-msgid "gin opfamily %s contains operator %s with invalid strategy number %d"
-msgstr ""
-
-#: access/gin/ginvalidate.c:192
-#, c-format
-msgid "gin opfamily %s contains invalid ORDER BY specification for operator %s"
-msgstr ""
-
-#: access/gin/ginvalidate.c:205
-#, c-format
-msgid "gin opfamily %s contains operator %s with wrong signature"
-msgstr ""
+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:246
-#, c-format
-msgid "gin opclass %s is missing support function %d"
-msgstr ""
+#: access/gin/ginvalidate.c:93 access/gist/gistvalidate.c:93
+#: access/hash/hashvalidate.c:99 access/spgist/spgvalidate.c:93
+#, fuzzy, c-format
+#| msgid "gin operator family \"%s\" contains support procedure %s with cross-type registration"
+msgid "operator family \"%s\" of access method %s contains support procedure %s with different left and right input types"
+msgstr "la familia de operadores gin «%s» contiene el procedimiento de soporte %s registrado entre tipos distintos"
 
-#: access/gin/ginvalidate.c:256
-#, c-format
-msgid "gin opclass %s is missing support function %d or %d"
-msgstr ""
+#: access/gin/ginvalidate.c:257
+#, fuzzy, c-format
+#| msgid "gin operator class \"%s\" is missing support function %d or %d"
+msgid "operator class \"%s\" of access method %s is missing support function %d or %d"
+msgstr "falta la función de soporte %2$d o %3$d de la clase de operadores gin «%1$s»"
 
-#: access/gist/gist.c:681 access/gist/gistvacuum.c:258
+#: access/gist/gist.c:706 access/gist/gistvacuum.c:258
 #, 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:683 access/gist/gistvacuum.c:260
+#: access/gist/gist.c:708 access/gist/gistvacuum.c:260
 #, 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:684 access/gist/gistutil.c:735
-#: access/gist/gistutil.c:746 access/gist/gistvacuum.c:261
-#: access/hash/hashutil.c:172 access/hash/hashutil.c:183
-#: access/hash/hashutil.c:195 access/hash/hashutil.c:216
-#: access/nbtree/nbtpage.c:518 access/nbtree/nbtpage.c:529
+#: access/gist/gist.c:709 access/gist/gistutil.c:739
+#: access/gist/gistutil.c:750 access/gist/gistvacuum.c:261
+#: access/hash/hashutil.c:241 access/hash/hashutil.c:252
+#: access/hash/hashutil.c:264 access/hash/hashutil.c:285
+#: access/nbtree/nbtpage.c:519 access/nbtree/nbtpage.c:530
 #, c-format
 msgid "Please REINDEX it."
 msgstr "Por favor aplíquele REINDEX."
 
-#: access/gist/gistbuild.c:249
+#: access/gist/gistbuild.c:250
 #, c-format
 msgid "invalid value for \"buffering\" option"
 msgstr "valor no válido para la opción «buffering»"
 
-#: access/gist/gistbuild.c:250
+#: access/gist/gistbuild.c:251
 #, c-format
 msgid "Valid values are \"on\", \"off\", and \"auto\"."
 msgstr "Los valores aceptables son «on», «off» y «auto»."
 
-#: access/gist/gistbuildbuffers.c:778 utils/sort/logtape.c:209
+#: access/gist/gistbuildbuffers.c:778 utils/sort/logtape.c:231
 #, c-format
 msgid "could not write block %ld of temporary file: %m"
 msgstr "no se pudo escribir el bloque %ld del archivo temporal: %m"
@@ -716,184 +751,118 @@ 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:732 access/hash/hashutil.c:169
-#: access/nbtree/nbtpage.c:515
+#: access/gist/gistutil.c:736 access/hash/hashutil.c:238
+#: access/nbtree/nbtpage.c:516
 #, 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:743 access/hash/hashutil.c:180
-#: access/hash/hashutil.c:192 access/nbtree/nbtpage.c:526
+#: access/gist/gistutil.c:747 access/hash/hashutil.c:249
+#: access/hash/hashutil.c:261 access/nbtree/nbtpage.c:527
 #, 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:92
-#, c-format
-msgid "gist opfamily %s contains support procedure %s with cross-type registration"
-msgstr ""
-
-#: access/gist/gistvalidate.c:145
-#, c-format
-msgid "gist opfamily %s contains function %s with invalid support number %d"
-msgstr ""
-
-#: access/gist/gistvalidate.c:157
-#, c-format
-msgid "gist opfamily %s contains function %s with wrong signature for support number %d"
-msgstr ""
-
-#: access/gist/gistvalidate.c:177
-#, c-format
-msgid "gist opfamily %s contains operator %s with invalid strategy number %d"
-msgstr ""
-
-#: access/gist/gistvalidate.c:195
-#, c-format
-msgid "gist opfamily %s contains unsupported ORDER BY specification for operator %s"
-msgstr ""
-
-#: access/gist/gistvalidate.c:206
-#, c-format
-msgid "gist opfamily %s contains incorrect ORDER BY opfamily specification for operator %s"
-msgstr ""
-
-#: access/gist/gistvalidate.c:225
-#, c-format
-msgid "gist opfamily %s contains operator %s with wrong signature"
-msgstr ""
+#: access/gist/gistvalidate.c:196
+#, fuzzy, c-format
+#| msgid "gist operator family \"%s\" contains unsupported ORDER BY specification for operator %s"
+msgid "operator family \"%s\" of access method %s contains unsupported ORDER BY specification for operator %s"
+msgstr "la familia de operadores gist «%s» contiene una especificación ORDER BY no soportada para el operador %s"
 
-#: access/gist/gistvalidate.c:264
-#, c-format
-msgid "gist opclass %s is missing support function %d"
-msgstr ""
+#: access/gist/gistvalidate.c:207
+#, fuzzy, c-format
+#| msgid "gist operator family \"%s\" contains incorrect ORDER BY opfamily specification for operator %s"
+msgid "operator family \"%s\" of access method %s contains incorrect ORDER BY opfamily specification for operator %s"
+msgstr "la familia de operadores gist «%s» contiene una especificación de familia en ORDER BY incorrecta para el operador %s"
 
-#: access/hash/hashinsert.c:68
+#: access/hash/hashinsert.c:82
 #, 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:70 access/spgist/spgdoinsert.c:1911
-#: access/spgist/spgutils.c:702
+#: access/hash/hashinsert.c:84 access/spgist/spgdoinsert.c:1937
+#: access/spgist/spgutils.c:708
 #, 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."
 
-#: access/hash/hashovfl.c:546
+#: access/hash/hashovfl.c:87
+#, c-format
+msgid "invalid overflow block number %u"
+msgstr "número no válido de bloque de «overflow» %u"
+
+#: access/hash/hashovfl.c:283 access/hash/hashpage.c:453
 #, c-format
 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:153
+#: access/hash/hashsearch.c:250
 #, 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:208
+#: access/hash/hashutil.c:277
 #, c-format
 msgid "index \"%s\" is not a hash index"
 msgstr "el índice «%s» no es un índice hash"
 
-#: access/hash/hashutil.c:214
+#: access/hash/hashutil.c:283
 #, c-format
 msgid "index \"%s\" has wrong hash version"
 msgstr "el índice «%s» tiene una versión de hash incorrecta"
 
-#: access/hash/hashvalidate.c:98
-#, c-format
-msgid "hash opfamily %s contains support procedure %s with cross-type registration"
-msgstr ""
-
-#: access/hash/hashvalidate.c:113
-#, c-format
-msgid "hash opfamily %s contains function %s with wrong signature for support number %d"
-msgstr ""
-
-#: access/hash/hashvalidate.c:130
-#, c-format
-msgid "hash opfamily %s contains function %s with invalid support number %d"
-msgstr ""
-
-#: access/hash/hashvalidate.c:151
-#, c-format
-msgid "hash opfamily %s contains operator %s with invalid strategy number %d"
-msgstr ""
-
-#: access/hash/hashvalidate.c:164
-#, c-format
-msgid "hash opfamily %s contains invalid ORDER BY specification for operator %s"
-msgstr ""
-
-#: access/hash/hashvalidate.c:177
-#, c-format
-msgid "hash opfamily %s contains operator %s with wrong signature"
-msgstr ""
-
-#: access/hash/hashvalidate.c:189
-#, c-format
-msgid "hash opfamily %s lacks support function for operator %s"
-msgstr ""
-
-#: access/hash/hashvalidate.c:217
-#, c-format
-msgid "hash opfamily %s is missing operator(s) for types %s and %s"
-msgstr ""
-
-#: access/hash/hashvalidate.c:231
-#, c-format
-msgid "hash opclass %s is missing operator(s)"
-msgstr ""
-
-#: access/hash/hashvalidate.c:247
-#, c-format
-msgid "hash opfamily %s is missing cross-type operator(s)"
-msgstr ""
+#: access/hash/hashvalidate.c:190
+#, fuzzy, c-format
+#| msgid "hash operator family \"%s\" lacks support function for operator %s"
+msgid "operator family \"%s\" of access method %s lacks support function for operator %s"
+msgstr "la familia de operadores hash «%s» no tiene función de soporte para el operador %s"
 
-#: access/heap/heapam.c:1138 access/heap/heapam.c:1190
+#: access/hash/hashvalidate.c:248 access/nbtree/nbtvalidate.c:242
 #, fuzzy, c-format
-msgid "cannot access temporary tables during a parallel operation"
-msgstr "no se pueden crear tablas temporales durante la recuperación"
+#| msgid "hash operator family \"%s\" is missing cross-type operator(s)"
+msgid "operator family \"%s\" of access method %s is missing cross-type operator(s)"
+msgstr "faltan operadores entre tipos en la familia de operadores hash «%s»"
 
-#: access/heap/heapam.c:1307 access/heap/heapam.c:1335
-#: access/heap/heapam.c:1367 catalog/aclchk.c:1755
+#: access/heap/heapam.c:1293 access/heap/heapam.c:1321
+#: access/heap/heapam.c:1353 catalog/aclchk.c:1772
 #, c-format
 msgid "\"%s\" is an index"
 msgstr "«%s» es un índice"
 
-#: access/heap/heapam.c:1312 access/heap/heapam.c:1340
-#: access/heap/heapam.c:1372 catalog/aclchk.c:1762 commands/tablecmds.c:8986
-#: commands/tablecmds.c:12044
+#: access/heap/heapam.c:1298 access/heap/heapam.c:1326
+#: access/heap/heapam.c:1358 catalog/aclchk.c:1779 commands/tablecmds.c:9885
+#: commands/tablecmds.c:13115
 #, c-format
 msgid "\"%s\" is a composite type"
 msgstr "«%s» es un tipo compuesto"
 
-#: access/heap/heapam.c:2579
-#, fuzzy, c-format
+#: access/heap/heapam.c:2592
+#, c-format
 msgid "cannot insert tuples during a parallel operation"
-msgstr "no se pueden insertar múltiples órdenes en una sentencia preparada"
+msgstr "no se pueden insertar tuplas durante una operación paralela"
 
-#: access/heap/heapam.c:3029
-#, fuzzy, c-format
+#: access/heap/heapam.c:3042
+#, c-format
 msgid "cannot delete tuples during a parallel operation"
-msgstr "no se puede ejecutar %s durante la recuperación"
+msgstr "no se pueden eliminar tuplas durante una operación paralela"
 
-#: access/heap/heapam.c:3075
+#: access/heap/heapam.c:3088
 #, c-format
 msgid "attempted to delete invisible tuple"
-msgstr ""
+msgstr "se intentó eliminar una tupla invisible"
 
-#: access/heap/heapam.c:3502 access/heap/heapam.c:6053
-#, fuzzy, c-format
+#: access/heap/heapam.c:3514 access/heap/heapam.c:6214
+#, c-format
 msgid "cannot update tuples during a parallel operation"
-msgstr "no se puede ejecutar %s durante la recuperación"
+msgstr "no se pueden actualizar tuplas durante una operación paralela"
 
-#: access/heap/heapam.c:3624
+#: access/heap/heapam.c:3662
 #, c-format
 msgid "attempted to update invisible tuple"
-msgstr ""
+msgstr "se intentó actualizar una tupla invisible"
 
-#: access/heap/heapam.c:4875 access/heap/heapam.c:4913
-#: access/heap/heapam.c:5136 executor/execMain.c:2304
+#: access/heap/heapam.c:4937 access/heap/heapam.c:4975
+#: access/heap/heapam.c:5227 executor/execMain.c:2579
 #, 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»"
@@ -903,130 +872,130 @@ msgstr "no se pudo bloquear un candado en la fila de la relación «%s»"
 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:925
+#: access/heap/rewriteheap.c:926
 #, 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:965 access/heap/rewriteheap.c:1177
-#: access/heap/rewriteheap.c:1274 access/transam/timeline.c:407
-#: access/transam/timeline.c:483 access/transam/xlog.c:3060
-#: access/transam/xlog.c:3222 replication/logical/snapbuild.c:1607
-#: replication/slot.c:1077 replication/slot.c:1162 storage/file/fd.c:624
-#: storage/file/fd.c:3052 storage/smgr/md.c:1037 storage/smgr/md.c:1268
-#: storage/smgr/md.c:1441 utils/misc/guc.c:6881
+#: access/heap/rewriteheap.c:966 access/heap/rewriteheap.c:1183
+#: access/heap/rewriteheap.c:1282 access/transam/timeline.c:412
+#: access/transam/timeline.c:492 access/transam/xlog.c:3249
+#: access/transam/xlog.c:3417 replication/logical/snapbuild.c:1630
+#: replication/slot.c:1230 replication/slot.c:1317 storage/file/fd.c:631
+#: storage/file/fd.c:3180 storage/smgr/md.c:1044 storage/smgr/md.c:1277
+#: storage/smgr/md.c:1450 utils/misc/guc.c:6987
 #, c-format
 msgid "could not fsync file \"%s\": %m"
 msgstr "no se pudo sincronizar (fsync) archivo «%s»: %m"
 
-#: access/heap/rewriteheap.c:1020 access/heap/rewriteheap.c:1140
-#: access/transam/timeline.c:315 access/transam/timeline.c:461
-#: access/transam/xlog.c:3016 access/transam/xlog.c:3165
-#: access/transam/xlog.c:10124 access/transam/xlog.c:10162
-#: access/transam/xlog.c:10489 postmaster/postmaster.c:4351
-#: replication/logical/origin.c:542 replication/slot.c:1034
-#: storage/file/copydir.c:162 storage/smgr/md.c:325 utils/time/snapmgr.c:1175
+#: access/heap/rewriteheap.c:1021 access/heap/rewriteheap.c:1141
+#: access/transam/timeline.c:315 access/transam/timeline.c:467
+#: access/transam/xlog.c:3202 access/transam/xlog.c:3355
+#: access/transam/xlog.c:10537 access/transam/xlog.c:10575
+#: access/transam/xlog.c:10960 postmaster/postmaster.c:4450
+#: replication/logical/origin.c:535 replication/slot.c:1182
+#: storage/file/copydir.c:162 storage/smgr/md.c:327 utils/time/snapmgr.c:1297
 #, c-format
 msgid "could not create file \"%s\": %m"
 msgstr "no se pudo crear archivo «%s»: %m"
 
-#: access/heap/rewriteheap.c:1149
+#: access/heap/rewriteheap.c:1151
 #, 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 replication/walsender.c:481
-#: storage/smgr/md.c:1889
+#: access/heap/rewriteheap.c:1159 replication/walsender.c:486
+#: storage/smgr/md.c:1949
 #, c-format
 msgid "could not seek to end of file \"%s\": %m"
 msgstr "no se pudo posicionar (seek) al fin del archivo «%s»: %m"
 
-#: access/heap/rewriteheap.c:1167 access/transam/timeline.c:367
-#: access/transam/timeline.c:401 access/transam/timeline.c:477
-#: access/transam/xlog.c:3051 access/transam/xlog.c:3215
-#: postmaster/postmaster.c:4361 postmaster/postmaster.c:4371
-#: replication/logical/origin.c:551 replication/logical/origin.c:587
-#: replication/logical/origin.c:603 replication/logical/snapbuild.c:1591
-#: replication/slot.c:1063 storage/file/copydir.c:187
-#: utils/init/miscinit.c:1228 utils/init/miscinit.c:1237
-#: utils/init/miscinit.c:1244 utils/misc/guc.c:6842 utils/misc/guc.c:6873
-#: utils/misc/guc.c:8715 utils/misc/guc.c:8729 utils/time/snapmgr.c:1180
-#: utils/time/snapmgr.c:1187
+#: access/heap/rewriteheap.c:1171 access/transam/timeline.c:370
+#: access/transam/timeline.c:405 access/transam/timeline.c:484
+#: access/transam/xlog.c:3238 access/transam/xlog.c:3408
+#: postmaster/postmaster.c:4460 postmaster/postmaster.c:4470
+#: replication/logical/origin.c:544 replication/logical/origin.c:583
+#: replication/logical/origin.c:599 replication/logical/snapbuild.c:1612
+#: replication/slot.c:1213 storage/file/copydir.c:191
+#: utils/init/miscinit.c:1249 utils/init/miscinit.c:1260
+#: utils/init/miscinit.c:1268 utils/misc/guc.c:6948 utils/misc/guc.c:6979
+#: utils/misc/guc.c:8829 utils/misc/guc.c:8843 utils/time/snapmgr.c:1302
+#: utils/time/snapmgr.c:1309
 #, c-format
 msgid "could not write to file \"%s\": %m"
 msgstr "no se pudo escribir a archivo «%s»: %m"
 
-#: access/heap/rewriteheap.c:1250 access/transam/xlog.c:10356
-#: access/transam/xlogarchive.c:114 access/transam/xlogarchive.c:468
-#: replication/logical/origin.c:529 replication/logical/reorderbuffer.c:2624
-#: replication/logical/reorderbuffer.c:2681
-#: replication/logical/snapbuild.c:1535 replication/logical/snapbuild.c:1910
-#: replication/slot.c:1136 storage/ipc/dsm.c:326 storage/smgr/md.c:425
-#: storage/smgr/md.c:474 storage/smgr/md.c:1388
+#: access/heap/rewriteheap.c:1257 access/transam/xlogarchive.c:113
+#: access/transam/xlogarchive.c:467 postmaster/postmaster.c:1257
+#: postmaster/syslogger.c:1371 replication/logical/origin.c:522
+#: replication/logical/reorderbuffer.c:2595
+#: replication/logical/reorderbuffer.c:2652
+#: replication/logical/snapbuild.c:1560 replication/logical/snapbuild.c:1936
+#: replication/slot.c:1290 storage/file/fd.c:682 storage/ipc/dsm.c:327
+#: storage/smgr/md.c:426 storage/smgr/md.c:475 storage/smgr/md.c:1397
 #, c-format
 msgid "could not remove file \"%s\": %m"
 msgstr "no se pudo eliminar el archivo «%s»: %m"
 
-#: access/heap/rewriteheap.c:1264 access/transam/timeline.c:111
+#: access/heap/rewriteheap.c:1271 access/transam/timeline.c:111
 #: access/transam/timeline.c:236 access/transam/timeline.c:334
-#: access/transam/xlog.c:2992 access/transam/xlog.c:3109
-#: access/transam/xlog.c:3150 access/transam/xlog.c:3423
-#: access/transam/xlog.c:3501 access/transam/xlogutils.c:703
-#: replication/basebackup.c:401 replication/basebackup.c:1162
-#: replication/logical/origin.c:658 replication/logical/reorderbuffer.c:2154
-#: replication/logical/reorderbuffer.c:2394
-#: replication/logical/reorderbuffer.c:3072
-#: replication/logical/snapbuild.c:1584 replication/logical/snapbuild.c:1668
-#: replication/slot.c:1151 replication/walsender.c:474
-#: replication/walsender.c:2104 storage/file/copydir.c:155
-#: storage/file/fd.c:607 storage/file/fd.c:2964 storage/file/fd.c:3031
-#: storage/smgr/md.c:608 utils/error/elog.c:1870 utils/init/miscinit.c:1163
-#: utils/init/miscinit.c:1284 utils/init/miscinit.c:1362 utils/misc/guc.c:7101
-#: utils/misc/guc.c:7134
+#: access/transam/xlog.c:3178 access/transam/xlog.c:3299
+#: access/transam/xlog.c:3340 access/transam/xlog.c:3619
+#: access/transam/xlog.c:3697 access/transam/xlogutils.c:706
+#: postmaster/syslogger.c:1380 replication/basebackup.c:474
+#: replication/basebackup.c:1218 replication/logical/origin.c:654
+#: replication/logical/reorderbuffer.c:2112
+#: replication/logical/reorderbuffer.c:2361
+#: replication/logical/reorderbuffer.c:3044
+#: replication/logical/snapbuild.c:1604 replication/logical/snapbuild.c:1692
+#: replication/slot.c:1305 replication/walsender.c:479
+#: replication/walsender.c:2385 storage/file/copydir.c:155
+#: storage/file/fd.c:614 storage/file/fd.c:3092 storage/file/fd.c:3159
+#: storage/smgr/md.c:608 utils/error/elog.c:1879 utils/init/miscinit.c:1173
+#: utils/init/miscinit.c:1308 utils/init/miscinit.c:1385 utils/misc/guc.c:7207
+#: utils/misc/guc.c:7240
 #, c-format
 msgid "could not open file \"%s\": %m"
 msgstr "no se pudo abrir el archivo «%s»: %m"
 
-#: access/index/amapi.c:69 commands/amcmds.c:164
-#, fuzzy, c-format
-#| msgid "access method \"%s\" does not exist"
+#: access/index/amapi.c:83 commands/amcmds.c:163
+#, c-format
 msgid "access method \"%s\" is not of type %s"
-msgstr "no existe el método de acceso «%s»"
+msgstr "el método de acceso «%s» no es de tipo %s"
 
-#: access/index/amapi.c:78
-#, fuzzy, c-format
-#| msgid "access method \"%s\" does not exist"
+#: access/index/amapi.c:99
+#, c-format
 msgid "index access method \"%s\" does not have a handler"
-msgstr "no existe el método de acceso «%s»"
+msgstr "el método de acceso «%s» no tiene manejador"
 
-#: access/index/indexam.c:155 catalog/objectaddress.c:1196
-#: commands/indexcmds.c:1799 commands/tablecmds.c:241
-#: commands/tablecmds.c:12035
+#: access/index/indexam.c:160 catalog/objectaddress.c:1222
+#: commands/indexcmds.c:1819 commands/tablecmds.c:247
+#: commands/tablecmds.c:13106
 #, c-format
 msgid "\"%s\" is not an index"
 msgstr "«%s» no es un índice"
 
-#: access/nbtree/nbtinsert.c:427
+#: access/nbtree/nbtinsert.c:429
 #, c-format
 msgid "duplicate key value violates unique constraint \"%s\""
 msgstr "llave duplicada viola restricción de unicidad «%s»"
 
-#: access/nbtree/nbtinsert.c:429
+#: access/nbtree/nbtinsert.c:431
 #, c-format
 msgid "Key %s already exists."
 msgstr "Ya existe la llave %s."
 
-#: access/nbtree/nbtinsert.c:496
+#: access/nbtree/nbtinsert.c:498
 #, c-format
 msgid "failed to re-find tuple within index \"%s\""
 msgstr "no se pudo volver a encontrar la tupla dentro del índice «%s»"
 
-#: access/nbtree/nbtinsert.c:498
+#: access/nbtree/nbtinsert.c:500
 #, c-format
 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/nbtinsert.c:578 access/nbtree/nbtsort.c:491
+#: access/nbtree/nbtinsert.c:580 access/nbtree/nbtsort.c:491
 #, c-format
 msgid ""
 "Values larger than 1/3 of a buffer page cannot be indexed.\n"
@@ -1035,188 +1004,110 @@ msgstr ""
 "Valores mayores a 1/3 de la página del buffer no pueden ser indexados.\n"
 "Considere un índice sobre una función que genere un hash MD5 del valor, o utilice un esquema de indexación de texto completo."
 
-#: access/nbtree/nbtpage.c:168 access/nbtree/nbtpage.c:371
-#: access/nbtree/nbtpage.c:458 parser/parse_utilcmd.c:1715
+#: access/nbtree/nbtpage.c:169 access/nbtree/nbtpage.c:372
+#: access/nbtree/nbtpage.c:459 parser/parse_utilcmd.c:1899
 #, c-format
 msgid "index \"%s\" is not a btree"
 msgstr "el índice «%s» no es un btree"
 
-#: access/nbtree/nbtpage.c:174 access/nbtree/nbtpage.c:377
-#: access/nbtree/nbtpage.c:464
+#: access/nbtree/nbtpage.c:175 access/nbtree/nbtpage.c:378
+#: access/nbtree/nbtpage.c:465
 #, c-format
 msgid "version mismatch in index \"%s\": file version %d, code version %d"
 msgstr "discordancia de versión en índice «%s»: versión de archivo %d, versión de código %d"
 
-#: access/nbtree/nbtpage.c:1152
+#: access/nbtree/nbtpage.c:1153
 #, 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:1154
+#: access/nbtree/nbtpage.c:1155
 #, 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/nbtvalidate.c:100
-#, c-format
-msgid "btree opfamily %s contains function %s with invalid support number %d"
-msgstr ""
-
-#: access/nbtree/nbtvalidate.c:112
-#, c-format
-msgid "btree opfamily %s contains function %s with wrong signature for support number %d"
-msgstr ""
+#: access/nbtree/nbtvalidate.c:211
+#, fuzzy, c-format
+#| msgid "btree operator family \"%s\" is missing support function for types %s and %s"
+msgid "operator family \"%s\" of access method %s is missing support function for types %s and %s"
+msgstr "faltan funciones de soporte para los tipos %2$s y %3$s en la familia de operadores btree «%1$s»"
 
-#: access/nbtree/nbtvalidate.c:132
+#: access/spgist/spgutils.c:705
 #, c-format
-msgid "btree opfamily %s contains operator %s with invalid strategy number %d"
-msgstr ""
+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"
 
-#: access/nbtree/nbtvalidate.c:145
-#, c-format
-msgid "btree opfamily %s contains invalid ORDER BY specification for operator %s"
-msgstr ""
+#: access/spgist/spgvalidate.c:221
+#, fuzzy, c-format
+#| msgid "spgist operator family \"%s\" is missing support function %d for type %s"
+msgid "operator family \"%s\" of access method %s is missing support function %d for type %s"
+msgstr "falta la función de soporte %2$d para el tipo %3$s de la clase de operadores spgist «%1$s»"
 
-#: access/nbtree/nbtvalidate.c:158
+#: access/tablesample/bernoulli.c:152 access/tablesample/system.c:156
 #, c-format
-msgid "btree opfamily %s contains operator %s with wrong signature"
-msgstr ""
+msgid "sample percentage must be between 0 and 100"
+msgstr "el porcentaje de muestreo debe estar entre 0 y 100"
 
-#: access/nbtree/nbtvalidate.c:200
+#: access/transam/commit_ts.c:295
 #, c-format
-msgid "btree opfamily %s is missing operator(s) for types %s and %s"
-msgstr ""
+msgid "cannot retrieve commit timestamp for transaction %u"
+msgstr "no se puede obtener el timestamp de compromiso de la transacción %u"
 
-#: access/nbtree/nbtvalidate.c:210
+#: access/transam/commit_ts.c:393
 #, c-format
-msgid "btree opfamily %s is missing support function for types %s and %s"
-msgstr ""
+msgid "could not get commit timestamp data"
+msgstr "no se pudo obtener datos de compromiso de transacción"
 
-#: access/nbtree/nbtvalidate.c:224
+#: access/transam/commit_ts.c:395
 #, c-format
-msgid "btree opclass %s is missing operator(s)"
-msgstr ""
+msgid "Make sure the configuration parameter \"%s\" is set on the master server."
+msgstr "Asegúrese que el parámetro de configuración «%s» esté definido en el servidor maestro."
 
-#: access/nbtree/nbtvalidate.c:241
+#: access/transam/commit_ts.c:397
 #, c-format
-msgid "btree opfamily %s is missing cross-type operator(s)"
-msgstr ""
+msgid "Make sure the configuration parameter \"%s\" is set."
+msgstr "Asegúrese que el parámetro de configuración «%s» esté definido."
 
-#: access/spgist/spgutils.c:699
+#: access/transam/multixact.c:1000
 #, 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"
+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»"
 
-#: access/spgist/spgvalidate.c:92
+#: access/transam/multixact.c:1002 access/transam/multixact.c:1009
+#: access/transam/multixact.c:1033 access/transam/multixact.c:1042
 #, c-format
-msgid "spgist opfamily %s contains support procedure %s with cross-type registration"
+msgid ""
+"Execute a database-wide VACUUM in that database.\n"
+"You might also need to commit or roll back old prepared transactions."
 msgstr ""
+"Ejecute VACUUM en esa base de datos.\n"
+"Puede que además necesite comprometer o abortar transacciones preparadas antiguas."
 
-#: access/spgist/spgvalidate.c:115
+#: access/transam/multixact.c:1007
 #, c-format
-msgid "spgist opfamily %s contains function %s with invalid support number %d"
-msgstr ""
+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"
 
-#: access/spgist/spgvalidate.c:127
+#: access/transam/multixact.c:1028 access/transam/multixact.c:2318
 #, c-format
-msgid "spgist opfamily %s contains function %s with wrong signature for support number %d"
-msgstr ""
+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/spgist/spgvalidate.c:146
+#: access/transam/multixact.c:1037 access/transam/multixact.c:2327
 #, c-format
-msgid "spgist opfamily %s contains operator %s with invalid strategy number %d"
-msgstr ""
+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/spgist/spgvalidate.c:159
+#: access/transam/multixact.c:1098
 #, c-format
-msgid "spgist opfamily %s contains invalid ORDER BY specification for operator %s"
-msgstr ""
+msgid "multixact \"members\" limit exceeded"
+msgstr "límite de miembros de multixact alcanzado"
 
-#: access/spgist/spgvalidate.c:172
-#, c-format
-msgid "spgist opfamily %s contains operator %s with wrong signature"
-msgstr ""
-
-#: access/spgist/spgvalidate.c:200
-#, c-format
-msgid "spgist opfamily %s is missing operator(s) for types %s and %s"
-msgstr ""
-
-#: access/spgist/spgvalidate.c:220
-#, c-format
-msgid "spgist opfamily %s is missing support function %d for type %s"
-msgstr ""
-
-#: access/spgist/spgvalidate.c:233
-#, c-format
-msgid "spgist opclass %s is missing operator(s)"
-msgstr ""
-
-#: access/tablesample/bernoulli.c:152 access/tablesample/system.c:156
-#, fuzzy, c-format
-msgid "sample percentage must be between 0 and 100"
-msgstr "la precisión de timestamp(%d) debe estar entre %d y %d"
-
-#: access/transam/commit_ts.c:295
-#, fuzzy, c-format
-msgid "cannot retrieve commit timestamp for transaction %u"
-msgstr "no se puede heredar de la tabla temporal «%s»"
-
-#: access/transam/commit_ts.c:385
-#, fuzzy, c-format
-msgid "could not get commit timestamp data"
-msgstr "no se pudo determinar el tipo de dato de entrada"
-
-#: access/transam/commit_ts.c:387
-#, fuzzy, c-format
-msgid "Make sure the configuration parameter \"%s\" is set on the master server."
-msgstr "Asegúrese que el parámetro de configuración «ssl_ca_file» esté definido."
-
-#: access/transam/commit_ts.c:389 libpq/hba.c:1441
-#, fuzzy, c-format
-msgid "Make sure the configuration parameter \"%s\" is set."
-msgstr "Asegúrese que el parámetro de configuración «ssl_ca_file» esté definido."
-
-#: access/transam/multixact.c:1000
-#, 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»"
-
-#: access/transam/multixact.c:1002 access/transam/multixact.c:1009
-#: access/transam/multixact.c:1033 access/transam/multixact.c:1042
-#, c-format
-msgid ""
-"Execute a database-wide VACUUM in that database.\n"
-"You might also need to commit or roll back old prepared transactions."
-msgstr ""
-"Ejecute VACUUM en esa base de datos.\n"
-"Puede que además necesite comprometer o abortar transacciones preparadas antiguas."
-
-#: access/transam/multixact.c:1007
-#, 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"
-
-#: access/transam/multixact.c:1028 access/transam/multixact.c:2317
-#, 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:1037 access/transam/multixact.c:2326
-#, 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:1098
-#, c-format
-msgid "multixact \"members\" limit exceeded"
-msgstr "límite de miembros de multixact alcanzado"
-
-#: access/transam/multixact.c:1099
+#: access/transam/multixact.c:1099
 #, 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."
@@ -1229,11 +1120,10 @@ msgid "Execute a database-wide VACUUM in database with OID %u with reduced vacuu
 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:1135
-#, fuzzy, c-format
-#| msgid "database with OID %u must be vacuumed before %d more multixact members are used"
+#, 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 más miembros de multixact sean usados"
+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:1140
@@ -1241,24 +1131,24 @@ msgstr[1] "base de datos con OID %u debe ser limpiada antes de que %d más miemb
 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:1278
+#: access/transam/multixact.c:1277
 #, c-format
 msgid "MultiXactId %u does no longer exist -- apparent wraparound"
 msgstr "el MultiXactId %u ya no existe -- aparente problema por reciclaje"
 
-#: access/transam/multixact.c:1286
+#: access/transam/multixact.c:1285
 #, 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"
 
-#: access/transam/multixact.c:2267
+#: access/transam/multixact.c:2268
 #, c-format
 msgid "MultiXactId wrap limit is %u, limited by database with OID %u"
 msgstr "el límite para el reciclaje de MultiXactId es %u, limitado por base de datos con OID %u"
 
-#: access/transam/multixact.c:2322 access/transam/multixact.c:2331
+#: access/transam/multixact.c:2323 access/transam/multixact.c:2332
 #: access/transam/varsup.c:146 access/transam/varsup.c:153
-#: access/transam/varsup.c:384 access/transam/varsup.c:391
+#: access/transam/varsup.c:405 access/transam/varsup.c:412
 #, c-format
 msgid ""
 "To avoid a database shutdown, execute a database-wide VACUUM in that database.\n"
@@ -1267,115 +1157,113 @@ 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."
 
-#: access/transam/multixact.c:2601
+#: access/transam/multixact.c:2602
 #, c-format
 msgid "oldest MultiXactId member is at offset %u"
 msgstr "el miembro de multixact más antiguo está en la posición %u"
 
-#: access/transam/multixact.c:2605
+#: access/transam/multixact.c:2606
 #, 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"
 
-#: access/transam/multixact.c:2627
+#: access/transam/multixact.c:2628
 #, c-format
 msgid "MultiXact member wraparound protections are now enabled"
 msgstr "las protecciones de reciclaje de miembros de multixact están habilitadas"
 
-#: access/transam/multixact.c:2629
+#: access/transam/multixact.c:2631
 #, c-format
 msgid "MultiXact member stop limit is now %u based on MultiXact %u"
 msgstr "el límite de detención de miembros de multixact es ahora %u basado en el multixact %u"
 
-#: access/transam/multixact.c:3009
+#: access/transam/multixact.c:3011
 #, 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, saltando el truncado"
 
-#: access/transam/multixact.c:3027
+#: access/transam/multixact.c:3029
 #, c-format
 msgid "cannot truncate up to MultiXact %u because it does not exist on disk, skipping truncation"
-msgstr ""
+msgstr "no se puede truncar hasta el MultiXact %u porque no existe en disco, omitiendo el truncado"
 
-#: access/transam/multixact.c:3353
+#: access/transam/multixact.c:3355
 #, c-format
 msgid "invalid MultiXactId: %u"
 msgstr "el MultiXactId no es válido: %u"
 
-#: access/transam/parallel.c:581
-#, fuzzy, c-format
+#: access/transam/parallel.c:577
+#, c-format
 msgid "postmaster exited during a parallel transaction"
-msgstr "no se puede ejecutar %s en una transacción de sólo lectura"
+msgstr "postmaster terminó durante una transacción paralela"
 
-#: access/transam/parallel.c:739
-#, fuzzy, c-format
+#: access/transam/parallel.c:764
+#, c-format
 msgid "lost connection to parallel worker"
-msgstr "se ha perdido la conexión al cliente"
+msgstr "se ha perdido la conexión al proceso trabajador paralelo"
 
-#: access/transam/parallel.c:914
-#, fuzzy, c-format
+#: access/transam/parallel.c:823 access/transam/parallel.c:825
+msgid "parallel worker"
+msgstr "proceso trabajador paralelo"
+
+#: access/transam/parallel.c:968
+#, c-format
 msgid "could not map dynamic shared memory segment"
-msgstr "demasiados segmentos de memoria compartida dinámica"
+msgstr "no se pudo mapear el segmento de memoria compartida dinámica"
 
-#: access/transam/parallel.c:919
-#, fuzzy, c-format
+#: access/transam/parallel.c:973
+#, c-format
 msgid "invalid magic number in dynamic shared memory segment"
-msgstr "demasiados segmentos de memoria compartida dinámica"
-
-#: access/transam/parallel.c:1084
-#, fuzzy, c-format
-#| msgid "parallel archiver"
-msgid "parallel worker, PID %d"
-msgstr "parallel archiver"
+msgstr "número mágico no válido en segmento de memoria compartida dinámica"
 
-#: access/transam/slru.c:665
+#: access/transam/slru.c:664
 #, c-format
 msgid "file \"%s\" doesn't exist, reading as zeroes"
 msgstr "el archivo «%s» no existe, leyendo como ceros"
 
-#: access/transam/slru.c:895 access/transam/slru.c:901
-#: access/transam/slru.c:908 access/transam/slru.c:915
-#: access/transam/slru.c:922 access/transam/slru.c:929
+#: access/transam/slru.c:903 access/transam/slru.c:909
+#: access/transam/slru.c:916 access/transam/slru.c:923
+#: access/transam/slru.c:930 access/transam/slru.c:937
 #, 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:896
+#: access/transam/slru.c:904
 #, c-format
 msgid "Could not open file \"%s\": %m."
 msgstr "No se pudo abrir el archivo «%s»: %m."
 
-#: access/transam/slru.c:902
+#: access/transam/slru.c:910
 #, c-format
 msgid "Could not seek in file \"%s\" to offset %u: %m."
 msgstr "No se pudo posicionar (seek) en el archivo «%s» a la posición %u: %m."
 
-#: access/transam/slru.c:909
+#: access/transam/slru.c:917
 #, c-format
 msgid "Could not read from file \"%s\" at offset %u: %m."
 msgstr "No se pudo leer desde el archivo «%s» en la posición %u: %m."
 
-#: access/transam/slru.c:916
+#: access/transam/slru.c:924
 #, c-format
 msgid "Could not write to file \"%s\" at offset %u: %m."
 msgstr "No se pudo escribir al archivo «%s» en la posición %u: %m."
 
-#: access/transam/slru.c:923
+#: access/transam/slru.c:931
 #, c-format
 msgid "Could not fsync file \"%s\": %m."
 msgstr "No se pudo sincronizar (fsync) archivo «%s»: %m."
 
-#: access/transam/slru.c:930
+#: access/transam/slru.c:938
 #, c-format
 msgid "Could not close file \"%s\": %m."
 msgstr "No se pudo cerrar el archivo «%s»: %m."
 
-#: access/transam/slru.c:1185
+#: access/transam/slru.c:1195
 #, c-format
 msgid "could not truncate directory \"%s\": apparent wraparound"
 msgstr "no se pudo truncar el directorio «%s»: aparente problema por reciclaje de transacciones"
 
-#: access/transam/slru.c:1240 access/transam/slru.c:1296
+#: access/transam/slru.c:1250 access/transam/slru.c:1306
 #, c-format
 msgid "removing file \"%s\""
 msgstr "eliminando el archivo «%s»"
@@ -1391,8 +1279,8 @@ msgid "Expected a numeric timeline ID."
 msgstr "Se esperaba un ID numérico de timeline."
 
 #: access/transam/timeline.c:154
-#, c-format
-msgid "Expected a transaction log switchpoint location."
+#, fuzzy, c-format
+msgid "Expected a write-ahead log switchpoint location."
 msgstr "Se esperaba una ubicación de punto de cambio del registro de transacciones."
 
 #: access/transam/timeline.c:158
@@ -1415,166 +1303,180 @@ msgstr "datos no válidos en archivo de historia «%s»"
 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."
 
-#: access/transam/timeline.c:412 access/transam/timeline.c:488
-#: access/transam/xlog.c:3066 access/transam/xlog.c:3227
-#: access/transam/xlogfuncs.c:691 commands/copy.c:1671
-#: storage/file/copydir.c:201
+#: access/transam/timeline.c:418 access/transam/timeline.c:498
+#: access/transam/xlog.c:3256 access/transam/xlog.c:3423
+#: access/transam/xlogfuncs.c:693 commands/copy.c:1775
+#: storage/file/copydir.c:206
 #, c-format
 msgid "could not close file \"%s\": %m"
 msgstr "no se pudo cerrar el archivo «%s»: %m"
 
-#: access/transam/timeline.c:570
+#: access/transam/timeline.c:580
 #, c-format
 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:363
+#: access/transam/twophase.c:383
 #, c-format
 msgid "transaction identifier \"%s\" is too long"
 msgstr "identificador de transacción «%s» es demasiado largo"
 
-#: access/transam/twophase.c:370
+#: access/transam/twophase.c:390
 #, c-format
 msgid "prepared transactions are disabled"
 msgstr "las transacciones preparadas están deshabilitadas"
 
-#: access/transam/twophase.c:371
+#: access/transam/twophase.c:391
 #, c-format
 msgid "Set max_prepared_transactions to a nonzero value."
 msgstr "Defina max_prepared_transactions a un valor distinto de cero."
 
-#: access/transam/twophase.c:390
+#: access/transam/twophase.c:410
 #, c-format
 msgid "transaction identifier \"%s\" is already in use"
 msgstr "identificador de transacción «%s» ya está siendo utilizado"
 
-#: access/transam/twophase.c:399
+#: access/transam/twophase.c:419 access/transam/twophase.c:2340
 #, c-format
 msgid "maximum number of prepared transactions reached"
 msgstr "se alcanzó el número máximo de transacciones preparadas"
 
-#: access/transam/twophase.c:400
+#: access/transam/twophase.c:420 access/transam/twophase.c:2341
 #, c-format
 msgid "Increase max_prepared_transactions (currently %d)."
 msgstr "Incremente max_prepared_transactions (actualmente es %d)."
 
-#: access/transam/twophase.c:539
+#: access/transam/twophase.c:587
 #, c-format
 msgid "prepared transaction with identifier \"%s\" is busy"
 msgstr "transacción preparada con identificador «%s» está ocupada"
 
-#: access/transam/twophase.c:545
+#: access/transam/twophase.c:593
 #, c-format
 msgid "permission denied to finish prepared transaction"
 msgstr "permiso denegado para finalizar la transacción preparada"
 
-#: access/transam/twophase.c:546
+#: access/transam/twophase.c:594
 #, 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:557
+#: access/transam/twophase.c:605
 #, c-format
 msgid "prepared transaction belongs to another database"
 msgstr "la transacción preparada pertenece a otra base de datos"
 
-#: access/transam/twophase.c:558
+#: access/transam/twophase.c:606
 #, 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:573
+#: access/transam/twophase.c:621
 #, c-format
 msgid "prepared transaction with identifier \"%s\" does not exist"
 msgstr "transacción preparada con identificador «%s» no existe"
 
-#: access/transam/twophase.c:1042
+#: access/transam/twophase.c:1086
 #, c-format
 msgid "two-phase state file maximum length exceeded"
 msgstr "el largo máximo del archivo de estado de COMMIT en dos fases fue excedido"
 
-#: access/transam/twophase.c:1160
+#: access/transam/twophase.c:1204
 #, c-format
 msgid "could not open two-phase state file \"%s\": %m"
 msgstr "no se pudo abrir el archivo de estado de COMMIT en dos fases «%s»: %m"
 
-#: access/transam/twophase.c:1177
+#: access/transam/twophase.c:1221
 #, c-format
 msgid "could not stat two-phase state file \"%s\": %m"
 msgstr "no se pudo hacer stat al archivo de estado de COMMIT en dos fases «%s»: %m"
 
-#: access/transam/twophase.c:1209
+#: access/transam/twophase.c:1255
 #, c-format
 msgid "could not read two-phase state file \"%s\": %m"
 msgstr "no se pudo leer el archivo de estado de COMMIT en dos fases «%s»: %m"
 
-#: access/transam/twophase.c:1262 access/transam/xlog.c:6070
-#, c-format
-msgid "Failed while allocating an XLog reading processor."
+#: access/transam/twophase.c:1307 access/transam/xlog.c:6350
+#, fuzzy, c-format
+msgid "Failed while allocating a WAL reading processor."
 msgstr "Falló mientras se emplazaba un procesador de lectura de XLog."
 
-#: access/transam/twophase.c:1268
+#: access/transam/twophase.c:1313
 #, fuzzy, c-format
-#| msgid "could not read two-phase state file \"%s\": %m"
-msgid "could not read two-phase state from xlog at %X/%X"
-msgstr "no se pudo leer el archivo de estado de COMMIT en dos fases «%s»: %m"
+msgid "could not read two-phase state from WAL at %X/%X"
+msgstr "no se pudo leer el archivo de estado de COMMIT en dos fases desde xlog en %X/%X"
 
-#: access/transam/twophase.c:1276
+#: access/transam/twophase.c:1321
 #, c-format
-msgid "expected two-phase state data is not present in xlog at %X/%X"
+msgid "expected two-phase state data is not present in WAL at %X/%X"
 msgstr ""
 
-#: access/transam/twophase.c:1512
+#: access/transam/twophase.c:1558
 #, c-format
 msgid "could not remove two-phase state file \"%s\": %m"
 msgstr "no se pudo eliminar el archivo de estado de COMMIT en dos fases «%s»: %m"
 
-#: access/transam/twophase.c:1542
+#: access/transam/twophase.c:1588
 #, c-format
 msgid "could not recreate two-phase state file \"%s\": %m"
 msgstr "no se pudo recrear el archivo de estado de COMMIT en dos fases «%s»: %m"
 
-#: access/transam/twophase.c:1551 access/transam/twophase.c:1558
+#: access/transam/twophase.c:1599 access/transam/twophase.c:1607
 #, c-format
 msgid "could not write two-phase state file: %m"
 msgstr "no se pudo escribir el archivo de estado de COMMIT en dos fases: %m"
 
-#: access/transam/twophase.c:1570
+#: access/transam/twophase.c:1621
 #, c-format
 msgid "could not fsync two-phase state file: %m"
 msgstr "no se pudo sincronizar (fsync) el archivo de estado de COMMIT en dos fases: %m"
 
-#: access/transam/twophase.c:1576
+#: access/transam/twophase.c:1628
 #, c-format
 msgid "could not close two-phase state file: %m"
 msgstr "no se pudo cerrar el archivo de estado de COMMIT en dos fases: %m"
 
-#: access/transam/twophase.c:1651
+#: access/transam/twophase.c:1716
 #, c-format
-msgid "%u two-phase state files were written for long-running prepared transactions"
-msgstr ""
+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] ""
+msgstr[1] ""
 
-#: access/transam/twophase.c:1712
-#, c-format
-msgid "removing future two-phase state file \"%s\""
-msgstr "eliminando archivo futuro de estado de COMMIT en dos fases «%s»"
+#: access/transam/twophase.c:1944
+#, fuzzy, c-format
+msgid "recovering prepared transaction %u from shared memory"
+msgstr "recuperando transacción preparada %u"
 
-#: access/transam/twophase.c:1728 access/transam/twophase.c:1739
-#: access/transam/twophase.c:1858 access/transam/twophase.c:1869
-#: access/transam/twophase.c:1943
-#, c-format
-msgid "removing corrupt two-phase state file \"%s\""
-msgstr "eliminando archivo dañado de estado de COMMIT en dos fases «%s»"
+#: access/transam/twophase.c:2034
+#, fuzzy, c-format
+msgid "removing stale two-phase state file for \"%u\""
+msgstr "eliminando archivo obsoleto de estado de COMMIT en dos fases «%s»"
 
-#: access/transam/twophase.c:1847 access/transam/twophase.c:1932
-#, c-format
-msgid "removing stale two-phase state file \"%s\""
+#: access/transam/twophase.c:2041
+#, fuzzy, c-format
+msgid "removing stale two-phase state from shared memory for \"%u\""
 msgstr "eliminando archivo obsoleto de estado de COMMIT en dos fases «%s»"
 
-#: access/transam/twophase.c:1950
-#, c-format
-msgid "recovering prepared transaction %u"
-msgstr "recuperando transacción preparada %u"
+#: access/transam/twophase.c:2054
+#, fuzzy, c-format
+msgid "removing future two-phase state file for \"%u\""
+msgstr "eliminando archivo futuro de estado de COMMIT en dos fases «%s»"
+
+#: access/transam/twophase.c:2061
+#, fuzzy, c-format
+msgid "removing future two-phase state from memory for \"%u\""
+msgstr "eliminando archivo futuro de estado de COMMIT en dos fases «%s»"
+
+#: access/transam/twophase.c:2075 access/transam/twophase.c:2094
+#, fuzzy, c-format
+msgid "removing corrupt two-phase state file for \"%u\""
+msgstr "eliminando archivo dañado de estado de COMMIT en dos fases «%s»"
+
+#: access/transam/twophase.c:2101
+#, fuzzy, c-format
+msgid "removing corrupt two-phase state from memory for \"%u\""
+msgstr "eliminando archivo dañado de estado de COMMIT en dos fases «%s»"
 
 #: access/transam/varsup.c:124
 #, c-format
@@ -1595,22 +1497,22 @@ msgstr ""
 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"
 
-#: access/transam/varsup.c:143 access/transam/varsup.c:381
+#: access/transam/varsup.c:143 access/transam/varsup.c:402
 #, 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:150 access/transam/varsup.c:388
+#: access/transam/varsup.c:150 access/transam/varsup.c:409
 #, 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/varsup.c:346
+#: access/transam/varsup.c:367
 #, c-format
 msgid "transaction ID wrap limit is %u, limited by database with OID %u"
 msgstr "el límite para el reciclaje de ID de transacciones es %u, limitado por base de datos con OID %u"
 
-#: access/transam/xact.c:943
+#: access/transam/xact.c:946
 #, 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"
@@ -1620,1147 +1522,1144 @@ msgstr "no se pueden tener más de 2^32-2 órdenes en una transacción"
 msgid "maximum number of committed subtransactions (%d) exceeded"
 msgstr "se superó el número máximo de subtransacciones comprometidas (%d)"
 
-#: access/transam/xact.c:2267
+#: access/transam/xact.c:2268
 #, c-format
 msgid "cannot PREPARE a transaction that has operated on temporary tables"
 msgstr "no se puede hacer PREPARE de una transacción que ha operado en tablas temporales"
 
-#: access/transam/xact.c:2277
+#: access/transam/xact.c:2278
 #, 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:3159
+#: access/transam/xact.c:3164
 #, 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:3169
+#: access/transam/xact.c:3174
 #, 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:3179
+#: access/transam/xact.c:3184
 #, c-format
 msgid "%s cannot be executed from a function or multi-command string"
 msgstr "la orden %s no puede ser ejecutada desde una función o una línea con múltiples órdenes"
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:3250
+#: access/transam/xact.c:3255
 #, 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:3434
+#: access/transam/xact.c:3439
 #, c-format
 msgid "there is already a transaction in progress"
 msgstr "ya hay una transacción en curso"
 
-#: access/transam/xact.c:3602 access/transam/xact.c:3705
+#: access/transam/xact.c:3607 access/transam/xact.c:3710
 #, c-format
 msgid "there is no transaction in progress"
 msgstr "no hay una transacción en curso"
 
-#: access/transam/xact.c:3613
+#: access/transam/xact.c:3618
 #, c-format
 msgid "cannot commit during a parallel operation"
-msgstr ""
+msgstr "no se puede comprometer una transacción durante una operación paralela"
 
-#: access/transam/xact.c:3716
+#: access/transam/xact.c:3721
 #, c-format
 msgid "cannot abort during a parallel operation"
-msgstr ""
+msgstr "no se puede abortar durante una operación paralela"
 
-#: access/transam/xact.c:3758
+#: access/transam/xact.c:3763
 #, c-format
 msgid "cannot define savepoints during a parallel operation"
-msgstr ""
+msgstr "no se pueden definir savepoints durante una operación paralela"
 
-#: access/transam/xact.c:3825
-#, fuzzy, c-format
+#: access/transam/xact.c:3830
+#, c-format
 msgid "cannot release savepoints during a parallel operation"
-msgstr "no se pueden crear tablas temporales durante la recuperación"
+msgstr "no se pueden liberar savepoints durante una operación paralela"
 
-#: access/transam/xact.c:3836 access/transam/xact.c:3888
-#: access/transam/xact.c:3894 access/transam/xact.c:3950
-#: access/transam/xact.c:4000 access/transam/xact.c:4006
+#: access/transam/xact.c:3841 access/transam/xact.c:3893
+#: access/transam/xact.c:3899 access/transam/xact.c:3955
+#: access/transam/xact.c:4005 access/transam/xact.c:4011
 #, c-format
 msgid "no such savepoint"
 msgstr "no hay un savepoint con ese nombre"
 
-#: access/transam/xact.c:3938
+#: access/transam/xact.c:3943
 #, c-format
 msgid "cannot rollback to savepoints during a parallel operation"
-msgstr ""
+msgstr "no se puede hacer rollback a un savepoint durante una operación paralela"
 
-#: access/transam/xact.c:4066
-#, fuzzy, c-format
+#: access/transam/xact.c:4071
+#, c-format
 msgid "cannot start subtransactions during a parallel operation"
-msgstr "no se pueden tener más de 2^32-1 subtransacciones en una transacción"
+msgstr "no se pueden iniciar subtransacciones durante una operación paralela"
 
-#: access/transam/xact.c:4133
-#, fuzzy, c-format
+#: access/transam/xact.c:4138
+#, c-format
 msgid "cannot commit subtransactions during a parallel operation"
-msgstr "no se pueden tener más de 2^32-1 subtransacciones en una transacción"
+msgstr "no se pueden comprometer subtransacciones durante una operación paralela"
 
-#: access/transam/xact.c:4741
+#: access/transam/xact.c:4746
 #, 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:2272
+#: access/transam/xlog.c:2455
 #, c-format
 msgid "could not seek in log file %s to offset %u: %m"
 msgstr "no se pudo posicionar (seek) en el archivo «%s» a la posición %u: %m"
 
-#: access/transam/xlog.c:2292
+#: 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:2555
+#: access/transam/xlog.c:2741
 #, c-format
 msgid "updated min recovery point to %X/%X on timeline %u"
 msgstr "el punto mínimo de recuperación fue actualizado a %X/%X en el timeline %u"
 
-#: access/transam/xlog.c:3197
+#: access/transam/xlog.c:3388
 #, c-format
 msgid "not enough data in file \"%s\""
 msgstr "los datos del archivo «%s» son insuficientes"
 
-#: access/transam/xlog.c:3338
-#, c-format
-msgid "could not open transaction log file \"%s\": %m"
-msgstr "no se pudo abrir el archivo de registro de transacciones «%s»: %m"
+#: access/transam/xlog.c:3534
+#, fuzzy, c-format
+msgid "could not open write-ahead log file \"%s\": %m"
+msgstr "no se pudo abrir el archivo de registro «%s»: %m"
 
-#: access/transam/xlog.c:3527 access/transam/xlog.c:5300
+#: access/transam/xlog.c:3723 access/transam/xlog.c:5535
 #, c-format
 msgid "could not close log file %s: %m"
 msgstr "no se pudo cerrar el archivo de registro %s: %m"
 
-#: access/transam/xlog.c:3584 access/transam/xlogutils.c:698
-#: replication/walsender.c:2099
+#: access/transam/xlog.c:3780 access/transam/xlogutils.c:701
+#: replication/walsender.c:2380
 #, 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:3644 access/transam/xlog.c:3719
-#: access/transam/xlog.c:3917
-#, c-format
-msgid "could not open transaction log directory \"%s\": %m"
+#: access/transam/xlog.c:3840 access/transam/xlog.c:3915
+#: access/transam/xlog.c:4110
+#, fuzzy, c-format
+msgid "could not open write-ahead log directory \"%s\": %m"
 msgstr "no se pudo abrir directorio de registro de transacciones «%s»: %m"
 
-#: access/transam/xlog.c:3800
-#, c-format
-msgid "recycled transaction log file \"%s\""
+#: access/transam/xlog.c:3996
+#, fuzzy, c-format
+msgid "recycled write-ahead log file \"%s\""
 msgstr "el archivo de registro de transacciones «%s» ha sido reciclado"
 
-#: access/transam/xlog.c:3812
-#, c-format
-msgid "removing transaction log file \"%s\""
+#: access/transam/xlog.c:4008
+#, fuzzy, c-format
+msgid "removing write-ahead log file \"%s\""
 msgstr "eliminando archivo de registro de transacciones «%s»"
 
-#: access/transam/xlog.c:3832
-#, c-format
-msgid "could not rename old transaction log file \"%s\": %m"
+#: access/transam/xlog.c:4028
+#, fuzzy, c-format
+msgid "could not rename old write-ahead log file \"%s\": %m"
 msgstr "no se pudo cambiar el nombre del archivo antiguo de registro de transacciones «%s»: %m"
 
-#: access/transam/xlog.c:3844
-#, c-format
-msgid "could not remove old transaction log file \"%s\": %m"
-msgstr "no se pudo eliminar el archivo antiguo de registro de transacciones «%s»: %m"
-
-#: access/transam/xlog.c:3877 access/transam/xlog.c:3887
+#: access/transam/xlog.c:4070 access/transam/xlog.c:4080
 #, c-format
 msgid "required WAL directory \"%s\" does not exist"
 msgstr "no existe el directorio WAL «%s»"
 
-#: access/transam/xlog.c:3893
+#: access/transam/xlog.c:4086
 #, c-format
 msgid "creating missing WAL directory \"%s\""
 msgstr "creando el directorio WAL faltante «%s»"
 
-#: access/transam/xlog.c:3896
+#: access/transam/xlog.c:4089
 #, c-format
 msgid "could not create missing directory \"%s\": %m"
 msgstr "no se pudo crear el directorio faltante «%s»: %m"
 
-#: access/transam/xlog.c:3927
-#, c-format
-msgid "removing transaction log backup history file \"%s\""
-msgstr "eliminando el archivo de historia del respaldo de registro de transacciones «%s»"
-
-#: access/transam/xlog.c:4008
+#: access/transam/xlog.c:4200
 #, c-format
 msgid "unexpected timeline ID %u in log segment %s, offset %u"
 msgstr "ID de timeline %u inesperado en archivo %s, posición %u"
 
-#: access/transam/xlog.c:4130
+#: access/transam/xlog.c:4322
 #, 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/xlog.c:4144
+#: access/transam/xlog.c:4336
 #, 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/xlog.c:4163
+#: access/transam/xlog.c:4355
 #, c-format
 msgid "new target timeline is %u"
 msgstr "el nuevo timeline destino es %u"
 
-#: access/transam/xlog.c:4243
+#: access/transam/xlog.c:4430
 #, c-format
 msgid "could not create control file \"%s\": %m"
 msgstr "no se pudo crear archivo de control «%s»: %m"
 
-#: access/transam/xlog.c:4254 access/transam/xlog.c:4490
+#: access/transam/xlog.c:4442 access/transam/xlog.c:4668
 #, c-format
 msgid "could not write to control file: %m"
 msgstr "no se pudo escribir en el archivo de control: %m"
 
-#: access/transam/xlog.c:4260 access/transam/xlog.c:4496
+#: access/transam/xlog.c:4450 access/transam/xlog.c:4676
 #, c-format
 msgid "could not fsync control file: %m"
 msgstr "no se pudo sincronizar (fsync) el archivo de control: %m"
 
-#: access/transam/xlog.c:4265 access/transam/xlog.c:4501
+#: access/transam/xlog.c:4456 access/transam/xlog.c:4682
 #, c-format
 msgid "could not close control file: %m"
 msgstr "no se pudo cerrar el archivo de control: %m"
 
-#: access/transam/xlog.c:4283 access/transam/xlog.c:4479
+#: access/transam/xlog.c:4474 access/transam/xlog.c:4656
 #, c-format
 msgid "could not open control file \"%s\": %m"
 msgstr "no se pudo abrir el archivo de control «%s»: %m"
 
-#: access/transam/xlog.c:4289
+#: access/transam/xlog.c:4481
 #, c-format
 msgid "could not read from control file: %m"
 msgstr "no se pudo leer desde el archivo de control: %m"
 
-#: access/transam/xlog.c:4302 access/transam/xlog.c:4311
-#: access/transam/xlog.c:4335 access/transam/xlog.c:4342
-#: access/transam/xlog.c:4349 access/transam/xlog.c:4354
-#: access/transam/xlog.c:4361 access/transam/xlog.c:4368
-#: access/transam/xlog.c:4375 access/transam/xlog.c:4382
-#: access/transam/xlog.c:4389 access/transam/xlog.c:4396
-#: access/transam/xlog.c:4403 access/transam/xlog.c:4412
-#: access/transam/xlog.c:4419 access/transam/xlog.c:4428
-#: access/transam/xlog.c:4435 access/transam/xlog.c:4444
-#: access/transam/xlog.c:4451 utils/init/miscinit.c:1380
+#: access/transam/xlog.c:4495 access/transam/xlog.c:4504
+#: access/transam/xlog.c:4528 access/transam/xlog.c:4535
+#: access/transam/xlog.c:4542 access/transam/xlog.c:4547
+#: access/transam/xlog.c:4554 access/transam/xlog.c:4561
+#: access/transam/xlog.c:4568 access/transam/xlog.c:4575
+#: access/transam/xlog.c:4582 access/transam/xlog.c:4589
+#: access/transam/xlog.c:4596 access/transam/xlog.c:4605
+#: access/transam/xlog.c:4612 access/transam/xlog.c:4621
+#: access/transam/xlog.c:4628 utils/init/miscinit.c:1406
 #, 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:4303
+#: access/transam/xlog.c:4496
 #, 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:4307
+#: access/transam/xlog.c:4500
 #, 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:4312
+#: access/transam/xlog.c:4505
 #, 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:4315 access/transam/xlog.c:4339
-#: access/transam/xlog.c:4346 access/transam/xlog.c:4351
+#: access/transam/xlog.c:4508 access/transam/xlog.c:4532
+#: access/transam/xlog.c:4539 access/transam/xlog.c:4544
 #, c-format
 msgid "It looks like you need to initdb."
 msgstr "Parece que necesita ejecutar initdb."
 
-#: access/transam/xlog.c:4326
+#: access/transam/xlog.c:4519
 #, 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:4336
+#: access/transam/xlog.c:4529
 #, 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:4343
+#: access/transam/xlog.c:4536
 #, 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:4350
+#: access/transam/xlog.c:4543
 #, 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:4355
+#: access/transam/xlog.c:4548
 #, 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:4358 access/transam/xlog.c:4365
-#: access/transam/xlog.c:4372 access/transam/xlog.c:4379
-#: access/transam/xlog.c:4386 access/transam/xlog.c:4393
-#: access/transam/xlog.c:4400 access/transam/xlog.c:4407
-#: access/transam/xlog.c:4415 access/transam/xlog.c:4422
-#: access/transam/xlog.c:4431 access/transam/xlog.c:4438
-#: access/transam/xlog.c:4447 access/transam/xlog.c:4454
+#: access/transam/xlog.c:4551 access/transam/xlog.c:4558
+#: access/transam/xlog.c:4565 access/transam/xlog.c:4572
+#: access/transam/xlog.c:4579 access/transam/xlog.c:4586
+#: access/transam/xlog.c:4593 access/transam/xlog.c:4600
+#: access/transam/xlog.c:4608 access/transam/xlog.c:4615
+#: access/transam/xlog.c:4624 access/transam/xlog.c:4631
 #, c-format
 msgid "It looks like you need to recompile or initdb."
 msgstr "Parece que necesita recompilar o ejecutar initdb."
 
-#: access/transam/xlog.c:4362
+#: access/transam/xlog.c:4555
 #, 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:4369
+#: access/transam/xlog.c:4562
 #, 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:4376
+#: access/transam/xlog.c:4569
 #, c-format
 msgid "The database cluster was initialized with XLOG_SEG_SIZE %d, but the server was compiled with XLOG_SEG_SIZE %d."
 msgstr "Los archivos de la base de datos fueron inicializados con XLOG_SEG_SIZE %d, pero el servidor fue compilado con XLOG_SEG_SIZE %d."
 
-#: access/transam/xlog.c:4383
+#: access/transam/xlog.c:4576
 #, 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:4390
+#: access/transam/xlog.c:4583
 #, 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:4397
+#: access/transam/xlog.c:4590
 #, 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:4404
+#: access/transam/xlog.c:4597
 #, 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:4413
-#, c-format
-msgid "The database cluster was initialized without HAVE_INT64_TIMESTAMP but the server was compiled with HAVE_INT64_TIMESTAMP."
-msgstr "Los archivos de la base de datos fueron inicializados sin HAVE_INT64_TIMESTAMP, pero el servidor fue compilado con HAVE_INT64_TIMESTAMP."
-
-#: access/transam/xlog.c:4420
-#, c-format
-msgid "The database cluster was initialized with HAVE_INT64_TIMESTAMP but the server was compiled without HAVE_INT64_TIMESTAMP."
-msgstr "Los archivos de la base de datos fueron inicializados con HAVE_INT64_TIMESTAMP, pero el servidor fue compilado sin HAVE_INT64_TIMESTAMP."
-
-#: access/transam/xlog.c:4429
+#: access/transam/xlog.c:4606
 #, c-format
 msgid "The database cluster was initialized without USE_FLOAT4_BYVAL but the server was compiled with USE_FLOAT4_BYVAL."
 msgstr "Los archivos de base de datos fueron inicializados sin USE_FLOAT4_BYVAL, pero el servidor fue compilado con USE_FLOAT4_BYVAL."
 
-#: access/transam/xlog.c:4436
+#: access/transam/xlog.c:4613
 #, c-format
 msgid "The database cluster was initialized with USE_FLOAT4_BYVAL but the server was compiled without USE_FLOAT4_BYVAL."
 msgstr "Los archivos de base de datos fueron inicializados con USE_FLOAT4_BYVAL, pero el servidor fue compilado sin USE_FLOAT4_BYVAL."
 
-#: access/transam/xlog.c:4445
+#: access/transam/xlog.c:4622
 #, 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:4452
+#: access/transam/xlog.c:4629
 #, 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:4875
-#, c-format
-msgid "could not write bootstrap transaction log file: %m"
+#: access/transam/xlog.c:4985
+#, fuzzy, c-format
+msgid "could not generate secret authorization token"
+msgstr "no se pudo generar un vector aleatorio de encriptación"
+
+#: access/transam/xlog.c:5075
+#, fuzzy, c-format
+msgid "could not write bootstrap write-ahead log file: %m"
 msgstr "no se pudo escribir al archivo de registro de transacciones de inicio (bootstrap): %m"
 
-#: access/transam/xlog.c:4881
-#, c-format
-msgid "could not fsync bootstrap transaction log file: %m"
+#: access/transam/xlog.c:5083
+#, fuzzy, c-format
+msgid "could not fsync bootstrap write-ahead log file: %m"
 msgstr "no se pudo sincronizar (fsync) el archivo de registro de transacciones de inicio (bootstrap): %m"
 
-#: access/transam/xlog.c:4886
-#, c-format
-msgid "could not close bootstrap transaction log file: %m"
+#: access/transam/xlog.c:5089
+#, fuzzy, c-format
+msgid "could not close bootstrap write-ahead log file: %m"
 msgstr "no se pudo cerrar el archivo de registro de transacciones de inicio (bootstrap): %m"
 
-#: access/transam/xlog.c:4961
+#: access/transam/xlog.c:5165
 #, c-format
 msgid "could not open recovery command file \"%s\": %m"
 msgstr "no se pudo abrir el archivo de recuperación «%s»: %m"
 
-#: access/transam/xlog.c:5007 access/transam/xlog.c:5090
-#, fuzzy, c-format
+#: access/transam/xlog.c:5211 access/transam/xlog.c:5313
+#, c-format
 msgid "invalid value for recovery parameter \"%s\": \"%s\""
-msgstr "valor no válido para el parámetro «%s»: %d"
+msgstr "valor no válido para el parámetro de recuperación «%s»: «%s»"
 
-#: access/transam/xlog.c:5010
-#, fuzzy, c-format
+#: access/transam/xlog.c:5214
+#, c-format
 msgid "Valid values are \"pause\", \"promote\", and \"shutdown\"."
-msgstr "Los valores aceptables son «on», «off» y «auto»."
+msgstr "Los valores aceptables son «pause», «promote» y «shutdown»."
 
-#: access/transam/xlog.c:5029
+#: access/transam/xlog.c:5234
 #, c-format
 msgid "recovery_target_timeline is not a valid number: \"%s\""
 msgstr "recovery_target_timeline no es un número válido: «%s»"
 
-#: access/transam/xlog.c:5045
+#: access/transam/xlog.c:5251
 #, c-format
 msgid "recovery_target_xid is not a valid number: \"%s\""
 msgstr "recovery_target_xid no es un número válido: «%s»"
 
-#: access/transam/xlog.c:5076
+#: access/transam/xlog.c:5282
 #, c-format
 msgid "recovery_target_name is too long (maximum %d characters)"
 msgstr "recovery_target_name es demasiado largo (máximo %d caracteres)"
 
-#: access/transam/xlog.c:5093
+#: access/transam/xlog.c:5316
 #, c-format
 msgid "The only allowed value is \"immediate\"."
 msgstr "El único valor permitido es «immediate»"
 
-#: access/transam/xlog.c:5106 access/transam/xlog.c:5117
-#: commands/extension.c:533 commands/extension.c:541 utils/misc/guc.c:5637
+#: access/transam/xlog.c:5329 access/transam/xlog.c:5340
+#: commands/extension.c:547 commands/extension.c:555 utils/misc/guc.c:5739
 #, c-format
 msgid "parameter \"%s\" requires a Boolean value"
 msgstr "el parámetro «%s» requiere un valor lógico (booleano)"
 
-#: access/transam/xlog.c:5152
+#: access/transam/xlog.c:5375
 #, c-format
 msgid "parameter \"%s\" requires a temporal value"
 msgstr "el parámetro «%s» requiere un valor de tiempo"
 
-#: access/transam/xlog.c:5154 catalog/dependency.c:991
-#: catalog/dependency.c:992 catalog/dependency.c:998 catalog/dependency.c:999
-#: catalog/dependency.c:1010 catalog/dependency.c:1011
-#: catalog/objectaddress.c:1100 commands/tablecmds.c:795
-#: commands/tablecmds.c:9447 commands/user.c:1045 commands/view.c:482
-#: libpq/auth.c:304 replication/syncrep.c:926 storage/lmgr/deadlock.c:1139
-#: storage/lmgr/proc.c:1276 utils/adt/acl.c:5281 utils/misc/guc.c:5659
-#: utils/misc/guc.c:5752 utils/misc/guc.c:9686 utils/misc/guc.c:9720
-#: utils/misc/guc.c:9754 utils/misc/guc.c:9788 utils/misc/guc.c:9823
+#: access/transam/xlog.c:5377 catalog/dependency.c:961
+#: catalog/dependency.c:962 catalog/dependency.c:968 catalog/dependency.c:969
+#: catalog/dependency.c:980 catalog/dependency.c:981 commands/tablecmds.c:946
+#: commands/tablecmds.c:10345 commands/user.c:1029 commands/view.c:505
+#: libpq/auth.c:328 replication/syncrep.c:1150 storage/lmgr/deadlock.c:1139
+#: storage/lmgr/proc.c:1313 utils/adt/acl.c:5248 utils/misc/guc.c:5761
+#: utils/misc/guc.c:5854 utils/misc/guc.c:9810 utils/misc/guc.c:9844
+#: utils/misc/guc.c:9878 utils/misc/guc.c:9912 utils/misc/guc.c:9947
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: access/transam/xlog.c:5160
+#: access/transam/xlog.c:5384
 #, c-format
 msgid "unrecognized recovery parameter \"%s\""
 msgstr "parámetro de recuperación no reconocido: «%s»"
 
-#: access/transam/xlog.c:5171
+#: access/transam/xlog.c:5395
 #, c-format
 msgid "recovery command file \"%s\" specified neither primary_conninfo nor restore_command"
 msgstr "el archivo de recuperación «%s» no especifica primary_conninfo ni restore_command"
 
-#: access/transam/xlog.c:5173
-#, c-format
-msgid "The database server will regularly poll the pg_xlog subdirectory to check for files placed there."
+#: access/transam/xlog.c:5397
+#, fuzzy, 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_xlog con regularidad en búsqueda de archivos almacenados ahí."
 
-#: access/transam/xlog.c:5179
+#: access/transam/xlog.c:5404
 #, c-format
 msgid "recovery command file \"%s\" must specify restore_command when standby mode is not enabled"
 msgstr "el archivo de recuperación «%s» debe especificar restore_command cuando el modo standby no está activo"
 
-#: access/transam/xlog.c:5209
+#: access/transam/xlog.c:5425
+#, 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/xlog.c:5444
 #, c-format
 msgid "recovery target timeline %u does not exist"
 msgstr "no existe el timeline %u especificado como destino de recuperación"
 
-#: access/transam/xlog.c:5330
+#: access/transam/xlog.c:5565
 #, c-format
 msgid "archive recovery complete"
 msgstr "recuperación completa"
 
-#: access/transam/xlog.c:5389 access/transam/xlog.c:5617
+#: access/transam/xlog.c:5624 access/transam/xlog.c:5890
 #, c-format
 msgid "recovery stopping after reaching consistency"
 msgstr "deteniendo recuperación al alcanzar un estado consistente"
 
-#: access/transam/xlog.c:5477
+#: access/transam/xlog.c:5645
+#, fuzzy, c-format
+msgid "recovery stopping before WAL location (LSN) \"%X/%X\""
+msgstr "deteniendo recuperación antes de abortar la transacción %u, hora %s"
+
+#: access/transam/xlog.c:5731
 #, 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/xlog.c:5484
+#: access/transam/xlog.c:5738
 #, 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/xlog.c:5529
+#: access/transam/xlog.c:5784
 #, 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/xlog.c:5597
+#: access/transam/xlog.c:5802
+#, fuzzy, c-format
+msgid "recovery stopping after WAL location (LSN) \"%X/%X\""
+msgstr "deteniendo recuperación después de abortar la transacción %u, hora %s"
+
+#: access/transam/xlog.c:5870
 #, 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/xlog.c:5605
+#: access/transam/xlog.c:5878
 #, 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/xlog.c:5644
+#: access/transam/xlog.c:5918
 #, c-format
 msgid "recovery has paused"
 msgstr "la recuperación está en pausa"
 
-#: access/transam/xlog.c:5645
-#, c-format
-msgid "Execute pg_xlog_replay_resume() to continue."
+#: access/transam/xlog.c:5919
+#, fuzzy, c-format
+msgid "Execute pg_wal_replay_resume() to continue."
 msgstr "Ejecute pg_xlog_replay_resume() para continuar."
 
-#: access/transam/xlog.c:5852
+#: access/transam/xlog.c:6127
 #, c-format
 msgid "hot standby is not possible because %s = %d is a lower setting than on the master server (its value was %d)"
 msgstr "hot standby no es posible puesto que %s = %d es una configuración menor que en el servidor maestro (su valor era %d)"
 
-#: access/transam/xlog.c:5878
+#: access/transam/xlog.c:6153
 #, c-format
 msgid "WAL was generated with wal_level=minimal, data may be missing"
 msgstr "WAL fue generado con wal_level=minimal, puede haber datos faltantes"
 
-#: access/transam/xlog.c:5879
+#: access/transam/xlog.c:6154
 #, c-format
 msgid "This happens if you temporarily set wal_level=minimal without taking a new base backup."
 msgstr "Esto sucede si temporalmente define wal_level=minimal sin tomar un nuevo respaldo base."
 
-#: access/transam/xlog.c:5890
-#, fuzzy, c-format
-#| msgid "hot standby is not possible because wal_level was not set to \"hot_standby\" or higher on the master server"
+#: access/transam/xlog.c:6165
+#, c-format
 msgid "hot standby is not possible because wal_level was not set to \"replica\" or higher on the master server"
-msgstr "hot standby no es posible porque wal_level no estaba configurado como «hot_standby» o superior en el servidor maestro"
+msgstr "hot standby no es posible porque wal_level no estaba configurado como «replica» o superior en el servidor maestro"
 
-#: access/transam/xlog.c:5891
-#, fuzzy, c-format
-#| msgid "Either set wal_level to \"hot_standby\" on the master, or turn off hot_standby here."
+#: access/transam/xlog.c:6166
+#, c-format
 msgid "Either set wal_level to \"replica\" on the master, or turn off hot_standby here."
-msgstr "Defina wal_level a «hot_standby» en el maestro, o bien desactive hot_standby en este servidor."
+msgstr "Defina wal_level a «replica» en el maestro, o bien desactive hot_standby en este servidor."
 
-#: access/transam/xlog.c:5948
+#: access/transam/xlog.c:6223
 #, c-format
 msgid "control file contains invalid data"
 msgstr "el archivo de control contiene datos no válidos"
 
-#: access/transam/xlog.c:5954
+#: access/transam/xlog.c:6229
 #, 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:5959
+#: access/transam/xlog.c:6234
 #, 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:5963
+#: access/transam/xlog.c:6238
 #, 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:5967
+#: access/transam/xlog.c:6242
 #, 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:5969
+#: access/transam/xlog.c:6244
 #, 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:5973
+#: access/transam/xlog.c:6248
 #, 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:5975
+#: access/transam/xlog.c:6250
 #, 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:5979
+#: access/transam/xlog.c:6254
 #, 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:6035
+#: access/transam/xlog.c:6310
 #, c-format
 msgid "entering standby mode"
 msgstr "entrando al modo standby"
 
-#: access/transam/xlog.c:6038
+#: access/transam/xlog.c:6313
 #, c-format
 msgid "starting point-in-time recovery to XID %u"
 msgstr "comenzando el proceso de recuperación hasta el XID %u"
 
-#: access/transam/xlog.c:6042
+#: access/transam/xlog.c:6317
 #, c-format
 msgid "starting point-in-time recovery to %s"
 msgstr "comenzando el proceso de recuperación hasta %s"
 
-#: access/transam/xlog.c:6046
+#: access/transam/xlog.c:6321
 #, c-format
 msgid "starting point-in-time recovery to \"%s\""
 msgstr "comenzando el proceso de recuperación hasta «%s»"
 
-#: access/transam/xlog.c:6050
+#: access/transam/xlog.c:6325
+#, fuzzy, c-format
+msgid "starting point-in-time recovery to WAL location (LSN) \"%X/%X\""
+msgstr "comenzando el proceso de recuperación hasta «%s»"
+
+#: access/transam/xlog.c:6330
 #, 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/xlog.c:6053
+#: access/transam/xlog.c:6333
 #, c-format
 msgid "starting archive recovery"
 msgstr "comenzando proceso de recuperación"
 
-#: access/transam/xlog.c:6097 access/transam/xlog.c:6225
+#: access/transam/xlog.c:6384 access/transam/xlog.c:6512
 #, c-format
 msgid "checkpoint record is at %X/%X"
 msgstr "el registro del punto de control está en %X/%X"
 
-#: access/transam/xlog.c:6111
+#: access/transam/xlog.c:6398
 #, c-format
 msgid "could not find redo location referenced by checkpoint record"
 msgstr "no se pudo localizar la ubicación de redo referida por el registro de checkpoint"
 
-#: access/transam/xlog.c:6112 access/transam/xlog.c:6119
+#: access/transam/xlog.c:6399 access/transam/xlog.c:6406
 #, c-format
 msgid "If you are not restoring from a backup, try removing the file \"%s/backup_label\"."
 msgstr "Si no está restaurando un respaldo, intente eliminando «%s/backup_label»."
 
-#: access/transam/xlog.c:6118
+#: access/transam/xlog.c:6405
 #, c-format
 msgid "could not locate required checkpoint record"
 msgstr "no se pudo localizar el registro del punto de control requerido"
 
-#: access/transam/xlog.c:6144 commands/tablespace.c:645
+#: access/transam/xlog.c:6431 commands/tablespace.c:639
 #, c-format
 msgid "could not create symbolic link \"%s\": %m"
 msgstr "no se pudo crear el enlace simbólico «%s»: %m"
 
-#: access/transam/xlog.c:6176
-#, fuzzy, c-format
+#: access/transam/xlog.c:6463 access/transam/xlog.c:6469
+#, c-format
 msgid "ignoring file \"%s\" because no file \"%s\" exists"
-msgstr "la restricción «%s» para la relación «%s» ya existe"
+msgstr "ignorando el archivo «%s» porque no existe un archivo «%s»"
 
-#: access/transam/xlog.c:6178 access/transam/xlog.c:10918
-#, fuzzy, c-format
+#: access/transam/xlog.c:6465 access/transam/xlog.c:11390
+#, c-format
 msgid "File \"%s\" was renamed to \"%s\"."
-msgstr "«%s» fue renombrado a «%s»."
-
-#: access/transam/xlog.c:6182
-#, fuzzy, c-format
-msgid "ignoring \"%s\" file because no \"%s\" file exists"
-msgstr "la restricción «%s» para la relación «%s» ya existe"
+msgstr "El archivo «%s» fue renombrado a «%s»."
 
-#: access/transam/xlog.c:6184
-#, fuzzy, c-format
-#| msgid "could not rename file \"%s\" to \"%s\": %m"
+#: access/transam/xlog.c:6471
+#, c-format
 msgid "Could not rename file \"%s\" to \"%s\": %m."
-msgstr "no se pudo renombrar el archivo de «%s» a «%s»: %m"
+msgstr "No se pudo renombrar el archivo de «%s» a «%s»: %m."
 
-#: access/transam/xlog.c:6235 access/transam/xlog.c:6250
+#: access/transam/xlog.c:6522 access/transam/xlog.c:6537
 #, c-format
 msgid "could not locate a valid checkpoint record"
 msgstr "no se pudo localizar un registro de punto de control válido"
 
-#: access/transam/xlog.c:6244
+#: access/transam/xlog.c:6531
 #, c-format
 msgid "using previous checkpoint record at %X/%X"
 msgstr "usando el registro del punto de control anterior en %X/%X"
 
-#: access/transam/xlog.c:6288
+#: access/transam/xlog.c:6575
 #, 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/xlog.c:6290
+#: access/transam/xlog.c:6577
 #, 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."
 
-#: access/transam/xlog.c:6306
+#: access/transam/xlog.c:6593
 #, 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/xlog.c:6337
+#: access/transam/xlog.c:6624
 #, c-format
 msgid "invalid next transaction ID"
 msgstr "el siguiente ID de transacción no es válido"
 
-#: access/transam/xlog.c:6420
+#: access/transam/xlog.c:6718
 #, c-format
 msgid "invalid redo in checkpoint record"
 msgstr "redo no es válido en el registro de punto de control"
 
-#: access/transam/xlog.c:6431
+#: access/transam/xlog.c:6729
 #, c-format
 msgid "invalid redo record in shutdown checkpoint"
 msgstr "registro redo no es válido en el punto de control de apagado"
 
-#: access/transam/xlog.c:6459
+#: access/transam/xlog.c:6757
 #, 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/xlog.c:6463
+#: access/transam/xlog.c:6761
 #, 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/xlog.c:6507
+#: access/transam/xlog.c:6805
 #, c-format
 msgid "backup_label contains data inconsistent with control file"
 msgstr "backup_label contiene datos inconsistentes con el archivo de control"
 
-#: access/transam/xlog.c:6508
+#: access/transam/xlog.c:6806
 #, 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/xlog.c:6582
+#: access/transam/xlog.c:6880
 #, c-format
 msgid "initializing for hot standby"
 msgstr "inicializando para hot standby"
 
-#: access/transam/xlog.c:6714
+#: access/transam/xlog.c:7012
 #, c-format
 msgid "redo starts at %X/%X"
 msgstr "redo comienza en %X/%X"
 
-#: access/transam/xlog.c:6939
+#: access/transam/xlog.c:7246
 #, 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/xlog.c:6977
+#: access/transam/xlog.c:7284
 #, c-format
 msgid "redo done at %X/%X"
 msgstr "redo listo en %X/%X"
 
-#: access/transam/xlog.c:6982 access/transam/xlog.c:8906
+#: access/transam/xlog.c:7289 access/transam/xlog.c:9303
 #, 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:6991
+#: access/transam/xlog.c:7298
 #, c-format
 msgid "redo is not required"
 msgstr "no se requiere redo"
 
-#: access/transam/xlog.c:7066 access/transam/xlog.c:7070
+#: access/transam/xlog.c:7373 access/transam/xlog.c:7377
 #, 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:7067
+#: access/transam/xlog.c:7374
 #, 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:7071
+#: access/transam/xlog.c:7378
 #, c-format
 msgid "Online backup started with pg_start_backup() must be ended with pg_stop_backup(), and all WAL up to that point must be available at recovery."
 msgstr "Un respaldo en línea iniciado con pg_start_backup() debe ser terminado con pg_stop_backup(), y todos los archivos WAL hasta ese punto deben estar disponibles durante la recuperación."
 
-#: access/transam/xlog.c:7074
+#: access/transam/xlog.c:7381
 #, c-format
 msgid "WAL ends before consistent recovery point"
 msgstr "WAL termina antes del punto de recuperación consistente"
 
-#: access/transam/xlog.c:7101
+#: access/transam/xlog.c:7408
 #, c-format
 msgid "selected new timeline ID: %u"
 msgstr "seleccionado nuevo ID de timeline: %u"
 
-#: access/transam/xlog.c:7512
+#: access/transam/xlog.c:7837
 #, c-format
 msgid "consistent recovery state reached at %X/%X"
 msgstr "el estado de recuperación consistente fue alcanzado en %X/%X"
 
-#: access/transam/xlog.c:7703
+#: access/transam/xlog.c:8029
 #, c-format
 msgid "invalid primary checkpoint link in control file"
 msgstr "el enlace de punto de control primario en archivo de control no es válido"
 
-#: access/transam/xlog.c:7707
+#: access/transam/xlog.c:8033
 #, c-format
 msgid "invalid secondary checkpoint link in control file"
 msgstr "el enlace del punto de control secundario en archivo de control no es válido"
 
-#: access/transam/xlog.c:7711
+#: access/transam/xlog.c:8037
 #, c-format
 msgid "invalid checkpoint link in backup_label file"
 msgstr "el enlace del punto de control en backup_label no es válido"
 
-#: access/transam/xlog.c:7728
+#: access/transam/xlog.c:8054
 #, c-format
 msgid "invalid primary checkpoint record"
 msgstr "el registro del punto de control primario no es válido"
 
-#: access/transam/xlog.c:7732
+#: access/transam/xlog.c:8058
 #, c-format
 msgid "invalid secondary checkpoint record"
 msgstr "el registro del punto de control secundario no es válido"
 
-#: access/transam/xlog.c:7736
+#: access/transam/xlog.c:8062
 #, c-format
 msgid "invalid checkpoint record"
 msgstr "el registro del punto de control no es válido"
 
-#: access/transam/xlog.c:7747
+#: access/transam/xlog.c:8073
 #, c-format
 msgid "invalid resource manager ID in primary checkpoint record"
 msgstr "el ID de gestor de recursos en el registro del punto de control primario no es válido"
 
-#: access/transam/xlog.c:7751
+#: access/transam/xlog.c:8077
 #, c-format
 msgid "invalid resource manager ID in secondary checkpoint record"
 msgstr "el ID de gestor de recursos en el registro del punto de control secundario no es válido"
 
-#: access/transam/xlog.c:7755
+#: access/transam/xlog.c:8081
 #, 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"
 
-#: access/transam/xlog.c:7767
+#: access/transam/xlog.c:8094
 #, c-format
 msgid "invalid xl_info in primary checkpoint record"
 msgstr "xl_info en el registro del punto de control primario no es válido"
 
-#: access/transam/xlog.c:7771
+#: access/transam/xlog.c:8098
 #, c-format
 msgid "invalid xl_info in secondary checkpoint record"
 msgstr "xl_info en el registro del punto de control secundario no es válido"
 
-#: access/transam/xlog.c:7775
+#: access/transam/xlog.c:8102
 #, c-format
 msgid "invalid xl_info in checkpoint record"
 msgstr "xl_info en el registro del punto de control no es válido"
 
-#: access/transam/xlog.c:7786
+#: access/transam/xlog.c:8113
 #, c-format
 msgid "invalid length of primary checkpoint record"
 msgstr "la longitud del registro del punto de control primario no es válida"
 
-#: access/transam/xlog.c:7790
+#: access/transam/xlog.c:8117
 #, c-format
 msgid "invalid length of secondary checkpoint record"
 msgstr "la longitud del registro del punto de control secundario no es válida"
 
-#: access/transam/xlog.c:7794
+#: access/transam/xlog.c:8121
 #, c-format
 msgid "invalid length of checkpoint record"
 msgstr "la longitud del registro de punto de control no es válida"
 
-#: access/transam/xlog.c:7962
+#: access/transam/xlog.c:8324
 #, c-format
 msgid "shutting down"
 msgstr "apagando"
 
-#: access/transam/xlog.c:8475
-#, c-format
-msgid "concurrent transaction log activity while database system is shutting down"
+#: access/transam/xlog.c:8643
+#, fuzzy, c-format
+msgid "checkpoint skipped due to an idle system"
+msgstr "falló la petición de punto de control"
+
+#: access/transam/xlog.c:8848
+#, fuzzy, c-format
+msgid "concurrent write-ahead log activity while database system is shutting down"
 msgstr "hay actividad en el registro de transacción mientras el sistema se está apagando"
 
-#: access/transam/xlog.c:8726
+#: access/transam/xlog.c:9102
 #, c-format
 msgid "skipping restartpoint, recovery has already ended"
 msgstr "saltando el punto-de-reinicio; la recuperación ya ha terminado"
 
-#: access/transam/xlog.c:8749
+#: access/transam/xlog.c:9125
 #, c-format
 msgid "skipping restartpoint, already performed at %X/%X"
 msgstr "saltando el punto-de-reinicio; ya fue llevado a cabo en %X/%X"
 
-#: access/transam/xlog.c:8904
+#: access/transam/xlog.c:9301
 #, c-format
 msgid "recovery restart point at %X/%X"
 msgstr "punto-de-reinicio de recuperación en %X/%X"
 
-#: access/transam/xlog.c:9037
+#: access/transam/xlog.c:9437
 #, c-format
 msgid "restore point \"%s\" created at %X/%X"
 msgstr "punto de recuperación «%s» creado en %X/%X"
 
-#: access/transam/xlog.c:9167
+#: access/transam/xlog.c:9567
 #, 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"
 
-#: access/transam/xlog.c:9176
+#: access/transam/xlog.c:9576
 #, 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"
 
-#: access/transam/xlog.c:9192
+#: access/transam/xlog.c:9592
 #, 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/xlog.c:9263
+#: access/transam/xlog.c:9668
 #, 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:9319 access/transam/xlog.c:9366
-#: access/transam/xlog.c:9389
+#: access/transam/xlog.c:9724 access/transam/xlog.c:9771
+#: access/transam/xlog.c:9794
 #, c-format
 msgid "unexpected timeline ID %u (should be %u) in checkpoint record"
 msgstr "ID de timeline %u inesperado (debería ser %u) en el registro de punto de control"
 
-#: access/transam/xlog.c:9664
+#: access/transam/xlog.c:10070
 #, c-format
 msgid "could not fsync log segment %s: %m"
 msgstr "no se pudo sincronizar (fsync) el archivo de registro %s: %m"
 
-#: access/transam/xlog.c:9688
+#: access/transam/xlog.c:10095
 #, c-format
 msgid "could not fsync log file %s: %m"
 msgstr "no se pudo sincronizar (fsync) archivo de registro «%s»: %m"
 
-#: access/transam/xlog.c:9696
+#: access/transam/xlog.c:10103
 #, c-format
 msgid "could not fsync write-through log file %s: %m"
 msgstr "no se pudo sincronizar (fsync write-through) el archivo de registro %s: %m"
 
-#: access/transam/xlog.c:9705
+#: access/transam/xlog.c:10112
 #, c-format
 msgid "could not fdatasync log file %s: %m"
 msgstr "no se pudo sincronizar (fdatasync) el archivo de registro %s: %m"
 
-#: access/transam/xlog.c:9796 access/transam/xlog.c:10267
-#: access/transam/xlogfuncs.c:295 access/transam/xlogfuncs.c:322
-#: access/transam/xlogfuncs.c:361 access/transam/xlogfuncs.c:382
-#: access/transam/xlogfuncs.c:403
+#: access/transam/xlog.c:10203 access/transam/xlog.c:10721
+#: access/transam/xlogfuncs.c:297 access/transam/xlogfuncs.c:324
+#: access/transam/xlogfuncs.c:363 access/transam/xlogfuncs.c:384
+#: access/transam/xlogfuncs.c:405
 #, 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/xlog.c:9805 access/transam/xlog.c:10276
+#: access/transam/xlog.c:10212 access/transam/xlog.c:10730
 #, 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:9806 access/transam/xlog.c:10277
-#: access/transam/xlogfuncs.c:328
-#, fuzzy, c-format
-#| msgid "wal_level must be set to \"archive\", \"hot_standby\", or \"logical\" at server start."
+#: access/transam/xlog.c:10213 access/transam/xlog.c:10731
+#: access/transam/xlogfuncs.c:330
+#, c-format
 msgid "wal_level must be set to \"replica\" or \"logical\" at server start."
-msgstr "wal_level debe ser definido a «archive», «hot_standby» o «logical» al inicio del servidor."
+msgstr "wal_level debe ser definido a «replica» o «logical» al inicio del servidor."
 
-#: access/transam/xlog.c:9811
+#: access/transam/xlog.c:10218
 #, 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:9843 access/transam/xlog.c:10115
-#: access/transam/xlog.c:10153
+#: access/transam/xlog.c:10255 access/transam/xlog.c:10528
+#: access/transam/xlog.c:10566
 #, c-format
 msgid "a backup is already in progress"
 msgstr "ya hay un respaldo en curso"
 
-#: access/transam/xlog.c:9844
+#: access/transam/xlog.c:10256
 #, c-format
 msgid "Run pg_stop_backup() and try again."
 msgstr "Ejecute pg_stop_backup() e intente nuevamente."
 
-#: access/transam/xlog.c:9939
+#: access/transam/xlog.c:10351
 #, 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 punto-de-reinicio"
 
-#: access/transam/xlog.c:9941 access/transam/xlog.c:10440
+#: access/transam/xlog.c:10353 access/transam/xlog.c:10911
 #, c-format
 msgid "This means that the backup being taken on the standby is corrupt and should not be used. Enable full_page_writes and run CHECKPOINT on the master, and then try an online backup again."
 msgstr "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 maestro, luego trate de ejecutar un respaldo en línea nuevamente."
 
-#: access/transam/xlog.c:10008 replication/basebackup.c:1038
-#: utils/adt/misc.c:498
+#: access/transam/xlog.c:10420 replication/basebackup.c:1096
+#: utils/adt/misc.c:497
 #, 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:10015 replication/basebackup.c:1043
-#: utils/adt/misc.c:503
+#: access/transam/xlog.c:10427 replication/basebackup.c:1101
+#: utils/adt/misc.c:502
 #, 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:10068 commands/tablespace.c:395
-#: commands/tablespace.c:557 replication/basebackup.c:1059
-#: utils/adt/misc.c:511
+#: access/transam/xlog.c:10480 commands/tablespace.c:389
+#: commands/tablespace.c:551 replication/basebackup.c:1116
+#: utils/adt/misc.c:510
 #, c-format
 msgid "tablespaces are not supported on this platform"
 msgstr "tablespaces no están soportados en esta plataforma"
 
-#: access/transam/xlog.c:10109 access/transam/xlog.c:10147
-#: access/transam/xlog.c:10326 access/transam/xlogarchive.c:106
-#: access/transam/xlogarchive.c:265 commands/copy.c:1778 commands/copy.c:2804
-#: commands/extension.c:3109 commands/tablespace.c:786
-#: commands/tablespace.c:877 guc-file.l:1003 replication/basebackup.c:407
-#: replication/basebackup.c:475 replication/logical/snapbuild.c:1493
-#: storage/file/copydir.c:72 storage/file/copydir.c:115 storage/file/fd.c:2826
-#: storage/file/fd.c:2918 utils/adt/dbsize.c:70 utils/adt/dbsize.c:220
-#: utils/adt/dbsize.c:300 utils/adt/genfile.c:114 utils/adt/genfile.c:333
+#: access/transam/xlog.c:10522 access/transam/xlog.c:10560
+#: access/transam/xlog.c:10769 access/transam/xlogarchive.c:105
+#: access/transam/xlogarchive.c:264 commands/copy.c:1896 commands/copy.c:3126
+#: commands/extension.c:3319 commands/tablespace.c:780
+#: commands/tablespace.c:871 guc-file.l:1001 replication/basebackup.c:480
+#: replication/basebackup.c:548 replication/logical/snapbuild.c:1518
+#: storage/file/copydir.c:72 storage/file/copydir.c:115 storage/file/fd.c:2954
+#: storage/file/fd.c:3046 utils/adt/dbsize.c:70 utils/adt/dbsize.c:227
+#: utils/adt/dbsize.c:307 utils/adt/genfile.c:115 utils/adt/genfile.c:334
 #, c-format
 msgid "could not stat file \"%s\": %m"
 msgstr "no se pudo hacer stat al archivo «%s»: %m"
 
-#: access/transam/xlog.c:10116 access/transam/xlog.c:10154
+#: access/transam/xlog.c:10529 access/transam/xlog.c:10567
 #, c-format
 msgid "If you're sure there is no backup in progress, remove file \"%s\" and try again."
 msgstr "Si está seguro que no hay un respaldo en curso, elimine el archivo «%s» e intente nuevamente."
 
-#: access/transam/xlog.c:10133 access/transam/xlog.c:10171
-#: access/transam/xlog.c:10501
+#: access/transam/xlog.c:10546 access/transam/xlog.c:10584
+#: access/transam/xlog.c:10972 postmaster/syslogger.c:1391
+#: postmaster/syslogger.c:1404
 #, c-format
 msgid "could not write file \"%s\": %m"
 msgstr "no se pudo escribir el archivo «%s»: %m"
 
-#: access/transam/xlog.c:10290
-#, fuzzy, c-format
-#| msgid "a backup is not in progress"
+#: access/transam/xlog.c:10746
+#, c-format
 msgid "exclusive backup not in progress"
-msgstr "no hay un respaldo en curso"
+msgstr "no hay un respaldo exclusivo en curso"
 
-#: access/transam/xlog.c:10330
+#: access/transam/xlog.c:10773
 #, c-format
 msgid "a backup is not in progress"
 msgstr "no hay un respaldo en curso"
 
-#: access/transam/xlog.c:10375 access/transam/xlog.c:10388
-#: access/transam/xlog.c:10728 access/transam/xlog.c:10734
-#: access/transam/xlog.c:10818 access/transam/xlogfuncs.c:696
+#: access/transam/xlog.c:10846 access/transam/xlog.c:10859
+#: access/transam/xlog.c:11200 access/transam/xlog.c:11206
+#: access/transam/xlog.c:11290 access/transam/xlogfuncs.c:698
 #, c-format
 msgid "invalid data in file \"%s\""
 msgstr "datos no válidos en archivo «%s»"
 
-#: access/transam/xlog.c:10392 replication/basebackup.c:936
+#: access/transam/xlog.c:10863 replication/basebackup.c:994
 #, 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:10393 replication/basebackup.c:937
+#: access/transam/xlog.c:10864 replication/basebackup.c:995
 #, 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:10438
+#: access/transam/xlog.c:10909
 #, 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"
 
-#: access/transam/xlog.c:10550
+#: access/transam/xlog.c:11022
 #, c-format
 msgid "pg_stop_backup cleanup done, waiting for required WAL segments to be archived"
 msgstr "finalización de pg_stop_backup completa, esperando que se archiven los segmentos WAL requeridos"
 
-#: access/transam/xlog.c:10560
+#: access/transam/xlog.c:11032
 #, c-format
 msgid "pg_stop_backup still waiting for all required WAL segments to be archived (%d seconds elapsed)"
 msgstr "pg_stop_backup todavía espera que todos los segmentos WAL requeridos sean archivados (han pasado %d segundos)"
 
-#: access/transam/xlog.c:10562
+#: access/transam/xlog.c:11034
 #, c-format
 msgid "Check that your archive_command is executing properly.  pg_stop_backup can be canceled safely, but the database backup will not be usable without all the WAL segments."
 msgstr "Verifique que su archive_command se esté ejecutando con normalidad.  pg_stop_backup puede ser abortado confiablemente, 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:10569
+#: access/transam/xlog.c:11041
 #, c-format
 msgid "pg_stop_backup complete, all required WAL segments have been archived"
 msgstr "pg_stop_backup completado, todos los segmentos de WAL requeridos han sido archivados"
 
-#: access/transam/xlog.c:10573
+#: access/transam/xlog.c:11045
 #, 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"
 
-#. translator: %s is an XLog record description
-#: access/transam/xlog.c:10858
+#. translator: %s is a WAL record description
+#: access/transam/xlog.c:11330
 #, fuzzy, c-format
-#| msgid "xlog redo %s"
-msgid "xlog redo at %X/%X for %s"
-msgstr "xlog redo %s"
+msgid "WAL redo at %X/%X for %s"
+msgstr "xlog redo en %X/%X para %s"
 
-#: access/transam/xlog.c:10907
+#: access/transam/xlog.c:11379
 #, c-format
 msgid "online backup mode was not canceled"
 msgstr "el modo de respaldo en línea no fue cancelado"
 
-#: access/transam/xlog.c:10908
-#, fuzzy, c-format
+#: access/transam/xlog.c:11380
+#, c-format
 msgid "File \"%s\" could not be renamed to \"%s\": %m."
-msgstr "No se pudo renombrar «%s» a «%s»: %m."
+msgstr "El archivo «%s» no se pudo renombrar a «%s»: %m."
 
-#: access/transam/xlog.c:10917 access/transam/xlog.c:10929
-#: access/transam/xlog.c:10939
+#: access/transam/xlog.c:11389 access/transam/xlog.c:11401
+#: access/transam/xlog.c:11411
 #, c-format
 msgid "online backup mode canceled"
 msgstr "el modo de respaldo en línea fue cancelado"
 
-#: access/transam/xlog.c:10930
+#: access/transam/xlog.c:11402
 #, c-format
 msgid "Files \"%s\" and \"%s\" were renamed to \"%s\" and \"%s\", respectively."
-msgstr ""
+msgstr "Los archivos «%s» y «%s» fueron renombrados a «%s» y «%s», respectivamente."
 
-#: access/transam/xlog.c:10940
+#: access/transam/xlog.c:11412
 #, c-format
 msgid "File \"%s\" was renamed to \"%s\", but file \"%s\" could not be renamed to \"%s\": %m."
-msgstr ""
+msgstr "El archivo «%s» fue renombrado a «%s», pero el archivo «%s» no pudo ser renombrado a «%s»: %m."
 
 # XXX why talk about "log segment" instead of "file"?
-#: access/transam/xlog.c:11062 access/transam/xlogutils.c:721
-#: replication/walreceiver.c:973 replication/walsender.c:2116
+#: access/transam/xlog.c:11534 access/transam/xlogutils.c:724
+#: replication/walreceiver.c:1005 replication/walsender.c:2397
 #, c-format
 msgid "could not seek in log segment %s to offset %u: %m"
 msgstr "no se pudo posicionar (seek) en segmento %s a la posición %u: %m"
 
 # XXX why talk about "log segment" instead of "file"?
-#: access/transam/xlog.c:11074
+#: access/transam/xlog.c:11548
 #, c-format
 msgid "could not read from log segment %s, offset %u: %m"
 msgstr "no se pudo leer del archivo de segmento %s, posición %u: %m"
 
-#: access/transam/xlog.c:11548
+#: access/transam/xlog.c:12037
 #, c-format
 msgid "received promote request"
 msgstr "se recibió petición de promoción"
 
-#: access/transam/xlog.c:11561
+#: access/transam/xlog.c:12050
 #, c-format
 msgid "trigger file found: %s"
 msgstr "se encontró el archivo disparador: %s"
 
-#: access/transam/xlog.c:11570
+#: access/transam/xlog.c:12059
 #, c-format
 msgid "could not stat trigger file \"%s\": %m"
 msgstr "no se pudo hacer stat al archivo disparador «%s»: %m"
 
-#: access/transam/xlogarchive.c:244
+#: access/transam/xlogarchive.c:243
 #, c-format
 msgid "archive file \"%s\" has wrong size: %lu instead of %lu"
 msgstr "el archivo «%s» tiene tamaño erróneo: %lu en lugar de %lu"
 
-#: access/transam/xlogarchive.c:253
+#: access/transam/xlogarchive.c:252
 #, 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:303
+#: access/transam/xlogarchive.c:302
 #, c-format
 msgid "could not restore file \"%s\" from archive: %s"
 msgstr "no se pudo recuperar el archivo «%s»: %s"
@@ -2768,860 +2667,917 @@ msgstr "no se pudo recuperar el archivo «%s»: %s"
 #. translator: First %s represents a recovery.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:415
+#: access/transam/xlogarchive.c:414
 #, c-format
 msgid "%s \"%s\": %s"
 msgstr "%s «%s»: %s"
 
-#: access/transam/xlogarchive.c:458 replication/logical/snapbuild.c:1621
-#: replication/slot.c:470 replication/slot.c:981 replication/slot.c:1089
-#: storage/file/fd.c:635 storage/file/fd.c:693 utils/time/snapmgr.c:1198
+#: access/transam/xlogarchive.c:457 postmaster/syslogger.c:1415
+#: replication/logical/snapbuild.c:1645 replication/slot.c:532
+#: replication/slot.c:1129 replication/slot.c:1243 storage/file/fd.c:642
+#: storage/file/fd.c:737 utils/time/snapmgr.c:1318
 #, 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/xlogarchive.c:525 access/transam/xlogarchive.c:589
+#: access/transam/xlogarchive.c:524 access/transam/xlogarchive.c:588
 #, 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:533 access/transam/xlogarchive.c:597
+#: access/transam/xlogarchive.c:532 access/transam/xlogarchive.c:596
 #, 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:58
+#: access/transam/xlogfuncs.c:55
 #, c-format
 msgid "aborting backup due to backend exiting before pg_stop_backup was called"
-msgstr ""
+msgstr "abortando el backup porque el proceso servidor terminó antes de que pg_stop_backup fuera invocada"
 
-#: access/transam/xlogfuncs.c:88
-#, fuzzy, c-format
-#| msgid "a backup is already in progress"
+#: access/transam/xlogfuncs.c:86
+#, c-format
 msgid "a backup is already in progress in this session"
-msgstr "ya hay un respaldo en curso"
+msgstr "ya hay un respaldo en curso en esta sesión"
 
-#: access/transam/xlogfuncs.c:94 commands/tablespace.c:709
-#: commands/tablespace.c:719 postmaster/postmaster.c:1395
-#: replication/basebackup.c:295 replication/basebackup.c:635
-#: storage/file/copydir.c:53 storage/file/copydir.c:96 storage/file/fd.c:2292
-#: storage/file/fd.c:2891 storage/ipc/dsm.c:300 utils/adt/genfile.c:439
-#: utils/adt/misc.c:411 utils/misc/tzparser.c:339
+#: access/transam/xlogfuncs.c:92 commands/tablespace.c:703
+#: commands/tablespace.c:713 postmaster/postmaster.c:1458
+#: replication/basebackup.c:368 replication/basebackup.c:708
+#: storage/file/copydir.c:53 storage/file/copydir.c:96 storage/file/fd.c:2420
+#: storage/file/fd.c:3019 storage/ipc/dsm.c:301 utils/adt/genfile.c:440
+#: utils/adt/misc.c:410 utils/misc/tzparser.c:339
 #, c-format
 msgid "could not open directory \"%s\": %m"
 msgstr "no se pudo abrir el directorio «%s»: %m"
 
-#: access/transam/xlogfuncs.c:155 access/transam/xlogfuncs.c:229
-#, fuzzy, c-format
-#| msgid "a backup is not in progress"
-msgid "non-exclusive backup in progress"
-msgstr "no hay un respaldo en curso"
-
-#: access/transam/xlogfuncs.c:156 access/transam/xlogfuncs.c:230
+#: access/transam/xlogfuncs.c:152 access/transam/xlogfuncs.c:234
 #, c-format
-msgid "did you mean to use pg_stop_backup('f')?"
-msgstr ""
-
-#: access/transam/xlogfuncs.c:200 commands/event_trigger.c:1449
-#: commands/event_trigger.c:2000 commands/extension.c:1728
-#: commands/extension.c:1837 commands/extension.c:2030 commands/prepare.c:702
-#: executor/execQual.c:1757 executor/execQual.c:1782 executor/execQual.c:2157
-#: executor/execQual.c:5393 executor/functions.c:1024 foreign/foreign.c:598
-#: replication/logical/logicalfuncs.c:175 replication/logical/origin.c:1391
-#: replication/slotfuncs.c:189 replication/walsender.c:2765
-#: utils/adt/jsonfuncs.c:1483 utils/adt/jsonfuncs.c:1615
-#: utils/adt/jsonfuncs.c:1805 utils/adt/jsonfuncs.c:1934
-#: utils/adt/jsonfuncs.c:2702 utils/adt/pgstatfuncs.c:554
-#: utils/adt/pgstatfuncs.c:655 utils/fmgr/funcapi.c:61 utils/misc/guc.c:8424
-#: utils/mmgr/portalmem.c:1064
+msgid "non-exclusive backup in progress"
+msgstr "respaldo no-exclusivo en curso"
+
+#: access/transam/xlogfuncs.c:153 access/transam/xlogfuncs.c:235
+#, c-format
+msgid "Did you mean to use pg_stop_backup('f')?"
+msgstr "¿Quiso usar pg_stop_backup('f')?"
+
+#: access/transam/xlogfuncs.c:205 commands/event_trigger.c:1471
+#: commands/event_trigger.c:2022 commands/extension.c:1895
+#: commands/extension.c:2004 commands/extension.c:2228 commands/prepare.c:721
+#: executor/execExpr.c:2106 executor/execSRF.c:688 executor/functions.c:1029
+#: foreign/foreign.c:488 libpq/hba.c:2563 replication/logical/launcher.c:936
+#: replication/logical/logicalfuncs.c:176 replication/logical/origin.c:1387
+#: replication/slotfuncs.c:197 replication/walsender.c:3166
+#: utils/adt/jsonfuncs.c:1689 utils/adt/jsonfuncs.c:1819
+#: utils/adt/jsonfuncs.c:2007 utils/adt/jsonfuncs.c:2134
+#: utils/adt/jsonfuncs.c:3489 utils/adt/pgstatfuncs.c:456
+#: utils/adt/pgstatfuncs.c:557 utils/fmgr/funcapi.c:62 utils/misc/guc.c:8538
+#: utils/mmgr/portalmem.c:1053
 #, 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"
 
-#: access/transam/xlogfuncs.c:204 commands/event_trigger.c:1453
-#: commands/event_trigger.c:2004 commands/extension.c:1732
-#: commands/extension.c:1841 commands/extension.c:2034 commands/prepare.c:706
-#: foreign/foreign.c:603 replication/logical/logicalfuncs.c:179
-#: replication/logical/origin.c:1395 replication/slotfuncs.c:193
-#: replication/walsender.c:2769 utils/adt/pgstatfuncs.c:558
-#: utils/adt/pgstatfuncs.c:659 utils/misc/guc.c:8428 utils/misc/pg_config.c:44
-#: utils/mmgr/portalmem.c:1068
+#: access/transam/xlogfuncs.c:209 commands/event_trigger.c:1475
+#: commands/event_trigger.c:2026 commands/extension.c:1899
+#: commands/extension.c:2008 commands/extension.c:2232 commands/prepare.c:725
+#: foreign/foreign.c:493 libpq/hba.c:2567 replication/logical/launcher.c:940
+#: replication/logical/logicalfuncs.c:180 replication/logical/origin.c:1391
+#: replication/slotfuncs.c:201 replication/walsender.c:3170
+#: utils/adt/pgstatfuncs.c:460 utils/adt/pgstatfuncs.c:561
+#: utils/misc/guc.c:8542 utils/misc/pg_config.c:44 utils/mmgr/portalmem.c:1057
 #, 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"
 
-#: access/transam/xlogfuncs.c:247
-#, fuzzy, c-format
-#| msgid "a backup is not in progress"
+#: access/transam/xlogfuncs.c:251
+#, c-format
 msgid "non-exclusive backup is not in progress"
-msgstr "no hay un respaldo en curso"
+msgstr "no hay un respaldo no-exclusivo en progreso"
 
-#: access/transam/xlogfuncs.c:248
+#: access/transam/xlogfuncs.c:252
 #, c-format
-msgid "did you mean to use pg_stop_backup('t')?"
-msgstr ""
+msgid "Did you mean to use pg_stop_backup('t')?"
+msgstr "¿Quiso usar pg_stop_backup('t')?"
 
-#: access/transam/xlogfuncs.c:327
+#: access/transam/xlogfuncs.c:329
 #, 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:335
+#: access/transam/xlogfuncs.c:337
 #, 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:473
-#, c-format
-msgid "pg_xlogfile_name_offset() cannot be executed during recovery."
+#: access/transam/xlogfuncs.c:475
+#, fuzzy, c-format
+msgid "pg_walfile_name_offset() cannot be executed during recovery."
 msgstr "pg_xlogfile_name_offset() no puede ejecutarse durante la recuperación."
 
-#: access/transam/xlogfuncs.c:529
-#, c-format
-msgid "pg_xlogfile_name() cannot be executed during recovery."
+#: access/transam/xlogfuncs.c:531
+#, fuzzy, c-format
+msgid "pg_walfile_name() cannot be executed during recovery."
 msgstr "pg_xlogfile_name() no puede ejecutarse durante la recuperación."
 
-#: access/transam/xlogfuncs.c:549 access/transam/xlogfuncs.c:569
-#: access/transam/xlogfuncs.c:586
+#: access/transam/xlogfuncs.c:551 access/transam/xlogfuncs.c:571
+#: access/transam/xlogfuncs.c:588
 #, c-format
 msgid "recovery is not in progress"
 msgstr "la recuperación no está en proceso"
 
-#: access/transam/xlogfuncs.c:550 access/transam/xlogfuncs.c:570
-#: access/transam/xlogfuncs.c:587
+#: access/transam/xlogfuncs.c:552 access/transam/xlogfuncs.c:572
+#: access/transam/xlogfuncs.c:589
 #, 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/xlogreader.c:285
+#: access/transam/xlogreader.c:276
 #, c-format
 msgid "invalid record offset at %X/%X"
 msgstr "posición de registro no válida en %X/%X"
 
-#: access/transam/xlogreader.c:293
+#: access/transam/xlogreader.c:284
 #, c-format
 msgid "contrecord is requested by %X/%X"
 msgstr "contrecord solicitado por %X/%X"
 
-#: access/transam/xlogreader.c:334 access/transam/xlogreader.c:633
-#, fuzzy, c-format
-#| msgid "invalid record length at %X/%X"
+#: access/transam/xlogreader.c:325 access/transam/xlogreader.c:625
+#, c-format
 msgid "invalid record length at %X/%X: wanted %u, got %u"
-msgstr "largo de registro no válido en %X/%X"
+msgstr "largo de registro no válido en %X/%X: se esperaba %u, se obtuvo %u"
 
-#: access/transam/xlogreader.c:349
+#: access/transam/xlogreader.c:340
 #, 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:390
+#: access/transam/xlogreader.c:381
 #, c-format
 msgid "there is no contrecord flag at %X/%X"
 msgstr "no hay bandera de contrecord en %X/%X"
 
-#: access/transam/xlogreader.c:403
+#: access/transam/xlogreader.c:394
 #, c-format
 msgid "invalid contrecord length %u at %X/%X"
 msgstr "largo de contrecord %u no válido en %X/%X"
 
-#: access/transam/xlogreader.c:641
+#: access/transam/xlogreader.c:633
 #, 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:655 access/transam/xlogreader.c:672
+#: access/transam/xlogreader.c:647 access/transam/xlogreader.c:664
 #, 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:709
+#: access/transam/xlogreader.c:701
 #, 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:742
+#: access/transam/xlogreader.c:734
 #, c-format
 msgid "invalid magic number %04X in log segment %s, offset %u"
 msgstr "número mágico %04X no válido en archivo %s, posición %u"
 
-#: access/transam/xlogreader.c:756 access/transam/xlogreader.c:807
+#: access/transam/xlogreader.c:748 access/transam/xlogreader.c:799
 #, c-format
 msgid "invalid info bits %04X in log segment %s, offset %u"
 msgstr "info bits %04X no válidos en archivo %s, posición %u"
 
-#: access/transam/xlogreader.c:782
+#: access/transam/xlogreader.c:774
 #, c-format
 msgid "WAL file is from different database system: WAL file database system identifier is %s, pg_control database system identifier is %s"
 msgstr "archivo WAL es de un sistema de bases de datos distinto: identificador de sistema en archivo WAL es %s, identificador en pg_control es %s"
 
-#: access/transam/xlogreader.c:789
+#: access/transam/xlogreader.c:781
 #, c-format
 msgid "WAL file is from different database system: incorrect XLOG_SEG_SIZE in page header"
 msgstr "archivo WAL es de un sistema de bases de datos distinto: XLOG_SEG_SIZE incorrecto en cabecera de página"
 
-#: access/transam/xlogreader.c:795
+#: access/transam/xlogreader.c:787
 #, 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:821
+#: access/transam/xlogreader.c:813
 #, c-format
 msgid "unexpected pageaddr %X/%X in log segment %s, offset %u"
 msgstr "pageaddr %X/%X inesperado en archivo %s, posición %u"
 
-#: access/transam/xlogreader.c:846
+#: access/transam/xlogreader.c:838
 #, c-format
 msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u"
 msgstr "ID de timeline %u fuera de secuencia (después de %u) en archivo %s, posición %u"
 
-#: access/transam/xlogreader.c:1053
+#: access/transam/xlogreader.c:1083
 #, 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:1075
+#: access/transam/xlogreader.c:1106
 #, 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:1082
+#: access/transam/xlogreader.c:1113
 #, 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:1115
+#: access/transam/xlogreader.c:1149
 #, 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:1131
+#: access/transam/xlogreader.c:1165
 #, 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:1146
+#: access/transam/xlogreader.c:1180
 #, c-format
 msgid "BKPIMAGE_IS_COMPRESSED set, but block image length %u at %X/%X"
 msgstr "BKPIMAGE_IS_COMPRESSED definido, pero largo de imagen de bloque es %u en %X/%X"
 
-#: access/transam/xlogreader.c:1161
+#: access/transam/xlogreader.c:1195
 #, c-format
 msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_IS_COMPRESSED set, but block image length is %u at %X/%X"
 msgstr "ni BKPIMAGE_HAS_HOLE ni BKPIMAGE_IS_COMPRESSED está definido, pero largo de imagen de bloque es %u en %X/%X"
 
-#: access/transam/xlogreader.c:1177
+#: access/transam/xlogreader.c:1211
 #, 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:1189
-#, fuzzy, c-format
+#: access/transam/xlogreader.c:1223
+#, c-format
 msgid "invalid block_id %u at %X/%X"
-msgstr "block_id %u fuera de orden en %X/%X"
+msgstr "block_id %u no válido en %X/%X"
 
-#: access/transam/xlogreader.c:1254
-#, fuzzy, c-format
+#: access/transam/xlogreader.c:1291
+#, c-format
 msgid "record with invalid length at %X/%X"
-msgstr "registro con largo cero en %X/%X"
+msgstr "registro con largo no válido en %X/%X"
 
-#: access/transam/xlogreader.c:1343
-#, fuzzy, c-format
+#: access/transam/xlogreader.c:1380
+#, c-format
 msgid "invalid compressed image at %X/%X, block %d"
-msgstr "ID de gestor de recursos %u no válido en %X/%X"
+msgstr "imagen comprimida no válida en %X/%X, bloque %d"
 
-#: access/transam/xlogutils.c:742 replication/walsender.c:2133
+#: access/transam/xlogutils.c:747 replication/walsender.c:2416
 #, c-format
 msgid "could not read from log segment %s, offset %u, length %lu: %m"
 msgstr "no se pudo leer desde el segmento %s, posición %u, largo %lu: %m"
 
-#: bootstrap/bootstrap.c:269 postmaster/postmaster.c:785 tcop/postgres.c:3488
+#: bootstrap/bootstrap.c:272 postmaster/postmaster.c:819 tcop/postgres.c:3510
 #, c-format
 msgid "--%s requires a value"
 msgstr "--%s requiere un valor"
 
-#: bootstrap/bootstrap.c:274 postmaster/postmaster.c:790 tcop/postgres.c:3493
+#: bootstrap/bootstrap.c:277 postmaster/postmaster.c:824 tcop/postgres.c:3515
 #, c-format
 msgid "-c %s requires a value"
 msgstr "-c %s requiere un valor"
 
-#: bootstrap/bootstrap.c:285 postmaster/postmaster.c:802
-#: postmaster/postmaster.c:815
+#: bootstrap/bootstrap.c:288 postmaster/postmaster.c:836
+#: postmaster/postmaster.c:849
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "Pruebe «%s --help» para mayor información.\n"
 
-#: bootstrap/bootstrap.c:294
+#: bootstrap/bootstrap.c:297
 #, c-format
 msgid "%s: invalid command-line arguments\n"
 msgstr "%s: argumentos de línea de órdenes no válidos\n"
 
-#: catalog/aclchk.c:193
+#: catalog/aclchk.c:203
 #, 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:316
+#: catalog/aclchk.c:326
 #, 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:321
+#: catalog/aclchk.c:331
 #, c-format
 msgid "no privileges were granted for \"%s\""
 msgstr "no se otorgaron privilegios para «%s»"
 
-#: catalog/aclchk.c:329
+#: catalog/aclchk.c:339
 #, 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:334
+#: catalog/aclchk.c:344
 #, c-format
 msgid "not all privileges were granted for \"%s\""
 msgstr "no todos los privilegios fueron otorgados para «%s»"
 
-#: catalog/aclchk.c:345
+#: catalog/aclchk.c:355
 #, 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:350
+#: catalog/aclchk.c:360
 #, c-format
 msgid "no privileges could be revoked for \"%s\""
 msgstr "ningún privilegio pudo ser revocado para «%s»"
 
-#: catalog/aclchk.c:358
+#: catalog/aclchk.c:368
 #, 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:363
+#: catalog/aclchk.c:373
 #, c-format
 msgid "not all privileges could be revoked for \"%s\""
 msgstr "no todos los privilegios pudieron ser revocados para «%s»"
 
-#: catalog/aclchk.c:448 catalog/aclchk.c:940
+#: catalog/aclchk.c:455 catalog/aclchk.c:948
 #, 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:452 catalog/aclchk.c:944
+#: catalog/aclchk.c:459 catalog/aclchk.c:952
 #, 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:456
+#: catalog/aclchk.c:463
 #, 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:460
+#: catalog/aclchk.c:467
 #, 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:464 catalog/aclchk.c:948
+#: catalog/aclchk.c:471 catalog/aclchk.c:956
 #, 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:468
+#: catalog/aclchk.c:475
 #, 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:472
+#: catalog/aclchk.c:479
 #, 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:476
+#: catalog/aclchk.c:483 catalog/aclchk.c:964
 #, 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:480
+#: catalog/aclchk.c:487
 #, 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:484 catalog/aclchk.c:952
+#: catalog/aclchk.c:491 catalog/aclchk.c:960
 #, 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:488
+#: catalog/aclchk.c:495
 #, 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:492
+#: catalog/aclchk.c:499
 #, 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:531
+#: catalog/aclchk.c:538
 #, 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:690 catalog/aclchk.c:3921 catalog/aclchk.c:4698
-#: catalog/objectaddress.c:873 catalog/pg_largeobject.c:113
+#: catalog/aclchk.c:696 catalog/aclchk.c:3926 catalog/aclchk.c:4708
+#: catalog/objectaddress.c:928 catalog/pg_largeobject.c:111
 #: storage/large_object/inv_api.c:291
 #, c-format
 msgid "large object %u does not exist"
 msgstr "no existe el objeto grande %u"
 
-#: catalog/aclchk.c:877 catalog/aclchk.c:885 commands/collationcmds.c:92
-#: commands/copy.c:1008 commands/copy.c:1026 commands/copy.c:1034
-#: commands/copy.c:1042 commands/copy.c:1050 commands/copy.c:1058
-#: commands/copy.c:1066 commands/copy.c:1074 commands/copy.c:1082
-#: commands/copy.c:1098 commands/copy.c:1112 commands/copy.c:1131
-#: commands/copy.c:1146 commands/dbcommands.c:155 commands/dbcommands.c:163
-#: commands/dbcommands.c:171 commands/dbcommands.c:179
-#: commands/dbcommands.c:187 commands/dbcommands.c:195
-#: commands/dbcommands.c:203 commands/dbcommands.c:211
-#: commands/dbcommands.c:219 commands/dbcommands.c:1397
-#: commands/dbcommands.c:1405 commands/dbcommands.c:1413
-#: commands/dbcommands.c:1421 commands/extension.c:1218
-#: commands/extension.c:1226 commands/extension.c:1234
-#: commands/extension.c:1242 commands/extension.c:2760
-#: commands/foreigncmds.c:539 commands/foreigncmds.c:548
-#: commands/functioncmds.c:533 commands/functioncmds.c:649
-#: commands/functioncmds.c:657 commands/functioncmds.c:665
-#: commands/functioncmds.c:673 commands/functioncmds.c:2085
-#: commands/functioncmds.c:2093 commands/sequence.c:1189
-#: commands/sequence.c:1197 commands/sequence.c:1205 commands/sequence.c:1213
-#: commands/sequence.c:1221 commands/sequence.c:1229 commands/sequence.c:1237
-#: commands/sequence.c:1245 commands/typecmds.c:295 commands/typecmds.c:1382
-#: commands/typecmds.c:1391 commands/typecmds.c:1399 commands/typecmds.c:1407
-#: commands/typecmds.c:1415 commands/user.c:139 commands/user.c:156
-#: commands/user.c:164 commands/user.c:172 commands/user.c:180
-#: commands/user.c:188 commands/user.c:196 commands/user.c:204
-#: commands/user.c:212 commands/user.c:220 commands/user.c:228
-#: commands/user.c:236 commands/user.c:244 commands/user.c:537
-#: commands/user.c:549 commands/user.c:557 commands/user.c:565
-#: commands/user.c:573 commands/user.c:581 commands/user.c:589
-#: commands/user.c:597 commands/user.c:606 commands/user.c:614
-#: commands/user.c:622
+#: catalog/aclchk.c:885 catalog/aclchk.c:894 commands/collationcmds.c:114
+#: commands/copy.c:1042 commands/copy.c:1062 commands/copy.c:1071
+#: commands/copy.c:1080 commands/copy.c:1089 commands/copy.c:1098
+#: commands/copy.c:1107 commands/copy.c:1116 commands/copy.c:1125
+#: commands/copy.c:1143 commands/copy.c:1159 commands/copy.c:1179
+#: commands/copy.c:1196 commands/dbcommands.c:155 commands/dbcommands.c:164
+#: commands/dbcommands.c:173 commands/dbcommands.c:182
+#: commands/dbcommands.c:191 commands/dbcommands.c:200
+#: commands/dbcommands.c:209 commands/dbcommands.c:218
+#: commands/dbcommands.c:227 commands/dbcommands.c:1427
+#: commands/dbcommands.c:1436 commands/dbcommands.c:1445
+#: commands/dbcommands.c:1454 commands/extension.c:1678
+#: commands/extension.c:1688 commands/extension.c:1698
+#: commands/extension.c:1708 commands/extension.c:2949
+#: commands/foreigncmds.c:537 commands/foreigncmds.c:546
+#: commands/functioncmds.c:526 commands/functioncmds.c:643
+#: commands/functioncmds.c:652 commands/functioncmds.c:661
+#: commands/functioncmds.c:670 commands/functioncmds.c:2097
+#: commands/functioncmds.c:2105 commands/publicationcmds.c:90
+#: commands/sequence.c:1265 commands/sequence.c:1275 commands/sequence.c:1285
+#: commands/sequence.c:1295 commands/sequence.c:1305 commands/sequence.c:1315
+#: commands/sequence.c:1325 commands/sequence.c:1335 commands/sequence.c:1345
+#: commands/subscriptioncmds.c:110 commands/subscriptioncmds.c:120
+#: commands/subscriptioncmds.c:130 commands/subscriptioncmds.c:140
+#: commands/subscriptioncmds.c:154 commands/subscriptioncmds.c:165
+#: commands/subscriptioncmds.c:179 commands/tablecmds.c:5960
+#: commands/typecmds.c:298 commands/typecmds.c:1375 commands/typecmds.c:1384
+#: commands/typecmds.c:1392 commands/typecmds.c:1400 commands/typecmds.c:1408
+#: commands/user.c:134 commands/user.c:148 commands/user.c:157
+#: commands/user.c:166 commands/user.c:175 commands/user.c:184
+#: commands/user.c:193 commands/user.c:202 commands/user.c:211
+#: commands/user.c:220 commands/user.c:229 commands/user.c:238
+#: commands/user.c:247 commands/user.c:532 commands/user.c:540
+#: commands/user.c:548 commands/user.c:556 commands/user.c:564
+#: commands/user.c:572 commands/user.c:580 commands/user.c:588
+#: commands/user.c:597 commands/user.c:605 commands/user.c:613
+#: parser/parse_utilcmd.c:394 replication/pgoutput/pgoutput.c:107
+#: replication/pgoutput/pgoutput.c:128 replication/walsender.c:800
+#: replication/walsender.c:811 replication/walsender.c:821
 #, c-format
 msgid "conflicting or redundant options"
 msgstr "opciones contradictorias o redundantes"
 
-#: catalog/aclchk.c:985
+#: catalog/aclchk.c:997
 #, c-format
 msgid "default privileges cannot be set for columns"
 msgstr "los privilegios por omisión no pueden definirse para columnas"
 
-#: catalog/aclchk.c:1501 catalog/objectaddress.c:1390 commands/analyze.c:378
-#: commands/copy.c:4423 commands/sequence.c:1491 commands/tablecmds.c:5199
-#: commands/tablecmds.c:5305 commands/tablecmds.c:5365
-#: commands/tablecmds.c:5478 commands/tablecmds.c:5535
-#: commands/tablecmds.c:5629 commands/tablecmds.c:5725
-#: commands/tablecmds.c:7877 commands/tablecmds.c:8082
-#: commands/tablecmds.c:8502 commands/trigger.c:642 parser/analyze.c:2160
-#: parser/parse_relation.c:2542 parser/parse_relation.c:2604
-#: parser/parse_target.c:940 parser/parse_type.c:127 utils/adt/acl.c:2840
-#: utils/adt/ruleutils.c:1870
+#: catalog/aclchk.c:1157
 #, c-format
-msgid "column \"%s\" of relation \"%s\" does not exist"
+msgid "cannot use IN SCHEMA clause when using GRANT/REVOKE ON SCHEMAS"
+msgstr ""
+
+#: catalog/aclchk.c:1521 catalog/objectaddress.c:1389 commands/analyze.c:390
+#: commands/copy.c:4745 commands/sequence.c:1700 commands/tablecmds.c:5608
+#: commands/tablecmds.c:5755 commands/tablecmds.c:5812
+#: commands/tablecmds.c:5885 commands/tablecmds.c:5979
+#: commands/tablecmds.c:6038 commands/tablecmds.c:6163
+#: commands/tablecmds.c:6217 commands/tablecmds.c:6309
+#: commands/tablecmds.c:6465 commands/tablecmds.c:8694
+#: commands/tablecmds.c:8970 commands/tablecmds.c:9405 commands/trigger.c:791
+#: parser/analyze.c:2310 parser/parse_relation.c:2699
+#: parser/parse_relation.c:2761 parser/parse_target.c:1002
+#: parser/parse_type.c:127 utils/adt/acl.c:2823 utils/adt/ruleutils.c:2349
+#, 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:1770 catalog/objectaddress.c:1203 commands/sequence.c:1078
-#: commands/tablecmds.c:223 commands/tablecmds.c:12009 utils/adt/acl.c:2076
-#: utils/adt/acl.c:2106 utils/adt/acl.c:2138 utils/adt/acl.c:2170
-#: utils/adt/acl.c:2198 utils/adt/acl.c:2228
+#: catalog/aclchk.c:1787 catalog/objectaddress.c:1229 commands/sequence.c:1138
+#: commands/tablecmds.c:229 commands/tablecmds.c:13080 utils/adt/acl.c:2059
+#: utils/adt/acl.c:2089 utils/adt/acl.c:2121 utils/adt/acl.c:2153
+#: utils/adt/acl.c:2181 utils/adt/acl.c:2211
 #, c-format
 msgid "\"%s\" is not a sequence"
 msgstr "«%s» no es una secuencia"
 
-#: catalog/aclchk.c:1808
+#: catalog/aclchk.c:1825
 #, 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:1825
-#, c-format
-msgid "invalid privilege type USAGE for table"
-msgstr "el tipo de privilegio USAGE no es válido para tablas"
+#: catalog/aclchk.c:1842
+#, fuzzy, c-format
+msgid "invalid privilege type %s for table"
+msgstr "el tipo de privilegio %s no es válido para un tablespace"
 
-#: catalog/aclchk.c:1993
+#: catalog/aclchk.c:2008
 #, 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:2006
+#: catalog/aclchk.c:2021
 #, c-format
 msgid "sequence \"%s\" only supports SELECT column privileges"
 msgstr "la secuencia «%s» sólo soporta el privilegio SELECT"
 
-#: catalog/aclchk.c:2600
+#: catalog/aclchk.c:2603
 #, c-format
 msgid "language \"%s\" is not trusted"
 msgstr "el lenguaje «%s» no es confiable (trusted)"
 
-#: catalog/aclchk.c:2602
+#: catalog/aclchk.c:2605
 #, c-format
-msgid "Only superusers can use untrusted languages."
-msgstr "Sólo los superusuarios pueden usar lenguajes no confiables."
+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:3127
+#: catalog/aclchk.c:3119
 #, c-format
 msgid "cannot set privileges of array types"
 msgstr "no se puede definir privilegios para tipos de array"
 
-#: catalog/aclchk.c:3128
+#: catalog/aclchk.c:3120
 #, c-format
 msgid "Set the privileges of the element type instead."
 msgstr "Defina los privilegios del tipo elemento en su lugar."
 
-#: catalog/aclchk.c:3135 catalog/objectaddress.c:1523 commands/typecmds.c:3146
+#: catalog/aclchk.c:3127 catalog/objectaddress.c:1519
 #, c-format
 msgid "\"%s\" is not a domain"
 msgstr "«%s» no es un dominio"
 
-#: catalog/aclchk.c:3258
+#: catalog/aclchk.c:3247
 #, c-format
 msgid "unrecognized privilege type \"%s\""
 msgstr "tipo de privilegio no reconocido: «%s»"
 
-#: catalog/aclchk.c:3307
+#: catalog/aclchk.c:3296
 #, c-format
 msgid "permission denied for column %s"
 msgstr "permiso denegado a la columna %s"
 
-#: catalog/aclchk.c:3309
+#: catalog/aclchk.c:3298
 #, c-format
 msgid "permission denied for relation %s"
 msgstr "permiso denegado a la relación %s"
 
-#: catalog/aclchk.c:3311 commands/sequence.c:561 commands/sequence.c:786
-#: commands/sequence.c:828 commands/sequence.c:865 commands/sequence.c:1543
+#: catalog/aclchk.c:3300 commands/sequence.c:600 commands/sequence.c:834
+#: commands/sequence.c:876 commands/sequence.c:917 commands/sequence.c:1791
+#: commands/sequence.c:1855
 #, c-format
 msgid "permission denied for sequence %s"
 msgstr "permiso denegado a la secuencia %s"
 
-#: catalog/aclchk.c:3313
+#: catalog/aclchk.c:3302
 #, c-format
 msgid "permission denied for database %s"
 msgstr "permiso denegado a la base de datos %s"
 
-#: catalog/aclchk.c:3315
+#: catalog/aclchk.c:3304
 #, c-format
 msgid "permission denied for function %s"
 msgstr "permiso denegado a la función %s"
 
-#: catalog/aclchk.c:3317
+#: catalog/aclchk.c:3306
 #, c-format
 msgid "permission denied for operator %s"
 msgstr "permiso denegado al operador %s"
 
-#: catalog/aclchk.c:3319
+#: catalog/aclchk.c:3308
 #, c-format
 msgid "permission denied for type %s"
 msgstr "permiso denegado al tipo %s"
 
-#: catalog/aclchk.c:3321
+#: catalog/aclchk.c:3310
 #, c-format
 msgid "permission denied for language %s"
 msgstr "permiso denegado al lenguaje %s"
 
-#: catalog/aclchk.c:3323
+#: catalog/aclchk.c:3312
 #, c-format
 msgid "permission denied for large object %s"
 msgstr "permiso denegado al objeto grande %s"
 
-#: catalog/aclchk.c:3325
+#: catalog/aclchk.c:3314
 #, c-format
 msgid "permission denied for schema %s"
 msgstr "permiso denegado al esquema %s"
 
-#: catalog/aclchk.c:3327
+#: catalog/aclchk.c:3316
 #, c-format
 msgid "permission denied for operator class %s"
 msgstr "permiso denegado a la clase de operadores %s"
 
-#: catalog/aclchk.c:3329
+#: catalog/aclchk.c:3318
 #, c-format
 msgid "permission denied for operator family %s"
 msgstr "permiso denegado a la familia de operadores %s"
 
-#: catalog/aclchk.c:3331
+#: catalog/aclchk.c:3320
 #, c-format
 msgid "permission denied for collation %s"
 msgstr "permiso denegado al ordenamiento (collation) %s"
 
-#: catalog/aclchk.c:3333
+#: catalog/aclchk.c:3322
 #, c-format
 msgid "permission denied for conversion %s"
 msgstr "permiso denegado a la conversión %s"
 
-#: catalog/aclchk.c:3335
+#: catalog/aclchk.c:3324
+#, fuzzy, c-format
+msgid "permission denied for statistics object %s"
+msgstr "permiso denegado al objeto grande %s"
+
+#: catalog/aclchk.c:3326
 #, c-format
 msgid "permission denied for tablespace %s"
 msgstr "permiso denegado al tablespace %s"
 
-#: catalog/aclchk.c:3337
+#: catalog/aclchk.c:3328
 #, 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:3339
+#: catalog/aclchk.c:3330
 #, 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:3341
+#: catalog/aclchk.c:3332
 #, c-format
 msgid "permission denied for foreign-data wrapper %s"
 msgstr "permiso denegado al conector de datos externos %s"
 
-#: catalog/aclchk.c:3343
+#: catalog/aclchk.c:3334
 #, c-format
 msgid "permission denied for foreign server %s"
 msgstr "permiso denegado al servidor foráneo %s"
 
-#: catalog/aclchk.c:3345
+#: catalog/aclchk.c:3336
 #, c-format
 msgid "permission denied for event trigger %s"
 msgstr "permiso denegado al disparador por eventos %s"
 
-#: catalog/aclchk.c:3347
+#: catalog/aclchk.c:3338
 #, c-format
 msgid "permission denied for extension %s"
 msgstr "permiso denegado a la extensión %s"
 
-#: catalog/aclchk.c:3353 catalog/aclchk.c:3355
+#: catalog/aclchk.c:3340
+#, fuzzy, c-format
+msgid "permission denied for publication %s"
+msgstr "permiso denegado a la relación %s"
+
+#: catalog/aclchk.c:3342
+#, fuzzy, c-format
+msgid "permission denied for subscription %s"
+msgstr "permiso denegado a la función %s"
+
+#: catalog/aclchk.c:3348 catalog/aclchk.c:3350
 #, c-format
 msgid "must be owner of relation %s"
 msgstr "debe ser dueño de la relación %s"
 
-#: catalog/aclchk.c:3357
+#: catalog/aclchk.c:3352
 #, c-format
 msgid "must be owner of sequence %s"
 msgstr "debe ser dueño de la secuencia %s"
 
-#: catalog/aclchk.c:3359
+#: catalog/aclchk.c:3354
 #, c-format
 msgid "must be owner of database %s"
 msgstr "debe ser dueño de la base de datos %s"
 
-#: catalog/aclchk.c:3361
+#: catalog/aclchk.c:3356
 #, c-format
 msgid "must be owner of function %s"
 msgstr "debe ser dueño de la función %s"
 
-#: catalog/aclchk.c:3363
+#: catalog/aclchk.c:3358
 #, c-format
 msgid "must be owner of operator %s"
 msgstr "debe ser dueño del operador %s"
 
-#: catalog/aclchk.c:3365
+#: catalog/aclchk.c:3360
 #, c-format
 msgid "must be owner of type %s"
 msgstr "debe ser dueño del tipo %s"
 
-#: catalog/aclchk.c:3367
+#: catalog/aclchk.c:3362
 #, c-format
 msgid "must be owner of language %s"
 msgstr "debe ser dueño del lenguaje %s"
 
-#: catalog/aclchk.c:3369
+#: catalog/aclchk.c:3364
 #, c-format
 msgid "must be owner of large object %s"
 msgstr "debe ser dueño del objeto grande %s"
 
-#: catalog/aclchk.c:3371
+#: catalog/aclchk.c:3366
 #, c-format
 msgid "must be owner of schema %s"
 msgstr "debe ser dueño del esquema %s"
 
-#: catalog/aclchk.c:3373
+#: catalog/aclchk.c:3368
 #, c-format
 msgid "must be owner of operator class %s"
 msgstr "debe ser dueño de la clase de operadores %s"
 
-#: catalog/aclchk.c:3375
+#: catalog/aclchk.c:3370
 #, c-format
 msgid "must be owner of operator family %s"
 msgstr "debe ser dueño de la familia de operadores %s"
 
-#: catalog/aclchk.c:3377
+#: catalog/aclchk.c:3372
 #, c-format
 msgid "must be owner of collation %s"
 msgstr "debe ser dueño del ordenamiento (collation) %s"
 
-#: catalog/aclchk.c:3379
+#: catalog/aclchk.c:3374
 #, c-format
 msgid "must be owner of conversion %s"
 msgstr "debe ser dueño de la conversión %s"
 
-#: catalog/aclchk.c:3381
+#: catalog/aclchk.c:3376
+#, fuzzy, c-format
+msgid "must be owner of statistics object %s"
+msgstr "debe ser dueño del objeto grande %s"
+
+#: catalog/aclchk.c:3378
 #, c-format
 msgid "must be owner of tablespace %s"
 msgstr "debe ser dueño del tablespace %s"
 
-#: catalog/aclchk.c:3383
+#: catalog/aclchk.c:3380
 #, 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:3385
+#: catalog/aclchk.c:3382
 #, 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:3387
+#: catalog/aclchk.c:3384
 #, 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:3389
+#: catalog/aclchk.c:3386
 #, c-format
 msgid "must be owner of foreign server %s"
 msgstr "debe ser dueño del servidor foráneo %s"
 
-#: catalog/aclchk.c:3391
+#: catalog/aclchk.c:3388
 #, c-format
 msgid "must be owner of event trigger %s"
 msgstr "debe ser dueño del disparador por eventos %s"
 
-#: catalog/aclchk.c:3393
+#: catalog/aclchk.c:3390
 #, c-format
 msgid "must be owner of extension %s"
 msgstr "debe ser dueño de la extensión %s"
 
-#: catalog/aclchk.c:3435
+#: catalog/aclchk.c:3392
+#, fuzzy, c-format
+msgid "must be owner of publication %s"
+msgstr "debe ser dueño de la relación %s"
+
+#: catalog/aclchk.c:3394
+#, fuzzy, c-format
+msgid "must be owner of subscription %s"
+msgstr "debe ser dueño de la función %s"
+
+#: catalog/aclchk.c:3436
 #, 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:3554 catalog/aclchk.c:3562
+#: catalog/aclchk.c:3559 catalog/aclchk.c:3567
 #, 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:3635 catalog/aclchk.c:4549
+#: catalog/aclchk.c:3640 catalog/aclchk.c:4559
 #, c-format
 msgid "relation with OID %u does not exist"
 msgstr "no existe la relación con OID %u"
 
-#: catalog/aclchk.c:3734 catalog/aclchk.c:4967
+#: catalog/aclchk.c:3739 catalog/aclchk.c:4977
 #, c-format
 msgid "database with OID %u does not exist"
 msgstr "no existe la base de datos con OID %u"
 
-#: catalog/aclchk.c:3788 catalog/aclchk.c:4627 tcop/fastpath.c:223
+#: catalog/aclchk.c:3793 catalog/aclchk.c:4637 tcop/fastpath.c:223
+#: utils/fmgr/fmgr.c:2117
 #, c-format
 msgid "function with OID %u does not exist"
 msgstr "no existe la función con OID %u"
 
-#: catalog/aclchk.c:3842 catalog/aclchk.c:4653
+#: catalog/aclchk.c:3847 catalog/aclchk.c:4663
 #, c-format
 msgid "language with OID %u does not exist"
 msgstr "no existe el lenguaje con OID %u"
 
-#: catalog/aclchk.c:4006 catalog/aclchk.c:4725
+#: catalog/aclchk.c:4011 catalog/aclchk.c:4735
 #, c-format
 msgid "schema with OID %u does not exist"
 msgstr "no existe el esquema con OID %u"
 
-#: catalog/aclchk.c:4060 catalog/aclchk.c:4752
+#: catalog/aclchk.c:4065 catalog/aclchk.c:4762
 #, c-format
 msgid "tablespace with OID %u does not exist"
 msgstr "no existe el tablespace con OID %u"
 
-#: catalog/aclchk.c:4118 catalog/aclchk.c:4886 commands/foreigncmds.c:325
+#: catalog/aclchk.c:4124 catalog/aclchk.c:4896 commands/foreigncmds.c:324
 #, c-format
 msgid "foreign-data wrapper with OID %u does not exist"
 msgstr "no existe el conector de datos externos con OID %u"
 
-#: catalog/aclchk.c:4179 catalog/aclchk.c:4913 commands/foreigncmds.c:461
+#: catalog/aclchk.c:4186 catalog/aclchk.c:4923 commands/foreigncmds.c:459
 #, c-format
 msgid "foreign server with OID %u does not exist"
 msgstr "no existe el servidor foráneo con OID %u"
 
-#: catalog/aclchk.c:4238 catalog/aclchk.c:4252 catalog/aclchk.c:4575
+#: catalog/aclchk.c:4246 catalog/aclchk.c:4585 utils/cache/typcache.c:238
 #, c-format
 msgid "type with OID %u does not exist"
 msgstr "no existe el tipo con OID %u"
 
-#: catalog/aclchk.c:4601
+#: catalog/aclchk.c:4611
 #, c-format
 msgid "operator with OID %u does not exist"
 msgstr "no existe el operador con OID %u"
 
-#: catalog/aclchk.c:4778
+#: catalog/aclchk.c:4788
 #, c-format
 msgid "operator class with OID %u does not exist"
 msgstr "no existe la clase de operadores con OID %u"
 
-#: catalog/aclchk.c:4805
+#: catalog/aclchk.c:4815
 #, c-format
 msgid "operator family with OID %u does not exist"
 msgstr "no existe la familia de operadores con OID %u"
 
-#: catalog/aclchk.c:4832
+#: catalog/aclchk.c:4842
 #, c-format
 msgid "text search dictionary with OID %u does not exist"
 msgstr "no existe el diccionario de búsqueda en texto con OID %u"
 
-#: catalog/aclchk.c:4859
+#: catalog/aclchk.c:4869
 #, c-format
 msgid "text search configuration with OID %u does not exist"
 msgstr "no existe la configuración de búsqueda en texto con OID %u"
 
-#: catalog/aclchk.c:4940 commands/event_trigger.c:587
+#: catalog/aclchk.c:4950 commands/event_trigger.c:588
 #, c-format
 msgid "event trigger with OID %u does not exist"
 msgstr "no existe el disparador por eventos con OID %u"
 
-#: catalog/aclchk.c:4993
+#: catalog/aclchk.c:5003 commands/collationcmds.c:344
 #, c-format
 msgid "collation with OID %u does not exist"
 msgstr "no existe el ordenamiento (collation) con OID %u"
 
-#: catalog/aclchk.c:5019
+#: catalog/aclchk.c:5029
 #, c-format
 msgid "conversion with OID %u does not exist"
 msgstr "no existe la conversión con OID %u"
 
-#: catalog/aclchk.c:5060
+#: catalog/aclchk.c:5070
 #, c-format
 msgid "extension with OID %u does not exist"
 msgstr "no existe la extensión con OID %u"
 
-#: catalog/dependency.c:646
+#: catalog/aclchk.c:5097 commands/publicationcmds.c:733
+#, fuzzy, c-format
+msgid "publication with OID %u does not exist"
+msgstr "no existe la relación con OID %u"
+
+#: catalog/aclchk.c:5123 commands/subscriptioncmds.c:1075
+#, fuzzy, c-format
+msgid "subscription with OID %u does not exist"
+msgstr "no existe la función con OID %u"
+
+#: catalog/aclchk.c:5149
+#, fuzzy, c-format
+msgid "statistics object with OID %u does not exist"
+msgstr "no existe el tablespace con OID %u"
+
+#: catalog/dependency.c:613
 #, c-format
 msgid "cannot drop %s because %s requires it"
 msgstr "no se puede eliminar %s porque %s lo requiere"
 
-#: catalog/dependency.c:649
+#: catalog/dependency.c:616
 #, c-format
 msgid "You can drop %s instead."
 msgstr "Puede eliminar %s en su lugar."
 
-#: catalog/dependency.c:811 catalog/pg_shdepend.c:576
+#: catalog/dependency.c:779 catalog/pg_shdepend.c:574
 #, 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:927
+#: catalog/dependency.c:897
 #, c-format
 msgid "drop auto-cascades to %s"
 msgstr "eliminando automáticamente %s"
 
-#: catalog/dependency.c:939 catalog/dependency.c:948
+#: catalog/dependency.c:909 catalog/dependency.c:918
 #, c-format
 msgid "%s depends on %s"
 msgstr "%s depende de %s"
 
-#: catalog/dependency.c:960 catalog/dependency.c:969
+#: catalog/dependency.c:930 catalog/dependency.c:939
 #, c-format
 msgid "drop cascades to %s"
 msgstr "eliminando además %s"
 
-#: catalog/dependency.c:977 catalog/pg_shdepend.c:687
+#: catalog/dependency.c:947 catalog/pg_shdepend.c:685
 #, c-format
 msgid ""
 "\n"
@@ -3636,190 +3592,190 @@ msgstr[1] ""
 "\n"
 "y otros %d objetos (vea el registro del servidor para obtener la lista)"
 
-#: catalog/dependency.c:989
+#: catalog/dependency.c:959
 #, 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:993 catalog/dependency.c:1000
+#: catalog/dependency.c:963 catalog/dependency.c:970
 #, 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:997
+#: catalog/dependency.c:967
 #, 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"
 
 #. translator: %d always has a value larger than 1
-#: catalog/dependency.c:1006
+#: catalog/dependency.c:976
 #, 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:1634
-#, c-format
-msgid "constant of the type \"regrole\" cannot be used here"
-msgstr ""
+#: catalog/dependency.c:1635
+#, fuzzy, c-format
+msgid "constant of the type %s cannot be used here"
+msgstr "no se puede usar una constante de tipo «regrole» aquí"
 
-#: catalog/heap.c:277
+#: catalog/heap.c:283
 #, c-format
 msgid "permission denied to create \"%s.%s\""
 msgstr "se ha denegado el permiso para crear «%s.%s»"
 
-#: catalog/heap.c:279
+#: catalog/heap.c:285
 #, c-format
 msgid "System catalog modifications are currently disallowed."
 msgstr "Las modificaciones al catálogo del sistema están actualmente deshabilitadas."
 
-#: catalog/heap.c:414 commands/tablecmds.c:1438 commands/tablecmds.c:1895
-#: commands/tablecmds.c:4821
+#: catalog/heap.c:421 commands/tablecmds.c:1649 commands/tablecmds.c:2159
+#: commands/tablecmds.c:5212
 #, c-format
 msgid "tables can have at most %d columns"
 msgstr "las tablas pueden tener a lo más %d columnas"
 
-#: catalog/heap.c:431 commands/tablecmds.c:5082
+#: catalog/heap.c:438 commands/tablecmds.c:5471
 #, 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:447
+#: catalog/heap.c:454
 #, c-format
 msgid "column name \"%s\" specified more than once"
 msgstr "el nombre de columna «%s» fue especificado más de una vez"
 
-#: catalog/heap.c:497
-#, c-format
-msgid "column \"%s\" has type \"unknown\""
-msgstr "la columna «%s» tiene tipo «unknown» (desconocido)"
-
-#: catalog/heap.c:498
-#, c-format
-msgid "Proceeding with relation creation anyway."
-msgstr "Continuando con la creación de la relación de todas maneras."
-
-#: catalog/heap.c:511
+#: catalog/heap.c:507
 #, c-format
 msgid "column \"%s\" has pseudo-type %s"
 msgstr "la columna «%s» tiene pseudotipo %s"
 
-#: catalog/heap.c:541
+#: catalog/heap.c:537
 #, 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"
 
-#: catalog/heap.c:583 commands/createas.c:373
+#: catalog/heap.c:579 commands/createas.c:201 commands/createas.c:498
 #, 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:585 commands/createas.c:375 commands/indexcmds.c:1132
-#: commands/view.c:116 regex/regc_pg_locale.c:262 utils/adt/formatting.c:1514
-#: utils/adt/formatting.c:1566 utils/adt/formatting.c:1634
-#: utils/adt/formatting.c:1686 utils/adt/formatting.c:1755
-#: utils/adt/formatting.c:1819 utils/adt/like.c:213 utils/adt/selfuncs.c:5330
-#: utils/adt/varlena.c:1421 utils/adt/varlena.c:1826
+#: catalog/heap.c:581 commands/createas.c:204 commands/createas.c:501
+#: commands/indexcmds.c:1149 commands/tablecmds.c:13376 commands/view.c:103
+#: regex/regc_pg_locale.c:263 utils/adt/formatting.c:1547
+#: utils/adt/formatting.c:1671 utils/adt/formatting.c:1796
+#: utils/adt/like.c:184 utils/adt/selfuncs.c:5563 utils/adt/varlena.c:1417
+#: utils/adt/varlena.c:1866
 #, c-format
 msgid "Use the COLLATE clause to set the collation explicitly."
 msgstr "Use la cláusula COLLATE para establecer el ordenamiento explícitamente."
 
-#: catalog/heap.c:1066 catalog/index.c:792 commands/tablecmds.c:2622
+#: catalog/heap.c:1067 catalog/index.c:807 commands/tablecmds.c:2943
 #, c-format
 msgid "relation \"%s\" already exists"
 msgstr "la relación «%s» ya existe"
 
-#: catalog/heap.c:1082 catalog/pg_type.c:412 catalog/pg_type.c:722
-#: commands/typecmds.c:237 commands/typecmds.c:784 commands/typecmds.c:1135
-#: commands/typecmds.c:1357 commands/typecmds.c:2113
+#: catalog/heap.c:1083 catalog/pg_type.c:410 catalog/pg_type.c:732
+#: commands/typecmds.c:239 commands/typecmds.c:788 commands/typecmds.c:1139
+#: commands/typecmds.c:1350 commands/typecmds.c:2106
 #, c-format
 msgid "type \"%s\" already exists"
 msgstr "ya existe un tipo «%s»"
 
-#: catalog/heap.c:1083
+#: catalog/heap.c:1084
 #, 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:1111
-#, fuzzy, c-format
+#: catalog/heap.c:1113
+#, c-format
 msgid "pg_class heap OID value not set when in binary upgrade mode"
-msgstr "debe ser superusuario para conectarse en modo de actualización binaria"
+msgstr "el valor de OID de heap de pg_class no se definió en modo de actualización binaria"
+
+#: catalog/heap.c:2078
+#, fuzzy, c-format
+msgid "cannot add NO INHERIT constraint to partitioned table \"%s\""
+msgstr "no se puede usar una restricción unique postergable para la tabla referenciada «%s»"
 
-#: catalog/heap.c:2289
+#: catalog/heap.c:2336
 #, c-format
 msgid "check constraint \"%s\" already exists"
 msgstr "la restricción «check» «%s» ya existe"
 
-#: catalog/heap.c:2442 catalog/pg_constraint.c:654 commands/tablecmds.c:6070
+#: catalog/heap.c:2504 catalog/pg_constraint.c:649 commands/tablecmds.c:6825
 #, 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:2452
+#: catalog/heap.c:2511
 #, 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:2466
+#: catalog/heap.c:2522
+#, 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:2532
+#, 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:2537
 #, c-format
 msgid "merging constraint \"%s\" with inherited definition"
 msgstr "mezclando la restricción «%s» con la definición heredada"
 
-#: catalog/heap.c:2559
+#: catalog/heap.c:2653
 #, c-format
 msgid "cannot use column references in default expression"
 msgstr "no se pueden usar referencias a columnas en una cláusula default"
 
-#: catalog/heap.c:2570
-#, c-format
-msgid "default expression must not return a set"
-msgstr "expresiones default no pueden retornar conjuntos"
-
-#: catalog/heap.c:2589 rewrite/rewriteHandler.c:1084
+#: catalog/heap.c:2678 rewrite/rewriteHandler.c:1140
 #, 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:2594 commands/prepare.c:374 parser/parse_node.c:428
-#: parser/parse_target.c:528 parser/parse_target.c:778
-#: parser/parse_target.c:788 rewrite/rewriteHandler.c:1089
+#: catalog/heap.c:2683 commands/prepare.c:384 parser/parse_node.c:430
+#: parser/parse_target.c:590 parser/parse_target.c:840
+#: parser/parse_target.c:850 rewrite/rewriteHandler.c:1145
 #, 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:2641
+#: catalog/heap.c:2730
 #, 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:2881
+#: catalog/heap.c:2970
 #, 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:2882
+#: catalog/heap.c:2971
 #, 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:2887
+#: catalog/heap.c:2976
 #, 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:2888
+#: catalog/heap.c:2977
 #, c-format
 msgid "Table \"%s\" references \"%s\"."
 msgstr "La tabla «%s» hace referencia a «%s»."
 
-#: catalog/heap.c:2890
+#: catalog/heap.c:2979
 #, 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:210 parser/parse_utilcmd.c:1486 parser/parse_utilcmd.c:1572
+#: catalog/index.c:210 parser/parse_utilcmd.c:1670 parser/parse_utilcmd.c:1756
 #, c-format
 msgid "multiple primary keys for table \"%s\" are not allowed"
 msgstr "no se permiten múltiples llaves primarias para la tabla «%s»"
@@ -3829,452 +3785,425 @@ msgstr "no se permiten múltiples llaves primarias para la tabla «%s»"
 msgid "primary keys cannot be expressions"
 msgstr "las llaves primarias no pueden ser expresiones"
 
-#: catalog/index.c:742 catalog/index.c:1160
+#: catalog/index.c:757 catalog/index.c:1175
 #, 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:752
+#: catalog/index.c:767
 #, 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:770
+#: catalog/index.c:785
 #, c-format
 msgid "shared indexes cannot be created after initdb"
 msgstr "no se pueden crear índices compartidos después de initdb"
 
-#: catalog/index.c:784 commands/createas.c:100 commands/sequence.c:141
-#: parser/parse_utilcmd.c:192
+#: catalog/index.c:799 commands/createas.c:250 commands/sequence.c:152
+#: parser/parse_utilcmd.c:200
 #, c-format
 msgid "relation \"%s\" already exists, skipping"
 msgstr "la relación «%s» ya existe, ignorando"
 
-#: catalog/index.c:820
-#, fuzzy, c-format
+#: catalog/index.c:835
+#, c-format
 msgid "pg_class index OID value not set when in binary upgrade mode"
-msgstr "debe ser superusuario para conectarse en modo de actualización binaria"
+msgstr "el valor de OID de índice de pg_class no se definió en modo de actualización binaria"
 
-#: catalog/index.c:1422
+#: catalog/index.c:1436
 #, 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:2004
+#: catalog/index.c:2020
 #, c-format
 msgid "building index \"%s\" on table \"%s\""
 msgstr "construyendo índice «%s» en la tabla «%s»"
 
-#: catalog/index.c:3315
+#: catalog/index.c:3332
 #, 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:3440
-#, fuzzy, c-format
-msgid "index \"%s\" was reindexed"
-msgstr "la tabla «%s.%s» fue reindexada"
-
-#: catalog/index.c:3442 commands/vacuumlazy.c:1323 commands/vacuumlazy.c:1399
-#: commands/vacuumlazy.c:1588 commands/vacuumlazy.c:1789
+#: catalog/index.c:3463
 #, c-format
-msgid "%s."
-msgstr "%s."
+msgid "index \"%s\" was reindexed"
+msgstr "el índice «%s» fue reindexado"
 
-#: catalog/namespace.c:249 catalog/namespace.c:447 catalog/namespace.c:541
-#: commands/trigger.c:4527
+#: catalog/namespace.c:235 catalog/namespace.c:433 catalog/namespace.c:527
+#: commands/trigger.c:4931
 #, 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:306
+#: catalog/namespace.c:292
 #, c-format
 msgid "temporary tables cannot specify a schema name"
 msgstr "las tablas temporales no pueden especificar un nombre de esquema"
 
-#: catalog/namespace.c:385
+#: catalog/namespace.c:371
 #, c-format
 msgid "could not obtain lock on relation \"%s.%s\""
 msgstr "no se pudo bloquear un candado en la relación «%s.%s»"
 
-#: catalog/namespace.c:390 commands/lockcmds.c:146
+#: catalog/namespace.c:376 commands/lockcmds.c:145
 #, c-format
 msgid "could not obtain lock on relation \"%s\""
 msgstr "no se pudo bloquear un candado en la relación «%s»"
 
-#: catalog/namespace.c:414 parser/parse_relation.c:1137
+#: catalog/namespace.c:400 parser/parse_relation.c:1158
 #, c-format
 msgid "relation \"%s.%s\" does not exist"
 msgstr "no existe la relación «%s.%s»"
 
-#: catalog/namespace.c:419 parser/parse_relation.c:1150
-#: parser/parse_relation.c:1158 utils/adt/regproc.c:1034
+#: catalog/namespace.c:405 parser/parse_relation.c:1177
+#: parser/parse_relation.c:1185
 #, c-format
 msgid "relation \"%s\" does not exist"
 msgstr "no existe la relación «%s»"
 
-#: catalog/namespace.c:487 catalog/namespace.c:2841 commands/extension.c:1382
-#: commands/extension.c:1388
+#: catalog/namespace.c:473 catalog/namespace.c:2992 commands/extension.c:1466
+#: commands/extension.c:1472
 #, 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:639 catalog/namespace.c:652
+#: catalog/namespace.c:625 catalog/namespace.c:638
 #, 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:643
+#: catalog/namespace.c:629
 #, 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:658
+#: catalog/namespace.c:644
 #, 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:2154
+#: catalog/namespace.c:2182
+#, fuzzy, c-format
+msgid "statistics object \"%s\" does not exist"
+msgstr "no existe la tabla «%s»"
+
+#: catalog/namespace.c:2305
 #, c-format
 msgid "text search parser \"%s\" does not exist"
 msgstr "no existe el analizador de búsqueda en texto «%s»"
 
-#: catalog/namespace.c:2280
+#: catalog/namespace.c:2431
 #, c-format
 msgid "text search dictionary \"%s\" does not exist"
 msgstr "no existe el diccionario de búsqueda en texto «%s»"
 
-#: catalog/namespace.c:2407
+#: catalog/namespace.c:2558
 #, c-format
 msgid "text search template \"%s\" does not exist"
 msgstr "no existe la plantilla de búsqueda en texto «%s»"
 
-#: catalog/namespace.c:2533 commands/tsearchcmds.c:1197
-#: utils/cache/ts_cache.c:613
+#: catalog/namespace.c:2684 commands/tsearchcmds.c:1185
+#: utils/cache/ts_cache.c:612
 #, 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:2646 parser/parse_expr.c:789 parser/parse_target.c:1130
+#: catalog/namespace.c:2797 parser/parse_expr.c:789 parser/parse_target.c:1192
 #, 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:2652 gram.y:13434 gram.y:14791 parser/parse_expr.c:796
-#: parser/parse_target.c:1137
+#: catalog/namespace.c:2803 gram.y:14321 gram.y:15742 parser/parse_expr.c:796
+#: parser/parse_target.c:1199
 #, c-format
 msgid "improper qualified name (too many dotted names): %s"
 msgstr "el nombre no es válido (demasiados puntos): %s"
 
-#: catalog/namespace.c:2783
+#: catalog/namespace.c:2934
 #, 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:2789
+#: catalog/namespace.c:2940
 #, 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:2862 commands/schemacmds.c:242
-#: commands/schemacmds.c:321 commands/tablecmds.c:740
+#: catalog/namespace.c:3013 commands/schemacmds.c:256
+#: commands/schemacmds.c:334 commands/tablecmds.c:891
 #, c-format
 msgid "schema \"%s\" does not exist"
 msgstr "no existe el esquema «%s»"
 
-#: catalog/namespace.c:2893
+#: catalog/namespace.c:3044
 #, 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:3358
+#: catalog/namespace.c:3538
 #, 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:3413
+#: catalog/namespace.c:3593
 #, c-format
 msgid "conversion \"%s\" does not exist"
 msgstr "no existe la conversión «%s»"
 
-#: catalog/namespace.c:3621
+#: catalog/namespace.c:3801
 #, 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:3637
+#: catalog/namespace.c:3817
 #, c-format
 msgid "cannot create temporary tables during recovery"
 msgstr "no se pueden crear tablas temporales durante la recuperación"
 
-#: catalog/namespace.c:3643
+#: catalog/namespace.c:3823
 #, fuzzy, c-format
-msgid "cannot create temporary tables in parallel mode"
-msgstr "no se pueden crear tablas temporales durante la recuperación"
+#| msgid "cannot access temporary tables during a parallel operation"
+msgid "cannot create temporary tables during a parallel operation"
+msgstr "no se pueden acceder tablas temporales durante una operación paralela"
 
-#: catalog/namespace.c:3887 commands/tablespace.c:1177 commands/variable.c:63
-#: utils/misc/guc.c:9853
+#: catalog/namespace.c:4072 commands/tablespace.c:1169 commands/variable.c:64
+#: utils/misc/guc.c:9979 utils/misc/guc.c:10057
 #, c-format
 msgid "List syntax is invalid."
 msgstr "La sintaxis de lista no es válida."
 
-#: catalog/objectaddress.c:1065
-#, fuzzy
-#| msgid "schema name cannot be qualified"
-msgid "access method name cannot be qualified"
-msgstr "un nombre de esquema no puede ser calificado"
-
-#: catalog/objectaddress.c:1068
-msgid "database name cannot be qualified"
-msgstr "un nombre de base de datos no puede ser calificado"
-
-#: catalog/objectaddress.c:1071 commands/extension.c:2506
-#, c-format
-msgid "extension name cannot be qualified"
-msgstr "un nombre de extensión no puede ser calificado"
-
-#: catalog/objectaddress.c:1074
-msgid "tablespace name cannot be qualified"
-msgstr "un nombre de tablespace no puede ser calificado"
-
-#: catalog/objectaddress.c:1077
-msgid "role name cannot be qualified"
-msgstr "un nombre de rol no puede ser calificado"
-
-#: catalog/objectaddress.c:1080
-msgid "schema name cannot be qualified"
-msgstr "un nombre de esquema no puede ser calificado"
-
-#: catalog/objectaddress.c:1083
-msgid "language name cannot be qualified"
-msgstr "un nombre de lenguaje no puede ser calificado"
-
-#: catalog/objectaddress.c:1086
-msgid "foreign-data wrapper name cannot be qualified"
-msgstr "un nombre de conector de datos externos no puede ser calificado"
-
-#: catalog/objectaddress.c:1089
-msgid "server name cannot be qualified"
-msgstr "un nombre de servidor no puede ser calificado"
-
-#: catalog/objectaddress.c:1092
-msgid "event trigger name cannot be qualified"
-msgstr "un nombre de disparador por eventos no puede ser calificado"
-
-#: catalog/objectaddress.c:1210 commands/lockcmds.c:94 commands/policy.c:94
-#: commands/policy.c:389 commands/policy.c:478 commands/tablecmds.c:217
-#: commands/tablecmds.c:1299 commands/tablecmds.c:4348
-#: commands/tablecmds.c:7979
+#: catalog/objectaddress.c:1237 catalog/pg_publication.c:66
+#: commands/lockcmds.c:93 commands/policy.c:94 commands/policy.c:391
+#: commands/policy.c:481 commands/tablecmds.c:223 commands/tablecmds.c:265
+#: commands/tablecmds.c:1507 commands/tablecmds.c:4722
+#: commands/tablecmds.c:8810
 #, c-format
 msgid "\"%s\" is not a table"
 msgstr "«%s» no es una tabla"
 
-#: catalog/objectaddress.c:1217 commands/tablecmds.c:229
-#: commands/tablecmds.c:4378 commands/tablecmds.c:12014 commands/view.c:155
+#: catalog/objectaddress.c:1244 commands/tablecmds.c:235
+#: commands/tablecmds.c:4752 commands/tablecmds.c:13085 commands/view.c:141
 #, c-format
 msgid "\"%s\" is not a view"
 msgstr "«%s» no es una vista"
 
-#: catalog/objectaddress.c:1224 commands/matview.c:174
-#: commands/tablecmds.c:235 commands/tablecmds.c:12019
+#: catalog/objectaddress.c:1251 commands/matview.c:174
+#: commands/tablecmds.c:241 commands/tablecmds.c:13090
 #, c-format
 msgid "\"%s\" is not a materialized view"
 msgstr "«%s» no es una vista materializada"
 
-#: catalog/objectaddress.c:1231 commands/tablecmds.c:253
-#: commands/tablecmds.c:4381 commands/tablecmds.c:12024
+#: catalog/objectaddress.c:1258 commands/tablecmds.c:259
+#: commands/tablecmds.c:4755 commands/tablecmds.c:13095
 #, c-format
 msgid "\"%s\" is not a foreign table"
 msgstr "«%s» no es una tabla foránea"
 
-#: catalog/objectaddress.c:1376 catalog/objectaddress.c:1429
+#: catalog/objectaddress.c:1299
+#, fuzzy, c-format
+msgid "must specify relation and object name"
+msgstr "%s debe especificar nombres de relaciones sin calificar"
+
+#: catalog/objectaddress.c:1375 catalog/objectaddress.c:1428
 #, c-format
 msgid "column name must be qualified"
 msgstr "el nombre de columna debe ser calificado"
 
-#: catalog/objectaddress.c:1472
-#, fuzzy, c-format
+#: catalog/objectaddress.c:1471
+#, c-format
 msgid "default value for column \"%s\" of relation \"%s\" does not exist"
-msgstr "no existe la columna «%s» en la relación «%s»"
+msgstr "no existe el valor por omisión para la columna «%s» de la relación «%s»"
 
-#: catalog/objectaddress.c:1512 commands/functioncmds.c:128
-#: commands/tablecmds.c:245 commands/typecmds.c:3214 parser/parse_type.c:226
-#: parser/parse_type.c:255 parser/parse_type.c:795 utils/adt/acl.c:4374
-#: utils/adt/regproc.c:1225
+#: catalog/objectaddress.c:1508 commands/functioncmds.c:128
+#: commands/tablecmds.c:251 commands/typecmds.c:3233 parser/parse_type.c:226
+#: parser/parse_type.c:255 parser/parse_type.c:794 utils/adt/acl.c:4357
 #, c-format
 msgid "type \"%s\" does not exist"
 msgstr "no existe el tipo «%s»"
 
-#: catalog/objectaddress.c:1629
-#, fuzzy, c-format
+#: catalog/objectaddress.c:1625
+#, c-format
 msgid "operator %d (%s, %s) of %s does not exist"
-msgstr "operador %d (%s, %s) de %s: %s"
+msgstr "no existe el operador %d (%s, %s) de %s"
 
-#: catalog/objectaddress.c:1658
-#, fuzzy, c-format
+#: catalog/objectaddress.c:1656
+#, c-format
 msgid "function %d (%s, %s) of %s does not exist"
-msgstr "función %d (%s, %s) de %s: %s"
+msgstr "no existe la función %d (%s, %s) de %s"
 
 #: catalog/objectaddress.c:1707 catalog/objectaddress.c:1733
-#, fuzzy, c-format
+#, c-format
 msgid "user mapping for user \"%s\" on server \"%s\" does not exist"
-msgstr "no existe un mapeo para el tipo de elemento «%s»"
+msgstr "no existe el mapeo para el usuario «%s» en el servidor «%s»"
 
-#: catalog/objectaddress.c:1722 commands/foreigncmds.c:430
-#: commands/foreigncmds.c:997 commands/foreigncmds.c:1372
-#: foreign/foreign.c:798
+#: catalog/objectaddress.c:1722 commands/foreigncmds.c:428
+#: commands/foreigncmds.c:1004 commands/foreigncmds.c:1377
+#: foreign/foreign.c:688
 #, c-format
 msgid "server \"%s\" does not exist"
 msgstr "no existe el servidor «%s»"
 
-#: catalog/objectaddress.c:1794
+#: catalog/objectaddress.c:1789
 #, fuzzy, c-format
-msgid "unrecognized default ACL object type %c"
-msgstr "tipo de locktag %d no reconocido"
+msgid "publication relation \"%s\" in publication \"%s\" does not exist"
+msgstr "no existe la restricción «%s» en la relación «%s»"
 
-#: catalog/objectaddress.c:1795
+#: catalog/objectaddress.c:1851
 #, fuzzy, c-format
-#| msgid "Valid values are \"[]\", \"[)\", \"(]\", and \"()\"."
-msgid "Valid object types are \"r\", \"S\", \"f\", and \"T\"."
-msgstr "Los valores aceptables son «[]», «[)», «(]» y «()»."
+#| msgid "unrecognized default ACL object type %c"
+msgid "unrecognized default ACL object type \"%c\""
+msgstr "tipo de objeto %c para ACL por omisión no reconocido"
 
-#: catalog/objectaddress.c:1841
+#: catalog/objectaddress.c:1852
 #, fuzzy, c-format
+msgid "Valid object types are \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"."
+msgstr "Tipos válidos de objeto son «t», «S», «f» y «T»."
+
+#: catalog/objectaddress.c:1903
+#, c-format
 msgid "default ACL for user \"%s\" in schema \"%s\" on %s does not exist"
-msgstr "no existe el procedimiento por omisión de conversión desde la codificación «%s» a «%s»"
+msgstr "no existe el ACL por omisión para el usuario «%s» en el esquema «%s» en %s"
 
-#: catalog/objectaddress.c:1846
-#, fuzzy, c-format
+#: catalog/objectaddress.c:1908
+#, c-format
 msgid "default ACL for user \"%s\" on %s does not exist"
-msgstr "no existe el usuario LDAP «%s»"
+msgstr "no existe el ACL por omisión para el usuario «%s» en %s"
 
-#: catalog/objectaddress.c:1873 catalog/objectaddress.c:1929
-#: catalog/objectaddress.c:1984
-#, fuzzy, c-format
+#: catalog/objectaddress.c:1935 catalog/objectaddress.c:1993
+#: catalog/objectaddress.c:2048
+#, c-format
 msgid "name or argument lists may not contain nulls"
-msgstr "el array no debe contener nulls"
+msgstr "las listas de nombres o argumentos no pueden contener nulls"
 
-#: catalog/objectaddress.c:1905
-#, fuzzy, c-format
+#: catalog/objectaddress.c:1969
+#, c-format
 msgid "unsupported object type \"%s\""
-msgstr "lenguaje no soportado: «%s»"
+msgstr "tipo de objeto «%s» no soportado"
 
-#: catalog/objectaddress.c:1925 catalog/objectaddress.c:1943
+#: catalog/objectaddress.c:1989 catalog/objectaddress.c:2007
+#: catalog/objectaddress.c:2145
 #, c-format
 msgid "name list length must be exactly %d"
-msgstr ""
+msgstr "el largo de la lista de nombres debe ser exactamente %d"
 
-#: catalog/objectaddress.c:1947
-#, fuzzy, c-format
+#: catalog/objectaddress.c:2011
+#, c-format
 msgid "large object OID may not be null"
-msgstr "el argumento %d no puede ser null"
+msgstr "el OID de objeto grande no puede ser null"
 
-#: catalog/objectaddress.c:1956 catalog/objectaddress.c:2016
-#: catalog/objectaddress.c:2023
-#, fuzzy, c-format
+#: catalog/objectaddress.c:2020 catalog/objectaddress.c:2081
+#: catalog/objectaddress.c:2088
+#, c-format
 msgid "name list length must be at least %d"
-msgstr "el largo para el tipo %s debe ser al menos 1"
+msgstr "el largo de la lista de nombres debe ser al menos %d"
 
-#: catalog/objectaddress.c:2009 catalog/objectaddress.c:2029
-#, fuzzy, c-format
+#: catalog/objectaddress.c:2074 catalog/objectaddress.c:2094
+#, c-format
 msgid "argument list length must be exactly %d"
-msgstr "el argumento de %s debe ser un nombre de tipo"
+msgstr "el largo de la lista de argumentos debe ser exactamente %d"
 
-#: catalog/objectaddress.c:2165 libpq/be-fsstubs.c:352
+#: catalog/objectaddress.c:2320 libpq/be-fsstubs.c:350
 #, c-format
 msgid "must be owner of large object %u"
 msgstr "debe ser dueño del objeto grande %u"
 
-#: catalog/objectaddress.c:2180 commands/functioncmds.c:1426
+#: catalog/objectaddress.c:2335 commands/functioncmds.c:1440
 #, 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:2220 catalog/objectaddress.c:2237
+#: catalog/objectaddress.c:2385 catalog/objectaddress.c:2402
 #, c-format
 msgid "must be superuser"
 msgstr "debe ser superusuario"
 
-#: catalog/objectaddress.c:2227
+#: catalog/objectaddress.c:2392
 #, c-format
 msgid "must have CREATEROLE privilege"
 msgstr "debe tener privilegio CREATEROLE"
 
-#: catalog/objectaddress.c:2307
-#, fuzzy, c-format
+#: catalog/objectaddress.c:2471
+#, c-format
 msgid "unrecognized object type \"%s\""
-msgstr "tipo de locktag %d no reconocido"
+msgstr "tipo de objeto «%s» no reconocido"
 
-#: catalog/objectaddress.c:2502
+#: catalog/objectaddress.c:2666
 #, c-format
 msgid " column %s"
 msgstr " columna %s"
 
-#: catalog/objectaddress.c:2508
+#: catalog/objectaddress.c:2672
 #, c-format
 msgid "function %s"
 msgstr "función %s"
 
-#: catalog/objectaddress.c:2513
+#: catalog/objectaddress.c:2677
 #, c-format
 msgid "type %s"
 msgstr "tipo %s"
 
-#: catalog/objectaddress.c:2543
+#: catalog/objectaddress.c:2707
 #, c-format
 msgid "cast from %s to %s"
 msgstr "conversión de %s a %s"
 
-#: catalog/objectaddress.c:2563
+#: catalog/objectaddress.c:2727
 #, c-format
 msgid "collation %s"
 msgstr "ordenamiento (collation) %s"
 
-#: catalog/objectaddress.c:2587
+#: catalog/objectaddress.c:2751
 #, c-format
 msgid "constraint %s on %s"
 msgstr "restricción «%s» en %s"
 
-#: catalog/objectaddress.c:2593
+#: catalog/objectaddress.c:2757
 #, c-format
 msgid "constraint %s"
 msgstr "restricción %s"
 
-#: catalog/objectaddress.c:2610
+#: catalog/objectaddress.c:2774
 #, c-format
 msgid "conversion %s"
 msgstr "conversión %s"
 
-#: catalog/objectaddress.c:2647
+#: catalog/objectaddress.c:2811
 #, c-format
 msgid "default for %s"
 msgstr "valor por omisión para %s"
 
-#: catalog/objectaddress.c:2656
+#: catalog/objectaddress.c:2820
 #, c-format
 msgid "language %s"
 msgstr "lenguaje %s"
 
-#: catalog/objectaddress.c:2661
+#: catalog/objectaddress.c:2825
 #, c-format
 msgid "large object %u"
 msgstr "objeto grande %u"
 
-#: catalog/objectaddress.c:2666
+#: catalog/objectaddress.c:2830
 #, c-format
 msgid "operator %s"
 msgstr "operador %s"
 
-#: catalog/objectaddress.c:2698
+#: catalog/objectaddress.c:2862
 #, 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:2885
+#, c-format
+msgid "access method %s"
+msgstr "método de acceso %s"
+
 #. translator: %d is the operator strategy (a number), the
 #. 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:2748
+#: catalog/objectaddress.c:2927
 #, c-format
 msgid "operator %d (%s, %s) of %s: %s"
 msgstr "operador %d (%s, %s) de %s: %s"
@@ -4283,346 +4212,397 @@ 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:2798
+#: catalog/objectaddress.c:2977
 #, c-format
 msgid "function %d (%s, %s) of %s: %s"
 msgstr "función %d (%s, %s) de %s: %s"
 
-#: catalog/objectaddress.c:2838
+#: catalog/objectaddress.c:3017
 #, c-format
 msgid "rule %s on "
 msgstr "regla «%s» en "
 
-#: catalog/objectaddress.c:2860
-#, fuzzy, c-format
-msgid "transform for %s language %s"
-msgstr "permiso denegado al lenguaje %s"
-
-#: catalog/objectaddress.c:2894
+#: catalog/objectaddress.c:3052
 #, c-format
 msgid "trigger %s on "
 msgstr "disparador %s en "
 
-#: catalog/objectaddress.c:2911
+#: catalog/objectaddress.c:3069
 #, c-format
 msgid "schema %s"
 msgstr "esquema %s"
 
-#: catalog/objectaddress.c:2924
+#: catalog/objectaddress.c:3086
+#, fuzzy, c-format
+msgid "statistics object %s"
+msgstr "recolector de estadísticas"
+
+#: catalog/objectaddress.c:3102
 #, c-format
 msgid "text search parser %s"
 msgstr "analizador de búsqueda en texto %s"
 
-#: catalog/objectaddress.c:2939
+#: catalog/objectaddress.c:3117
 #, c-format
 msgid "text search dictionary %s"
 msgstr "diccionario de búsqueda en texto %s"
 
-#: catalog/objectaddress.c:2954
+#: catalog/objectaddress.c:3132
 #, c-format
 msgid "text search template %s"
 msgstr "plantilla de búsqueda en texto %s"
 
-#: catalog/objectaddress.c:2969
+#: catalog/objectaddress.c:3147
 #, c-format
 msgid "text search configuration %s"
 msgstr "configuración de búsqueda en texto %s"
 
-#: catalog/objectaddress.c:2977
+#: catalog/objectaddress.c:3155
 #, c-format
 msgid "role %s"
 msgstr "rol %s"
 
-#: catalog/objectaddress.c:2990
+#: catalog/objectaddress.c:3168
 #, c-format
 msgid "database %s"
 msgstr "base de datos %s"
 
-#: catalog/objectaddress.c:3002
+#: catalog/objectaddress.c:3180
 #, c-format
 msgid "tablespace %s"
 msgstr "tablespace %s"
 
-#: catalog/objectaddress.c:3011
+#: catalog/objectaddress.c:3189
 #, c-format
 msgid "foreign-data wrapper %s"
 msgstr "conector de datos externos %s"
 
-#: catalog/objectaddress.c:3020
+#: catalog/objectaddress.c:3198
 #, c-format
 msgid "server %s"
 msgstr "servidor %s"
 
-#: catalog/objectaddress.c:3048
+#: catalog/objectaddress.c:3226
 #, c-format
 msgid "user mapping for %s on server %s"
 msgstr "mapeo para el usuario %s en el servidor %s"
 
-#: catalog/objectaddress.c:3083
+#: catalog/objectaddress.c:3261
 #, 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:3088
+#: catalog/objectaddress.c:3266
 #, 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:3093
+#: catalog/objectaddress.c:3271
 #, 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:3098
+#: catalog/objectaddress.c:3276
 #, 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:3104
+#: catalog/objectaddress.c:3281
+#, fuzzy, c-format
+msgid "default privileges on new schemas belonging to role %s"
+msgstr "privilegios por omisión en nuevas secuencias pertenecientes al rol %s"
+
+#: catalog/objectaddress.c:3287
 #, c-format
 msgid "default privileges belonging to role %s"
 msgstr "privilegios por omisión pertenecientes al rol %s"
 
-#: catalog/objectaddress.c:3112
+#: catalog/objectaddress.c:3295
 #, c-format
 msgid " in schema %s"
 msgstr " en esquema %s"
 
-#: catalog/objectaddress.c:3129
+#: catalog/objectaddress.c:3312
 #, c-format
 msgid "extension %s"
 msgstr "extensión %s"
 
-#: catalog/objectaddress.c:3142
+#: catalog/objectaddress.c:3325
 #, c-format
 msgid "event trigger %s"
 msgstr "disparador por eventos %s"
 
-#: catalog/objectaddress.c:3174
-#, fuzzy, c-format
+#: catalog/objectaddress.c:3357
+#, c-format
 msgid "policy %s on "
-msgstr "regla «%s» en "
+msgstr "política «%s» en "
 
-#: catalog/objectaddress.c:3192
+#: catalog/objectaddress.c:3368
 #, fuzzy, c-format
-#| msgid "access method \"%s\" does not exist"
-msgid "access method %s"
-msgstr "no existe el método de acceso «%s»"
+msgid "publication %s"
+msgstr "relación %s"
+
+#: catalog/objectaddress.c:3388
+#, c-format
+msgid "publication table %s in publication %s"
+msgstr ""
+
+#: catalog/objectaddress.c:3396
+#, fuzzy, c-format
+msgid "subscription %s"
+msgstr "función %s"
+
+#: catalog/objectaddress.c:3414
+#, c-format
+msgid "transform for %s language %s"
+msgstr "transformación para %s lenguaje %s"
 
-#: catalog/objectaddress.c:3252
+#: catalog/objectaddress.c:3475
 #, c-format
 msgid "table %s"
 msgstr "tabla %s"
 
-#: catalog/objectaddress.c:3256
+#: catalog/objectaddress.c:3479
 #, c-format
 msgid "index %s"
 msgstr "índice %s"
 
-#: catalog/objectaddress.c:3260
+#: catalog/objectaddress.c:3483
 #, c-format
 msgid "sequence %s"
 msgstr "secuencia %s"
 
-#: catalog/objectaddress.c:3264
+#: catalog/objectaddress.c:3487
 #, c-format
 msgid "toast table %s"
 msgstr "tabla toast %s"
 
-#: catalog/objectaddress.c:3268
+#: catalog/objectaddress.c:3491
 #, c-format
 msgid "view %s"
 msgstr "vista %s"
 
-#: catalog/objectaddress.c:3272
+#: catalog/objectaddress.c:3495
 #, c-format
 msgid "materialized view %s"
 msgstr "vista materializada %s"
 
-#: catalog/objectaddress.c:3276
+#: catalog/objectaddress.c:3499
 #, c-format
 msgid "composite type %s"
 msgstr "tipo compuesto %s"
 
-#: catalog/objectaddress.c:3280
+#: catalog/objectaddress.c:3503
 #, c-format
 msgid "foreign table %s"
 msgstr "tabla foránea %s"
 
-#: catalog/objectaddress.c:3285
+#: catalog/objectaddress.c:3508
 #, c-format
 msgid "relation %s"
 msgstr "relación %s"
 
-#: catalog/objectaddress.c:3322
+#: catalog/objectaddress.c:3545
 #, c-format
 msgid "operator family %s for access method %s"
 msgstr "familia de operadores %s para el método de acceso %s"
 
-#: catalog/pg_aggregate.c:126
+#: catalog/objectaddress.c:4914
+#, c-format
+msgid "%s in publication %s"
+msgstr ""
+
+#: catalog/partition.c:742
+#, fuzzy, c-format
+msgid "cannot create range partition with empty range"
+msgstr "no se pudo determinar el tipo de dato de transición"
+
+#: catalog/partition.c:836
+#, fuzzy, c-format
+msgid "partition \"%s\" would overlap partition \"%s\""
+msgstr "relación «%s» no es un padre de la relación «%s»"
+
+#: catalog/partition.c:945 catalog/partition.c:1123 commands/analyze.c:1446
+#: commands/copy.c:1466 commands/tablecmds.c:8872
+#: executor/execExprInterp.c:2837 executor/execMain.c:1878
+#: executor/execMain.c:1955 executor/execMain.c:2002 executor/execMain.c:3270
+#: executor/nodeModifyTable.c:1518
+msgid "could not convert row type"
+msgstr "no se pudo convertir el tipo de registro"
+
+#: catalog/pg_aggregate.c:125
 #, c-format
 msgid "aggregates cannot have more than %d argument"
 msgid_plural "aggregates cannot have more than %d arguments"
 msgstr[0] "las funciones de agregación no pueden tener más de %d argumento"
 msgstr[1] "las funciones de agregación no pueden tener más de %d argumentos"
 
-#: catalog/pg_aggregate.c:149 catalog/pg_aggregate.c:159
+#: catalog/pg_aggregate.c:148 catalog/pg_aggregate.c:158
 #, c-format
 msgid "cannot determine transition data type"
 msgstr "no se pudo determinar el tipo de dato de transición"
 
-#: catalog/pg_aggregate.c:150 catalog/pg_aggregate.c:160
+#: catalog/pg_aggregate.c:149 catalog/pg_aggregate.c:159
 #, c-format
 msgid "An aggregate using a polymorphic transition type must have at least one polymorphic argument."
 msgstr "Una función de agregación que use un tipo de dato de transición polimórfico debe tener al menos un argumento de tipo polimórfico."
 
-#: catalog/pg_aggregate.c:173
+#: catalog/pg_aggregate.c:172
 #, c-format
 msgid "a variadic ordered-set aggregate must use VARIADIC type ANY"
 msgstr "una función de agregación variádica de conjuntos ordenados debe ser de tipo VARIADIC ANY"
 
-#: catalog/pg_aggregate.c:199
+#: catalog/pg_aggregate.c:198
 #, c-format
 msgid "a hypothetical-set aggregate must have direct arguments matching its aggregated arguments"
 msgstr "la función de agregación de conjunto hipotético debe tener argumentos directos que coincidan con los argumentos agregados"
 
-#: catalog/pg_aggregate.c:246 catalog/pg_aggregate.c:290
+#: catalog/pg_aggregate.c:245 catalog/pg_aggregate.c:289
 #, c-format
 msgid "return type of transition function %s is not %s"
 msgstr "el tipo de retorno de la función de transición %s no es %s"
 
-#: catalog/pg_aggregate.c:266 catalog/pg_aggregate.c:309
+#: catalog/pg_aggregate.c:265 catalog/pg_aggregate.c:308
 #, c-format
 msgid "must not omit initial value when transition function is strict and transition type is not compatible with input type"
 msgstr "no se puede omitir el valor inicial cuando la función de transición es «strict» y el tipo de transición no es compatible con el tipo de entrada"
 
-#: catalog/pg_aggregate.c:335
+#: catalog/pg_aggregate.c:334
 #, c-format
 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:2305
+#: catalog/pg_aggregate.c:351 executor/nodeWindowAgg.c:2294
 #, 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"
 
-#: catalog/pg_aggregate.c:396 catalog/pg_aggregate.c:547
+#: catalog/pg_aggregate.c:395 catalog/pg_aggregate.c:545
 #, c-format
 msgid "final function with extra arguments must not be declared STRICT"
 msgstr "la función final con argumentos extra no debe declararse STRICT"
 
-#: catalog/pg_aggregate.c:426
-#, fuzzy, c-format
-#| msgid "return type of transition function %s is not %s"
+#: catalog/pg_aggregate.c:425
+#, c-format
 msgid "return type of combine function %s is not %s"
-msgstr "el tipo de retorno de la función de transición %s no es %s"
+msgstr "el tipo de retorno de la función «combine» %s no es %s"
 
-#: catalog/pg_aggregate.c:437
+#: catalog/pg_aggregate.c:436
 #, fuzzy, c-format
-#| msgid "final function with extra arguments must not be declared STRICT"
-msgid "combine function with \"%s\" transition type must not be declared STRICT"
-msgstr "la función final con argumentos extra no debe declararse STRICT"
+#| msgid "combine function with \"%s\" transition type must not be declared STRICT"
+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"
 
-#: catalog/pg_aggregate.c:457
-#, fuzzy, c-format
-#| msgid "return type of transition function %s is not %s"
+#: catalog/pg_aggregate.c:455
+#, c-format
 msgid "return type of serialization function %s is not %s"
-msgstr "el tipo de retorno de la función de transición %s no es %s"
+msgstr "el tipo de retorno de la función de serialización %s no es %s"
 
-#: catalog/pg_aggregate.c:477
-#, fuzzy, c-format
-#| msgid "return type of transition function %s is not %s"
+#: catalog/pg_aggregate.c:475
+#, c-format
 msgid "return type of deserialization function %s is not %s"
-msgstr "el tipo de retorno de la función de transición %s no es %s"
+msgstr "el tipo de retorno de la función de deserialización %s no es %s"
 
-#: catalog/pg_aggregate.c:493 catalog/pg_proc.c:246 catalog/pg_proc.c:253
+#: catalog/pg_aggregate.c:491 catalog/pg_proc.c:243 catalog/pg_proc.c:250
 #, c-format
 msgid "cannot determine result data type"
 msgstr "no se puede determinar el tipo de dato del resultado"
 
-#: catalog/pg_aggregate.c:494
+#: catalog/pg_aggregate.c:492
 #, c-format
 msgid "An aggregate returning a polymorphic type must have at least one polymorphic argument."
 msgstr "Una función de agregación que retorne un tipo de datos polimórfico debe tener al menos un argumento de tipo polimórfico."
 
-#: catalog/pg_aggregate.c:506 catalog/pg_proc.c:259
+#: catalog/pg_aggregate.c:504 catalog/pg_proc.c:256
 #, c-format
 msgid "unsafe use of pseudo-type \"internal\""
 msgstr "uso inseguro de pseudotipo «internal»"
 
-#: catalog/pg_aggregate.c:507 catalog/pg_proc.c:260
+#: catalog/pg_aggregate.c:505 catalog/pg_proc.c:257
 #, c-format
 msgid "A function returning \"internal\" must have at least one \"internal\" argument."
 msgstr "Una función que retorne «internal» debe tener al menos un argumento de tipo «internal»."
 
-#: catalog/pg_aggregate.c:560
+#: catalog/pg_aggregate.c:558
 #, c-format
 msgid "moving-aggregate implementation returns type %s, but plain implementation returns type %s"
 msgstr "la implementación de la función de agregación en modo «moving» devuelve tipo de dato %s, pero la implementación normal devuelve tipo de dato %s"
 
-#: catalog/pg_aggregate.c:571
+#: catalog/pg_aggregate.c:569
 #, c-format
 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:816 commands/typecmds.c:1705
-#: commands/typecmds.c:1756 commands/typecmds.c:1787 commands/typecmds.c:1810
-#: commands/typecmds.c:1831 commands/typecmds.c:1858 commands/typecmds.c:1885
-#: commands/typecmds.c:1962 commands/typecmds.c:2004 parser/parse_func.c:364
-#: parser/parse_func.c:393 parser/parse_func.c:418 parser/parse_func.c:432
-#: parser/parse_func.c:507 parser/parse_func.c:518 parser/parse_func.c:1921
+#: catalog/pg_aggregate.c:810 commands/typecmds.c:1698
+#: commands/typecmds.c:1749 commands/typecmds.c:1780 commands/typecmds.c:1803
+#: commands/typecmds.c:1824 commands/typecmds.c:1851 commands/typecmds.c:1878
+#: commands/typecmds.c:1955 commands/typecmds.c:1997 parser/parse_func.c:369
+#: parser/parse_func.c:398 parser/parse_func.c:423 parser/parse_func.c:437
+#: parser/parse_func.c:512 parser/parse_func.c:523 parser/parse_func.c:1977
 #, c-format
 msgid "function %s does not exist"
 msgstr "no existe la función %s"
 
-#: catalog/pg_aggregate.c:822
+#: catalog/pg_aggregate.c:816
 #, c-format
 msgid "function %s returns a set"
 msgstr "la función %s retorna un conjunto"
 
-#: catalog/pg_aggregate.c:837
+#: catalog/pg_aggregate.c:831
 #, c-format
 msgid "function %s must accept VARIADIC ANY to be used in this aggregate"
 msgstr "la función %s debe aceptar VARIADIC ANY para usarse en esta agregación"
 
-#: catalog/pg_aggregate.c:861
+#: catalog/pg_aggregate.c:855
 #, c-format
 msgid "function %s requires run-time type coercion"
 msgstr "la función %s requiere conversión de tipos en tiempo de ejecución"
 
-#: catalog/pg_collation.c:77
-#, c-format
-msgid "collation \"%s\" for encoding \"%s\" already exists"
+#: catalog/pg_collation.c:93 catalog/pg_collation.c:140
+#, fuzzy, c-format
+msgid "collation \"%s\" already exists, skipping"
+msgstr "la relación «%s» ya existe, ignorando"
+
+#: catalog/pg_collation.c:95
+#, fuzzy, c-format
+msgid "collation \"%s\" for encoding \"%s\" already exists, skipping"
 msgstr "la codificación «%2$s» ya tiene un ordenamiento llamado «%1$s»"
 
-#: catalog/pg_collation.c:91
+#: catalog/pg_collation.c:103 catalog/pg_collation.c:147
 #, c-format
 msgid "collation \"%s\" already exists"
 msgstr "el ordenamiento «%s» ya existe"
 
-#: catalog/pg_constraint.c:663
+#: catalog/pg_collation.c:105
+#, 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:658
 #, 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:797
+#: catalog/pg_constraint.c:788
 #, c-format
 msgid "table \"%s\" has multiple constraints named \"%s\""
 msgstr "hay múltiples restricciones llamadas «%2$s» en la tabla «%1$s»"
 
-#: catalog/pg_constraint.c:809
+#: catalog/pg_constraint.c:800
 #, 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:855
-#, c-format
-msgid "domain \"%s\" has multiple constraints named \"%s\""
+#: catalog/pg_constraint.c:846
+#, fuzzy, c-format
+#| msgid "domain \"%s\" has multiple constraints named \"%s\""
+msgid "domain %s has multiple constraints named \"%s\""
 msgstr "hay múltiples restricciones llamadas «%2$s» en el dominio «%1$s»"
 
-#: catalog/pg_constraint.c:867
-#, c-format
-msgid "constraint \"%s\" for domain \"%s\" does not exist"
+#: catalog/pg_constraint.c:858
+#, fuzzy, c-format
+#| msgid "constraint \"%s\" for domain \"%s\" does not exist"
+msgid "constraint \"%s\" for domain %s does not exist"
 msgstr "no existe la restricción «%s» para el dominio «%s»"
 
 #: catalog/pg_conversion.c:66
@@ -4635,215 +4615,266 @@ msgstr "ya existe la conversión «%s»"
 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:165 commands/extension.c:3028
+#: catalog/pg_depend.c:163 commands/extension.c:3218
 #, 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:324
+#: catalog/pg_depend.c:322
 #, 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:115 catalog/pg_enum.c:202
+#: catalog/pg_enum.c:115 catalog/pg_enum.c:201 catalog/pg_enum.c:488
 #, c-format
 msgid "invalid enum label \"%s\""
 msgstr "la etiqueta enum «%s» no es válida"
 
-#: catalog/pg_enum.c:116 catalog/pg_enum.c:203
+#: catalog/pg_enum.c:116 catalog/pg_enum.c:202 catalog/pg_enum.c:489
 #, c-format
 msgid "Labels must be %d characters or less."
 msgstr "Las etiquetas deben ser de %d caracteres o menos."
 
-#: catalog/pg_enum.c:231
+#: catalog/pg_enum.c:230
 #, c-format
 msgid "enum label \"%s\" already exists, skipping"
 msgstr "la etiqueta de enum «%s» ya existe, ignorando"
 
-#: catalog/pg_enum.c:238
+#: catalog/pg_enum.c:237 catalog/pg_enum.c:532
 #, c-format
 msgid "enum label \"%s\" already exists"
 msgstr "la etiqueta de enum «%s» ya existe"
 
-#: catalog/pg_enum.c:293
+#: catalog/pg_enum.c:292 catalog/pg_enum.c:527
 #, c-format
 msgid "\"%s\" is not an existing enum label"
 msgstr "«%s» no es una etiqueta de enum existente"
 
-#: catalog/pg_enum.c:349
-#, fuzzy, c-format
+#: catalog/pg_enum.c:350
+#, c-format
 msgid "pg_enum OID value not set when in binary upgrade mode"
-msgstr "debe ser superusuario para conectarse en modo de actualización binaria"
+msgstr "el valor de OID de pg_enum no se definió en modo de actualización binaria"
 
-#: catalog/pg_enum.c:359
+#: catalog/pg_enum.c:360
 #, 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_namespace.c:61 commands/schemacmds.c:250
+#: catalog/pg_namespace.c:63 commands/schemacmds.c:264
 #, c-format
 msgid "schema \"%s\" already exists"
 msgstr "ya existe el esquema «%s»"
 
-#: catalog/pg_operator.c:219 catalog/pg_operator.c:360
+#: catalog/pg_operator.c:219 catalog/pg_operator.c:358
 #, c-format
 msgid "\"%s\" is not a valid operator name"
 msgstr "«%s» no es un nombre válido de operador"
 
-#: catalog/pg_operator.c:369
+#: catalog/pg_operator.c:367
 #, c-format
 msgid "only binary operators can have commutators"
 msgstr "sólo los operadores binarios pueden tener conmutadores"
 
-#: catalog/pg_operator.c:373 commands/operatorcmds.c:485
+#: catalog/pg_operator.c:371 commands/operatorcmds.c:482
 #, 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:377
+#: catalog/pg_operator.c:375
 #, 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:381
+#: catalog/pg_operator.c:379
 #, c-format
 msgid "only binary operators can hash"
 msgstr "sólo los operadores binarios pueden ser usados en hash"
 
-#: catalog/pg_operator.c:392
+#: catalog/pg_operator.c:390
 #, c-format
 msgid "only boolean operators can have negators"
 msgstr "sólo los operadores booleanos pueden tener negadores"
 
-#: catalog/pg_operator.c:396 commands/operatorcmds.c:493
+#: catalog/pg_operator.c:394 commands/operatorcmds.c:490
 #, 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:400 commands/operatorcmds.c:497
+#: catalog/pg_operator.c:398 commands/operatorcmds.c:494
 #, 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:404
+#: catalog/pg_operator.c:402
 #, 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:408
+#: catalog/pg_operator.c:406
 #, c-format
 msgid "only boolean operators can hash"
 msgstr "sólo los operadores booleanos pueden ser usados en hash"
 
-#: catalog/pg_operator.c:420
+#: catalog/pg_operator.c:418
 #, c-format
 msgid "operator %s already exists"
 msgstr "ya existe un operador %s"
 
-#: catalog/pg_operator.c:617
+#: catalog/pg_operator.c:612
 #, 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"
 
-#: catalog/pg_proc.c:134 parser/parse_func.c:1945 parser/parse_func.c:1985
+#: catalog/pg_proc.c:131 parser/parse_func.c:2001 parser/parse_func.c:2041
 #, 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:247
+#: catalog/pg_proc.c:244
 #, c-format
 msgid "A function returning a polymorphic type must have at least one polymorphic argument."
 msgstr "Una función que retorne un tipo polimórfico debe tener al menos un argumento de tipo polimórfico."
 
-#: catalog/pg_proc.c:254
+#: catalog/pg_proc.c:251
 #, c-format
 msgid "A function returning \"anyrange\" must have at least one \"anyrange\" argument."
 msgstr "Una función que retorne «anyrange» debe tener al menos un argumento de tipo «anyrange»."
 
-#: catalog/pg_proc.c:272
+#: catalog/pg_proc.c:269
 #, c-format
 msgid "\"%s\" is already an attribute of type %s"
 msgstr "«%s» ya es un atributo de tipo %s"
 
-#: catalog/pg_proc.c:403
+#: catalog/pg_proc.c:400
 #, 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:417 catalog/pg_proc.c:440
+#: catalog/pg_proc.c:414 catalog/pg_proc.c:437
 #, c-format
 msgid "cannot change return type of existing function"
 msgstr "no se puede cambiar el tipo de retorno de una función existente"
 
-#: catalog/pg_proc.c:418 catalog/pg_proc.c:442 catalog/pg_proc.c:485
-#: catalog/pg_proc.c:509 catalog/pg_proc.c:536
+#: catalog/pg_proc.c:415 catalog/pg_proc.c:439 catalog/pg_proc.c:482
+#: catalog/pg_proc.c:506 catalog/pg_proc.c:532
 #, c-format
 msgid "Use DROP FUNCTION %s first."
 msgstr "Use DROP FUNCTION %s primero."
 
-#: catalog/pg_proc.c:441
+#: catalog/pg_proc.c:438
 #, 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:483
+#: catalog/pg_proc.c:480
 #, 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:508
+#: catalog/pg_proc.c:505
 #, 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:535
+#: catalog/pg_proc.c:531
 #, 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:548
+#: catalog/pg_proc.c:544
 #, c-format
 msgid "function \"%s\" is an aggregate function"
 msgstr "la función «%s» es una función de agregación"
 
-#: catalog/pg_proc.c:553
+#: catalog/pg_proc.c:549
 #, c-format
 msgid "function \"%s\" is not an aggregate function"
 msgstr "la función «%s» no es una función de agregación"
 
-#: catalog/pg_proc.c:561
+#: catalog/pg_proc.c:557
 #, c-format
 msgid "function \"%s\" is a window function"
 msgstr "la función %s es de tipo window"
 
-#: catalog/pg_proc.c:566
+#: catalog/pg_proc.c:562
 #, c-format
 msgid "function \"%s\" is not a window function"
 msgstr "la función «%s» no es de tipo window"
 
-#: catalog/pg_proc.c:774
+#: catalog/pg_proc.c:768
 #, c-format
 msgid "there is no built-in function named \"%s\""
 msgstr "no hay ninguna función interna llamada «%s»"
 
-#: catalog/pg_proc.c:872
+#: catalog/pg_proc.c:866
 #, c-format
 msgid "SQL functions cannot return type %s"
 msgstr "las funciones SQL no pueden retornar el tipo %s"
 
-#: catalog/pg_proc.c:887
+#: catalog/pg_proc.c:881
 #, 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:973 executor/functions.c:1424
+#: catalog/pg_proc.c:968 executor/functions.c:1429
 #, c-format
 msgid "SQL function \"%s\""
 msgstr "función SQL «%s»"
 
-#: catalog/pg_shdepend.c:694
+#: catalog/pg_publication.c:57 commands/trigger.c:196
+#, fuzzy, c-format
+msgid "\"%s\" is a partitioned table"
+msgstr "«%s» es un índice parcial"
+
+#: catalog/pg_publication.c:59
+#, fuzzy, c-format
+msgid "Adding partitioned tables to publications is not supported."
+msgstr "la creación de índices en columnas de sistema no está soportada"
+
+#: catalog/pg_publication.c:60
+#, c-format
+msgid "You can add the table partitions individually."
+msgstr ""
+
+#: catalog/pg_publication.c:68
+#, c-format
+msgid "Only tables can be added to publications."
+msgstr ""
+
+#: catalog/pg_publication.c:74
+#, fuzzy, c-format
+msgid "\"%s\" is a system table"
+msgstr "«%s» es una tabla"
+
+#: catalog/pg_publication.c:76
+#, fuzzy, c-format
+msgid "System tables cannot be added to publications."
+msgstr "%s no puede ser aplicado a una función"
+
+#: catalog/pg_publication.c:82
+#, fuzzy, c-format
+msgid "table \"%s\" cannot be replicated"
+msgstr "el portal «%s» no puede ser ejecutado"
+
+#: catalog/pg_publication.c:84
+#, fuzzy, c-format
+msgid "Temporary and unlogged relations cannot be replicated."
+msgstr "no se pueden crear tablas temporales o unlogged durante la recuperación"
+
+#: catalog/pg_publication.c:166
+#, fuzzy, c-format
+msgid "relation \"%s\" is already member of publication \"%s\""
+msgstr "el rol «%s» ya es un miembro del rol «%s»"
+
+#: catalog/pg_publication.c:393 catalog/pg_publication.c:414
+#: commands/publicationcmds.c:401 commands/publicationcmds.c:702
+#, fuzzy, c-format
+msgid "publication \"%s\" does not exist"
+msgstr "no existe la relación «%s»"
+
+#: catalog/pg_shdepend.c:692
 #, c-format
 msgid ""
 "\n"
@@ -4858,92 +4889,98 @@ msgstr[1] ""
 "\n"
 "y objetos en otras %d bases de datos (vea el registro del servidor para obtener la lista)"
 
-#: catalog/pg_shdepend.c:1006
+#: catalog/pg_shdepend.c:998
 #, c-format
 msgid "role %u was concurrently dropped"
 msgstr "el rol %u fue eliminado por una transacción concurrente"
 
-#: catalog/pg_shdepend.c:1025
+#: catalog/pg_shdepend.c:1017
 #, c-format
 msgid "tablespace %u was concurrently dropped"
 msgstr "el tablespace %u fue eliminado por una transacción concurrente"
 
-#: catalog/pg_shdepend.c:1040
+#: catalog/pg_shdepend.c:1032
 #, 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:1085
+#: catalog/pg_shdepend.c:1077
 #, c-format
 msgid "owner of %s"
 msgstr "dueño de %s"
 
-#: catalog/pg_shdepend.c:1087
+#: catalog/pg_shdepend.c:1079
 #, c-format
 msgid "privileges for %s"
 msgstr "privilegios para %s"
 
-#: catalog/pg_shdepend.c:1089
-#, fuzzy, c-format
+#: catalog/pg_shdepend.c:1081
+#, c-format
 msgid "target of %s"
-msgstr "dueño de %s"
+msgstr "destino de %s"
 
 #. translator: %s will always be "database %s"
-#: catalog/pg_shdepend.c:1097
+#: catalog/pg_shdepend.c:1089
 #, 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:1208
+#: catalog/pg_shdepend.c:1200
 #, 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:1323
+#: catalog/pg_shdepend.c:1315
 #, 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_type.c:136 catalog/pg_type.c:454
+#: catalog/pg_subscription.c:176 commands/subscriptioncmds.c:636
+#: commands/subscriptioncmds.c:844 commands/subscriptioncmds.c:1044
 #, fuzzy, c-format
+msgid "subscription \"%s\" does not exist"
+msgstr "no existe la función «%s»"
+
+#: catalog/pg_type.c:136 catalog/pg_type.c:452
+#, c-format
 msgid "pg_type OID value not set when in binary upgrade mode"
-msgstr "debe ser superusuario para conectarse en modo de actualización binaria"
+msgstr "el valor de OID de pg_type no se definió en modo de actualización binaria"
 
-#: catalog/pg_type.c:253
+#: catalog/pg_type.c:251
 #, c-format
 msgid "invalid type internal size %d"
 msgstr "el tamaño interno de tipo %d no es válido"
 
-#: catalog/pg_type.c:269 catalog/pg_type.c:277 catalog/pg_type.c:285
-#: catalog/pg_type.c:294
+#: catalog/pg_type.c:267 catalog/pg_type.c:275 catalog/pg_type.c:283
+#: catalog/pg_type.c:292
 #, 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:301
+#: catalog/pg_type.c:299
 #, 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:310 catalog/pg_type.c:316
+#: catalog/pg_type.c:308 catalog/pg_type.c:314
 #, 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:324
+#: catalog/pg_type.c:322
 #, 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:789
+#: catalog/pg_type.c:801
 #, c-format
 msgid "could not form array type name for type \"%s\""
 msgstr "no se pudo formar un nombre de tipo de array para el tipo «%s»"
 
-#: catalog/toasting.c:105 commands/indexcmds.c:389 commands/tablecmds.c:4360
-#: commands/tablecmds.c:11902
+#: catalog/toasting.c:105 commands/indexcmds.c:399 commands/tablecmds.c:4734
+#: commands/tablecmds.c:12973
 #, c-format
 msgid "\"%s\" is not a table or materialized view"
 msgstr "«%s» no es una tabla o vista materializada"
@@ -4953,324 +4990,300 @@ msgstr "«%s» no es una tabla o vista materializada"
 msgid "shared tables cannot be toasted after initdb"
 msgstr "no se puede crear tablas TOAST a relaciones compartidas después de initdb"
 
-#: commands/aggregatecmds.c:161
+#: commands/aggregatecmds.c:157
 #, 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:188
+#: commands/aggregatecmds.c:182
 #, 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:198
+#: commands/aggregatecmds.c:192
 #, 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:202
+#: commands/aggregatecmds.c:196
 #, 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:214
+#: commands/aggregatecmds.c:208
 #, 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:218
+#: commands/aggregatecmds.c:212
 #, 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:225
+#: commands/aggregatecmds.c:219
 #, c-format
 msgid "aggregate msfunc must not be specified without mstype"
 msgstr "no debe especificarse msfunc sin mstype"
 
-#: commands/aggregatecmds.c:229
+#: commands/aggregatecmds.c:223
 #, c-format
 msgid "aggregate minvfunc must not be specified without mstype"
 msgstr "no debe especificarse minvfunc sin mstype"
 
-#: commands/aggregatecmds.c:233
+#: commands/aggregatecmds.c:227
 #, c-format
 msgid "aggregate mfinalfunc must not be specified without mstype"
 msgstr "no debe especificarse mfinalfunc sin mstype"
 
-#: commands/aggregatecmds.c:237
+#: commands/aggregatecmds.c:231
 #, c-format
 msgid "aggregate msspace must not be specified without mstype"
 msgstr "no debe especificarse msspace sin mstype"
 
-#: commands/aggregatecmds.c:241
+#: commands/aggregatecmds.c:235
 #, c-format
 msgid "aggregate minitcond must not be specified without mstype"
 msgstr "no debe especificarse minitcond sin mstype"
 
-#: commands/aggregatecmds.c:261
+#: commands/aggregatecmds.c:255
 #, 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:291
+#: commands/aggregatecmds.c:285
 #, 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:332 commands/aggregatecmds.c:421
+#: commands/aggregatecmds.c:326 commands/aggregatecmds.c:367
 #, 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:347
-#, c-format
-msgid "a serialization type must only be specified when the aggregate transition data type is \"%s\""
-msgstr ""
-
-#: commands/aggregatecmds.c:356
-#, fuzzy, c-format
-#| msgid "aggregate transition data type cannot be %s"
-msgid "aggregate serialization 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:369
-#, fuzzy, c-format
-#| msgid "aggregate transition data type cannot be %s"
-msgid "aggregate serialization type cannot be \"%s\""
-msgstr "el tipo de transición de la función de agregación no puede ser %s"
-
-#: commands/aggregatecmds.c:380
-#, fuzzy, c-format
-#| msgid "aggregate minvfunc must be specified when mstype is specified"
-msgid "aggregate serialization function must be specified when serialization type is specified"
-msgstr "debe especificarse la función de transición minvfunc cuando se especifica mstype"
-
-#: commands/aggregatecmds.c:385
-#, fuzzy, c-format
-#| msgid "aggregate minvfunc must be specified when mstype is specified"
-msgid "aggregate deserialization function must be specified when serialization type is specified"
-msgstr "debe especificarse la función de transición minvfunc cuando se especifica mstype"
-
-#: commands/aggregatecmds.c:396
+#: commands/aggregatecmds.c:338
 #, c-format
-msgid "must specify serialization type when specifying serialization function"
-msgstr ""
+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:402
+#: commands/aggregatecmds.c:348
 #, c-format
-msgid "must specify serialization type when specifying deserialization function"
-msgstr ""
+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:467 commands/functioncmds.c:570
+#: commands/aggregatecmds.c:413 commands/functioncmds.c:564
 #, c-format
 msgid "parameter \"parallel\" must be SAFE, RESTRICTED, or UNSAFE"
-msgstr ""
+msgstr "el parámetro «parallel» debe ser SAFE, RESTRICTED o UNSAFE"
 
-#: commands/alter.c:80 commands/event_trigger.c:231
+#: commands/alter.c:84 commands/event_trigger.c:234
 #, c-format
 msgid "event trigger \"%s\" already exists"
 msgstr "el disparador por eventos «%s» ya existe"
 
-#: commands/alter.c:83 commands/foreigncmds.c:597
+#: commands/alter.c:87 commands/foreigncmds.c:595
 #, c-format
 msgid "foreign-data wrapper \"%s\" already exists"
 msgstr "el conector de datos externos «%s» ya existe"
 
-#: commands/alter.c:86 commands/foreigncmds.c:890
+#: commands/alter.c:90 commands/foreigncmds.c:898
 #, c-format
 msgid "server \"%s\" already exists"
 msgstr "el servidor «%s» ya existe"
 
-#: commands/alter.c:89 commands/proclang.c:366
+#: commands/alter.c:93 commands/proclang.c:367
 #, c-format
 msgid "language \"%s\" already exists"
 msgstr "ya existe el lenguaje «%s»"
 
-#: commands/alter.c:112
-#, c-format
+#: commands/alter.c:96 commands/publicationcmds.c:170
+#, fuzzy, c-format
+msgid "publication \"%s\" already exists"
+msgstr "la relación «%s» ya existe"
+
+#: commands/alter.c:99 commands/subscriptioncmds.c:358
+#, fuzzy, c-format
+msgid "subscription \"%s\" already exists"
+msgstr "la relación «%s» ya existe"
+
+#: commands/alter.c:122
+#, 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:116
+#: commands/alter.c:126
+#, fuzzy, c-format
+msgid "statistics object \"%s\" already exists in schema \"%s\""
+msgstr "ya existe una relación llamada «%s» en el esquema «%s»"
+
+#: commands/alter.c:130
 #, 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:120
+#: commands/alter.c:134
 #, 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:124
+#: commands/alter.c:138
 #, 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:128
+#: commands/alter.c:142
 #, 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:202
+#: commands/alter.c:216
 #, c-format
 msgid "must be superuser to rename %s"
 msgstr "debe ser superusuario para cambiar el nombre de «%s»"
 
-#: commands/alter.c:656
+#: commands/alter.c:709
 #, c-format
 msgid "must be superuser to set schema of %s"
 msgstr "debe ser superusuario para definir el esquema de %s"
 
 #: commands/amcmds.c:58
-#, fuzzy, c-format
-#| msgid "permission denied to create tablespace \"%s\""
+#, c-format
 msgid "permission denied to create access method \"%s\""
-msgstr "se ha denegado el permiso para crear el tablespace «%s»"
+msgstr "se ha denegado el permiso para crear el método de acceso «%s»"
 
 #: commands/amcmds.c:60
-#, fuzzy, c-format
-#| msgid "Must be superuser to create a tablespace."
+#, c-format
 msgid "Must be superuser to create an access method."
-msgstr "Debe ser superusuario para crear tablespaces."
+msgstr "Debe ser superusuario para crear un método de acceso."
 
 #: commands/amcmds.c:68
-#, fuzzy, c-format
-#| msgid "access method \"%s\" does not exist"
+#, c-format
 msgid "access method \"%s\" already exists"
-msgstr "no existe el método de acceso «%s»"
+msgstr "el método de acceso «%s» ya existe"
 
-#: commands/amcmds.c:124
-#, fuzzy, c-format
-#| msgid "must be superuser to drop superusers"
+#: commands/amcmds.c:123
+#, c-format
 msgid "must be superuser to drop access methods"
-msgstr "debe ser superusuario para eliminar superusuarios"
+msgstr "debe ser superusuario para eliminar métodos de acceso"
 
-#: commands/amcmds.c:175 commands/indexcmds.c:164 commands/indexcmds.c:495
-#: commands/opclasscmds.c:365 commands/opclasscmds.c:790
+#: commands/amcmds.c:174 commands/indexcmds.c:163 commands/indexcmds.c:515
+#: commands/opclasscmds.c:363 commands/opclasscmds.c:777
 #, c-format
 msgid "access method \"%s\" does not exist"
 msgstr "no existe el método de acceso «%s»"
 
-#: commands/amcmds.c:251
-#, fuzzy, c-format
-#| msgid "no function body specified"
+#: commands/amcmds.c:250
+#, c-format
 msgid "handler function is not specified"
-msgstr "no se ha especificado un cuerpo para la función"
+msgstr "no se ha especificado una función manejadora"
 
-#: commands/amcmds.c:263 commands/event_trigger.c:240
-#: commands/foreigncmds.c:489 commands/proclang.c:117 commands/proclang.c:288
-#: commands/trigger.c:441 parser/parse_clause.c:761
-#, fuzzy, c-format
-#| msgid "function %s should return type %s"
+#: commands/amcmds.c:262 commands/event_trigger.c:243
+#: commands/foreigncmds.c:487 commands/proclang.c:117 commands/proclang.c:289
+#: commands/trigger.c:590 parser/parse_clause.c:1011
+#, c-format
 msgid "function %s must return type %s"
-msgstr "la función %s debería retornar el tipo %s"
+msgstr "la función %s debe retornar el tipo %s"
 
-#: commands/analyze.c:145
+#: commands/analyze.c:151
 #, c-format
 msgid "skipping analyze of \"%s\" --- lock not available"
 msgstr "omitiendo analyze de «%s»: el candado no está disponible"
 
-#: commands/analyze.c:162
+#: commands/analyze.c:168
 #, c-format
 msgid "skipping \"%s\" --- only superuser can analyze it"
 msgstr "omitiendo «%s»: sólo un superusuario puede analizarla"
 
-#: commands/analyze.c:166
+#: commands/analyze.c:172
 #, c-format
 msgid "skipping \"%s\" --- only superuser or database owner can analyze it"
 msgstr "omitiendo «%s»: sólo un superusuario o el dueño de la base de datos puede analizarla"
 
-#: commands/analyze.c:170
+#: commands/analyze.c:176
 #, c-format
 msgid "skipping \"%s\" --- only table or database owner can analyze it"
 msgstr "omitiendo «%s»: sólo su dueño o el de la base de datos puede analizarla"
 
-#: commands/analyze.c:230
+#: commands/analyze.c:236
 #, c-format
 msgid "skipping \"%s\" --- cannot analyze this foreign table"
 msgstr "omitiendo «%s»: no se puede analizar esta tabla foránea"
 
-#: commands/analyze.c:241
+#: commands/analyze.c:253
 #, 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:320
+#: commands/analyze.c:334
 #, c-format
 msgid "analyzing \"%s.%s\" inheritance tree"
 msgstr "analizando la jerarquía de herencia «%s.%s»"
 
-#: commands/analyze.c:325
+#: commands/analyze.c:339
 #, c-format
 msgid "analyzing \"%s.%s\""
 msgstr "analizando «%s.%s»"
 
-#: commands/analyze.c:651
+#: commands/analyze.c:668
 #, c-format
 msgid "automatic analyze of table \"%s.%s.%s\" system usage: %s"
 msgstr "analyze automático de la tabla «%s.%s.%s»: uso del sistema: %s"
 
-#: commands/analyze.c:1207
+#: commands/analyze.c:1220
 #, 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:1286
+#: commands/analyze.c:1300
 #, c-format
 msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no child tables"
-msgstr ""
+msgstr "saltando el análisis del árbol de herencia «%s.%s» --- este árbol no contiene tablas hijas"
 
-#: commands/analyze.c:1375
+#: commands/analyze.c:1398
 #, c-format
 msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no analyzable child tables"
-msgstr ""
-
-#: commands/analyze.c:1423 executor/execQual.c:2922
-msgid "could not convert row type"
-msgstr "no se pudo convertir el tipo de registro"
+msgstr "saltando el análisis del árbol de herencia «%s.%s» --- este árbol no contiene tablas hijas analizables"
 
-#: commands/async.c:558
+#: commands/async.c:555
 #, c-format
 msgid "channel name cannot be empty"
 msgstr "el nombre de canal no puede ser vacío"
 
-#: commands/async.c:563
+#: commands/async.c:560
 #, c-format
 msgid "channel name too long"
 msgstr "el nombre de canal es demasiado largo"
 
-#: commands/async.c:570
+#: commands/async.c:567
 #, c-format
 msgid "payload string too long"
 msgstr "la cadena de carga es demasiado larga"
 
-#: commands/async.c:756
+#: commands/async.c:753
 #, 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:859
+#: commands/async.c:856
 #, c-format
 msgid "too many notifications in the NOTIFY queue"
 msgstr "demasiadas notificaciones en la cola NOTIFY"
 
-#: commands/async.c:1489
+#: commands/async.c:1486
 #, c-format
 msgid "NOTIFY queue is %.0f%% full"
 msgstr "la cola NOTIFY está %.0f%% llena"
 
-#: commands/async.c:1491
+#: commands/async.c:1488
 #, 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:1494
+#: commands/async.c:1491
 #, 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:129 commands/cluster.c:366
+#: commands/cluster.c:129 commands/cluster.c:364
 #, c-format
 msgid "cannot cluster temporary tables of other sessions"
 msgstr "no se pueden reordenar tablas temporales de otras sesiones"
@@ -5280,62 +5293,63 @@ msgstr "no se pueden reordenar tablas temporales de otras sesiones"
 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:173 commands/tablecmds.c:9288 commands/tablecmds.c:11004
+#: commands/cluster.c:173 commands/tablecmds.c:10185
+#: commands/tablecmds.c:12066
 #, c-format
 msgid "index \"%s\" for table \"%s\" does not exist"
 msgstr "no existe el índice «%s» en la tabla «%s»"
 
-#: commands/cluster.c:355
+#: commands/cluster.c:353
 #, c-format
 msgid "cannot cluster a shared catalog"
 msgstr "no se puede reordenar un catálogo compartido"
 
-#: commands/cluster.c:370
+#: commands/cluster.c:368
 #, 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:433 commands/tablecmds.c:11014
+#: commands/cluster.c:431 commands/tablecmds.c:12076
 #, c-format
 msgid "\"%s\" is not an index for table \"%s\""
 msgstr "«%s» no es un índice de la tabla «%s»"
 
-#: commands/cluster.c:441
+#: commands/cluster.c:439
 #, 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:453
+#: commands/cluster.c:451
 #, c-format
 msgid "cannot cluster on partial index \"%s\""
 msgstr "no se puede reordenar en índice parcial «%s»"
 
-#: commands/cluster.c:467
+#: commands/cluster.c:465
 #, c-format
 msgid "cannot cluster on invalid index \"%s\""
 msgstr "no se puede reordenar en el índice no válido «%s»"
 
-#: commands/cluster.c:920
+#: commands/cluster.c:918
 #, 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:926
+#: commands/cluster.c:924
 #, c-format
 msgid "clustering \"%s.%s\" using sequential scan and sort"
 msgstr "reordenando «%s.%s» usando un recorrido secuencial y ordenamiento"
 
-#: commands/cluster.c:931 commands/vacuumlazy.c:476
+#: commands/cluster.c:929 commands/vacuumlazy.c:490
 #, c-format
 msgid "vacuuming \"%s.%s\""
 msgstr "haciendo vacuum a «%s.%s»"
 
-#: commands/cluster.c:1090
+#: commands/cluster.c:1084
 #, c-format
 msgid "\"%s\": found %.0f removable, %.0f nonremovable row versions in %u pages"
 msgstr "«%s»: se encontraron %.0f versiones eliminables de filas y %.0f no eliminables en %u páginas"
 
-#: commands/cluster.c:1094
+#: commands/cluster.c:1088
 #, c-format
 msgid ""
 "%.0f dead row versions cannot be removed yet.\n"
@@ -5344,51 +5358,97 @@ msgstr ""
 "%.0f versiones muertas de filas no pueden ser eliminadas aún.\n"
 "%s."
 
-#: commands/collationcmds.c:80
+#: commands/collationcmds.c:101
 #, 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:143
+#, fuzzy, c-format
+#| msgid "collation attribute \"%s\" not recognized"
+msgid "collation \"default\" cannot be copied"
+msgstr "el atributo de ordenamiento (collation) «%s» no es reconocido"
+
+#: commands/collationcmds.c:173
+#, fuzzy, c-format
+msgid "unrecognized collation provider: %s"
+msgstr "parámetro de configuración no reconocido: «%s»"
+
+#: commands/collationcmds.c:182
 #, c-format
 msgid "parameter \"lc_collate\" must be specified"
 msgstr "debe especificarse el parámetro «lc_collate»"
 
-#: commands/collationcmds.c:130
+#: commands/collationcmds.c:187
 #, c-format
 msgid "parameter \"lc_ctype\" must be specified"
 msgstr "debe especificarse el parámetro «lc_ctype»"
 
-#: commands/collationcmds.c:166
+#: commands/collationcmds.c:242
 #, 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:177
+#: commands/collationcmds.c:253
 #, c-format
 msgid "collation \"%s\" already exists in schema \"%s\""
 msgstr "ya existe un ordenamiento llamado «%s» en el esquema «%s»"
 
-#: commands/comment.c:62 commands/dbcommands.c:797 commands/dbcommands.c:962
-#: commands/dbcommands.c:1067 commands/dbcommands.c:1257
-#: commands/dbcommands.c:1477 commands/dbcommands.c:1594
-#: commands/dbcommands.c:2011 utils/init/postinit.c:842
-#: utils/init/postinit.c:944 utils/init/postinit.c:961
+#: commands/collationcmds.c:301
+#, fuzzy, c-format
+msgid "changing version from %s to %s"
+msgstr "cambiando el tipo de retorno de la función %s de %s a %s"
+
+#: commands/collationcmds.c:316
+#, c-format
+msgid "version has not changed"
+msgstr ""
+
+#: commands/collationcmds.c:445
+#, fuzzy, c-format
+msgid "could not convert locale name \"%s\" to language tag: %s"
+msgstr "no se pudo convertir la tabla «%s» en vista porque tiene índices"
+
+#: commands/collationcmds.c:506
+#, fuzzy, c-format
+msgid "must be superuser to import system collations"
+msgstr "debe ser superusuario obtener información de archivos"
+
+#: commands/collationcmds.c:529 commands/copy.c:1859 commands/copy.c:3101
+#, c-format
+msgid "could not execute command \"%s\": %m"
+msgstr "no se pudo ejecutar la orden «%s»: %m"
+
+#: commands/collationcmds.c:660
+#, c-format
+msgid "no usable system locales were found"
+msgstr ""
+
+#: commands/collationcmds.c:724 commands/collationcmds.c:763
+#, fuzzy, c-format
+msgid "could not get keyword values for locale \"%s\": %s"
+msgstr "no se pudo abrir el archivo de variables de servidor «%s»: %s\n"
+
+#: commands/comment.c:61 commands/dbcommands.c:808 commands/dbcommands.c:996
+#: commands/dbcommands.c:1100 commands/dbcommands.c:1290
+#: commands/dbcommands.c:1513 commands/dbcommands.c:1627
+#: commands/dbcommands.c:2043 utils/init/postinit.c:846
+#: utils/init/postinit.c:951 utils/init/postinit.c:968
 #, c-format
 msgid "database \"%s\" does not exist"
 msgstr "no existe la base de datos «%s»"
 
-#: commands/comment.c:101 commands/seclabel.c:116 parser/parse_utilcmd.c:768
+#: commands/comment.c:101 commands/seclabel.c:117 parser/parse_utilcmd.c:930
 #, c-format
 msgid "\"%s\" is not a table, view, materialized view, composite type, or foreign table"
 msgstr "«%s» no es una tabla, vista, vista materializada, tipo compuesto, o tabla foránea"
 
-#: commands/constraint.c:60 utils/adt/ri_triggers.c:2717
+#: commands/constraint.c:60 utils/adt/ri_triggers.c:2712
 #, 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:67 utils/adt/ri_triggers.c:2726
+#: commands/constraint.c:67 utils/adt/ri_triggers.c:2721
 #, c-format
 msgid "function \"%s\" must be fired AFTER ROW"
 msgstr "la función «%s» debe ser ejecutada AFTER ROW"
@@ -5398,767 +5458,790 @@ msgstr "la función «%s» debe ser ejecutada AFTER ROW"
 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:67
+#: commands/conversioncmds.c:66
 #, c-format
 msgid "source encoding \"%s\" does not exist"
 msgstr "no existe la codificación fuente «%s»"
 
-#: commands/conversioncmds.c:74
+#: commands/conversioncmds.c:73
 #, c-format
 msgid "destination encoding \"%s\" does not exist"
 msgstr "no existe la codificación de destino «%s»"
 
-#: commands/conversioncmds.c:88
-#, fuzzy, c-format
-#| msgid "encoding conversion function %s must return type \"void\""
+#: commands/conversioncmds.c:87
+#, 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 «void»"
+msgstr "la función de conversión de codificación %s debe retornar tipo %s"
 
-#: commands/copy.c:362 commands/copy.c:374 commands/copy.c:408
-#: commands/copy.c:420
+#: commands/copy.c:373 commands/copy.c:407
 #, c-format
 msgid "COPY BINARY is not supported to stdout or from stdin"
 msgstr "COPY BINARY no está soportado a la salida estándar o desde la entrada estándar"
 
-#: commands/copy.c:520
+#: commands/copy.c:507
 #, c-format
 msgid "could not write to COPY program: %m"
 msgstr "no se pudo escribir al programa COPY: %m"
 
-#: commands/copy.c:525
+#: commands/copy.c:512
 #, c-format
 msgid "could not write to COPY file: %m"
 msgstr "no se pudo escribir archivo COPY: %m"
 
-#: commands/copy.c:538
+#: commands/copy.c:525
 #, c-format
 msgid "connection lost during COPY to stdout"
 msgstr "se perdió la conexión durante COPY a la salida estándar"
 
-#: commands/copy.c:579
+#: commands/copy.c:569
 #, c-format
 msgid "could not read from COPY file: %m"
 msgstr "no se pudo leer desde archivo COPY: %m"
 
-#: commands/copy.c:595 commands/copy.c:616 commands/copy.c:620
-#: tcop/postgres.c:341 tcop/postgres.c:377 tcop/postgres.c:404
+#: commands/copy.c:585 commands/copy.c:606 commands/copy.c:610
+#: tcop/postgres.c:335 tcop/postgres.c:371 tcop/postgres.c:398
 #, 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/copy.c:633
+#: commands/copy.c:623
 #, c-format
 msgid "COPY from stdin failed: %s"
 msgstr "falló COPY desde la entrada estándar: %s"
 
-#: commands/copy.c:649
+#: commands/copy.c:639
 #, 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/copy.c:806
+#: commands/copy.c:800
 #, c-format
 msgid "must be superuser to COPY to or from an external program"
 msgstr "debe ser superusuario para usar COPY desde o hacia un programa externo"
 
-#: commands/copy.c:807 commands/copy.c:813
+#: commands/copy.c:801 commands/copy.c:807
 #, 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:812
+#: commands/copy.c:806
 #, c-format
 msgid "must be superuser to COPY to or from a file"
 msgstr "debe ser superusuario para usar COPY desde o hacia un archivo"
 
-#: commands/copy.c:878
+#: commands/copy.c:868
 #, c-format
 msgid "COPY FROM not supported with row-level security"
-msgstr ""
+msgstr "COPY FROM no está soportado con seguridad a nivel de registros"
 
-#: commands/copy.c:879
-#, fuzzy, c-format
-#| msgid "Use triggers instead."
+#: commands/copy.c:869
+#, c-format
 msgid "Use INSERT statements instead."
-msgstr "Use triggers en su lugar."
+msgstr "Use sentencias INSERT en su lugar."
 
-#: commands/copy.c:1019
+#: commands/copy.c:1054
 #, c-format
 msgid "COPY format \"%s\" not recognized"
 msgstr "el formato de COPY «%s» no es reconocido"
 
-#: commands/copy.c:1090 commands/copy.c:1104 commands/copy.c:1118
-#: commands/copy.c:1138
+#: commands/copy.c:1134 commands/copy.c:1150 commands/copy.c:1165
+#: commands/copy.c:1187
 #, 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:1151
+#: commands/copy.c:1202
 #, 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:1157 commands/dbcommands.c:232 commands/dbcommands.c:1427
+#: commands/copy.c:1209 commands/dbcommands.c:242 commands/dbcommands.c:1461
 #, c-format
 msgid "option \"%s\" not recognized"
 msgstr "no se reconoce la opción «%s»"
 
-#: commands/copy.c:1168
+#: commands/copy.c:1221
 #, c-format
 msgid "cannot specify DELIMITER in BINARY mode"
 msgstr "no se puede especificar DELIMITER en modo BINARY"
 
-#: commands/copy.c:1173
+#: commands/copy.c:1226
 #, c-format
 msgid "cannot specify NULL in BINARY mode"
 msgstr "no se puede especificar NULL en modo BINARY"
 
-#: commands/copy.c:1195
+#: commands/copy.c:1248
 #, 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:1202
+#: commands/copy.c:1255
 #, 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:1208
+#: commands/copy.c:1261
 #, 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:1225
+#: commands/copy.c:1278
 #, c-format
 msgid "COPY delimiter cannot be \"%s\""
 msgstr "el delimitador de COPY no puede ser «%s»"
 
-#: commands/copy.c:1231
+#: commands/copy.c:1284
 #, c-format
 msgid "COPY HEADER available only in CSV mode"
 msgstr "el «header» de COPY está disponible sólo en modo CSV"
 
-#: commands/copy.c:1237
+#: commands/copy.c:1290
 #, c-format
 msgid "COPY quote available only in CSV mode"
 msgstr "el «quote» de COPY está disponible sólo en modo CSV"
 
-#: commands/copy.c:1242
+#: commands/copy.c:1295
 #, 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:1247
+#: commands/copy.c:1300
 #, 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:1253
+#: commands/copy.c:1306
 #, c-format
 msgid "COPY escape available only in CSV mode"
 msgstr "escape de COPY disponible sólo en modo CSV"
 
-#: commands/copy.c:1258
+#: commands/copy.c:1311
 #, 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:1264
+#: commands/copy.c:1317
 #, 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:1268
+#: commands/copy.c:1321
 #, 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:1274
+#: commands/copy.c:1327
 #, 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:1278
+#: commands/copy.c:1331
 #, 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:1284
+#: commands/copy.c:1337
 #, 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:1289
+#: commands/copy.c:1342
 #, 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:1295
+#: commands/copy.c:1348
 #, 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"
 
-#: commands/copy.c:1302
+#: commands/copy.c:1355
 #, 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:1365
+#: commands/copy.c:1416
 #, c-format
 msgid "table \"%s\" does not have OIDs"
 msgstr "la tabla «%s» no tiene OIDs"
 
-#: commands/copy.c:1382
-#, fuzzy, c-format
-#| msgid "COPY (SELECT) WITH OIDS is not supported"
+#: commands/copy.c:1485
+#, c-format
 msgid "COPY (query) WITH OIDS is not supported"
-msgstr "COPY (SELECT) WITH OIDS no está soportado"
+msgstr "COPY (consulta) WITH OIDS no está soportado"
 
-#: commands/copy.c:1402
-#, fuzzy, c-format
-#| msgid "DO INSTEAD NOTHING rules are not supported for data-modifying statements in WITH"
+#: commands/copy.c:1506
+#, c-format
 msgid "DO INSTEAD NOTHING rules are not supported for COPY"
-msgstr "las reglas DO INSTEAD NOTHING no están soportadas para sentencias que modifiquen datos en WITH"
+msgstr "las reglas DO INSTEAD NOTHING no están soportadas para COPY"
 
-#: commands/copy.c:1416
-#, fuzzy, c-format
-#| msgid "conditional DO INSTEAD rules are not supported for data-modifying statements in WITH"
+#: commands/copy.c:1520
+#, c-format
 msgid "conditional DO INSTEAD rules are not supported for COPY"
-msgstr "las reglas DO INSTEAD condicionales no están soportadas para sentencias que modifiquen datos en WITH"
+msgstr "las reglas DO INSTEAD condicionales no están soportadas para COPY"
 
-#: commands/copy.c:1420
-#, fuzzy, c-format
-#| msgid "DO ALSO rules are not supported for data-modifying statements in WITH"
+#: commands/copy.c:1524
+#, c-format
 msgid "DO ALSO rules are not supported for the COPY"
-msgstr "las reglas DO ALSO no están soportadas para sentencias que modifiquen datos en WITH"
+msgstr "las reglas DO ALSO no están soportadas para COPY"
 
-#: commands/copy.c:1425
-#, fuzzy, c-format
-#| msgid "multi-statement DO INSTEAD rules are not supported for data-modifying statements in WITH"
+#: commands/copy.c:1529
+#, 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 sentencias que modifiquen datos en WITH"
+msgstr "las reglas DO INSTEAD de múltiples sentencias no están soportadas para COPY"
 
-#: commands/copy.c:1435
+#: commands/copy.c:1539
 #, c-format
 msgid "COPY (SELECT INTO) is not supported"
 msgstr "COPY (SELECT INTO) no está soportado"
 
-#: commands/copy.c:1452
-#, fuzzy, c-format
-#| msgid "WITH query \"%s\" does not have a RETURNING clause"
+#: commands/copy.c:1556
+#, c-format
 msgid "COPY query must have a RETURNING clause"
-msgstr "la consulta WITH «%s» no tiene una cláusula RETURNING"
+msgstr "la consulta COPY debe tener una cláusula RETURNING"
 
-#: commands/copy.c:1480
+#: commands/copy.c:1584
 #, c-format
 msgid "relation referenced by COPY statement has changed"
-msgstr ""
+msgstr "la relación referenciada por la sentencia COPY ha cambiado"
 
-#: commands/copy.c:1538
-#, fuzzy, c-format
-#| msgid "FORCE QUOTE column \"%s\" not referenced by COPY"
+#: commands/copy.c:1642
+#, c-format
 msgid "FORCE_QUOTE column \"%s\" not referenced by COPY"
-msgstr "la columna «%s» con comillas forzadas no es referenciada por COPY"
+msgstr "la columna FORCE_QUOTE «%s» no es referenciada en COPY"
 
-#: commands/copy.c:1560
-#, fuzzy, c-format
-#| msgid "FORCE NOT NULL column \"%s\" not referenced by COPY"
+#: commands/copy.c:1664
+#, c-format
 msgid "FORCE_NOT_NULL column \"%s\" not referenced by COPY"
-msgstr "la columna «%s» especificada como FORCE NOT NULL no fue mencionada en COPY"
+msgstr "la columna FORCE_NOT_NULL «%s» no es referenciada en COPY"
 
-#: commands/copy.c:1582
-#, fuzzy, c-format
-#| msgid "FORCE NULL column \"%s\" not referenced by COPY"
+#: commands/copy.c:1686
+#, c-format
 msgid "FORCE_NULL column \"%s\" not referenced by COPY"
-msgstr "la columna «%s» especificada como FORCE NULL no fue mencionada en COPY"
+msgstr "la columna FORCE_NULL «%s» no es referenciada en COPY"
 
-#: commands/copy.c:1647
+#: commands/copy.c:1751
 #, 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/copy.c:1651
+#: commands/copy.c:1755
 #, c-format
 msgid "program \"%s\" failed"
 msgstr "el programa «%s» falló"
 
-#: commands/copy.c:1701
+#: commands/copy.c:1805
 #, c-format
 msgid "cannot copy from view \"%s\""
 msgstr "no se puede copiar desde la vista «%s»"
 
-#: commands/copy.c:1703 commands/copy.c:1709 commands/copy.c:1715
+#: commands/copy.c:1807 commands/copy.c:1813 commands/copy.c:1819
+#: commands/copy.c:1830
 #, c-format
 msgid "Try the COPY (SELECT ...) TO variant."
 msgstr "Intente la forma COPY (SELECT ...) TO."
 
-#: commands/copy.c:1707
+#: commands/copy.c:1811
 #, c-format
 msgid "cannot copy from materialized view \"%s\""
 msgstr "no se puede copiar desde la vista materializada «%s»"
 
-#: commands/copy.c:1713
+#: commands/copy.c:1817
 #, c-format
 msgid "cannot copy from foreign table \"%s\""
 msgstr "no se puede copiar desde la tabla foránea «%s»"
 
-#: commands/copy.c:1719
+#: commands/copy.c:1823
 #, c-format
 msgid "cannot copy from sequence \"%s\""
 msgstr "no se puede copiar desde la secuencia «%s»"
 
-#: commands/copy.c:1724
+#: commands/copy.c:1828
+#, fuzzy, c-format
+msgid "cannot copy from partitioned table \"%s\""
+msgstr "no se puede copiar desde la tabla foránea «%s»"
+
+#: commands/copy.c:1834
 #, 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/copy.c:1749 commands/copy.c:2787
-#, c-format
-msgid "could not execute command \"%s\": %m"
-msgstr "no se pudo ejecutar la orden «%s»: %m"
-
-#: commands/copy.c:1764
+#: commands/copy.c:1874
 #, c-format
 msgid "relative path not allowed for COPY to file"
 msgstr "no se permiten rutas relativas para COPY hacia un archivo"
 
-#: commands/copy.c:1772
+#: commands/copy.c:1886
 #, c-format
 msgid "could not open file \"%s\" for writing: %m"
 msgstr "no se pudo abrir el archivo «%s» para escritura: %m"
 
-#: commands/copy.c:1784 commands/copy.c:2810
+#: commands/copy.c:1889
+#, 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 ""
+
+#: commands/copy.c:1902 commands/copy.c:3132
 #, c-format
 msgid "\"%s\" is a directory"
 msgstr "«%s» es un directorio"
 
-#: commands/copy.c:2109
+#: commands/copy.c:2225
 #, c-format
 msgid "COPY %s, line %d, column %s"
 msgstr "COPY %s, línea %d, columna %s"
 
-#: commands/copy.c:2113 commands/copy.c:2160
+#: commands/copy.c:2229 commands/copy.c:2276
 #, c-format
 msgid "COPY %s, line %d"
 msgstr "COPY %s, línea %d"
 
-#: commands/copy.c:2124
+#: commands/copy.c:2240
 #, c-format
 msgid "COPY %s, line %d, column %s: \"%s\""
 msgstr "COPY %s, línea %d, columna %s: «%s»"
 
-#: commands/copy.c:2132
+#: commands/copy.c:2248
 #, c-format
 msgid "COPY %s, line %d, column %s: null input"
 msgstr "COPY %s, línea %d, columna %s: entrada nula"
 
-#: commands/copy.c:2154
+#: commands/copy.c:2270
 #, c-format
 msgid "COPY %s, line %d: \"%s\""
 msgstr "COPY %s, línea %d: «%s»"
 
-#: commands/copy.c:2238
+#: commands/copy.c:2364
 #, c-format
 msgid "cannot copy to view \"%s\""
 msgstr "no se puede copiar hacia la vista «%s»"
 
-#: commands/copy.c:2243
+#: commands/copy.c:2366
+#, fuzzy, c-format
+msgid "To enable copying to a view, provide an INSTEAD OF INSERT trigger."
+msgstr "Para activar las inserciones en la vista, provea un disparador INSTEAD OF INSERT un una regla incodicional ON INSERT DO INSTEAD."
+
+#: commands/copy.c:2370
 #, c-format
 msgid "cannot copy to materialized view \"%s\""
 msgstr "no se puede copiar hacia la vista materializada «%s»"
 
-#: commands/copy.c:2248
+#: commands/copy.c:2375
 #, c-format
 msgid "cannot copy to foreign table \"%s\""
 msgstr "no se puede copiar hacia la tabla foránea «%s»"
 
-#: commands/copy.c:2253
+#: commands/copy.c:2380
 #, c-format
 msgid "cannot copy to sequence \"%s\""
 msgstr "no se puede copiar hacia la secuencia «%s»"
 
-#: commands/copy.c:2258
+#: commands/copy.c:2385
 #, c-format
 msgid "cannot copy to non-table relation \"%s\""
 msgstr "no se puede copiar hacia la relación «%s» porque no es una tabla"
 
-#: commands/copy.c:2321
+#: commands/copy.c:2448
 #, c-format
 msgid "cannot perform FREEZE because of prior transaction activity"
 msgstr "no se puede ejecutar FREEZE debido a actividad anterior en la transacción"
 
-#: commands/copy.c:2327
+#: commands/copy.c:2454
 #, c-format
 msgid "cannot perform FREEZE because the table was not created or truncated in the current subtransaction"
 msgstr "no se puede ejecutar FREEZE porque la tabla no fue creada ni truncada en la subtransacción en curso"
 
-#: commands/copy.c:2830
+#: commands/copy.c:2617 executor/nodeModifyTable.c:311
+#, fuzzy, c-format
+msgid "cannot route inserted tuples to a foreign table"
+msgstr "no se puede insertar en la tabla foránea «%s»"
+
+#: commands/copy.c:3119
+#, 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 ""
+
+#: commands/copy.c:3152
 #, c-format
 msgid "COPY file signature not recognized"
 msgstr "el identificador del archivo COPY no es reconocido"
 
-#: commands/copy.c:2835
+#: commands/copy.c:3157
 #, c-format
 msgid "invalid COPY file header (missing flags)"
 msgstr "el encabezado del archivo COPY no es válido (faltan campos)"
 
-#: commands/copy.c:2841
+#: commands/copy.c:3163
 #, c-format
 msgid "unrecognized critical flags in COPY file header"
 msgstr "valores requeridos no reconocidos en encabezado de COPY"
 
-#: commands/copy.c:2847
+#: commands/copy.c:3169
 #, c-format
 msgid "invalid COPY file header (missing length)"
 msgstr "el encabezado del archivo COPY no es válido (falta el largo)"
 
-#: commands/copy.c:2854
+#: commands/copy.c:3176
 #, c-format
 msgid "invalid COPY file header (wrong length)"
 msgstr "el encabezado del archivo COPY no es válido (largo incorrecto)"
 
-#: commands/copy.c:2987 commands/copy.c:3694 commands/copy.c:3924
+#: commands/copy.c:3309 commands/copy.c:4016 commands/copy.c:4246
 #, c-format
 msgid "extra data after last expected column"
 msgstr "datos extra después de la última columna esperada"
 
-#: commands/copy.c:2997
+#: commands/copy.c:3319
 #, c-format
 msgid "missing data for OID column"
 msgstr "faltan datos para la columna OID"
 
-#: commands/copy.c:3003
+#: commands/copy.c:3325
 #, c-format
 msgid "null OID in COPY data"
 msgstr "OID nulo en datos COPY"
 
-#: commands/copy.c:3013 commands/copy.c:3136
+#: commands/copy.c:3335 commands/copy.c:3458
 #, c-format
 msgid "invalid OID in COPY data"
 msgstr "OID no válido en datos COPY"
 
-#: commands/copy.c:3028
+#: commands/copy.c:3350
 #, c-format
 msgid "missing data for column \"%s\""
 msgstr "faltan datos en la columna «%s»"
 
-#: commands/copy.c:3111
+#: commands/copy.c:3433
 #, c-format
 msgid "received copy data after EOF marker"
 msgstr "se recibieron datos de copy después del marcador EOF"
 
-#: commands/copy.c:3118
+#: commands/copy.c:3440
 #, c-format
 msgid "row field count is %d, expected %d"
 msgstr "la cantidad de registros es %d, pero se esperaban %d"
 
-#: commands/copy.c:3458 commands/copy.c:3475
+#: commands/copy.c:3780 commands/copy.c:3797
 #, c-format
 msgid "literal carriage return found in data"
 msgstr "se encontró un retorno de carro literal en los datos"
 
-#: commands/copy.c:3459 commands/copy.c:3476
+#: commands/copy.c:3781 commands/copy.c:3798
 #, c-format
 msgid "unquoted carriage return found in data"
 msgstr "se encontró un retorno de carro fuera de comillas en los datos"
 
-#: commands/copy.c:3461 commands/copy.c:3478
+#: commands/copy.c:3783 commands/copy.c:3800
 #, c-format
 msgid "Use \"\\r\" to represent carriage return."
 msgstr "Use «\\r» para representar el retorno de carro."
 
-#: commands/copy.c:3462 commands/copy.c:3479
+#: commands/copy.c:3784 commands/copy.c:3801
 #, 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/copy.c:3491
+#: commands/copy.c:3813
 #, c-format
 msgid "literal newline found in data"
 msgstr "se encontró un salto de línea literal en los datos"
 
-#: commands/copy.c:3492
+#: commands/copy.c:3814
 #, c-format
 msgid "unquoted newline found in data"
 msgstr "se encontró un salto de línea fuera de comillas en los datos"
 
-#: commands/copy.c:3494
+#: commands/copy.c:3816
 #, c-format
 msgid "Use \"\\n\" to represent newline."
 msgstr "Use «\\n» para representar un salto de línea."
 
-#: commands/copy.c:3495
+#: commands/copy.c:3817
 #, 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/copy.c:3541 commands/copy.c:3577
+#: commands/copy.c:3863 commands/copy.c:3899
 #, 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/copy.c:3550 commands/copy.c:3566
+#: commands/copy.c:3872 commands/copy.c:3888
 #, c-format
 msgid "end-of-copy marker corrupt"
 msgstr "marcador fin-de-copy corrupto"
 
-#: commands/copy.c:4008
+#: commands/copy.c:4330
 #, c-format
 msgid "unterminated CSV quoted field"
 msgstr "un valor entre comillas está inconcluso"
 
-#: commands/copy.c:4085 commands/copy.c:4104
+#: commands/copy.c:4407 commands/copy.c:4426
 #, c-format
 msgid "unexpected EOF in COPY data"
 msgstr "EOF inesperado en datos de COPY"
 
-#: commands/copy.c:4094
+#: commands/copy.c:4416
 #, c-format
 msgid "invalid field size"
 msgstr "el tamaño de campo no es válido"
 
-#: commands/copy.c:4117
+#: commands/copy.c:4439
 #, c-format
 msgid "incorrect binary data format"
 msgstr "el formato de datos binarios es incorrecto"
 
-#: commands/copy.c:4428 commands/indexcmds.c:1053 commands/tablecmds.c:1463
-#: commands/tablecmds.c:2290 parser/parse_relation.c:3084
-#: parser/parse_relation.c:3104 utils/adt/tsvector_op.c:2222
+#: commands/copy.c:4750 commands/indexcmds.c:1070 commands/tablecmds.c:1685
+#: commands/tablecmds.c:2187 commands/tablecmds.c:2613
+#: parser/parse_relation.c:3249 parser/parse_relation.c:3269
+#: utils/adt/tsvector_op.c:2561
 #, c-format
 msgid "column \"%s\" does not exist"
 msgstr "no existe la columna «%s»"
 
-#: commands/copy.c:4435 commands/tablecmds.c:1489 commands/trigger.c:651
-#: parser/parse_target.c:956 parser/parse_target.c:967
+#: commands/copy.c:4757 commands/tablecmds.c:1711 commands/tablecmds.c:2213
+#: commands/trigger.c:800 parser/parse_target.c:1018
+#: parser/parse_target.c:1029
 #, c-format
 msgid "column \"%s\" specified more than once"
 msgstr "la columna «%s» fue especificada más de una vez"
 
-#: commands/createas.c:383
+#: commands/createas.c:213 commands/createas.c:509
 #, c-format
 msgid "too many column names were specified"
 msgstr "se especificaron demasiados nombres de columna"
 
-#: commands/createas.c:452
-#, fuzzy, c-format
+#: commands/createas.c:550
+#, c-format
 msgid "policies not yet implemented for this command"
-msgstr "DISTINCT no está implementado para funciones de ventana deslizante"
+msgstr "las políticas no están implementadas para esta orden"
 
-#: commands/dbcommands.c:226
+#: commands/dbcommands.c:235
 #, c-format
 msgid "LOCATION is not supported anymore"
 msgstr "LOCATION ya no está soportado"
 
-#: commands/dbcommands.c:227
+#: commands/dbcommands.c:236
 #, c-format
 msgid "Consider using tablespaces instead."
 msgstr "Considere usar tablespaces."
 
-#: commands/dbcommands.c:251 utils/adt/ascii.c:144
+#: commands/dbcommands.c:262 utils/adt/ascii.c:145
 #, 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:261 utils/adt/ascii.c:126
+#: commands/dbcommands.c:273 utils/adt/ascii.c:127
 #, c-format
 msgid "%s is not a valid encoding name"
 msgstr "%s no es un nombre válido de codificación"
 
-#: commands/dbcommands.c:279 commands/dbcommands.c:1458 commands/user.c:272
-#: commands/user.c:650
+#: commands/dbcommands.c:292 commands/dbcommands.c:1494 commands/user.c:276
+#: commands/user.c:641
 #, c-format
 msgid "invalid connection limit: %d"
 msgstr "límite de conexión no válido: %d"
 
-#: commands/dbcommands.c:298
+#: commands/dbcommands.c:311
 #, c-format
 msgid "permission denied to create database"
 msgstr "se ha denegado el permiso para crear la base de datos"
 
-#: commands/dbcommands.c:321
+#: commands/dbcommands.c:334
 #, c-format
 msgid "template database \"%s\" does not exist"
 msgstr "no existe la base de datos patrón «%s»"
 
-#: commands/dbcommands.c:333
+#: commands/dbcommands.c:346
 #, 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:349
+#: commands/dbcommands.c:362
 #, c-format
 msgid "invalid server encoding %d"
 msgstr "la codificación de servidor %d no es válida"
 
-#: commands/dbcommands.c:355 commands/dbcommands.c:360
+#: commands/dbcommands.c:368 commands/dbcommands.c:373
 #, c-format
 msgid "invalid locale name: \"%s\""
 msgstr "nombre de configuración regional no válido: «%s»"
 
-#: commands/dbcommands.c:380
+#: commands/dbcommands.c:393
 #, 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:383
+#: commands/dbcommands.c:396
 #, 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:388
+#: commands/dbcommands.c:401
 #, 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:390
+#: commands/dbcommands.c:403
 #, 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:395
+#: commands/dbcommands.c:408
 #, 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:397
+#: commands/dbcommands.c:410
 #, 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:419 commands/dbcommands.c:1113
+#: commands/dbcommands.c:432 commands/dbcommands.c:1146
 #, 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:445
+#: commands/dbcommands.c:458
 #, c-format
 msgid "cannot assign new default tablespace \"%s\""
 msgstr "no se puede asignar el nuevo tablespace por omisión «%s»"
 
-#: commands/dbcommands.c:447
+#: commands/dbcommands.c:460
 #, 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:467 commands/dbcommands.c:982
+#: commands/dbcommands.c:480 commands/dbcommands.c:1016
 #, c-format
 msgid "database \"%s\" already exists"
 msgstr "la base de datos «%s» ya existe"
 
-#: commands/dbcommands.c:481
+#: commands/dbcommands.c:494
 #, 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:726 commands/dbcommands.c:741
+#: commands/dbcommands.c:736 commands/dbcommands.c:751
 #, 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:729
+#: commands/dbcommands.c:739
 #, 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:744
+#: commands/dbcommands.c:754
 #, 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:804
+#: commands/dbcommands.c:815
 #, c-format
 msgid "database \"%s\" does not exist, skipping"
 msgstr "no existe la base de datos «%s», ignorando"
 
-#: commands/dbcommands.c:828
+#: commands/dbcommands.c:839
 #, c-format
 msgid "cannot drop a template database"
 msgstr "no se puede borrar una base de datos patrón"
 
-#: commands/dbcommands.c:834
+#: commands/dbcommands.c:845
 #, c-format
 msgid "cannot drop the currently open database"
 msgstr "no se puede eliminar la base de datos activa"
 
-#: commands/dbcommands.c:844
-#, c-format
-msgid "database \"%s\" is used by a logical replication slot"
+#: commands/dbcommands.c:858
+#, fuzzy, c-format
+msgid "database \"%s\" is used by an active logical replication slot"
 msgstr "la base de datos «%s» está siendo usada por un slot de replicación lógica"
 
-#: commands/dbcommands.c:846
-#, c-format
-msgid "There is %d slot, %d of them active."
-msgid_plural "There are %d slots, %d of them active."
+#: commands/dbcommands.c:860
+#, fuzzy, c-format
+msgid "There is %d active slot"
+msgid_plural "There are %d active slots"
 msgstr[0] "Hay %d slot, %d de ellos activo"
 msgstr[1] "Hay %d slots, %d de ellos activos."
 
-#: commands/dbcommands.c:860 commands/dbcommands.c:1004
-#: commands/dbcommands.c:1135
+#: commands/dbcommands.c:874 commands/dbcommands.c:1038
+#: commands/dbcommands.c:1168
 #, 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:973
+#: commands/dbcommands.c:887
+#, fuzzy, c-format
+msgid "database \"%s\" is being used by logical replication subscription"
+msgstr "la base de datos «%s» está siendo usada por un slot de replicación lógica"
+
+#: commands/dbcommands.c:889
+#, c-format
+msgid "There is %d subscription."
+msgid_plural "There are %d subscriptions."
+msgstr[0] ""
+msgstr[1] ""
+
+#: commands/dbcommands.c:1007
 #, 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:993
+#: commands/dbcommands.c:1027
 #, c-format
 msgid "current database cannot be renamed"
 msgstr "no se puede cambiar el nombre de la base de datos activa"
 
-#: commands/dbcommands.c:1091
+#: commands/dbcommands.c:1124
 #, 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:1194
+#: commands/dbcommands.c:1227
 #, 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:1196
+#: commands/dbcommands.c:1229
 #, 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:1325 commands/dbcommands.c:1868
-#: commands/dbcommands.c:2072 commands/dbcommands.c:2120
-#: commands/tablespace.c:610
+#: commands/dbcommands.c:1355 commands/dbcommands.c:1900
+#: commands/dbcommands.c:2104 commands/dbcommands.c:2159
+#: commands/tablespace.c:604
 #, 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:1440
-#, fuzzy, c-format
+#: commands/dbcommands.c:1475
+#, c-format
 msgid "option \"%s\" cannot be specified with other options"
-msgstr "el parámetro «%s» no se puede cambiar después de efectuar la conexión"
+msgstr "la opción «%s» no puede ser especificada con otras opciones"
 
-#: commands/dbcommands.c:1494
-#, fuzzy, c-format
+#: commands/dbcommands.c:1530
+#, c-format
 msgid "cannot disallow connections for current database"
-msgstr "demasiadas conexiones para la base de datos «%s»"
+msgstr "no se pueden prohibir las conexiones para la base de datos actual"
 
-#: commands/dbcommands.c:1634
+#: commands/dbcommands.c:1667
 #, 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:1955
+#: commands/dbcommands.c:1987
 #, 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:1958
+#: commands/dbcommands.c:1990
 #, 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:1963
+#: commands/dbcommands.c:1995
 #, c-format
 msgid "There is %d prepared transaction using the database."
 msgid_plural "There are %d prepared transactions using the database."
@@ -6166,7 +6249,7 @@ 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/define.c:54 commands/define.c:228 commands/define.c:260
-#: commands/define.c:288
+#: commands/define.c:288 commands/define.c:334
 #, c-format
 msgid "%s requires a parameter"
 msgstr "%s requiere un parámetro"
@@ -6202,455 +6285,472 @@ msgstr "el argumento de %s debe ser un nombre de tipo"
 msgid "invalid argument for %s: \"%s\""
 msgstr "argumento no válido para %s: «%s»"
 
-#: commands/dropcmds.c:112 commands/functioncmds.c:1203
-#: utils/adt/ruleutils.c:1965
+#: commands/dropcmds.c:104 commands/functioncmds.c:1201
+#: utils/adt/ruleutils.c:2445
 #, c-format
 msgid "\"%s\" is an aggregate function"
 msgstr "«%s» es una función de agregación"
 
-#: commands/dropcmds.c:114
+#: commands/dropcmds.c:106
 #, c-format
 msgid "Use DROP AGGREGATE to drop aggregate functions."
 msgstr "Use DROP AGGREGATE para eliminar funciones de agregación."
 
-#: commands/dropcmds.c:165 commands/sequence.c:424 commands/tablecmds.c:2377
-#: commands/tablecmds.c:2528 commands/tablecmds.c:2570
-#: commands/tablecmds.c:11379 tcop/utility.c:1119
+#: commands/dropcmds.c:157 commands/sequence.c:442 commands/tablecmds.c:2697
+#: commands/tablecmds.c:2848 commands/tablecmds.c:2891
+#: commands/tablecmds.c:12449 tcop/utility.c:1168
 #, c-format
 msgid "relation \"%s\" does not exist, skipping"
 msgstr "no existe la relación «%s», ignorando"
 
-#: commands/dropcmds.c:195 commands/dropcmds.c:292 commands/tablecmds.c:745
+#: commands/dropcmds.c:187 commands/dropcmds.c:286 commands/tablecmds.c:896
 #, c-format
 msgid "schema \"%s\" does not exist, skipping"
 msgstr "el esquema «%s» no existe, ignorando"
 
-#: commands/dropcmds.c:237 commands/dropcmds.c:272 commands/tablecmds.c:246
+#: commands/dropcmds.c:227 commands/dropcmds.c:266 commands/tablecmds.c:252
 #, c-format
 msgid "type \"%s\" does not exist, skipping"
 msgstr "el tipo «%s» no existe, ignorando"
 
-#: commands/dropcmds.c:280
+#: commands/dropcmds.c:256
+#, c-format
+msgid "access method \"%s\" does not exist, skipping"
+msgstr "no existe el método de acceso «%s», ignorando"
+
+#: commands/dropcmds.c:274
 #, c-format
 msgid "collation \"%s\" does not exist, skipping"
 msgstr "no existe el ordenamiento (collation) «%s», ignorando"
 
-#: commands/dropcmds.c:287
+#: commands/dropcmds.c:281
 #, c-format
 msgid "conversion \"%s\" does not exist, skipping"
 msgstr "no existe la conversión «%s», ignorando"
 
-#: commands/dropcmds.c:298
+#: commands/dropcmds.c:292
+#, fuzzy, c-format
+msgid "statistics object \"%s\" does not exist, skipping"
+msgstr "la tabla «%s» no existe, ignorando"
+
+#: commands/dropcmds.c:299
 #, c-format
 msgid "text search parser \"%s\" does not exist, skipping"
 msgstr "el analizador de búsqueda en texto «%s» no existe, ignorando"
 
-#: commands/dropcmds.c:305
+#: commands/dropcmds.c:306
 #, c-format
 msgid "text search dictionary \"%s\" does not exist, skipping"
 msgstr "el diccionario de búsqueda en texto «%s» no existe, ignorando"
 
-#: commands/dropcmds.c:312
+#: commands/dropcmds.c:313
 #, c-format
 msgid "text search template \"%s\" does not exist, skipping"
 msgstr "la plantilla de búsqueda en texto «%s» no existe, ignorando"
 
-#: commands/dropcmds.c:319
+#: commands/dropcmds.c:320
 #, c-format
 msgid "text search configuration \"%s\" does not exist, skipping"
 msgstr "no existe la configuración de búsqueda en texto «%s», ignorando"
 
-#: commands/dropcmds.c:324
+#: commands/dropcmds.c:325
 #, c-format
 msgid "extension \"%s\" does not exist, skipping"
 msgstr "no existe la extensión «%s», ignorando"
 
-#: commands/dropcmds.c:331
+#: commands/dropcmds.c:335
 #, c-format
 msgid "function %s(%s) does not exist, skipping"
 msgstr "no existe la función %s(%s), ignorando"
 
-#: commands/dropcmds.c:340
+#: commands/dropcmds.c:348
 #, c-format
 msgid "aggregate %s(%s) does not exist, skipping"
 msgstr "la función de agregación %s(%s) no existe, ignorando"
 
-#: commands/dropcmds.c:349
+#: commands/dropcmds.c:361
 #, c-format
 msgid "operator %s does not exist, skipping"
 msgstr "el operador %s no existe, ignorando"
 
-#: commands/dropcmds.c:354
+#: commands/dropcmds.c:367
 #, c-format
 msgid "language \"%s\" does not exist, skipping"
 msgstr "el lenguaje «%s» no existe, ignorando"
 
-#: commands/dropcmds.c:363
+#: commands/dropcmds.c:376
 #, 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, ignorando"
 
-#: commands/dropcmds.c:372
-#, fuzzy, c-format
+#: commands/dropcmds.c:385
+#, c-format
 msgid "transform for type %s language \"%s\" does not exist, skipping"
-msgstr "el lenguaje «%s» no existe, ignorando"
+msgstr "la transformación para el tipo %s lenguaje «%s» no existe, ignorando"
 
-#: commands/dropcmds.c:380
+#: commands/dropcmds.c:393
 #, c-format
 msgid "trigger \"%s\" for relation \"%s\" does not exist, skipping"
 msgstr "disparador «%s» para la relación «%s» no existe, ignorando"
 
-#: commands/dropcmds.c:389
-#, fuzzy, c-format
+#: commands/dropcmds.c:402
+#, c-format
 msgid "policy \"%s\" for relation \"%s\" does not exist, skipping"
-msgstr "la regla «%s» para la relación «%s» no existe, ignorando"
+msgstr "la política «%s» para la relación «%s» no existe, ignorando"
 
-#: commands/dropcmds.c:396
+#: commands/dropcmds.c:409
 #, c-format
 msgid "event trigger \"%s\" does not exist, skipping"
 msgstr "el disparador por eventos «%s» no existe, ignorando"
 
-#: commands/dropcmds.c:402
+#: commands/dropcmds.c:415
 #, c-format
 msgid "rule \"%s\" for relation \"%s\" does not exist, skipping"
 msgstr "la regla «%s» para la relación «%s» no existe, ignorando"
 
-#: commands/dropcmds.c:409
+#: commands/dropcmds.c:422
 #, c-format
 msgid "foreign-data wrapper \"%s\" does not exist, skipping"
 msgstr "no existe el conector de datos externos «%s», ignorando"
 
-#: commands/dropcmds.c:413
+#: commands/dropcmds.c:426
 #, c-format
 msgid "server \"%s\" does not exist, skipping"
 msgstr "el servidor «%s» no existe, ignorando"
 
-#: commands/dropcmds.c:422
+#: commands/dropcmds.c:435
 #, 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», ignorando"
 
-#: commands/dropcmds.c:434
+#: commands/dropcmds.c:447
 #, 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», ignorando"
 
-#: commands/event_trigger.c:182
+#: commands/dropcmds.c:454
+#, fuzzy, c-format
+msgid "publication \"%s\" does not exist, skipping"
+msgstr "no existe la relación «%s», ignorando"
+
+#: commands/event_trigger.c:185
 #, c-format
 msgid "permission denied to create event trigger \"%s\""
 msgstr "se ha denegado el permiso para crear el disparador por eventos «%s»"
 
-#: commands/event_trigger.c:184
+#: commands/event_trigger.c:187
 #, c-format
 msgid "Must be superuser to create an event trigger."
 msgstr "Debe ser superusuario para crear un disparador por eventos."
 
-#: commands/event_trigger.c:193
+#: commands/event_trigger.c:196
 #, c-format
 msgid "unrecognized event name \"%s\""
 msgstr "nomre de evento no reconocido «%s»"
 
-#: commands/event_trigger.c:210
+#: commands/event_trigger.c:213
 #, c-format
 msgid "unrecognized filter variable \"%s\""
 msgstr "variable de filtro «%s» no reconocida"
 
-#: commands/event_trigger.c:265
+#: commands/event_trigger.c:268
 #, 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:271 commands/event_trigger.c:341
+#: commands/event_trigger.c:274 commands/event_trigger.c:344
 #, c-format
 msgid "event triggers are not supported for %s"
 msgstr "los disparadores por eventos no están soportados para %s"
 
-#: commands/event_trigger.c:364
+#: commands/event_trigger.c:367
 #, 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:512 commands/event_trigger.c:556
+#: commands/event_trigger.c:514 commands/event_trigger.c:557
 #: commands/event_trigger.c:649
 #, c-format
 msgid "event trigger \"%s\" does not exist"
 msgstr "no existe el disparador por eventos «%s»"
 
-#: commands/event_trigger.c:617
+#: commands/event_trigger.c:618
 #, 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»"
 
-#: commands/event_trigger.c:619
+#: commands/event_trigger.c:620
 #, 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."
 
-#: commands/event_trigger.c:1442
+#: commands/event_trigger.c:1464
 #, 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"
 
-#: commands/event_trigger.c:1562 commands/event_trigger.c:1583
-#, fuzzy, c-format
+#: commands/event_trigger.c:1584 commands/event_trigger.c:1605
+#, 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 sql_drop"
+msgstr "%s sólo puede invocarse en una función de un disparador en el evento table_rewrite"
 
-#: commands/event_trigger.c:1993
-#, fuzzy, c-format
+#: commands/event_trigger.c:2015
+#, 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 en el evento sql_drop"
+msgstr "%s sólo puede invocarse en una función de un disparador por eventos"
 
-#: commands/explain.c:184
+#: commands/explain.c:194
 #, 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:190
+#: commands/explain.c:201
 #, c-format
 msgid "unrecognized EXPLAIN option \"%s\""
 msgstr "opción de EXPLAIN no reconocida «%s»"
 
-#: commands/explain.c:197
+#: commands/explain.c:209
 #, c-format
 msgid "EXPLAIN option BUFFERS requires ANALYZE"
 msgstr "la opción BUFFERS de EXPLAIN requiere ANALYZE"
 
-#: commands/explain.c:206
+#: commands/explain.c:218
 #, c-format
 msgid "EXPLAIN option TIMING requires ANALYZE"
 msgstr "la opción TIMING de EXPLAIN requiere ANALYZE"
 
-#: commands/extension.c:154 commands/extension.c:2718
+#: commands/extension.c:168 commands/extension.c:2907
 #, c-format
 msgid "extension \"%s\" does not exist"
 msgstr "no existe la extensión «%s»"
 
-#: commands/extension.c:253 commands/extension.c:262 commands/extension.c:274
-#: commands/extension.c:284
+#: commands/extension.c:267 commands/extension.c:276 commands/extension.c:288
+#: commands/extension.c:298
 #, c-format
 msgid "invalid extension name: \"%s\""
 msgstr "nombre de extensión no válido: «%s»"
 
-#: commands/extension.c:254
+#: commands/extension.c:268
 #, c-format
 msgid "Extension names must not be empty."
 msgstr "Los nombres de extensión no deben ser vacíos."
 
-#: commands/extension.c:263
+#: commands/extension.c:277
 #, c-format
 msgid "Extension names must not contain \"--\"."
 msgstr "Los nombres de extensión no deben contener «--»."
 
-#: commands/extension.c:275
+#: commands/extension.c:289
 #, 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:285
+#: commands/extension.c:299
 #, 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:300 commands/extension.c:309 commands/extension.c:318
-#: commands/extension.c:328
+#: commands/extension.c:314 commands/extension.c:323 commands/extension.c:332
+#: commands/extension.c:342
 #, c-format
 msgid "invalid extension version name: \"%s\""
 msgstr "nombre de versión de extensión no válido: «%s»"
 
-#: commands/extension.c:301
+#: commands/extension.c:315
 #, c-format
 msgid "Version names must not be empty."
 msgstr "Los nombres de versión no deben ser vacíos."
 
-#: commands/extension.c:310
+#: commands/extension.c:324
 #, c-format
 msgid "Version names must not contain \"--\"."
 msgstr "Los nombres de versión no deben contener «--»."
 
-#: commands/extension.c:319
+#: commands/extension.c:333
 #, 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:329
+#: commands/extension.c:343
 #, 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:479
+#: commands/extension.c:493
 #, 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:501 commands/extension.c:511
+#: commands/extension.c:515 commands/extension.c:525
 #, 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:550
+#: commands/extension.c:564
 #, c-format
 msgid "\"%s\" is not a valid encoding name"
 msgstr "«%s» no es un nombre válido de codificación"
 
-#: commands/extension.c:564
+#: commands/extension.c:578
 #, 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:571
+#: commands/extension.c:585
 #, c-format
 msgid "unrecognized parameter \"%s\" in file \"%s\""
 msgstr "parámetro no reconocido «%s» en el archivo «%s»"
 
-#: commands/extension.c:580
+#: commands/extension.c:594
 #, 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:721
+#: commands/extension.c:761
 #, 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:789
+#: commands/extension.c:807
 #, c-format
 msgid "permission denied to create extension \"%s\""
 msgstr "se ha denegado el permiso para crear la extensión «%s»"
 
-#: commands/extension.c:791
+#: commands/extension.c:809
 #, c-format
 msgid "Must be superuser to create this extension."
 msgstr "Debe ser superusuario para crear esta extensión."
 
-#: commands/extension.c:795
+#: commands/extension.c:813
 #, c-format
 msgid "permission denied to update extension \"%s\""
 msgstr "se ha denegado el permiso para actualizar la extensión «%s»"
 
-#: commands/extension.c:797
+#: commands/extension.c:815
 #, c-format
 msgid "Must be superuser to update this extension."
 msgstr "Debe ser superusuario para actualizar esta extensión."
 
-#: commands/extension.c:1079
+#: commands/extension.c:1097
 #, 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:1261 commands/extension.c:2778
+#: commands/extension.c:1304 commands/extension.c:2968
 #, c-format
 msgid "version to install must be specified"
 msgstr "la versión a instalar debe ser especificada"
 
-#: commands/extension.c:1278
+#: commands/extension.c:1326
 #, c-format
 msgid "FROM version must be different from installation target version \"%s\""
 msgstr "la versión FROM debe ser diferente de la versión destino de instalación «%s»"
 
-#: commands/extension.c:1343
+#: commands/extension.c:1391
+#, fuzzy, c-format
+msgid "extension \"%s\" has no installation script nor update path for 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:1426
 #, 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:1435
-#, fuzzy, c-format
-#| msgid "collation mismatch between explicit collations \"%s\" and \"%s\""
+#: commands/extension.c:1579
+#, c-format
 msgid "cyclic dependency detected between extensions \"%s\" and \"%s\""
-msgstr "discordancia de ordenamientos (collation) entre los ordenamientos explícitos «%s» y «%s»"
+msgstr "detectada una dependencia cíclica entre las extensiones «%s» y «%s»"
 
-#: commands/extension.c:1440
-#, fuzzy, c-format
-#| msgid "invalid extension name: \"%s\""
+#: commands/extension.c:1584
+#, c-format
 msgid "installing required extension \"%s\""
-msgstr "nombre de extensión no válido: «%s»"
+msgstr "instalando la extensión requerida «%s»"
 
-#: commands/extension.c:1468 commands/extension.c:2923
+#: commands/extension.c:1608
 #, c-format
 msgid "required extension \"%s\" is not installed"
 msgstr "la extensión requerida «%s» no está instalada"
 
-#: commands/extension.c:1470
-#, fuzzy, c-format
-#| msgid "Use ALTER ... CASCADE to alter the typed tables too."
-msgid "Use CREATE EXTENSION CASCADE to install required extensions too."
-msgstr "Use ALTER ... CASCADE para eliminar además las tablas tipadas."
+#: commands/extension.c:1611
+#, 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:1534
+#: commands/extension.c:1648
 #, c-format
 msgid "extension \"%s\" already exists, skipping"
 msgstr "la extensión «%s» ya existe, ignorando"
 
-#: commands/extension.c:1541
+#: commands/extension.c:1655
 #, c-format
 msgid "extension \"%s\" already exists"
 msgstr "la extensión «%s» ya existe"
 
-#: commands/extension.c:1552
+#: commands/extension.c:1666
 #, c-format
 msgid "nested CREATE EXTENSION is not supported"
 msgstr "los CREATE EXTENSION anidados no están soportados"
 
-#: commands/extension.c:1680
+#: commands/extension.c:1847
 #, 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:2151
+#: commands/extension.c:2349
 #, c-format
 msgid "pg_extension_config_dump() can only be called from an SQL script executed by CREATE EXTENSION"
 msgstr "pg_extension_config_dump() sólo puede ser llamado desde un guión SQL ejecutado por CREATE EXTENSION"
 
-#: commands/extension.c:2163
+#: commands/extension.c:2361
 #, c-format
 msgid "OID %u does not refer to a table"
 msgstr "el OID %u no hace referencia a una tabla"
 
-#: commands/extension.c:2168
+#: commands/extension.c:2366
 #, 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:2533
+#: commands/extension.c:2722
 #, 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:2573 commands/extension.c:2636
+#: commands/extension.c:2763 commands/extension.c:2826
 #, c-format
 msgid "extension \"%s\" does not support SET SCHEMA"
 msgstr "la extensión «%s» no soporta SET SCHEMA"
 
-#: commands/extension.c:2638
+#: commands/extension.c:2828
 #, 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:2698
+#: commands/extension.c:2887
 #, c-format
 msgid "nested ALTER EXTENSION is not supported"
 msgstr "los ALTER EXTENSION anidados no están soportados"
 
-#: commands/extension.c:2789
+#: commands/extension.c:2979
 #, 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:3040
+#: commands/extension.c:3230
 #, 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:3058
+#: commands/extension.c:3258
 #, c-format
 msgid "%s is not a member of extension \"%s\""
 msgstr "%s no es un miembro de la extensión «%s»"
 
-#: commands/extension.c:3114
-#, fuzzy, c-format
+#: commands/extension.c:3324
+#, c-format
 msgid "file \"%s\" is too large"
-msgstr "el tsquery es demasiado grande"
+msgstr "el archivo «%s» es demasiado grande"
 
 #: commands/foreigncmds.c:150 commands/foreigncmds.c:159
 #, c-format
@@ -6677,75 +6777,85 @@ 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:292 commands/foreigncmds.c:709 foreign/foreign.c:777
+#: commands/foreigncmds.c:291 commands/foreigncmds.c:706 foreign/foreign.c:667
 #, c-format
 msgid "foreign-data wrapper \"%s\" does not exist"
 msgstr "no existe el conector de datos externos «%s»"
 
-#: commands/foreigncmds.c:584
+#: commands/foreigncmds.c:582
 #, c-format
 msgid "permission denied to create foreign-data wrapper \"%s\""
 msgstr "se ha denegado el permiso para crear el conector de datos externos «%s»"
 
-#: commands/foreigncmds.c:586
+#: commands/foreigncmds.c:584
 #, c-format
 msgid "Must be superuser to create a foreign-data wrapper."
 msgstr "Debe ser superusuario para crear un conector de datos externos."
 
-#: commands/foreigncmds.c:699
+#: commands/foreigncmds.c:696
 #, c-format
 msgid "permission denied to alter foreign-data wrapper \"%s\""
 msgstr "permiso denegado para cambiar el conector de datos externos «%s»"
 
-#: commands/foreigncmds.c:701
+#: commands/foreigncmds.c:698
 #, c-format
 msgid "Must be superuser to alter a foreign-data wrapper."
 msgstr "Debe ser superusuario para alterar un conector de datos externos."
 
-#: commands/foreigncmds.c:732
+#: commands/foreigncmds.c:729
 #, c-format
 msgid "changing the foreign-data wrapper handler can change behavior of existing foreign tables"
 msgstr "al cambiar el manejador del conector de datos externos, el comportamiento de las tablas foráneas existentes puede cambiar"
 
-#: commands/foreigncmds.c:747
+#: commands/foreigncmds.c:744
 #, c-format
 msgid "changing the foreign-data wrapper validator can cause the options for dependent objects to become invalid"
 msgstr "al cambiar el validador del conector de datos externos, las opciones para los objetos dependientes de él pueden volverse no válidas"
 
-#: commands/foreigncmds.c:1169
-#, c-format
-msgid "user mapping \"%s\" already exists for server %s"
-msgstr "ya existe un mapeo para el usuario «%s» en el servidor %s"
+#: commands/foreigncmds.c:890
+#, fuzzy, c-format
+msgid "server \"%s\" already exists, skipping"
+msgstr "el esquema «%s» ya existe, ignorando"
 
-#: commands/foreigncmds.c:1267 commands/foreigncmds.c:1388
-#, c-format
-msgid "user mapping \"%s\" does not exist for the server"
+#: commands/foreigncmds.c:1175
+#, fuzzy, c-format
+msgid "user mapping for \"%s\" already exists for server %s, skipping"
+msgstr "el mapeo para el usuario «%s» en el servidor %s ya existe"
+
+#: commands/foreigncmds.c:1185
+#, fuzzy, c-format
+msgid "user mapping for \"%s\" already exists for server %s"
+msgstr "el mapeo para el usuario «%s» en el servidor %s ya existe"
+
+#: commands/foreigncmds.c:1278 commands/foreigncmds.c:1393
+#, fuzzy, c-format
+msgid "user mapping for \"%s\" does not exist for the server"
 msgstr "no existe el mapeo para el usuario «%s» para el servidor"
 
-#: commands/foreigncmds.c:1375
+#: commands/foreigncmds.c:1380
 #, c-format
 msgid "server does not exist, skipping"
 msgstr "el servidor no existe, ignorando"
 
-#: commands/foreigncmds.c:1393
-#, c-format
-msgid "user mapping \"%s\" does not exist for the server, skipping"
-msgstr "el mapeo para el usuario «%s» no existe para el servidor, ignorando"
+#: commands/foreigncmds.c:1398
+#, fuzzy, c-format
+msgid "user mapping for \"%s\" does not exist for the server, skipping"
+msgstr "el mapeo para el usuario «%s» para el servidor no existe, ignorando"
 
-#: commands/foreigncmds.c:1545 foreign/foreign.c:467
+#: commands/foreigncmds.c:1549 foreign/foreign.c:357
 #, c-format
 msgid "foreign-data wrapper \"%s\" has no handler"
 msgstr "el conector de datos externos «%s» no tiene manejador"
 
-#: commands/foreigncmds.c:1551
-#, fuzzy, c-format
+#: commands/foreigncmds.c:1555
+#, c-format
 msgid "foreign-data wrapper \"%s\" does not support IMPORT FOREIGN SCHEMA"
-msgstr "no existe el conector de datos externos «%s»"
+msgstr "el conector de datos externos «%s» no soporta IMPORT FOREIGN SCHEMA"
 
-#: commands/foreigncmds.c:1644
-#, fuzzy, c-format
+#: commands/foreigncmds.c:1658
+#, c-format
 msgid "importing foreign table \"%s\""
-msgstr "no se puede insertar en la tabla foránea «%s»"
+msgstr "importando la tabla foránea «%s»"
 
 #: commands/functioncmds.c:99
 #, c-format
@@ -6772,87 +6882,87 @@ msgstr "el tipo «%s» no ha sido definido aún"
 msgid "Creating a shell type definition."
 msgstr "Creando una definición de tipo inconclusa."
 
-#: commands/functioncmds.c:239
+#: commands/functioncmds.c:233
 #, c-format
 msgid "SQL function cannot accept shell type %s"
 msgstr "las funciones SQL no pueden aceptar el tipo inconcluso %s"
 
-#: commands/functioncmds.c:245
+#: commands/functioncmds.c:239
 #, 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:250
+#: commands/functioncmds.c:244
 #, c-format
 msgid "argument type %s is only a shell"
 msgstr "el tipo de argumento %s está inconcluso"
 
-#: commands/functioncmds.c:260
+#: commands/functioncmds.c:254
 #, c-format
 msgid "type %s does not exist"
 msgstr "no existe el tipo %s"
 
-#: commands/functioncmds.c:274
+#: commands/functioncmds.c:268
 #, c-format
 msgid "aggregates cannot accept set arguments"
 msgstr "las funciones de agregación no pueden aceptar argumentos complejos"
 
-#: commands/functioncmds.c:278
+#: commands/functioncmds.c:272
 #, c-format
 msgid "functions cannot accept set arguments"
 msgstr "funciones no pueden aceptar argumentos de conjunto"
 
-#: commands/functioncmds.c:288
+#: commands/functioncmds.c:282
 #, 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:316
+#: commands/functioncmds.c:310
 #, c-format
 msgid "VARIADIC parameter must be an array"
 msgstr "el parámetro VARIADIC debe ser un array"
 
-#: commands/functioncmds.c:356
+#: commands/functioncmds.c:350
 #, c-format
 msgid "parameter name \"%s\" used more than once"
 msgstr "el nombre de parámetro «%s» fue usado más de una vez"
 
-#: commands/functioncmds.c:371
+#: commands/functioncmds.c:365
 #, 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:386
+#: commands/functioncmds.c:380
 #, 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:410
+#: commands/functioncmds.c:404
 #, 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:701
+#: commands/functioncmds.c:700
 #, c-format
 msgid "no function body specified"
 msgstr "no se ha especificado un cuerpo para la función"
 
-#: commands/functioncmds.c:711
+#: commands/functioncmds.c:710
 #, c-format
 msgid "no language specified"
 msgstr "no se ha especificado el lenguaje"
 
-#: commands/functioncmds.c:736 commands/functioncmds.c:1243
+#: commands/functioncmds.c:735 commands/functioncmds.c:1242
 #, c-format
 msgid "COST must be positive"
 msgstr "COST debe ser positivo"
 
-#: commands/functioncmds.c:744 commands/functioncmds.c:1251
+#: commands/functioncmds.c:743 commands/functioncmds.c:1250
 #, c-format
 msgid "ROWS must be positive"
 msgstr "ROWS debe ser positivo"
 
-#: commands/functioncmds.c:785
+#: commands/functioncmds.c:784
 #, c-format
 msgid "unrecognized function attribute \"%s\" ignored"
 msgstr "se ignoró el atributo de función no reconocido «%s»"
@@ -6862,18 +6972,18 @@ msgstr "se ignoró el atributo de función no reconocido «%s»"
 msgid "only one AS item needed for language \"%s\""
 msgstr "sólo se requiere un item AS para el lenguaje «%s»"
 
-#: commands/functioncmds.c:929 commands/functioncmds.c:2119
-#: commands/proclang.c:563
+#: commands/functioncmds.c:930 commands/functioncmds.c:2131
+#: commands/proclang.c:561
 #, c-format
 msgid "language \"%s\" does not exist"
 msgstr "no existe el lenguaje «%s»"
 
-#: commands/functioncmds.c:931 commands/functioncmds.c:2121
+#: commands/functioncmds.c:932 commands/functioncmds.c:2133
 #, c-format
 msgid "Use CREATE LANGUAGE to load the language into the database."
 msgstr "Usar CREATE LANGUAGE para instalar el lenguaje en la base de datos."
 
-#: commands/functioncmds.c:966 commands/functioncmds.c:1235
+#: commands/functioncmds.c:967 commands/functioncmds.c:1234
 #, c-format
 msgid "only superuser can define a leakproof function"
 msgstr "sólo un superusuario puede definir funciones «leakproof»"
@@ -6888,350 +6998,351 @@ msgstr "tipo de retorno de función debe ser %s debido a los parámetros OUT"
 msgid "function result type must be specified"
 msgstr "el tipo de retorno de la función debe ser especificado"
 
-#: commands/functioncmds.c:1077 commands/functioncmds.c:1255
+#: commands/functioncmds.c:1077 commands/functioncmds.c:1254
 #, 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:1412
+#: commands/functioncmds.c:1426
 #, c-format
 msgid "source data type %s is a pseudo-type"
 msgstr "el tipo de origen %s es un pseudotipo"
 
-#: commands/functioncmds.c:1418
+#: commands/functioncmds.c:1432
 #, c-format
 msgid "target data type %s is a pseudo-type"
 msgstr "el tipo de retorno %s es un pseudotipo"
 
-#: commands/functioncmds.c:1442
+#: commands/functioncmds.c:1456
 #, 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:1447
+#: commands/functioncmds.c:1461
 #, 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:1474
+#: commands/functioncmds.c:1486
 #, 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:1478
+#: commands/functioncmds.c:1490
 #, 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:1482
-#, c-format
-msgid "second argument of cast function must be type integer"
+#: commands/functioncmds.c:1494
+#, fuzzy, 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 entero"
 
-#: commands/functioncmds.c:1486
-#, c-format
-msgid "third argument of cast function must be type boolean"
+#: commands/functioncmds.c:1499
+#, fuzzy, 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 boolean"
 
-#: commands/functioncmds.c:1490
+#: commands/functioncmds.c:1504
 #, 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:1501
+#: commands/functioncmds.c:1515
 #, c-format
 msgid "cast function must not be volatile"
 msgstr "la función de conversión no debe ser volatile"
 
-#: commands/functioncmds.c:1506
+#: commands/functioncmds.c:1520
 #, c-format
 msgid "cast function must not be an aggregate function"
 msgstr "la función de conversión no debe ser una función de agregación"
 
-#: commands/functioncmds.c:1510
+#: commands/functioncmds.c:1524
 #, c-format
 msgid "cast function must not be a window function"
 msgstr "la función de conversión no debe ser una función de ventana deslizante"
 
-#: commands/functioncmds.c:1514
+#: commands/functioncmds.c:1528
 #, 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:1540
+#: commands/functioncmds.c:1554
 #, 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:1555
+#: commands/functioncmds.c:1569
 #, 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:1570
+#: commands/functioncmds.c:1584
 #, c-format
 msgid "composite data types are not binary-compatible"
 msgstr "los tipos de datos compuestos no son binario-compatibles"
 
-#: commands/functioncmds.c:1576
+#: commands/functioncmds.c:1590
 #, c-format
 msgid "enum data types are not binary-compatible"
 msgstr "los tipos de datos enum no son binario-compatibles"
 
-#: commands/functioncmds.c:1582
+#: commands/functioncmds.c:1596
 #, c-format
 msgid "array data types are not binary-compatible"
 msgstr "los tipos de datos de array no son binario-compatibles"
 
-#: commands/functioncmds.c:1599
+#: commands/functioncmds.c:1613
 #, 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:1609
+#: commands/functioncmds.c:1623
 #, 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:1642
+#: commands/functioncmds.c:1656
 #, c-format
 msgid "cast from type %s to type %s already exists"
 msgstr "ya existe una conversión del tipo %s al tipo %s"
 
-#: commands/functioncmds.c:1717
+#: commands/functioncmds.c:1729
 #, 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"
 
-#: commands/functioncmds.c:1756
-#, fuzzy, c-format
+#: commands/functioncmds.c:1768
+#, c-format
 msgid "transform function must not be volatile"
-msgstr "la función de conversión no debe ser volatile"
+msgstr "la función de transformación no debe ser volatile"
 
-#: commands/functioncmds.c:1760
-#, fuzzy, c-format
+#: commands/functioncmds.c:1772
+#, c-format
 msgid "transform function must not be an aggregate function"
-msgstr "la función de conversión no debe ser una función de agregación"
+msgstr "la función de transformación no debe ser una función de agregación"
 
-#: commands/functioncmds.c:1764
-#, fuzzy, c-format
+#: commands/functioncmds.c:1776
+#, c-format
 msgid "transform function must not be a window function"
-msgstr "la función de conversión no debe ser una función de ventana deslizante"
+msgstr "la función de transformación no debe ser una función de ventana deslizante"
 
-#: commands/functioncmds.c:1768
-#, fuzzy, c-format
+#: commands/functioncmds.c:1780
+#, c-format
 msgid "transform function must not return a set"
-msgstr "la función de conversión no debe retornar un conjunto"
+msgstr "la función de transformación no debe retornar un conjunto"
 
-#: commands/functioncmds.c:1772
-#, fuzzy, c-format
+#: commands/functioncmds.c:1784
+#, c-format
 msgid "transform function must take one argument"
-msgstr "la función de conversión lleva de uno a tres argumentos"
+msgstr "la función de transformación debe recibir un argumento"
 
-#: commands/functioncmds.c:1776
+#: commands/functioncmds.c:1788
 #, fuzzy, c-format
-msgid "first argument of transform function must be type \"internal\""
-msgstr "el segundo argumento de la función de conversión debe ser entero"
+msgid "first argument of transform function must be type %s"
+msgstr "el primer argumento de la función de transformación debe ser «internal»"
 
-#: commands/functioncmds.c:1813
-#, fuzzy, c-format
+#: commands/functioncmds.c:1826
+#, c-format
 msgid "data type %s is a pseudo-type"
-msgstr "el tipo de origen %s es un pseudotipo"
+msgstr "el tipo de dato %s es un pseudo-tipo"
 
-#: commands/functioncmds.c:1819
-#, fuzzy, c-format
+#: commands/functioncmds.c:1832
+#, c-format
 msgid "data type %s is a domain"
-msgstr "tipo «%s» no es un dominio"
+msgstr "tipo de dato «%s» es un dominio"
 
-#: commands/functioncmds.c:1859
+#: commands/functioncmds.c:1872
 #, fuzzy, c-format
-msgid "return data type of FROM SQL function must be \"internal\""
-msgstr "el tipo de salida de la función de conversión debe coincidir o ser binario-convertible con el tipo de retorno"
+msgid "return data type of FROM SQL function must be %s"
+msgstr "el tipo de retorno de la función FROM SQL debe ser «internal»"
 
-#: commands/functioncmds.c:1884
-#, fuzzy, c-format
+#: commands/functioncmds.c:1898
+#, c-format
 msgid "return data type of TO SQL function must be the transform 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"
+msgstr "el tipo de retorn de la función TO SQL debe ser el tipo de dato de la transformación"
 
-#: commands/functioncmds.c:1911
-#, fuzzy, c-format
+#: commands/functioncmds.c:1925
+#, c-format
 msgid "transform for type %s language \"%s\" already exists"
-msgstr "ya existe el lenguaje «%s»"
+msgstr "la transformación para el tipo %s lenguaje «%s» ya existe"
 
-#: commands/functioncmds.c:2002
-#, fuzzy, c-format
+#: commands/functioncmds.c:2014
+#, c-format
 msgid "transform for type %s language \"%s\" does not exist"
-msgstr "no existe el lenguaje «%s»"
+msgstr "la transformación para el tipo %s lenguaje «%s» no existe"
 
-#: commands/functioncmds.c:2053
+#: commands/functioncmds.c:2065
 #, 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:2106
+#: commands/functioncmds.c:2118
 #, c-format
 msgid "no inline code specified"
 msgstr "no se ha especificado código"
 
-#: commands/functioncmds.c:2151
+#: commands/functioncmds.c:2163
 #, 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/indexcmds.c:349
+#: commands/indexcmds.c:354
 #, c-format
 msgid "must specify at least one column"
 msgstr "debe especificar al menos una columna"
 
-#: commands/indexcmds.c:353
+#: commands/indexcmds.c:358
 #, 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:384
+#: commands/indexcmds.c:389
 #, c-format
 msgid "cannot create index on foreign table \"%s\""
 msgstr "no se puede crear un índice en la tabla foránea «%s»"
 
-#: commands/indexcmds.c:399
+#: commands/indexcmds.c:394
+#, fuzzy, c-format
+msgid "cannot create index on partitioned table \"%s\""
+msgstr "no se puede crear un índice en la tabla foránea «%s»"
+
+#: commands/indexcmds.c:409
 #, 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:454 commands/tablecmds.c:545 commands/tablecmds.c:9599
+#: commands/indexcmds.c:474 commands/tablecmds.c:593
+#: commands/tablecmds.c:10493
 #, 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:487
+#: commands/indexcmds.c:507
 #, 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:505
-#, c-format
-msgid "hash indexes are not WAL-logged and their use is discouraged"
-msgstr ""
-
-#: commands/indexcmds.c:510
+#: commands/indexcmds.c:525
 #, 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:515
+#: commands/indexcmds.c:530
 #, 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:520
+#: commands/indexcmds.c:535
 #, c-format
 msgid "access method \"%s\" does not support exclusion constraints"
 msgstr "el método de acceso «%s» no soporta restricciones por exclusión"
 
-#: commands/indexcmds.c:590 commands/indexcmds.c:610
-#, fuzzy, c-format
-#| msgid "concurrent index creation on system catalog tables is not supported"
+#: commands/indexcmds.c:607 commands/indexcmds.c:627
+#, c-format
 msgid "index creation on system columns is not supported"
-msgstr "no se pueden crear índices de forma concurrente en tablas del sistema"
+msgstr "la creación de índices en columnas de sistema no está soportada"
 
-#: commands/indexcmds.c:635
+#: commands/indexcmds.c:652
 #, c-format
 msgid "%s %s will create implicit index \"%s\" for table \"%s\""
 msgstr "%s %s creará el índice implícito «%s» para la tabla «%s»"
 
-#: commands/indexcmds.c:982
+#: commands/indexcmds.c:999
 #, 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:1048 parser/parse_utilcmd.c:1894
+#: commands/indexcmds.c:1065 parser/parse_utilcmd.c:2075
 #, c-format
 msgid "column \"%s\" named in key does not exist"
 msgstr "no existe la columna «%s» en la llave"
 
-#: commands/indexcmds.c:1108
+#: commands/indexcmds.c:1125
 #, 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:1131
+#: commands/indexcmds.c:1148
 #, 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:1139 commands/typecmds.c:827 parser/parse_expr.c:2583
-#: parser/parse_type.c:550 parser/parse_utilcmd.c:2820 utils/adt/misc.c:666
+#: commands/indexcmds.c:1156 commands/tablecmds.c:13383
+#: commands/typecmds.c:831 parser/parse_expr.c:2763 parser/parse_type.c:549
+#: parser/parse_utilcmd.c:3111 utils/adt/misc.c:661
 #, c-format
 msgid "collations are not supported by type %s"
 msgstr "los ordenamientos (collation) no están soportados por el tipo %s"
 
-#: commands/indexcmds.c:1177
+#: commands/indexcmds.c:1194
 #, c-format
 msgid "operator %s is not commutative"
 msgstr "el operador %s no es conmutativo"
 
-#: commands/indexcmds.c:1179
+#: commands/indexcmds.c:1196
 #, c-format
 msgid "Only commutative operators can be used in exclusion constraints."
 msgstr "Sólo operadores conmutativos pueden ser usados en restricciones de exclusión."
 
-#: commands/indexcmds.c:1205
+#: commands/indexcmds.c:1222
 #, c-format
 msgid "operator %s is not a member of operator family \"%s\""
 msgstr "el operador %s no es un miembro de la familia de operadores «%s»"
 
-#: commands/indexcmds.c:1208
+#: commands/indexcmds.c:1225
 #, c-format
 msgid "The exclusion operator must be related to the index operator class for the constraint."
 msgstr "El operador de exclusión debe estar relacionado con la clase de operadores del índice para la restricción."
 
-#: commands/indexcmds.c:1243
+#: commands/indexcmds.c:1260
 #, c-format
 msgid "access method \"%s\" does not support ASC/DESC options"
 msgstr "el método de acceso «%s» no soporta las opciones ASC/DESC"
 
-#: commands/indexcmds.c:1248
+#: commands/indexcmds.c:1265
 #, c-format
 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:1304 commands/typecmds.c:1935
+#: commands/indexcmds.c:1324 commands/typecmds.c:1928
 #, 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:1306
+#: commands/indexcmds.c:1326
 #, 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:1335 commands/indexcmds.c:1343
+#: commands/indexcmds.c:1355 commands/indexcmds.c:1363
 #: 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:1356 commands/typecmds.c:1923
+#: commands/indexcmds.c:1376 commands/typecmds.c:1916
 #, 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:1446
+#: commands/indexcmds.c:1466
 #, 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:1837
+#: commands/indexcmds.c:1857
 #, c-format
 msgid "table \"%s\" has no indexes"
 msgstr "la tabla «%s» no tiene índices"
 
-#: commands/indexcmds.c:1892
+#: commands/indexcmds.c:1912
 #, 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:1994
+#: commands/indexcmds.c:2012
 #, c-format
 msgid "table \"%s.%s\" was reindexed"
 msgstr "la tabla «%s.%s» fue reindexada"
@@ -7246,23 +7357,22 @@ msgstr "no se puede usar CONCURRENTLY cuando la vista materializada no contiene
 msgid "CONCURRENTLY and WITH NO DATA options cannot be used together"
 msgstr "las opciones CONCURRENTLY y WITH NO DATA no pueden usarse juntas"
 
-#: commands/matview.c:258
+#: commands/matview.c:257
 #, c-format
 msgid "cannot refresh materialized view \"%s\" concurrently"
 msgstr "no se puede refrescar la vista materializada «%s» concurrentemente"
 
-#: commands/matview.c:261
+#: commands/matview.c:260
 #, 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:656
-#, fuzzy, c-format
-#| msgid "new data for \"%s\" contains duplicate rows without any null columns"
+#: commands/matview.c:678
+#, c-format
 msgid "new data for materialized view \"%s\" contains duplicate rows without any null columns"
-msgstr "nuevos datos para «%s» contiene filas duplicadas sin columnas nulas"
+msgstr "nuevos datos para la vista materializada «%s» contiene filas duplicadas sin columnas nulas"
 
-#: commands/matview.c:658
+#: commands/matview.c:680
 #, c-format
 msgid "Row: %s"
 msgstr "Fila: %s"
@@ -7277,159 +7387,159 @@ msgstr "no existe la familia de operadores «%s» para el método de acceso «%s
 msgid "operator family \"%s\" for access method \"%s\" already exists"
 msgstr "ya exista una familia de operadores «%s» para el método de acceso «%s»"
 
-#: commands/opclasscmds.c:404
+#: commands/opclasscmds.c:402
 #, c-format
 msgid "must be superuser to create an operator class"
 msgstr "debe ser superusuario para crear una clase de operadores"
 
-#: commands/opclasscmds.c:478 commands/opclasscmds.c:863
-#: commands/opclasscmds.c:996
+#: commands/opclasscmds.c:475 commands/opclasscmds.c:849
+#: commands/opclasscmds.c:973
 #, c-format
 msgid "invalid operator number %d, must be between 1 and %d"
 msgstr "el número de operador %d es incorrecto, debe estar entre 1 y %d"
 
-#: commands/opclasscmds.c:529 commands/opclasscmds.c:914
-#: commands/opclasscmds.c:1011
+#: commands/opclasscmds.c:519 commands/opclasscmds.c:893
+#: commands/opclasscmds.c:988
 #, c-format
 msgid "invalid procedure number %d, must be between 1 and %d"
 msgstr "el número de procedimiento %d no es válido, debe estar entre 1 y %d"
 
-#: commands/opclasscmds.c:559
+#: commands/opclasscmds.c:548
 #, c-format
 msgid "storage type specified more than once"
 msgstr "el tipo de almacenamiento fue especificado más de una vez"
 
-#: commands/opclasscmds.c:586
+#: commands/opclasscmds.c:575
 #, c-format
 msgid "storage type cannot be different from data type for access method \"%s\""
 msgstr "el tipo de almacenamiento no puede ser diferente del tipo de dato para el método de acceso «%s»"
 
-#: commands/opclasscmds.c:602
+#: commands/opclasscmds.c:591
 #, c-format
 msgid "operator class \"%s\" for access method \"%s\" already exists"
 msgstr "ya exista una clase de operadores «%s» para el método de acceso «%s»"
 
-#: commands/opclasscmds.c:630
+#: commands/opclasscmds.c:619
 #, c-format
 msgid "could not make operator class \"%s\" be default for type %s"
 msgstr "no se pudo hacer que «%s» sea la clase de operadores por omisión para el tipo %s"
 
-#: commands/opclasscmds.c:633
+#: commands/opclasscmds.c:622
 #, c-format
 msgid "Operator class \"%s\" already is the default."
 msgstr "Actualmente, «%s» es la clase de operadores por omisión."
 
-#: commands/opclasscmds.c:760
+#: commands/opclasscmds.c:747
 #, c-format
 msgid "must be superuser to create an operator family"
 msgstr "debe ser superusuario para crear una familia de operadores"
 
-#: commands/opclasscmds.c:816
+#: commands/opclasscmds.c:803
 #, c-format
 msgid "must be superuser to alter an operator family"
 msgstr "debe ser superusuario para alterar una familia de operadores"
 
-#: commands/opclasscmds.c:879
+#: commands/opclasscmds.c:858
 #, c-format
 msgid "operator argument types must be specified in ALTER OPERATOR FAMILY"
 msgstr "los tipos de los argumentos de operador deben ser especificados en ALTER OPERATOR FAMILY"
 
-#: commands/opclasscmds.c:943
+#: commands/opclasscmds.c:921
 #, c-format
 msgid "STORAGE cannot be specified in ALTER OPERATOR FAMILY"
 msgstr "STORAGE no puede ser especificado en ALTER OPERATOR FAMILY"
 
-#: commands/opclasscmds.c:1066
+#: commands/opclasscmds.c:1043
 #, c-format
 msgid "one or two argument types must be specified"
 msgstr "uno o dos tipos de argumento debe/n ser especificado"
 
-#: commands/opclasscmds.c:1092
+#: commands/opclasscmds.c:1069
 #, c-format
 msgid "index operators must be binary"
 msgstr "los operadores de índice deben ser binarios"
 
-#: commands/opclasscmds.c:1111
+#: commands/opclasscmds.c:1088
 #, c-format
 msgid "access method \"%s\" does not support ordering operators"
 msgstr "el método de acceso «%s» no soporta operadores de ordenamiento"
 
-#: commands/opclasscmds.c:1122
+#: commands/opclasscmds.c:1099
 #, c-format
 msgid "index search operators must return boolean"
 msgstr "los operadores de búsqueda en índices deben retornar boolean"
 
-#: commands/opclasscmds.c:1164
+#: commands/opclasscmds.c:1141
 #, c-format
 msgid "btree comparison procedures must have two arguments"
 msgstr "los procedimientos de comparación btree deben tener dos argumentos"
 
-#: commands/opclasscmds.c:1168
+#: commands/opclasscmds.c:1145
 #, c-format
 msgid "btree comparison procedures must return integer"
 msgstr "los procedimientos de comparación btree deben retornar integer"
 
-#: commands/opclasscmds.c:1185
+#: commands/opclasscmds.c:1162
 #, c-format
 msgid "btree sort support procedures must accept type \"internal\""
 msgstr "los procedimientos de «sort support» de btree deben aceptar tipo «internal»"
 
-#: commands/opclasscmds.c:1189
+#: commands/opclasscmds.c:1166
 #, c-format
 msgid "btree sort support procedures must return void"
 msgstr "los procedimientos de «sort support» de btree deben retornar «void»"
 
-#: commands/opclasscmds.c:1201
+#: commands/opclasscmds.c:1178
 #, c-format
 msgid "hash procedures must have one argument"
 msgstr "los procedimientos de hash deben tener un argumento"
 
-#: commands/opclasscmds.c:1205
+#: commands/opclasscmds.c:1182
 #, c-format
 msgid "hash procedures must return integer"
 msgstr "los procedimientos de hash deben retornar integer"
 
-#: commands/opclasscmds.c:1229
+#: commands/opclasscmds.c:1206
 #, c-format
 msgid "associated data types must be specified for index support procedure"
 msgstr "los tipos de datos asociados deben ser especificados en el procedimiento de soporte de índice"
 
-#: commands/opclasscmds.c:1254
+#: commands/opclasscmds.c:1231
 #, c-format
 msgid "procedure number %d for (%s,%s) appears more than once"
 msgstr "el número de procedimiento %d para (%s,%s) aparece más de una vez"
 
-#: commands/opclasscmds.c:1261
+#: commands/opclasscmds.c:1238
 #, c-format
 msgid "operator number %d for (%s,%s) appears more than once"
 msgstr "el número de operador %d para (%s,%s) aparece más de una vez"
 
-#: commands/opclasscmds.c:1310
+#: commands/opclasscmds.c:1287
 #, c-format
 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:1426
+#: commands/opclasscmds.c:1401
 #, 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:1516
+#: commands/opclasscmds.c:1489
 #, 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:1556
+#: commands/opclasscmds.c:1529
 #, 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:1686
+#: commands/opclasscmds.c:1659
 #, 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:1709
+#: commands/opclasscmds.c:1682
 #, 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»"
@@ -7439,7 +7549,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:152 commands/operatorcmds.c:457
+#: commands/operatorcmds.c:152 commands/operatorcmds.c:454
 #, c-format
 msgid "operator attribute \"%s\" not recognized"
 msgstr "el atributo de operador «%s» no es reconocido"
@@ -7455,127 +7565,124 @@ msgid "at least one of leftarg or rightarg must be specified"
 msgstr "debe especificar al menos uno de los argumentos izquierdo o derecho"
 
 #: commands/operatorcmds.c:278
-#, fuzzy, c-format
-#| msgid "restriction estimator function %s must return type \"float8\""
+#, c-format
 msgid "restriction estimator function %s must return type %s"
-msgstr "la función de estimación de restricción %s debe retornar tipo «float8»"
+msgstr "la función de estimación de restricción %s debe retornar tipo %s"
 
 #: commands/operatorcmds.c:324
-#, fuzzy, c-format
-#| msgid "join estimator function %s must return type \"float8\""
+#, c-format
 msgid "join estimator function %s must return type %s"
-msgstr "la función de estimación de join %s debe retornar tipo «float8»"
+msgstr "la función de estimación de join %s debe retornar tipo %s"
 
-#: commands/operatorcmds.c:451
-#, fuzzy, c-format
-#| msgid "operator attribute \"%s\" not recognized"
-msgid "operator attribute \"%s\" can not be changed"
-msgstr "el atributo de operador «%s» no es reconocido"
+#: commands/operatorcmds.c:448
+#, c-format
+msgid "operator attribute \"%s\" cannot be changed"
+msgstr "el atributo de operador «%s» no puede ser cambiado"
 
-#: commands/policy.c:87 commands/policy.c:395 commands/policy.c:484
-#: commands/tablecmds.c:970 commands/tablecmds.c:1312
-#: commands/tablecmds.c:2184 commands/tablecmds.c:4330
-#: commands/tablecmds.c:6281 commands/tablecmds.c:11935
-#: commands/tablecmds.c:11970 commands/trigger.c:241 commands/trigger.c:1125
-#: commands/trigger.c:1233 rewrite/rewriteDefine.c:273
-#: rewrite/rewriteDefine.c:917
+#: commands/policy.c:87 commands/policy.c:397 commands/policy.c:487
+#: commands/tablecmds.c:1150 commands/tablecmds.c:1520
+#: commands/tablecmds.c:2507 commands/tablecmds.c:4704
+#: commands/tablecmds.c:7041 commands/tablecmds.c:13006
+#: commands/tablecmds.c:13041 commands/trigger.c:253 commands/trigger.c:1294
+#: commands/trigger.c:1403 rewrite/rewriteDefine.c:272
+#: rewrite/rewriteDefine.c:925
 #, c-format
 msgid "permission denied: \"%s\" is a system catalog"
 msgstr "permiso denegado: «%s» es un catálogo de sistema"
 
 #: commands/policy.c:170
-#, fuzzy, c-format
+#, c-format
 msgid "ignoring specified roles other than PUBLIC"
-msgstr "el tipo de almacenamiento fue especificado más de una vez"
+msgstr "ignorando los roles especificados que no son PUBLIC"
 
 #: commands/policy.c:171
 #, c-format
 msgid "All roles are members of the PUBLIC role."
-msgstr ""
+msgstr "Todos los roles son miembros del rol PUBLIC."
 
-#: commands/policy.c:508
-#, fuzzy, c-format
+#: commands/policy.c:511
+#, c-format
 msgid "role \"%s\" could not be removed from policy \"%s\" on \"%s\""
-msgstr "No se pudo renombrar «%s» a «%s»: %m."
+msgstr "el rol «%s» no pudo ser eliminado de la política «%s» en «%s»"
 
 #: commands/policy.c:717
-#, fuzzy, c-format
+#, c-format
 msgid "WITH CHECK cannot be applied to SELECT or DELETE"
-msgstr "%s no puede ser aplicado a VALUES"
+msgstr "WITH CHECK no puede ser aplicado a SELECT o DELETE"
 
-#: commands/policy.c:726 commands/policy.c:1026
+#: commands/policy.c:726 commands/policy.c:1024
 #, c-format
 msgid "only WITH CHECK expression allowed for INSERT"
-msgstr ""
+msgstr "sólo se permite una expresión WITH CHECK para INSERT"
 
-#: commands/policy.c:799 commands/policy.c:1249
-#, fuzzy, c-format
+#: commands/policy.c:799 commands/policy.c:1244
+#, c-format
 msgid "policy \"%s\" for table \"%s\" already exists"
-msgstr "la codificación «%2$s» ya tiene un ordenamiento llamado «%1$s»"
+msgstr "la política «%s» para la tabla «%s» ya existe"
 
-#: commands/policy.c:998 commands/policy.c:1277 commands/policy.c:1352
-#, fuzzy, c-format
+#: commands/policy.c:996 commands/policy.c:1272 commands/policy.c:1344
+#, c-format
 msgid "policy \"%s\" for table \"%s\" does not exist"
-msgstr "no existe el índice «%s» en la tabla «%s»"
+msgstr "no existe la política «%s» para la tabla «%s»"
 
-#: commands/policy.c:1016
+#: commands/policy.c:1014
 #, c-format
 msgid "only USING expression allowed for SELECT, DELETE"
-msgstr ""
+msgstr "sólo se permite una expresión USING para SELECT, DELETE"
 
-#: commands/portalcmds.c:61 commands/portalcmds.c:160
-#: commands/portalcmds.c:212
+#: commands/portalcmds.c:58 commands/portalcmds.c:182
+#: commands/portalcmds.c:234
 #, c-format
 msgid "invalid cursor name: must not be empty"
 msgstr "el nombre de cursor no es válido: no debe ser vacío"
 
-#: commands/portalcmds.c:168 commands/portalcmds.c:222
-#: executor/execCurrent.c:67 utils/adt/xml.c:2391 utils/adt/xml.c:2558
+#: commands/portalcmds.c:190 commands/portalcmds.c:244
+#: executor/execCurrent.c:67 utils/adt/xml.c:2469 utils/adt/xml.c:2639
 #, c-format
 msgid "cursor \"%s\" does not exist"
 msgstr "no existe el cursor «%s»"
 
-#: commands/prepare.c:71
+#: commands/prepare.c:75
 #, 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:129 parser/parse_param.c:304 tcop/postgres.c:1345
+#: commands/prepare.c:141 parser/parse_param.c:304 tcop/postgres.c:1349
 #, c-format
 msgid "could not determine data type of parameter $%d"
 msgstr "no se pudo determinar el tipo del parámetro $%d"
 
-#: commands/prepare.c:147
+#: commands/prepare.c:159
 #, c-format
 msgid "utility statements cannot be prepared"
 msgstr "sentencias de utilidad no pueden ser preparadas"
 
-#: commands/prepare.c:257 commands/prepare.c:264
+#: commands/prepare.c:269 commands/prepare.c:274
 #, c-format
 msgid "prepared statement is not a SELECT"
 msgstr "la sentencia preparada no es un SELECT"
 
-#: commands/prepare.c:332
+#: commands/prepare.c:342
 #, 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:334
+#: commands/prepare.c:344
 #, c-format
 msgid "Expected %d parameters but got %d."
 msgstr "Se esperaban %d parámetros pero se obtuvieron %d."
 
-#: commands/prepare.c:370
+#: commands/prepare.c:380
 #, 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:465
+#: commands/prepare.c:474
 #, c-format
 msgid "prepared statement \"%s\" already exists"
 msgstr "la sentencia preparada «%s» ya existe"
 
-#: commands/prepare.c:504
+#: commands/prepare.c:513
 #, c-format
 msgid "prepared statement \"%s\" does not exist"
 msgstr "no existe la sentencia preparada «%s»"
@@ -7605,22 +7712,68 @@ msgstr "Los lenguajes soportados están listados en el catálogo del sistema pg_
 msgid "must be superuser to create custom procedural language"
 msgstr "debe ser superusuario para crear un lenguaje procedural personalizado"
 
-#: commands/proclang.c:281
+#: commands/proclang.c:281 commands/trigger.c:582 commands/typecmds.c:457
+#: commands/typecmds.c:474
+#, c-format
+msgid "changing return type of function %s from %s to %s"
+msgstr "cambiando el tipo de retorno de la función %s de %s a %s"
+
+#: commands/publicationcmds.c:106
+#, fuzzy, c-format
+msgid "invalid publish list"
+msgstr "el binario «%s» no es válido"
+
+#: commands/publicationcmds.c:122
+#, fuzzy, c-format
+msgid "unrecognized \"publish\" value: \"%s\""
+msgstr "tipo de privilegio no reconocido: «%s»"
+
+#: commands/publicationcmds.c:128
+#, fuzzy, c-format
+msgid "unrecognized publication parameter: %s"
+msgstr "parámetro del diccionario simple no reconocido: «%s»"
+
+#: commands/publicationcmds.c:160
+#, fuzzy, c-format
+msgid "must be superuser to create FOR ALL TABLES publication"
+msgstr "debe ser superusuario para crear usuarios de replicación"
+
+#: commands/publicationcmds.c:321
+#, c-format
+msgid "publication \"%s\" is defined as FOR ALL TABLES"
+msgstr ""
+
+#: commands/publicationcmds.c:323
 #, c-format
-msgid "changing return type of function %s from \"opaque\" to \"language_handler\""
-msgstr "cambiando el tipo de retorno de la función %s de «opaque» a «language_handler»"
+msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications."
+msgstr ""
+
+#: commands/publicationcmds.c:624
+#, fuzzy, c-format
+msgid "relation \"%s\" is not part of the publication"
+msgstr "relación «%s» no es un padre de la relación «%s»"
+
+#: commands/publicationcmds.c:667
+#, fuzzy, c-format
+msgid "permission denied to change owner of publication \"%s\""
+msgstr "se ha denegado el permiso para cambiar el dueño de la base de datos"
+
+#: commands/publicationcmds.c:669
+#, fuzzy, c-format
+msgid "The owner of a FOR ALL TABLES publication must be a superuser."
+msgstr "El dueño de un disparador por eventos debe ser un superusuario."
 
-#: commands/schemacmds.c:103 commands/schemacmds.c:266
+#: commands/schemacmds.c:106 commands/schemacmds.c:280
 #, c-format
 msgid "unacceptable schema name \"%s\""
 msgstr "el nombre de schema «%s» es inaceptable"
 
-#: commands/schemacmds.c:104 commands/schemacmds.c:267
+#: commands/schemacmds.c:107 commands/schemacmds.c:281
 #, c-format
 msgid "The prefix \"pg_\" is reserved for system schemas."
 msgstr "El prefijo «pg_» está reservado para esquemas del sistema."
 
-#: commands/schemacmds.c:118
+#: commands/schemacmds.c:121
 #, c-format
 msgid "schema \"%s\" already exists, skipping"
 msgstr "el esquema «%s» ya existe, ignorando"
@@ -7640,1019 +7793,1572 @@ msgstr "debe especificar un proveedor de etiquetas de seguridad cuando más de u
 msgid "security label provider \"%s\" is not loaded"
 msgstr "el proveedor de etiquetas de seguridad «%s» no está cargado"
 
-#: commands/sequence.c:127
+#: commands/sequence.c:138
 #, c-format
 msgid "unlogged sequences are not supported"
 msgstr "las secuencias unlogged no están soportadas"
 
-#: commands/sequence.c:651
+#: commands/sequence.c:699
 #, c-format
 msgid "nextval: reached maximum value of sequence \"%s\" (%s)"
 msgstr "nextval: se alcanzó el valor máximo de la secuencia «%s» (%s)"
 
-#: commands/sequence.c:674
+#: commands/sequence.c:722
 #, c-format
 msgid "nextval: reached minimum value of sequence \"%s\" (%s)"
 msgstr "nextval: se alcanzó el valor mínimo de la secuencia «%s» (%s)"
 
-#: commands/sequence.c:792
+#: commands/sequence.c:840
 #, 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:811 commands/sequence.c:817
+#: commands/sequence.c:859 commands/sequence.c:865
 #, c-format
 msgid "lastval is not yet defined in this session"
 msgstr "lastval no está definido en esta sesión"
 
-#: commands/sequence.c:893
+#: commands/sequence.c:953
 #, c-format
 msgid "setval: value %s is out of bounds for sequence \"%s\" (%s..%s)"
 msgstr "setval: el valor %s está fuera del rango de la secuencia «%s» (%s..%s)"
 
-#: commands/sequence.c:1267
+#: commands/sequence.c:1358
+#, c-format
+msgid "invalid sequence option SEQUENCE NAME"
+msgstr ""
+
+#: commands/sequence.c:1384
+#, c-format
+msgid "identity column type must be smallint, integer, or bigint"
+msgstr ""
+
+#: commands/sequence.c:1385
+#, c-format
+msgid "sequence type must be smallint, integer, or bigint"
+msgstr ""
+
+#: commands/sequence.c:1419
 #, c-format
 msgid "INCREMENT must not be zero"
 msgstr "INCREMENT no debe ser cero"
 
-#: commands/sequence.c:1323
+#: commands/sequence.c:1472
+#, fuzzy, c-format
+msgid "MAXVALUE (%s) is out of range for sequence data type %s"
+msgstr "«%s» está fuera de rango para el tipo real"
+
+#: commands/sequence.c:1509
+#, fuzzy, c-format
+msgid "MINVALUE (%s) is out of range for sequence data type %s"
+msgstr "«%s» está fuera de rango para el tipo real"
+
+#: commands/sequence.c:1523
 #, c-format
 msgid "MINVALUE (%s) must be less than MAXVALUE (%s)"
 msgstr "MINVALUE (%s) debe ser menor que MAXVALUE (%s)"
 
-#: commands/sequence.c:1348
+#: commands/sequence.c:1550
 #, c-format
 msgid "START value (%s) cannot be less than MINVALUE (%s)"
 msgstr "el valor START (%s) no puede ser menor que MINVALUE (%s)"
 
-#: commands/sequence.c:1360
+#: commands/sequence.c:1562
 #, c-format
 msgid "START value (%s) cannot be greater than MAXVALUE (%s)"
 msgstr "el valor START (%s) no puede ser mayor que MAXVALUE (%s)"
 
-#: commands/sequence.c:1390
+#: commands/sequence.c:1592
 #, c-format
 msgid "RESTART value (%s) cannot be less than MINVALUE (%s)"
 msgstr "el valor RESTART (%s) no puede ser menor que MINVALUE (%s)"
 
-#: commands/sequence.c:1402
+#: commands/sequence.c:1604
 #, c-format
 msgid "RESTART value (%s) cannot be greater than MAXVALUE (%s)"
 msgstr "el valor RESTART (%s) no puede ser mayor que MAXVALUE (%s)"
 
-#: commands/sequence.c:1417
+#: commands/sequence.c:1619
 #, c-format
 msgid "CACHE (%s) must be greater than zero"
 msgstr "CACHE (%s) debe ser mayor que cero"
 
-#: commands/sequence.c:1449
+#: commands/sequence.c:1656
 #, c-format
 msgid "invalid OWNED BY option"
 msgstr "opción OWNED BY no válida"
 
-#: commands/sequence.c:1450
+#: commands/sequence.c:1657
 #, 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:1473
+#: commands/sequence.c:1682
 #, c-format
 msgid "referenced relation \"%s\" is not a table or foreign table"
 msgstr "la relación referida «%s» no es una tabla o tabla foránea"
 
-#: commands/sequence.c:1480
+#: commands/sequence.c:1689
 #, 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:1484
+#: commands/sequence.c:1693
 #, 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/tablecmds.c:215
+#: commands/sequence.c:1715
+#, fuzzy, c-format
+msgid "cannot change ownership of identity sequence"
+msgstr "no se puede cambiar el dueño de la secuencia «%s»"
+
+#: commands/sequence.c:1716 commands/tablecmds.c:9875
+#: commands/tablecmds.c:12469
+#, c-format
+msgid "Sequence \"%s\" is linked to table \"%s\"."
+msgstr "La secuencia «%s» está enlazada a la tabla «%s»."
+
+#: commands/statscmds.c:93
+#, fuzzy, c-format
+msgid "statistics object \"%s\" already exists, skipping"
+msgstr "la relación «%s» ya existe, ignorando"
+
+#: commands/statscmds.c:100
+#, fuzzy, c-format
+msgid "statistics object \"%s\" already exists"
+msgstr "el tablespace «%s» ya existe"
+
+#: commands/statscmds.c:112 commands/statscmds.c:121
+#, c-format
+msgid "only a single relation is allowed in CREATE STATISTICS"
+msgstr ""
+
+#: commands/statscmds.c:139
+#, fuzzy, c-format
+msgid "relation \"%s\" is not a table, foreign table, or materialized view"
+msgstr "«%s» no es una tabla o vista materializada"
+
+#: commands/statscmds.c:170 commands/statscmds.c:176
+#, c-format
+msgid "only simple column references are allowed in CREATE STATISTICS"
+msgstr ""
+
+#: commands/statscmds.c:183
+#, fuzzy, c-format
+msgid "column \"%s\" referenced in statistics does not exist"
+msgstr "no existe la columna «%s» referida en la llave foránea"
+
+#: commands/statscmds.c:191
+#, fuzzy, c-format
+msgid "statistics creation on system columns is not supported"
+msgstr "la creación de índices en columnas de sistema no está soportada"
+
+#: commands/statscmds.c:198
+#, c-format
+msgid "column \"%s\" cannot be used in statistics because its type has no default btree operator class"
+msgstr ""
+
+#: commands/statscmds.c:205
+#, fuzzy, c-format
+msgid "cannot have more than %d columns in statistics"
+msgstr "no se puede usar más de %d columnas en un índice"
+
+#: commands/statscmds.c:220
+#, fuzzy, c-format
+msgid "extended statistics require at least 2 columns"
+msgstr "debe pedir al menos 2 puntos"
+
+#: commands/statscmds.c:238
+#, fuzzy, c-format
+msgid "duplicate column name in statistics definition"
+msgstr "no se puede alterar el tipo de una columna usada en una definición de política"
+
+#: commands/statscmds.c:266
+#, fuzzy, c-format
+msgid "unrecognized statistic type \"%s\""
+msgstr "tipo de objeto «%s» no reconocido"
+
+#: commands/subscriptioncmds.c:187
+#, fuzzy, c-format
+msgid "unrecognized subscription parameter: %s"
+msgstr "parámetro del diccionario simple no reconocido: «%s»"
+
+#: commands/subscriptioncmds.c:200
+#, c-format
+msgid "connect = false and enabled = true are mutually exclusive options"
+msgstr ""
+
+#: commands/subscriptioncmds.c:205
+#, c-format
+msgid "connect = false and create_slot = true are mutually exclusive options"
+msgstr ""
+
+#: commands/subscriptioncmds.c:210
+#, c-format
+msgid "connect = false and copy_data = true are mutually exclusive options"
+msgstr ""
+
+#: commands/subscriptioncmds.c:227
+#, c-format
+msgid "slot_name = NONE and enabled = true are mutually exclusive options"
+msgstr ""
+
+#: commands/subscriptioncmds.c:232
+#, c-format
+msgid "slot_name = NONE and create_slot = true are mutually exclusive options"
+msgstr ""
+
+#: commands/subscriptioncmds.c:237
+#, c-format
+msgid "subscription with slot_name = NONE must also set enabled = false"
+msgstr ""
+
+#: commands/subscriptioncmds.c:242
+#, c-format
+msgid "subscription with slot_name = NONE must also set create_slot = false"
+msgstr ""
+
+#: commands/subscriptioncmds.c:284
+#, fuzzy, c-format
+msgid "publication name \"%s\" used more than once"
+msgstr "el nombre de parámetro «%s» fue usado más de una vez"
+
+#: commands/subscriptioncmds.c:347
+#, fuzzy, c-format
+msgid "must be superuser to create subscriptions"
+msgstr "debe ser superusuario para crear superusuarios"
+
+#: commands/subscriptioncmds.c:427 commands/subscriptioncmds.c:520
+#: replication/logical/tablesync.c:856 replication/logical/worker.c:1616
+#, fuzzy, c-format
+msgid "could not connect to the publisher: %s"
+msgstr "no se pudo hacer la conexión al servidor primario: %s"
+
+#: commands/subscriptioncmds.c:469
+#, fuzzy, c-format
+msgid "created replication slot \"%s\" on publisher"
+msgstr "no existe el slot de replicación «%s»"
+
+#: commands/subscriptioncmds.c:486
+#, c-format
+msgid "tables were not subscribed, you will have to run ALTER SUBSCRIPTION ... REFRESH PUBLICATION to subscribe the tables"
+msgstr ""
+
+#: commands/subscriptioncmds.c:576
+#, c-format
+msgid "added subscription for table %s.%s"
+msgstr ""
+
+#: commands/subscriptioncmds.c:604
+#, c-format
+msgid "removed subscription for table %s.%s"
+msgstr ""
+
+#: commands/subscriptioncmds.c:672
+#, c-format
+msgid "cannot set slot_name = NONE for enabled subscription"
+msgstr ""
+
+#: commands/subscriptioncmds.c:706
+#, c-format
+msgid "cannot enable subscription that does not have a slot name"
+msgstr ""
+
+#: commands/subscriptioncmds.c:752
+#, c-format
+msgid "ALTER SUBSCRIPTION with refresh is not allowed for disabled subscriptions"
+msgstr ""
+
+#: commands/subscriptioncmds.c:753
+#, c-format
+msgid "Use ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)."
+msgstr ""
+
+#: commands/subscriptioncmds.c:771
+#, c-format
+msgid "ALTER SUBSCRIPTION ... REFRESH is not allowed for disabled subscriptions"
+msgstr ""
+
+#: commands/subscriptioncmds.c:848
+#, fuzzy, c-format
+msgid "subscription \"%s\" does not exist, skipping"
+msgstr "no existe la relación «%s», ignorando"
+
+#: commands/subscriptioncmds.c:949
+#, c-format
+msgid "could not connect to publisher when attempting to drop the replication slot \"%s\""
+msgstr ""
+
+#: commands/subscriptioncmds.c:951 commands/subscriptioncmds.c:965
+#: replication/logical/tablesync.c:906 replication/logical/tablesync.c:926
+#, c-format
+msgid "The error was: %s"
+msgstr "El error fue: %s"
+
+#: commands/subscriptioncmds.c:952
+#, c-format
+msgid "Use ALTER SUBSCRIPTION ... SET (slot_name = NONE) to disassociate the subscription from the slot."
+msgstr "Use ALTER SUBSCRIPTION ... SET (nombre_de_slot = NONE) para disasociar la suscripción del slot."
+
+#: commands/subscriptioncmds.c:963
+#, fuzzy, c-format
+msgid "could not drop the replication slot \"%s\" on publisher"
+msgstr "no se pudo eliminar el origen de replicación con OID %d, en uso por el PID %d"
+
+#: commands/subscriptioncmds.c:968
+#, fuzzy, c-format
+msgid "dropped replication slot \"%s\" on publisher"
+msgstr "no existe el slot de replicación «%s»"
+
+#: commands/subscriptioncmds.c:1009
+#, fuzzy, c-format
+msgid "permission denied to change owner of subscription \"%s\""
+msgstr "se ha denegado el permiso para cambiar el dueño del disparador por eventos «%s»"
+
+#: commands/subscriptioncmds.c:1011
+#, fuzzy, c-format
+msgid "The owner of a subscription must be a superuser."
+msgstr "El dueño de un disparador por eventos debe ser un superusuario."
+
+#: commands/subscriptioncmds.c:1124
+#, fuzzy, c-format
+msgid "could not receive list of replicated tables from the publisher: %s"
+msgstr "no se pudo recibir el archivo de historia de timeline del servidor primario: %s"
+
+#: commands/tablecmds.c:221 commands/tablecmds.c:263
 #, c-format
 msgid "table \"%s\" does not exist"
 msgstr "no existe la tabla «%s»"
 
-#: commands/tablecmds.c:216
+#: commands/tablecmds.c:222 commands/tablecmds.c:264
 #, c-format
 msgid "table \"%s\" does not exist, skipping"
 msgstr "la tabla «%s» no existe, ignorando"
 
-#: commands/tablecmds.c:218
+#: commands/tablecmds.c:224 commands/tablecmds.c:266
 msgid "Use DROP TABLE to remove a table."
 msgstr "Use DROP TABLE para eliminar una tabla."
 
-#: commands/tablecmds.c:221
+#: commands/tablecmds.c:227
 #, c-format
 msgid "sequence \"%s\" does not exist"
 msgstr "no existe la secuencia «%s»"
 
-#: commands/tablecmds.c:222
+#: commands/tablecmds.c:228
 #, c-format
 msgid "sequence \"%s\" does not exist, skipping"
 msgstr "la secuencia «%s» no existe, ignorando"
 
-#: commands/tablecmds.c:224
+#: commands/tablecmds.c:230
 msgid "Use DROP SEQUENCE to remove a sequence."
 msgstr "Use DROP SEQUENCE para eliminar una secuencia."
 
-#: commands/tablecmds.c:227
+#: commands/tablecmds.c:233
 #, c-format
 msgid "view \"%s\" does not exist"
 msgstr "no existe la vista «%s»"
 
-#: commands/tablecmds.c:228
+#: commands/tablecmds.c:234
 #, c-format
 msgid "view \"%s\" does not exist, skipping"
 msgstr "la vista «%s» no existe, ignorando"
 
-#: commands/tablecmds.c:230
+#: commands/tablecmds.c:236
 msgid "Use DROP VIEW to remove a view."
 msgstr "Use DROP VIEW para eliminar una vista."
 
-#: commands/tablecmds.c:233
+#: commands/tablecmds.c:239
 #, c-format
 msgid "materialized view \"%s\" does not exist"
 msgstr "no existe la vista materializada «%s»"
 
-#: commands/tablecmds.c:234
+#: commands/tablecmds.c:240
 #, c-format
 msgid "materialized view \"%s\" does not exist, skipping"
 msgstr "la vista materializada «%s» no existe, ignorando"
 
-#: commands/tablecmds.c:236
+#: commands/tablecmds.c:242
 msgid "Use DROP MATERIALIZED VIEW to remove a materialized view."
 msgstr "Use DROP MATERIALIZED VIEW para eliminar una vista materializada."
 
-#: commands/tablecmds.c:239 parser/parse_utilcmd.c:1643
+#: commands/tablecmds.c:245 parser/parse_utilcmd.c:1827
 #, c-format
 msgid "index \"%s\" does not exist"
 msgstr "no existe el índice «%s»"
 
-#: commands/tablecmds.c:240
+#: commands/tablecmds.c:246
 #, c-format
 msgid "index \"%s\" does not exist, skipping"
 msgstr "el índice «%s» no existe, ignorando"
 
-#: commands/tablecmds.c:242
+#: commands/tablecmds.c:248
 msgid "Use DROP INDEX to remove an index."
 msgstr "Use DROP INDEX para eliminar un índice."
 
-#: commands/tablecmds.c:247
+#: commands/tablecmds.c:253
 #, c-format
 msgid "\"%s\" is not a type"
 msgstr "«%s» no es un tipo"
 
-#: commands/tablecmds.c:248
+#: commands/tablecmds.c:254
 msgid "Use DROP TYPE to remove a type."
 msgstr "Use DROP TYPE para eliminar un tipo."
 
-#: commands/tablecmds.c:251 commands/tablecmds.c:8488
-#: commands/tablecmds.c:11196
+#: commands/tablecmds.c:257 commands/tablecmds.c:9391
+#: commands/tablecmds.c:12249
 #, c-format
 msgid "foreign table \"%s\" does not exist"
 msgstr "no existe la tabla foránea «%s»"
 
-#: commands/tablecmds.c:252
+#: commands/tablecmds.c:258
 #, c-format
 msgid "foreign table \"%s\" does not exist, skipping"
 msgstr "la tabla foránea «%s» no existe, ignorando"
 
-#: commands/tablecmds.c:254
+#: commands/tablecmds.c:260
 msgid "Use DROP FOREIGN TABLE to remove a foreign table."
 msgstr "Use DROP FOREIGN TABLE para eliminar una tabla foránea."
 
-#: commands/tablecmds.c:493
+#: commands/tablecmds.c:533
 #, 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:513
+#: commands/tablecmds.c:561
 #, 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:821
+#: commands/tablecmds.c:662
+#, c-format
+msgid "cannot create table with OIDs as partition of table without OIDs"
+msgstr "no se puede crear una tabla con OIDs como partición de una tabla sin OIDs"
+
+#: commands/tablecmds.c:783 parser/parse_utilcmd.c:3278
+#, c-format
+msgid "\"%s\" is not partitioned"
+msgstr "«%s» no está particionada"
+
+#: commands/tablecmds.c:831
+#, fuzzy, c-format
+msgid "cannot partition using more than %d columns"
+msgstr "no se puede usar más de %d columnas en un índice"
+
+#: commands/tablecmds.c:972
 #, 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:825
+#: commands/tablecmds.c:976
 #, c-format
 msgid "DROP INDEX CONCURRENTLY does not support CASCADE"
 msgstr "DROP INDEX CONCURRENTLY no soporta CASCADE"
 
-#: commands/tablecmds.c:1084
+#: commands/tablecmds.c:1253
+#, c-format
+msgid "cannot truncate only a partitioned table"
+msgstr "no se puede truncar ONLY una tabla particionada"
+
+#: commands/tablecmds.c:1254
+#, 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 el truncado ONLY en las particiones directamente."
+
+#: commands/tablecmds.c:1282
 #, c-format
 msgid "truncate cascades to table \"%s\""
 msgstr "truncando además la tabla «%s»"
 
-#: commands/tablecmds.c:1322
+#: commands/tablecmds.c:1530
 #, c-format
 msgid "cannot truncate temporary tables of other sessions"
 msgstr "no se pueden truncar tablas temporales de otras sesiones"
 
-#: commands/tablecmds.c:1528 parser/parse_utilcmd.c:1857
-#, fuzzy, c-format
+#: commands/tablecmds.c:1761 commands/tablecmds.c:10976
+#, c-format
+msgid "cannot inherit from partitioned table \"%s\""
+msgstr "no se puede heredar de la tabla particionada «%s»"
+
+#: commands/tablecmds.c:1766
+#, c-format
+msgid "cannot inherit from partition \"%s\""
+msgstr "no se puede heredar de la partición «%s»"
+
+#: commands/tablecmds.c:1774 parser/parse_utilcmd.c:2038
+#, c-format
 msgid "inherited relation \"%s\" is not a table or foreign table"
-msgstr "la relación referida «%s» no es una tabla o tabla foránea"
+msgstr "la relación heredada «%s» no es una tabla o tabla foránea"
 
-#: commands/tablecmds.c:1535 commands/tablecmds.c:10055
+#: commands/tablecmds.c:1782 commands/tablecmds.c:10955
 #, c-format
 msgid "cannot inherit from temporary relation \"%s\""
 msgstr "no se puede heredar de la tabla temporal «%s»"
 
-#: commands/tablecmds.c:1543 commands/tablecmds.c:10063
+#: commands/tablecmds.c:1792 commands/tablecmds.c:10963
 #, 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:1559 commands/tablecmds.c:10097
+#: commands/tablecmds.c:1809 commands/tablecmds.c:11087
 #, 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:1607
+#: commands/tablecmds.c:1857
 #, c-format
 msgid "merging multiple inherited definitions of column \"%s\""
 msgstr "mezclando múltiples definiciones heredadas de la columna «%s»"
 
-#: commands/tablecmds.c:1615
+#: commands/tablecmds.c:1865
 #, c-format
 msgid "inherited column \"%s\" has a type conflict"
 msgstr "columna heredada «%s» tiene conflicto de tipos"
 
-#: commands/tablecmds.c:1617 commands/tablecmds.c:1640
-#: commands/tablecmds.c:1838 commands/tablecmds.c:1862
-#: parser/parse_coerce.c:1630 parser/parse_coerce.c:1650
-#: parser/parse_coerce.c:1670 parser/parse_coerce.c:1715
-#: parser/parse_coerce.c:1752 parser/parse_param.c:218
+#: commands/tablecmds.c:1867 commands/tablecmds.c:1890
+#: commands/tablecmds.c:2096 commands/tablecmds.c:2126
+#: parser/parse_coerce.c:1650 parser/parse_coerce.c:1670
+#: parser/parse_coerce.c:1690 parser/parse_coerce.c:1736
+#: parser/parse_coerce.c:1775 parser/parse_param.c:218
 #, c-format
 msgid "%s versus %s"
 msgstr "%s versus %s"
 
-#: commands/tablecmds.c:1626
+#: commands/tablecmds.c:1876
 #, c-format
 msgid "inherited column \"%s\" has a collation conflict"
 msgstr "columna heredada «%s» tiene conflicto de ordenamiento (collation)"
 
-#: commands/tablecmds.c:1628 commands/tablecmds.c:1850
-#: commands/tablecmds.c:4768
+#: commands/tablecmds.c:1878 commands/tablecmds.c:2108
+#: commands/tablecmds.c:5149
 #, c-format
 msgid "\"%s\" versus \"%s\""
 msgstr "«%s» versus «%s»"
 
-#: commands/tablecmds.c:1638
+#: commands/tablecmds.c:1888
 #, c-format
 msgid "inherited column \"%s\" has a storage parameter conflict"
 msgstr "columna heredada «%s» tiene conflicto de parámetros de almacenamiento"
 
-#: commands/tablecmds.c:1751 parser/parse_utilcmd.c:938
-#: parser/parse_utilcmd.c:1287 parser/parse_utilcmd.c:1363
+#: commands/tablecmds.c:2002 commands/tablecmds.c:8881
+#: parser/parse_utilcmd.c:1121 parser/parse_utilcmd.c:1472
+#: parser/parse_utilcmd.c:1548
 #, c-format
 msgid "cannot convert whole-row table reference"
 msgstr "no se puede convertir una referencia a la fila completa (whole-row)"
 
-#: commands/tablecmds.c:1752 parser/parse_utilcmd.c:939
+#: commands/tablecmds.c:2003 parser/parse_utilcmd.c:1122
 #, 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»."
 
-#: commands/tablecmds.c:1824
+#: commands/tablecmds.c:2082
 #, c-format
 msgid "merging column \"%s\" with inherited definition"
 msgstr "mezclando la columna «%s» con la definición heredada"
 
-#: commands/tablecmds.c:1828
-#, fuzzy, c-format
+#: commands/tablecmds.c:2086
+#, c-format
 msgid "moving and merging column \"%s\" with inherited definition"
-msgstr "mezclando la columna «%s» con la definición heredada"
+msgstr "moviendo y mezclando la columna «%s» con la definición heredada"
 
-#: commands/tablecmds.c:1829
+#: commands/tablecmds.c:2087
 #, c-format
 msgid "User-specified column moved to the position of the inherited column."
-msgstr ""
+msgstr "La columna especificada por el usuario fue movida a la posición de la columna heredada."
 
-#: commands/tablecmds.c:1836
+#: commands/tablecmds.c:2094
 #, c-format
 msgid "column \"%s\" has a type conflict"
 msgstr "la columna «%s» tiene conflicto de tipos"
 
-#: commands/tablecmds.c:1848
+#: commands/tablecmds.c:2106
 #, c-format
 msgid "column \"%s\" has a collation conflict"
 msgstr "la columna «%s» tiene conflicto de ordenamientos (collation)"
 
-#: commands/tablecmds.c:1860
+#: commands/tablecmds.c:2124
 #, c-format
 msgid "column \"%s\" has a storage parameter conflict"
 msgstr "la columna «%s» tiene conflicto de parámetros de almacenamiento"
 
-#: commands/tablecmds.c:1912
+#: commands/tablecmds.c:2235
 #, c-format
 msgid "column \"%s\" inherits conflicting default values"
 msgstr "la columna «%s» hereda valores por omisión no coincidentes"
 
-#: commands/tablecmds.c:1914
+#: commands/tablecmds.c:2237
 #, c-format
 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:1961
+#: commands/tablecmds.c:2284
 #, 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:2155
+#: commands/tablecmds.c:2477
 #, 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:2172
+#: commands/tablecmds.c:2495
 #, c-format
 msgid "\"%s\" is not a table, view, materialized view, composite type, index, or foreign table"
 msgstr "«%s» no es una tabla, vista, vista materializada, tipo compuesto, índice o tabla foránea"
 
-#: commands/tablecmds.c:2266
+#: commands/tablecmds.c:2589
 #, 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:2298
+#: commands/tablecmds.c:2621
 #, c-format
 msgid "cannot rename system column \"%s\""
 msgstr "no se puede cambiar el nombre a la columna de sistema «%s»"
 
-#: commands/tablecmds.c:2313
+#: commands/tablecmds.c:2636
 #, c-format
 msgid "cannot rename inherited column \"%s\""
 msgstr "no se puede cambiar el nombre a la columna heredada «%s»"
 
-#: commands/tablecmds.c:2468
+#: commands/tablecmds.c:2788
 #, 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:2475
+#: commands/tablecmds.c:2795
 #, 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:2701
+#: commands/tablecmds.c:3019
 #, 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:2710
+#: commands/tablecmds.c:3028
 #, 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"
 
-#: commands/tablecmds.c:3786
+#: commands/tablecmds.c:4147
 #, c-format
 msgid "cannot rewrite system relation \"%s\""
 msgstr "no se puede reescribir la relación de sistema «%s»"
 
-#: commands/tablecmds.c:3792
+#: commands/tablecmds.c:4153
 #, 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:3802
+#: commands/tablecmds.c:4163
 #, c-format
 msgid "cannot rewrite temporary tables of other sessions"
 msgstr "no se puede reescribir tablas temporales de otras sesiones"
 
-#: commands/tablecmds.c:4070
+#: commands/tablecmds.c:4439
 #, c-format
 msgid "rewriting table \"%s\""
 msgstr "reescribiendo tabla «%s»"
 
-#: commands/tablecmds.c:4074
+#: commands/tablecmds.c:4443
 #, c-format
 msgid "verifying table \"%s\""
 msgstr "verificando tabla «%s»"
 
-#: commands/tablecmds.c:4188
+#: commands/tablecmds.c:4556
 #, c-format
 msgid "column \"%s\" contains null values"
 msgstr "la columna «%s» contiene valores nulos"
 
-#: commands/tablecmds.c:4203 commands/tablecmds.c:7368
+#: commands/tablecmds.c:4571 commands/tablecmds.c:8150
 #, c-format
 msgid "check constraint \"%s\" is violated by some row"
 msgstr "la restricción «check» «%s» es violada por alguna fila"
 
-#: commands/tablecmds.c:4351 commands/trigger.c:235
-#: rewrite/rewriteDefine.c:267 rewrite/rewriteDefine.c:912
+#: commands/tablecmds.c:4587
+#, fuzzy, c-format
+msgid "partition constraint is violated by some row"
+msgstr "la restricción «check» «%s» es violada por alguna fila"
+
+#: commands/tablecmds.c:4725 commands/trigger.c:247
+#: rewrite/rewriteDefine.c:266 rewrite/rewriteDefine.c:920
 #, c-format
 msgid "\"%s\" is not a table or view"
 msgstr "«%s» no es una tabla o vista"
 
-#: commands/tablecmds.c:4354 commands/trigger.c:1119 commands/trigger.c:1224
+#: commands/tablecmds.c:4728 commands/trigger.c:1288 commands/trigger.c:1394
 #, c-format
 msgid "\"%s\" is not a table, view, or foreign table"
 msgstr "«%s» no es una tabla, vista o tabla foránea"
 
-#: commands/tablecmds.c:4357
+#: commands/tablecmds.c:4731
 #, c-format
 msgid "\"%s\" is not a table, view, materialized view, or index"
 msgstr "«%s» no es una tabla, vista, vista materializada, o índice"
 
-#: commands/tablecmds.c:4363
+#: commands/tablecmds.c:4737
 #, c-format
 msgid "\"%s\" is not a table, materialized view, or index"
 msgstr "«%s» no es una tabla, vista materializada, o índice"
 
-#: commands/tablecmds.c:4366
-#, fuzzy, c-format
-#| msgid "\"%s\" is not a table, materialized view, index, or foreign table"
+#: commands/tablecmds.c:4740
+#, c-format
 msgid "\"%s\" is not a table, materialized view, or foreign table"
-msgstr "«%s» no es una tabla, vista materializada, índice o tabla foránea"
+msgstr "«%s» no es una tabla, vista materializada o tabla foránea"
 
-#: commands/tablecmds.c:4369
+#: commands/tablecmds.c:4743
 #, c-format
 msgid "\"%s\" is not a table or foreign table"
 msgstr "«%s» no es una tabla o tabla foránea"
 
-#: commands/tablecmds.c:4372
+#: commands/tablecmds.c:4746
 #, c-format
 msgid "\"%s\" is not a table, composite type, or foreign table"
 msgstr "«%s» no es una tabla, tipo compuesto, o tabla foránea"
 
-#: commands/tablecmds.c:4375 commands/tablecmds.c:5427
+#: commands/tablecmds.c:4749 commands/tablecmds.c:6112
 #, c-format
 msgid "\"%s\" is not a table, materialized view, index, or foreign table"
 msgstr "«%s» no es una tabla, vista materializada, índice o tabla foránea"
 
-#: commands/tablecmds.c:4385
+#: commands/tablecmds.c:4759
 #, c-format
 msgid "\"%s\" is of the wrong type"
 msgstr "«%s» es tipo equivocado"
 
-#: commands/tablecmds.c:4537 commands/tablecmds.c:4544
+#: commands/tablecmds.c:4913 commands/tablecmds.c:4920
 #, 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:4551
+#: commands/tablecmds.c:4927
 #, 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:4558
+#: commands/tablecmds.c:4934
 #, 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:4620
+#: commands/tablecmds.c:4996
 #, 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:4622
+#: commands/tablecmds.c:4998
 #, 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:4666
+#: commands/tablecmds.c:5042
 #, c-format
 msgid "type %s is not a composite type"
 msgstr "el tipo %s no es un tipo compuesto"
 
-#: commands/tablecmds.c:4692
+#: commands/tablecmds.c:5068
 #, c-format
 msgid "cannot add column to typed table"
 msgstr "no se puede agregar una columna a una tabla tipada"
 
-#: commands/tablecmds.c:4760 commands/tablecmds.c:10256
+#: commands/tablecmds.c:5112
+#, fuzzy, c-format
+msgid "cannot add column to a partition"
+msgstr "no se puede agregar una columna a una tabla tipada"
+
+#: commands/tablecmds.c:5141 commands/tablecmds.c:11213
 #, 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:4766 commands/tablecmds.c:10263
+#: commands/tablecmds.c:5147 commands/tablecmds.c:11220
 #, 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:4776
+#: commands/tablecmds.c:5157
 #, c-format
 msgid "child table \"%s\" has a conflicting \"%s\" column"
 msgstr "tabla hija «%s» tiene una columna «%s» que entra en conflicto"
 
-#: commands/tablecmds.c:4788
+#: commands/tablecmds.c:5168
 #, 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:5015
+#: commands/tablecmds.c:5192
+#, 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:5404
 #, 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:5090
-#, fuzzy, c-format
-#| msgid "column \"%s\" of relation \"%s\" already exists"
+#: commands/tablecmds.c:5479
+#, c-format
 msgid "column \"%s\" of relation \"%s\" already exists, skipping"
-msgstr "ya existe la columna «%s» en la relación «%s»"
+msgstr "la columna «%s» de la relación «%s» ya existe, ignorando"
 
-#: commands/tablecmds.c:5097
+#: commands/tablecmds.c:5486
 #, c-format
 msgid "column \"%s\" of relation \"%s\" already exists"
 msgstr "ya existe la columna «%s» en la relación «%s»"
 
-#: commands/tablecmds.c:5208 commands/tablecmds.c:5314
-#: commands/tablecmds.c:5372 commands/tablecmds.c:5486
-#: commands/tablecmds.c:5543 commands/tablecmds.c:5637
-#: commands/tablecmds.c:7886 commands/tablecmds.c:8511
+#: commands/tablecmds.c:5584 commands/tablecmds.c:8563
+#, 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:5585 commands/tablecmds.c:5732
+#: commands/tablecmds.c:6529 commands/tablecmds.c:8564
+#, c-format
+msgid "Do not specify the ONLY keyword."
+msgstr "No especifique la opción ONLY."
+
+#: commands/tablecmds.c:5617 commands/tablecmds.c:5764
+#: commands/tablecmds.c:5819 commands/tablecmds.c:5894
+#: commands/tablecmds.c:5988 commands/tablecmds.c:6047
+#: commands/tablecmds.c:6171 commands/tablecmds.c:6225
+#: commands/tablecmds.c:6317 commands/tablecmds.c:8703
+#: commands/tablecmds.c:9414
 #, c-format
 msgid "cannot alter system column \"%s\""
 msgstr "no se puede alterar columna de sistema «%s»"
 
-#: commands/tablecmds.c:5244
+#: commands/tablecmds.c:5623 commands/tablecmds.c:5825
+#, 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:5659
 #, c-format
 msgid "column \"%s\" is in a primary key"
 msgstr "la columna «%s» está en la llave primaria"
 
-#: commands/tablecmds.c:5459
+#: commands/tablecmds.c:5681
+#, fuzzy, c-format
+msgid "column \"%s\" is marked NOT NULL in parent table"
+msgstr "columna «%s» en tabla hija debe marcarse como NOT NULL"
+
+#: commands/tablecmds.c:5731
+#, c-format
+msgid "cannot add constraint to only the partitioned table when partitions exist"
+msgstr ""
+
+#: commands/tablecmds.c:5827
+#, c-format
+msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY instead."
+msgstr ""
+
+#: commands/tablecmds.c:5905
+#, c-format
+msgid "column \"%s\" of relation \"%s\" must be declared NOT NULL before identity can be added"
+msgstr ""
+
+#: commands/tablecmds.c:5911
+#, fuzzy, c-format
+msgid "column \"%s\" of relation \"%s\" is already an identity column"
+msgstr "ya existe la columna «%s» en la relación «%s»"
+
+#: commands/tablecmds.c:5917
+#, fuzzy, c-format
+msgid "column \"%s\" of relation \"%s\" already has a default value"
+msgstr "ya existe la columna «%s» en la relación «%s»"
+
+#: commands/tablecmds.c:5994 commands/tablecmds.c:6055
+#, fuzzy, c-format
+msgid "column \"%s\" of relation \"%s\" is not an identity column"
+msgstr "no existe la columna «%s» en la relación «%s»"
+
+#: commands/tablecmds.c:6060
+#, fuzzy, c-format
+msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping"
+msgstr "no existe la columna «%s» en la relación «%s», ignorando"
+
+#: commands/tablecmds.c:6144
 #, c-format
 msgid "statistics target %d is too low"
 msgstr "el valor de estadísticas %d es demasiado bajo"
 
-#: commands/tablecmds.c:5467
+#: commands/tablecmds.c:6152
 #, c-format
 msgid "lowering statistics target to %d"
 msgstr "bajando el valor de estadísticas a %d"
 
-#: commands/tablecmds.c:5617
+#: commands/tablecmds.c:6297
 #, c-format
 msgid "invalid storage type \"%s\""
 msgstr "tipo de almacenamiento no válido «%s»"
 
-#: commands/tablecmds.c:5649
+#: commands/tablecmds.c:6329
 #, 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/tablecmds.c:5687
+#: commands/tablecmds.c:6364
 #, c-format
 msgid "cannot drop column from typed table"
 msgstr "no se pueden eliminar columnas de una tabla tipada"
 
-#: commands/tablecmds.c:5731
+#: commands/tablecmds.c:6471
 #, c-format
 msgid "column \"%s\" of relation \"%s\" does not exist, skipping"
 msgstr "no existe la columna «%s» en la relación «%s», ignorando"
 
-#: commands/tablecmds.c:5744
+#: commands/tablecmds.c:6484
 #, c-format
 msgid "cannot drop system column \"%s\""
 msgstr "no se puede eliminar la columna de sistema «%s»"
 
-#: commands/tablecmds.c:5751
+#: commands/tablecmds.c:6491
 #, c-format
 msgid "cannot drop inherited column \"%s\""
 msgstr "no se puede eliminar la columna heredada «%s»"
 
-#: commands/tablecmds.c:5991
+#: commands/tablecmds.c:6500
+#, fuzzy, c-format
+msgid "cannot drop column named in partition key"
+msgstr "no se pueden eliminar columnas de una tabla tipada"
+
+#: commands/tablecmds.c:6504
+#, fuzzy, c-format
+msgid "cannot drop column referenced in partition key expression"
+msgstr "no se pueden usar referencias a columnas en una cláusula default"
+
+#: commands/tablecmds.c:6528
+#, fuzzy, c-format
+msgid "cannot drop column from only the partitioned table when partitions exist"
+msgstr "no se pueden eliminar columnas de una tabla tipada"
+
+#: commands/tablecmds.c:6746
 #, 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:6204
+#: commands/tablecmds.c:6958
 #, 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:6275
+#: commands/tablecmds.c:7029
+#, fuzzy, c-format
+msgid "cannot reference partitioned table \"%s\""
+msgstr "no se puede insertar en la tabla foránea «%s»"
+
+#: commands/tablecmds.c:7035
 #, c-format
 msgid "referenced relation \"%s\" is not a table"
 msgstr "la relación referida «%s» no es una tabla"
 
-#: commands/tablecmds.c:6298
+#: commands/tablecmds.c:7058
 #, 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:6305
+#: commands/tablecmds.c:7065
 #, 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:6311
+#: commands/tablecmds.c:7071
 #, 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:6315
+#: commands/tablecmds.c:7075
 #, 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:6376
+#: commands/tablecmds.c:7135
 #, 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:6483
+#: commands/tablecmds.c:7242
 #, 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:6486
+#: commands/tablecmds.c:7245
 #, 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:6693 commands/tablecmds.c:6843
-#: commands/tablecmds.c:7725 commands/tablecmds.c:7781
+#: commands/tablecmds.c:7450 commands/tablecmds.c:7616
+#: commands/tablecmds.c:8531 commands/tablecmds.c:8599
 #, 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:6699
+#: commands/tablecmds.c:7456
 #, 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 restriccion de llave foránea"
 
-#: commands/tablecmds.c:6850
+#: commands/tablecmds.c:7623
 #, 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:6918
+#: commands/tablecmds.c:7693
 #, 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:6987
+#: commands/tablecmds.c:7761
 #, 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:6992
+#: commands/tablecmds.c:7766
 #, 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:7057
+#: commands/tablecmds.c:7831
 #, 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:7074
+#: commands/tablecmds.c:7848
 #, 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:7139
+#: commands/tablecmds.c:7913
 #, 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:7233
+#: commands/tablecmds.c:8007
 #, 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:7238
+#: commands/tablecmds.c:8012
 #, 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:7401
+#: commands/tablecmds.c:8183
 #, c-format
 msgid "validating foreign key constraint \"%s\""
 msgstr "validando restricción de llave foránea «%s»"
 
-#: commands/tablecmds.c:7697
+#: commands/tablecmds.c:8485
 #, 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:7731
+#: commands/tablecmds.c:8537
 #, c-format
 msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping"
 msgstr "no existe la restricción «%s» en la relación «%s», ignorando"
 
-#: commands/tablecmds.c:7870
+#: commands/tablecmds.c:8687
 #, 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:7893
+#: commands/tablecmds.c:8710
 #, c-format
 msgid "cannot alter inherited column \"%s\""
 msgstr "no se puede alterar la columna heredada «%s»"
 
-#: commands/tablecmds.c:7942
+#: commands/tablecmds.c:8719
+#, fuzzy, c-format
+msgid "cannot alter type of column named in partition key"
+msgstr "no se puede alterar el tipo de una columna usada en una definición de trigger"
+
+#: commands/tablecmds.c:8723
+#, fuzzy, c-format
+msgid "cannot alter type of column referenced in partition key expression"
+msgstr "no se pueden usar referencias a columnas en una cláusula default"
+
+#: commands/tablecmds.c:8773
 #, 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:7945
+#: commands/tablecmds.c:8776
 #, c-format
 msgid "You might need to add an explicit cast."
 msgstr "Puede ser necesario agregar un cast explícito."
 
-#: commands/tablecmds.c:7949
+#: commands/tablecmds.c:8780
 #, 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:7952
+#: commands/tablecmds.c:8783
 #, c-format
 msgid "You might need to specify \"USING %s::%s\"."
 msgstr "Puede ser necesario especificar «USING %s::%s»."
 
-#: commands/tablecmds.c:8005
+#: commands/tablecmds.c:8882
+#, 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:8893
 #, 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:8092
+#: commands/tablecmds.c:8980
 #, 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:8128
+#: commands/tablecmds.c:9016
 #, 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:8254
+#: commands/tablecmds.c:9142
 #, 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:8255 commands/tablecmds.c:8274
-#: commands/tablecmds.c:8292
+#: commands/tablecmds.c:9143 commands/tablecmds.c:9162
+#: commands/tablecmds.c:9180
 #, c-format
 msgid "%s depends on column \"%s\""
 msgstr "%s depende de la columna «%s»"
 
-#: commands/tablecmds.c:8273
+#: commands/tablecmds.c:9161
 #, 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:8291
-#, fuzzy, c-format
+#: commands/tablecmds.c:9179
+#, 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 trigger"
+msgstr "no se puede alterar el tipo de una columna usada en una definición de política"
 
-#: commands/tablecmds.c:8956
+#: commands/tablecmds.c:9854
 #, c-format
 msgid "cannot change owner of index \"%s\""
 msgstr "no se puede cambiar el dueño del índice «%s»"
 
-#: commands/tablecmds.c:8958
+#: commands/tablecmds.c:9856
 #, 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."
 
-#: commands/tablecmds.c:8974
+#: commands/tablecmds.c:9873
 #, c-format
 msgid "cannot change owner of sequence \"%s\""
 msgstr "no se puede cambiar el dueño de la secuencia «%s»"
 
-#: commands/tablecmds.c:8976 commands/tablecmds.c:11398
-#, c-format
-msgid "Sequence \"%s\" is linked to table \"%s\"."
-msgstr "La secuencia «%s» está enlazada a la tabla «%s»."
-
-#: commands/tablecmds.c:8988 commands/tablecmds.c:12045
+#: commands/tablecmds.c:9887 commands/tablecmds.c:13116
 #, c-format
 msgid "Use ALTER TYPE instead."
 msgstr "Considere usar ALTER TYPE."
 
-#: commands/tablecmds.c:8997
+#: commands/tablecmds.c:9896
 #, c-format
 msgid "\"%s\" is not a table, view, sequence, or foreign table"
 msgstr "«%s» no es una tabla, vista, secuencia o tabla foránea"
 
-#: commands/tablecmds.c:9340
+#: commands/tablecmds.c:10237
 #, c-format
 msgid "cannot have multiple SET TABLESPACE subcommands"
 msgstr "no se pueden tener múltiples subórdenes SET TABLESPACE"
 
-#: commands/tablecmds.c:9413
+#: commands/tablecmds.c:10311
 #, c-format
 msgid "\"%s\" is not a table, view, materialized view, index, or TOAST table"
 msgstr "«%s» no es una tabla, vista, tabla materializada, índice o tabla TOAST"
 
-#: commands/tablecmds.c:9446 commands/view.c:481
+#: commands/tablecmds.c:10344 commands/view.c:504
 #, 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:9592
+#: commands/tablecmds.c:10486
 #, c-format
 msgid "cannot move system relation \"%s\""
 msgstr "no se puede mover la relación de sistema «%s»"
 
-#: commands/tablecmds.c:9608
+#: commands/tablecmds.c:10502
 #, c-format
 msgid "cannot move temporary tables of other sessions"
 msgstr "no se pueden mover tablas temporales de otras sesiones"
 
-#: commands/tablecmds.c:9745
+#: commands/tablecmds.c:10638
 #, 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:9757
+#: commands/tablecmds.c:10650
 #, 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:9848
-#, fuzzy, c-format
-#| msgid "aborting because lock on relation \"%s\".\"%s\" is not available"
+#: commands/tablecmds.c:10742
+#, c-format
 msgid "aborting because lock on relation \"%s.%s\" is not available"
-msgstr "cancelando porque el candado en la relación «%s».«%s» no está disponible"
+msgstr "cancelando porque el lock en la relación «%s.%s» no está disponible"
 
-#: commands/tablecmds.c:9864
+#: commands/tablecmds.c:10758
 #, c-format
 msgid "no matching relations in tablespace \"%s\" found"
 msgstr "no se encontraron relaciones coincidentes en el tablespace «%s»"
 
-#: commands/tablecmds.c:9938 storage/buffer/bufmgr.c:915
+#: commands/tablecmds.c:10832 storage/buffer/bufmgr.c:915
 #, 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/tablecmds.c:10020
+#: commands/tablecmds.c:10914
 #, c-format
 msgid "cannot change inheritance of typed table"
 msgstr "no se puede cambiar la herencia de una tabla tipada"
 
-#: commands/tablecmds.c:10070
+#: commands/tablecmds.c:10919 commands/tablecmds.c:11461
+#, fuzzy, c-format
+msgid "cannot change inheritance of a partition"
+msgstr "no se puede cambiar la herencia de una tabla tipada"
+
+#: commands/tablecmds.c:10924
+#, fuzzy, c-format
+msgid "cannot change inheritance of partitioned table"
+msgstr "no se puede cambiar la herencia de una tabla tipada"
+
+#: commands/tablecmds.c:10970
 #, 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:10124
+#: commands/tablecmds.c:10983
+#, fuzzy, c-format
+msgid "cannot inherit from a partition"
+msgstr "no se puede heredar de la tabla temporal «%s»"
+
+#: commands/tablecmds.c:11005 commands/tablecmds.c:13498
 #, c-format
 msgid "circular inheritance not allowed"
 msgstr "la herencia circular no está permitida"
 
-#: commands/tablecmds.c:10125
+#: commands/tablecmds.c:11006 commands/tablecmds.c:13499
 #, c-format
 msgid "\"%s\" is already a child of \"%s\"."
 msgstr "«%s» ya es un hijo de «%s»."
 
-#: commands/tablecmds.c:10133
+#: commands/tablecmds.c:11014
 #, c-format
 msgid "table \"%s\" without OIDs cannot inherit from table \"%s\" with OIDs"
 msgstr "tabla «%s» sin OIDs no puede heredar de tabla «%s» con OIDs"
 
-#: commands/tablecmds.c:10274
+#: commands/tablecmds.c:11027
+#, fuzzy, c-format
+#| msgid "trigger \"%s\" for table \"%s\" does not exist"
+msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child"
+msgstr "no existe el trigger «%s» para la tabla «%s»"
+
+#: commands/tablecmds.c:11029
+#, fuzzy, c-format
+msgid "ROW triggers with transition tables are not supported in inheritance hierarchies"
+msgstr "los disparadores TRUNCATE FOR EACH ROW no están soportados"
+
+#: commands/tablecmds.c:11231
 #, 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:10290
+#: commands/tablecmds.c:11258 commands/tablecmds.c:11297
 #, c-format
 msgid "child table is missing column \"%s\""
 msgstr "tabla hija no tiene la columna «%s»"
 
-#: commands/tablecmds.c:10373
+#: commands/tablecmds.c:11385
 #, 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:10381
+#: commands/tablecmds.c:11393
 #, 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:10405
+#: commands/tablecmds.c:11404
+#, 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:11439
 #, c-format
 msgid "child table is missing constraint \"%s\""
 msgstr "tabla hija no tiene la restricción «%s»"
 
-#: commands/tablecmds.c:10489
+#: commands/tablecmds.c:11555
+#, fuzzy, c-format
+msgid "relation \"%s\" is not a partition of relation \"%s\""
+msgstr "relación «%s» no es un padre de la relación «%s»"
+
+#: commands/tablecmds.c:11561
 #, 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:10723
+#: commands/tablecmds.c:11787
 #, c-format
 msgid "typed tables cannot inherit"
 msgstr "las tablas tipadas no pueden heredar"
 
-#: commands/tablecmds.c:10754
+#: commands/tablecmds.c:11818
 #, c-format
 msgid "table is missing column \"%s\""
 msgstr "la tabla no tiene la columna «%s»"
 
-#: commands/tablecmds.c:10764
+#: commands/tablecmds.c:11828
 #, 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:10773
+#: commands/tablecmds.c:11837
 #, 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:10786
+#: commands/tablecmds.c:11850
 #, c-format
 msgid "table has extra column \"%s\""
 msgstr "tabla tiene la columna extra «%s»"
 
-#: commands/tablecmds.c:10838
+#: commands/tablecmds.c:11902
 #, c-format
 msgid "\"%s\" is not a typed table"
 msgstr "«%s» no es una tabla tipada"
 
-#: commands/tablecmds.c:11022
+#: commands/tablecmds.c:12084
 #, 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:11028
+#: commands/tablecmds.c:12090
 #, 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:11034
+#: commands/tablecmds.c:12096
 #, 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:11040
+#: commands/tablecmds.c:12102
 #, 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:11046
+#: commands/tablecmds.c:12108
 #, c-format
 msgid "cannot use invalid index \"%s\" as replica identity"
 msgstr "no se puede usar el índice no válido «%s» como identidad de réplica"
 
-#: commands/tablecmds.c:11067
-#, fuzzy, c-format
-#| msgid "index \"%s\" cannot be used as replica identity because column \"%s\" is nullable"
+#: commands/tablecmds.c:12129
+#, 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 «%s» acepta valores nulos"
+msgstr "el índice «%s» no puede usarse como identidad de réplica porque la column %d es una columna de sistema"
 
-#: commands/tablecmds.c:11074
+#: commands/tablecmds.c:12136
 #, 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:11271
-#, fuzzy, c-format
+#: commands/tablecmds.c:12329
+#, c-format
 msgid "cannot change logged status of table \"%s\" because it is temporary"
-msgstr "no se puede cambiar el dueño del índice «%s»"
+msgstr "no se puede cambiar el estado «logged» de la tabla «%s» porque es temporal"
 
-#: commands/tablecmds.c:11330
+#: commands/tablecmds.c:12353
 #, fuzzy, c-format
-#| msgid "could not convert table \"%s\" to a view because it has child tables"
-msgid "could not change table \"%s\" to logged because it references unlogged table \"%s\""
-msgstr "no se pudo convertir la tabla «%s» en vista porque tiene tablas hijas"
+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 hace referencia a la tabla «logged» «%s»"
 
-#: commands/tablecmds.c:11340
+#: commands/tablecmds.c:12355
 #, fuzzy, c-format
-#| msgid "could not convert table \"%s\" to a view because it has child tables"
+msgid "Unlogged relations cannot be replicated."
+msgstr "no se pueden anidar llamadas a funciones de agregación"
+
+#: commands/tablecmds.c:12400
+#, 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:12410
+#, c-format
 msgid "could not change table \"%s\" to unlogged because it references logged table \"%s\""
-msgstr "no se pudo convertir la tabla «%s» en vista porque tiene tablas hijas"
+msgstr "no se pudo cambiar la tabla «%s» a «unlogged» porque hace referencia a la tabla «logged» «%s»"
 
-#: commands/tablecmds.c:11397
+#: commands/tablecmds.c:12468
 #, 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:11502
+#: commands/tablecmds.c:12574
 #, 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:12029
+#: commands/tablecmds.c:13100
 #, c-format
 msgid "\"%s\" is not a composite type"
 msgstr "«%s» no es un tipo compuesto"
 
-#: commands/tablecmds.c:12059
+#: commands/tablecmds.c:13131
 #, c-format
 msgid "\"%s\" is not a table, view, materialized view, sequence, or foreign table"
 msgstr "«%s» no es una tabla, vista, vista materializada, secuencia o tabla foránea"
 
+#: commands/tablecmds.c:13164
+#, fuzzy, c-format
+msgid "unrecognized partitioning strategy \"%s\""
+msgstr "tipo de privilegio no reconocido: «%s»"
+
+#: commands/tablecmds.c:13172
+#, fuzzy, c-format
+msgid "cannot use \"list\" partition strategy with more than one column"
+msgstr "no se puede usar más de %d columnas en un índice"
+
+#: commands/tablecmds.c:13197
+#, fuzzy, c-format
+msgid "column \"%s\" appears more than once in partition key"
+msgstr "la columna común «%s» aparece más de una vez en la tabla derecha"
+
+#: commands/tablecmds.c:13250
+#, fuzzy, c-format
+msgid "column \"%s\" named in partition key does not exist"
+msgstr "no existe la columna «%s» en la llave"
+
+#: commands/tablecmds.c:13257
+#, fuzzy, c-format
+msgid "cannot use system column \"%s\" in partition key"
+msgstr "no se puede alterar columna de sistema «%s»"
+
+#: commands/tablecmds.c:13320
+#, fuzzy, c-format
+msgid "functions in partition key expression must be marked IMMUTABLE"
+msgstr "las funciones utilizadas en expresiones de índice deben estar marcadas IMMUTABLE"
+
+#: commands/tablecmds.c:13337
+#, fuzzy, c-format
+msgid "partition key expressions cannot contain whole-row references"
+msgstr "La expresión USING contiene una referencia a la fila completa (whole-row)."
+
+#: commands/tablecmds.c:13344
+#, fuzzy, c-format
+msgid "partition key expressions cannot contain system column references"
+msgstr "La expresión USING contiene una referencia a la fila completa (whole-row)."
+
+#: commands/tablecmds.c:13354
+#, fuzzy, c-format
+msgid "cannot use constant expression as partition key"
+msgstr "no se puede usar el índice funcional «%s» como identidad de réplica"
+
+#: commands/tablecmds.c:13375
+#, fuzzy, 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 índice"
+
+#: commands/tablecmds.c:13400
+#, fuzzy, c-format
+msgid "data type %s has no default btree operator class"
+msgstr "el tipo de dato %s no tiene una clase de operadores por omisión para el método de acceso «%s»"
+
+#: commands/tablecmds.c:13402
+#, fuzzy, 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 para el índice, o definir una clase de operadores por omisión para el tipo de datos."
+
+#: commands/tablecmds.c:13449
+#, fuzzy, c-format
+msgid "\"%s\" is already a partition"
+msgstr "«%s» ya es una vista"
+
+#: commands/tablecmds.c:13455
+#, fuzzy, c-format
+msgid "cannot attach a typed table as partition"
+msgstr "no se puede agregar una columna a una tabla tipada"
+
+#: commands/tablecmds.c:13471
+#, c-format
+msgid "cannot attach inheritance child as partition"
+msgstr ""
+
+#: commands/tablecmds.c:13485
+#, fuzzy, c-format
+msgid "cannot attach inheritance parent as partition"
+msgstr "no se puede cambiar la herencia de una tabla tipada"
+
+#: commands/tablecmds.c:13508
+#, fuzzy, c-format
+msgid "cannot attach a permanent relation as partition of temporary relation \"%s\""
+msgstr "no se puede heredar de la tabla temporal «%s»"
+
+#: commands/tablecmds.c:13516
+#, fuzzy, c-format
+msgid "cannot attach as partition of temporary relation of another session"
+msgstr "no se puede agregar herencia a tablas temporales de otra sesión"
+
+#: commands/tablecmds.c:13523
+#, fuzzy, c-format
+msgid "cannot attach temporary relation of another session as partition"
+msgstr "no se puede agregar herencia a tablas temporales de otra sesión"
+
+#: commands/tablecmds.c:13529
+#, fuzzy, c-format
+msgid "cannot attach table \"%s\" without OIDs as partition of table \"%s\" with OIDs"
+msgstr "tabla «%s» sin OIDs no puede heredar de tabla «%s» con OIDs"
+
+#: commands/tablecmds.c:13537
+#, fuzzy, c-format
+msgid "cannot attach table \"%s\" with OIDs as partition of table \"%s\" without OIDs"
+msgstr "tabla «%s» sin OIDs no puede heredar de tabla «%s» con OIDs"
+
+#: commands/tablecmds.c:13559
+#, fuzzy, c-format
+msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\""
+msgstr "la columna «%s» no fue encontrado en el tipo %s"
+
+#: commands/tablecmds.c:13562
+#, c-format
+msgid "New partition should contain only the columns present in parent."
+msgstr ""
+
+#: commands/tablecmds.c:13574
+#, fuzzy, c-format
+#| msgid "trigger \"%s\" for table \"%s\" does not exist"
+msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition"
+msgstr "no existe el trigger «%s» para la tabla «%s»"
+
+#: commands/tablecmds.c:13576 commands/trigger.c:387
+#, fuzzy, c-format
+msgid "ROW triggers with transition tables are not supported on partitions"
+msgstr "los disparadores TRUNCATE FOR EACH ROW no están soportados"
+
+#: commands/tablecmds.c:13690
+#, c-format
+msgid "partition constraint for table \"%s\" is implied by existing constraints"
+msgstr ""
+
 #: commands/tablespace.c:162 commands/tablespace.c:179
 #: commands/tablespace.c:190 commands/tablespace.c:198
-#: commands/tablespace.c:629 replication/slot.c:969 storage/file/copydir.c:47
+#: commands/tablespace.c:623 replication/slot.c:1117 storage/file/copydir.c:47
 #, c-format
 msgid "could not create directory \"%s\": %m"
 msgstr "no se pudo crear el directorio «%s»: %m"
 
-#: commands/tablespace.c:209
+#: commands/tablespace.c:209 utils/adt/genfile.c:538
 #, c-format
 msgid "could not stat directory \"%s\": %m"
 msgstr "no se pudo hacer stat al directorio «%s»: %m"
@@ -8672,278 +9378,345 @@ msgstr "se ha denegado el permiso para crear el tablespace «%s»"
 msgid "Must be superuser to create a tablespace."
 msgstr "Debe ser superusuario para crear tablespaces."
 
-#: commands/tablespace.c:271
+#: commands/tablespace.c:267
 #, c-format
 msgid "tablespace location cannot contain single quotes"
 msgstr "la ruta del tablespace no puede contener comillas simples"
 
-#: commands/tablespace.c:281
+#: commands/tablespace.c:277
 #, c-format
 msgid "tablespace location must be an absolute path"
 msgstr "la ubicación del tablespace debe ser una ruta absoluta"
 
-#: commands/tablespace.c:292
+#: commands/tablespace.c:288
 #, c-format
 msgid "tablespace location \"%s\" is too long"
 msgstr "la ruta «%s» del tablespace es demasiado larga"
 
-#: commands/tablespace.c:299
-#, fuzzy, c-format
+#: commands/tablespace.c:295
+#, c-format
 msgid "tablespace location should not be inside the data directory"
-msgstr "la ubicación del tablespace debe ser una ruta absoluta"
+msgstr "la ubicación del tablespace no debe estar dentro del directorio de datos"
 
-#: commands/tablespace.c:308 commands/tablespace.c:956
+#: commands/tablespace.c:304 commands/tablespace.c:950
 #, c-format
 msgid "unacceptable tablespace name \"%s\""
 msgstr "el nombre de tablespace «%s» es inaceptable"
 
-#: commands/tablespace.c:310 commands/tablespace.c:957
+#: commands/tablespace.c:306 commands/tablespace.c:951
 #, c-format
 msgid "The prefix \"pg_\" is reserved for system tablespaces."
 msgstr "El prefijo «pg_» está reservado para tablespaces del sistema."
 
-#: commands/tablespace.c:320 commands/tablespace.c:969
+#: commands/tablespace.c:316 commands/tablespace.c:963
 #, c-format
 msgid "tablespace \"%s\" already exists"
 msgstr "el tablespace «%s» ya existe"
 
-#: commands/tablespace.c:434 commands/tablespace.c:939
-#: commands/tablespace.c:1020 commands/tablespace.c:1089
-#: commands/tablespace.c:1222 commands/tablespace.c:1422
+#: commands/tablespace.c:428 commands/tablespace.c:933
+#: commands/tablespace.c:1013 commands/tablespace.c:1081
+#: commands/tablespace.c:1214 commands/tablespace.c:1414
 #, c-format
 msgid "tablespace \"%s\" does not exist"
 msgstr "no existe el tablespace «%s»"
 
-#: commands/tablespace.c:440
+#: commands/tablespace.c:434
 #, c-format
 msgid "tablespace \"%s\" does not exist, skipping"
 msgstr "el tablespace «%s» no existe, ignorando"
 
-#: commands/tablespace.c:516
+#: commands/tablespace.c:510
 #, c-format
 msgid "tablespace \"%s\" is not empty"
 msgstr "el tablespace «%s» no está vacío"
 
-#: commands/tablespace.c:588
+#: commands/tablespace.c:582
 #, c-format
 msgid "directory \"%s\" does not exist"
 msgstr "no existe el directorio «%s»"
 
-#: commands/tablespace.c:589
+#: commands/tablespace.c:583
 #, 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:594
+#: commands/tablespace.c:588
 #, 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:624
+#: commands/tablespace.c:618
 #, c-format
 msgid "directory \"%s\" already in use as a tablespace"
 msgstr "el directorio «%s» ya está siendo usado como tablespace"
 
-#: commands/tablespace.c:748 commands/tablespace.c:761
-#: commands/tablespace.c:797 commands/tablespace.c:889
+#: commands/tablespace.c:742 commands/tablespace.c:755
+#: commands/tablespace.c:791 commands/tablespace.c:883
 #, c-format
 msgid "could not remove directory \"%s\": %m"
 msgstr "no se pudo eliminar el directorio «%s»: %m"
 
-#: commands/tablespace.c:810 commands/tablespace.c:898
+#: commands/tablespace.c:804 commands/tablespace.c:892
 #, c-format
 msgid "could not remove symbolic link \"%s\": %m"
 msgstr "no se pudo eliminar el enlace simbólico «%s»: %m"
 
-#: commands/tablespace.c:820 commands/tablespace.c:907
-#, fuzzy, c-format
+#: commands/tablespace.c:814 commands/tablespace.c:901
+#, c-format
 msgid "\"%s\" is not a directory or symbolic link"
-msgstr "no se pudo leer el enlace simbólico «%s»"
+msgstr "«%s» no es un directorio o enlace simbólico"
 
-#: commands/tablespace.c:1094
+#: commands/tablespace.c:1086
 #, c-format
 msgid "Tablespace \"%s\" does not exist."
 msgstr "No existe el tablespace «%s»."
 
-#: commands/tablespace.c:1521
+#: commands/tablespace.c:1513
 #, c-format
 msgid "directories for tablespace %u could not be removed"
 msgstr "algunos directorios para el tablespace %u no pudieron eliminarse"
 
-#: commands/tablespace.c:1523
+#: commands/tablespace.c:1515
 #, c-format
 msgid "You can remove the directories manually if necessary."
 msgstr "Puede eliminar los directorios manualmente, si es necesario."
 
-#: commands/trigger.c:184
+#: commands/trigger.c:189
 #, c-format
 msgid "\"%s\" is a table"
 msgstr "«%s» es una tabla"
 
-#: commands/trigger.c:186
+#: commands/trigger.c:191
 #, c-format
 msgid "Tables cannot have INSTEAD OF triggers."
 msgstr "Las tablas no pueden tener disparadores INSTEAD OF."
 
-#: commands/trigger.c:197 commands/trigger.c:204
+#: commands/trigger.c:198
+#, fuzzy, c-format
+msgid "Partitioned tables cannot have ROW triggers."
+msgstr "Las tablas foráneas no pueden tener disparadores TRUNCATE."
+
+#: commands/trigger.c:209 commands/trigger.c:216 commands/trigger.c:369
 #, c-format
 msgid "\"%s\" is a view"
 msgstr "«%s» es una vista"
 
-#: commands/trigger.c:199
+#: commands/trigger.c:211
 #, 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."
 
-#: commands/trigger.c:206
+#: commands/trigger.c:218
 #, c-format
 msgid "Views cannot have TRUNCATE triggers."
 msgstr "Las vistas no pueden tener disparadores TRUNCATE."
 
-#: commands/trigger.c:214 commands/trigger.c:221 commands/trigger.c:228
+#: commands/trigger.c:226 commands/trigger.c:233 commands/trigger.c:240
+#: commands/trigger.c:362
 #, c-format
 msgid "\"%s\" is a foreign table"
 msgstr "«%s» es una tabla foránea"
 
-#: commands/trigger.c:216
+#: commands/trigger.c:228
 #, c-format
 msgid "Foreign tables cannot have INSTEAD OF triggers."
 msgstr "Las tablas foráneas no pueden tener disparadores INSTEAD OF."
 
-#: commands/trigger.c:223
+#: commands/trigger.c:235
 #, c-format
 msgid "Foreign tables cannot have TRUNCATE triggers."
 msgstr "Las tablas foráneas no pueden tener disparadores TRUNCATE."
 
-#: commands/trigger.c:230
+#: commands/trigger.c:242
 #, c-format
 msgid "Foreign tables cannot have constraint triggers."
 msgstr "Las tablas foráneas no pueden tener disparadores de restricción."
 
-#: commands/trigger.c:293
+#: commands/trigger.c:305
 #, c-format
 msgid "TRUNCATE FOR EACH ROW triggers are not supported"
 msgstr "los disparadores TRUNCATE FOR EACH ROW no están soportados"
 
-#: commands/trigger.c:301
+#: commands/trigger.c:313
 #, c-format
 msgid "INSTEAD OF triggers must be FOR EACH ROW"
 msgstr "los disparadores INSTEAD OF deben ser FOR EACH ROW"
 
-#: commands/trigger.c:305
+#: commands/trigger.c:317
 #, c-format
 msgid "INSTEAD OF triggers cannot have WHEN conditions"
 msgstr "los disparadores INSTEAD OF no pueden tener condiciones WHEN"
 
-#: commands/trigger.c:309
+#: commands/trigger.c:321
 #, c-format
 msgid "INSTEAD OF triggers cannot have column lists"
 msgstr "los disparadores INSTEAD OF no pueden tener listas de columnas"
 
-#: commands/trigger.c:366 commands/trigger.c:379
+#: commands/trigger.c:350
+#, c-format
+msgid "ROW variable naming in the REFERENCING clause is not supported"
+msgstr ""
+
+#: commands/trigger.c:351
+#, c-format
+msgid "Use OLD TABLE or NEW TABLE for naming transition tables."
+msgstr ""
+
+#: commands/trigger.c:364
+#, fuzzy, c-format
+msgid "Triggers on foreign tables cannot have transition tables."
+msgstr "Las tablas foráneas no pueden tener disparadores de restricción."
+
+#: commands/trigger.c:371
+#, fuzzy, c-format
+msgid "Triggers on views cannot have transition tables."
+msgstr "Las tablas foráneas no pueden tener disparadores de restricción."
+
+#: commands/trigger.c:391
+#, fuzzy, c-format
+msgid "ROW triggers with transition tables are not supported on inheritance children"
+msgstr "los disparadores TRUNCATE FOR EACH ROW no están soportados"
+
+#: commands/trigger.c:397
+#, c-format
+msgid "transition table name can only be specified for an AFTER trigger"
+msgstr ""
+
+#: commands/trigger.c:402
+#, fuzzy, c-format
+msgid "TRUNCATE triggers with transition tables are not supported"
+msgstr "los disparadores TRUNCATE FOR EACH ROW no están soportados"
+
+#: commands/trigger.c:419
+#, fuzzy, c-format
+#| msgid "option \"%s\" cannot be specified with other options"
+msgid "Transition tables cannot be specified for triggers with more than one event"
+msgstr "la opción «%s» no puede ser especificada con otras opciones"
+
+#: commands/trigger.c:427
+#, c-format
+msgid "NEW TABLE can only be specified for an INSERT or UPDATE trigger"
+msgstr ""
+
+#: commands/trigger.c:432
+#, c-format
+msgid "NEW TABLE cannot be specified multiple times"
+msgstr ""
+
+#: commands/trigger.c:442
+#, c-format
+msgid "OLD TABLE can only be specified for a DELETE or UPDATE trigger"
+msgstr ""
+
+#: commands/trigger.c:447
+#, c-format
+msgid "OLD TABLE cannot be specified multiple times"
+msgstr ""
+
+#: commands/trigger.c:457
+#, c-format
+msgid "OLD TABLE name and NEW TABLE name cannot be the same"
+msgstr ""
+
+#: commands/trigger.c:514 commands/trigger.c:527
 #, 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"
 
-#: commands/trigger.c:371
+#: commands/trigger.c:519
 #, 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"
 
-#: commands/trigger.c:384
+#: commands/trigger.c:532
 #, 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"
 
-#: commands/trigger.c:389
+#: commands/trigger.c:537
 #, 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"
 
-#: commands/trigger.c:434
-#, c-format
-msgid "changing return type of function %s from \"opaque\" to \"trigger\""
-msgstr "cambiando el tipo de retorno de la función %s de «opaque» a «trigger»"
-
-#: commands/trigger.c:553 commands/trigger.c:1303
+#: commands/trigger.c:702 commands/trigger.c:1473
 #, c-format
 msgid "trigger \"%s\" for relation \"%s\" already exists"
 msgstr "ya existe un trigger «%s» para la relación «%s»"
 
-#: commands/trigger.c:838
+#: commands/trigger.c:998
 msgid "Found referenced table's UPDATE trigger."
 msgstr "Se encontró el disparador UPDATE de la tabla referenciada."
 
-#: commands/trigger.c:839
+#: commands/trigger.c:999
 msgid "Found referenced table's DELETE trigger."
 msgstr "Se encontró el disparador DELETE de la tabla referenciada."
 
-#: commands/trigger.c:840
+#: commands/trigger.c:1000
 msgid "Found referencing table's trigger."
 msgstr "Se encontró el disparador en la tabla que hace referencia."
 
-#: commands/trigger.c:949 commands/trigger.c:965
+#: commands/trigger.c:1109 commands/trigger.c:1125
 #, c-format
 msgid "ignoring incomplete trigger group for constraint \"%s\" %s"
 msgstr "ignorando el grupo de disparadores incompleto para la restricción «%s» %s"
 
-#: commands/trigger.c:977
+#: commands/trigger.c:1138
 #, c-format
 msgid "converting trigger group into constraint \"%s\" %s"
 msgstr "convirtiendo el grupo de disparadores en la restricción «%s» %s"
 
-#: commands/trigger.c:1190 commands/trigger.c:1351 commands/trigger.c:1469
+#: commands/trigger.c:1359 commands/trigger.c:1518 commands/trigger.c:1633
 #, c-format
 msgid "trigger \"%s\" for table \"%s\" does not exist"
 msgstr "no existe el trigger «%s» para la tabla «%s»"
 
-#: commands/trigger.c:1434
+#: commands/trigger.c:1601
 #, c-format
 msgid "permission denied: \"%s\" is a system trigger"
 msgstr "permiso denegado: «%s» es un trigger de sistema"
 
-#: commands/trigger.c:1930
+#: commands/trigger.c:2270
 #, c-format
 msgid "trigger function %u returned null value"
 msgstr "la función de trigger %u ha retornado un valor null"
 
-#: commands/trigger.c:1989 commands/trigger.c:2188 commands/trigger.c:2392
-#: commands/trigger.c:2664
+#: commands/trigger.c:2331 commands/trigger.c:2541 commands/trigger.c:2755
+#: commands/trigger.c:3040
 #, c-format
 msgid "BEFORE STATEMENT trigger cannot return a value"
 msgstr "un trigger BEFORE STATEMENT no puede retornar un valor"
 
-#: commands/trigger.c:2726 executor/nodeModifyTable.c:664
-#: executor/nodeModifyTable.c:957
+#: commands/trigger.c:3102 executor/nodeModifyTable.c:795
+#: executor/nodeModifyTable.c:1092
 #, 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:2727 executor/nodeModifyTable.c:665
-#: executor/nodeModifyTable.c:958
+#: commands/trigger.c:3103 executor/nodeModifyTable.c:796
+#: executor/nodeModifyTable.c:1093
 #, c-format
 msgid "Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows."
-msgstr "Considere usar un disparador ANTES en lugar de un disparador BEFORE para propagar cambios a otros registros."
+msgstr "Considere usar un disparador AFTER en lugar de un disparador BEFORE para propagar cambios a otros registros."
 
-#: commands/trigger.c:2741 executor/execMain.c:2369
-#: executor/nodeLockRows.c:216 executor/nodeModifyTable.c:200
-#: executor/nodeModifyTable.c:677 executor/nodeModifyTable.c:970
-#: executor/nodeModifyTable.c:1136
+#: commands/trigger.c:3117 executor/execMain.c:2644
+#: executor/nodeLockRows.c:216 executor/nodeModifyTable.c:214
+#: executor/nodeModifyTable.c:808 executor/nodeModifyTable.c:1105
+#: executor/nodeModifyTable.c:1272
 #, 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:4579
+#: commands/trigger.c:4983
 #, c-format
 msgid "constraint \"%s\" is not deferrable"
 msgstr "la restricción «%s» no es postergable"
 
-#: commands/trigger.c:4602
+#: commands/trigger.c:5006
 #, c-format
 msgid "constraint \"%s\" does not exist"
 msgstr "no existe la restricción «%s»"
 
-#: commands/tsearchcmds.c:115 commands/tsearchcmds.c:685
+#: commands/tsearchcmds.c:115 commands/tsearchcmds.c:679
 #, c-format
 msgid "function %s should return type %s"
 msgstr "la función %s debería retornar el tipo %s"
@@ -8978,680 +9751,678 @@ msgstr "el método «end» del analizador de búsqueda en texto es obligatorio"
 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:386
+#: commands/tsearchcmds.c:384
 #, 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:460
+#: commands/tsearchcmds.c:458
 #, c-format
 msgid "text search template is required"
 msgstr "la plantilla de búsqueda en texto es obligatoria"
 
-#: commands/tsearchcmds.c:752
+#: commands/tsearchcmds.c:746
 #, 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:789
+#: commands/tsearchcmds.c:783
 #, 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:799
+#: commands/tsearchcmds.c:793
 #, 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:1008
+#: commands/tsearchcmds.c:1000
 #, 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:1015
+#: commands/tsearchcmds.c:1007
 #, 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:1051
+#: commands/tsearchcmds.c:1043
 #, c-format
 msgid "text search parser is required"
 msgstr "el analizador de búsqueda en texto es obligatorio"
 
-#: commands/tsearchcmds.c:1278
+#: commands/tsearchcmds.c:1266
 #, c-format
 msgid "token type \"%s\" does not exist"
 msgstr "no existe el tipo de elemento «%s»"
 
-#: commands/tsearchcmds.c:1502
+#: commands/tsearchcmds.c:1487
 #, 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:1508
+#: commands/tsearchcmds.c:1493
 #, c-format
 msgid "mapping for token type \"%s\" does not exist, skipping"
 msgstr "el mapeo para el tipo de elemento «%s» no existe, ignorando"
 
-#: commands/tsearchcmds.c:1663 commands/tsearchcmds.c:1774
+#: commands/tsearchcmds.c:1648 commands/tsearchcmds.c:1759
 #, 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:181
+#: commands/typecmds.c:183
 #, c-format
 msgid "must be superuser to create a base type"
 msgstr "debe ser superusuario para crear un tipo base"
 
-#: commands/typecmds.c:288 commands/typecmds.c:1421
+#: commands/typecmds.c:290 commands/typecmds.c:1414
 #, c-format
 msgid "type attribute \"%s\" not recognized"
 msgstr "el atributo de tipo «%s» no es reconocido"
 
-#: commands/typecmds.c:342
+#: commands/typecmds.c:346
 #, 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:361
+#: commands/typecmds.c:365
 #, c-format
 msgid "array element type cannot be %s"
 msgstr "el tipo de elemento de array no puede ser %s"
 
-#: commands/typecmds.c:393
+#: commands/typecmds.c:397
 #, c-format
 msgid "alignment \"%s\" not recognized"
 msgstr "el alineamiento «%s» no es reconocido"
 
-#: commands/typecmds.c:410
+#: commands/typecmds.c:414
 #, c-format
 msgid "storage \"%s\" not recognized"
 msgstr "el almacenamiento «%s» no es reconocido"
 
-#: commands/typecmds.c:421
+#: commands/typecmds.c:425
 #, c-format
 msgid "type input function must be specified"
 msgstr "debe especificarse la función de ingreso del tipo"
 
-#: commands/typecmds.c:425
+#: commands/typecmds.c:429
 #, c-format
 msgid "type output function must be specified"
 msgstr "debe especificarse la función de salida de tipo"
 
-#: commands/typecmds.c:430
+#: commands/typecmds.c:434
 #, 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:453 commands/typecmds.c:470
-#, fuzzy, c-format
-#| msgid "changing return type of function %s from \"opaque\" to %s"
-msgid "changing return type of function %s from %s to %s"
-msgstr "cambiando el tipo de retorno de la función %s de «opaque» a %s"
-
-#: commands/typecmds.c:460
+#: commands/typecmds.c:464
 #, 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:477
-#, fuzzy, c-format
-#| msgid "type input function %s must return type %s"
+#: commands/typecmds.c:481
+#, c-format
 msgid "type output function %s must return type %s"
-msgstr "la función de entrada %s del tipo debe retornar %s"
+msgstr "la función de salida %s del tipo debe retornar %s"
 
-#: commands/typecmds.c:486
+#: commands/typecmds.c:490
 #, 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:495
-#, fuzzy, c-format
-#| msgid "type input function %s must return type %s"
+#: commands/typecmds.c:499
+#, c-format
 msgid "type send function %s must return type %s"
-msgstr "la función de entrada %s del tipo debe retornar %s"
+msgstr "la función «send» %s del tipo debe retornar %s"
 
-#: commands/typecmds.c:560
-#, fuzzy, c-format
+#: commands/typecmds.c:564
+#, c-format
 msgid "type input function %s should not be volatile"
-msgstr "la función de conversión no debe ser volatile"
+msgstr "la función de entrada %s no debe ser volatile"
 
-#: commands/typecmds.c:565
-#, fuzzy, c-format
+#: commands/typecmds.c:569
+#, c-format
 msgid "type output function %s should not be volatile"
-msgstr "la función de conversión no debe ser volatile"
+msgstr "la función de salida %s no debe ser volatile"
 
-#: commands/typecmds.c:570
-#, fuzzy, c-format
+#: commands/typecmds.c:574
+#, c-format
 msgid "type receive function %s should not be volatile"
-msgstr "la función de recepción %s del tipo debe retornar %s"
+msgstr "la función «receive» %s del tipo no debe ser volatile"
 
-#: commands/typecmds.c:575
-#, fuzzy, c-format
+#: commands/typecmds.c:579
+#, c-format
 msgid "type send function %s should not be volatile"
-msgstr "la función de conversión no debe ser volatile"
+msgstr "la función «send» %s no debe ser volatile"
 
-#: commands/typecmds.c:580
-#, fuzzy, c-format
+#: commands/typecmds.c:584
+#, c-format
 msgid "type modifier input function %s should not be volatile"
-msgstr "la función de conversión no debe ser volatile"
+msgstr "la función de modificadores de tipo %s no debe ser volatile"
 
-#: commands/typecmds.c:585
-#, fuzzy, c-format
+#: commands/typecmds.c:589
+#, c-format
 msgid "type modifier output function %s should not be volatile"
-msgstr "la función de salida de modificadores de tipo es inútil sin una función de entrada de modificadores de tipo"
+msgstr "la función de salida de modificadores de tipo %s no debe ser volatile"
 
-#: commands/typecmds.c:807
+#: commands/typecmds.c:811
 #, 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:893
+#: commands/typecmds.c:897
 #, c-format
 msgid "multiple default expressions"
 msgstr "múltiples expresiones default"
 
-#: commands/typecmds.c:955 commands/typecmds.c:964
+#: commands/typecmds.c:959 commands/typecmds.c:968
 #, c-format
 msgid "conflicting NULL/NOT NULL constraints"
 msgstr "las restricciones NULL/NOT NULL no coinciden"
 
-#: commands/typecmds.c:980
+#: commands/typecmds.c:984
 #, 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:989 commands/typecmds.c:2522
+#: commands/typecmds.c:993 commands/typecmds.c:2512
 #, c-format
 msgid "unique constraints not possible for domains"
 msgstr "no se pueden poner restricciones de unicidad a un dominio"
 
-#: commands/typecmds.c:995 commands/typecmds.c:2528
+#: commands/typecmds.c:999 commands/typecmds.c:2518
 #, 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:1001 commands/typecmds.c:2534
+#: commands/typecmds.c:1005 commands/typecmds.c:2524
 #, c-format
 msgid "exclusion constraints not possible for domains"
 msgstr "las restricciones por exclusión no son posibles para los dominios"
 
-#: commands/typecmds.c:1007 commands/typecmds.c:2540
+#: commands/typecmds.c:1011 commands/typecmds.c:2530
 #, 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:1016 commands/typecmds.c:2549
+#: commands/typecmds.c:1020 commands/typecmds.c:2539
 #, 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:1291 utils/cache/typcache.c:1634
+#: commands/typecmds.c:1284 utils/cache/typcache.c:1648
 #, c-format
 msgid "%s is not an enum"
 msgstr "%s no es un enum"
 
-#: commands/typecmds.c:1429
+#: commands/typecmds.c:1422
 #, c-format
 msgid "type attribute \"subtype\" is required"
 msgstr "el atributo de tipo «subtype» es obligatorio"
 
-#: commands/typecmds.c:1434
+#: commands/typecmds.c:1427
 #, c-format
 msgid "range subtype cannot be %s"
 msgstr "el subtipo de rango no puede ser %s"
 
-#: commands/typecmds.c:1453
+#: commands/typecmds.c:1446
 #, 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:1687
+#: commands/typecmds.c:1680
 #, c-format
 msgid "changing argument type of function %s from \"opaque\" to \"cstring\""
 msgstr "cambiando el tipo de argumento de la función %s de «opaque» a «cstring»"
 
-#: commands/typecmds.c:1738
+#: commands/typecmds.c:1731
 #, c-format
 msgid "changing argument type of function %s from \"opaque\" to %s"
 msgstr "cambiando el tipo de argumento de la función %s de «opaque» a %s"
 
-#: commands/typecmds.c:1837
-#, fuzzy, c-format
-#| msgid "type input function %s must return type %s"
+#: commands/typecmds.c:1830
+#, c-format
 msgid "typmod_in function %s must return type %s"
-msgstr "la función de entrada %s del tipo debe retornar %s"
+msgstr "la función typmod_in %s debe retornar tipo %s"
 
-#: commands/typecmds.c:1864
-#, fuzzy, c-format
-#| msgid "typmod_out function %s must return type \"cstring\""
+#: commands/typecmds.c:1857
+#, c-format
 msgid "typmod_out function %s must return type %s"
-msgstr "la función typmod_out %s debe retornar «cstring»"
+msgstr "la función typmod_out %s debe retornar tipo %s"
 
-#: commands/typecmds.c:1891
-#, fuzzy, c-format
-#| msgid "type analyze function %s must return type \"boolean\""
+#: commands/typecmds.c:1884
+#, c-format
 msgid "type analyze function %s must return type %s"
-msgstr "la función de análisis %s del tipo debe retornar «boolean»"
+msgstr "la función de análisis %s del tipo debe retornar %s"
 
-#: commands/typecmds.c:1937
+#: commands/typecmds.c:1930
 #, 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:1968
+#: commands/typecmds.c:1961
 #, 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:1974
+#: commands/typecmds.c:1967
 #, 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:2010
-#, fuzzy, c-format
-#| msgid "range subtype diff function %s must return type double precision"
+#: commands/typecmds.c:2003
+#, c-format
 msgid "range subtype diff function %s must return type %s"
-msgstr "la función «diff» de subtipo, %s, debe retornar tipo doble precisión"
+msgstr "la función «diff» de subtipo, %s, debe retornar tipo %s"
 
-#: commands/typecmds.c:2017
+#: commands/typecmds.c:2010
 #, 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:2044
-#, fuzzy, c-format
+#: commands/typecmds.c:2037
+#, c-format
 msgid "pg_type array OID value not set when in binary upgrade mode"
-msgstr "debe ser superusuario para conectarse en modo de actualización binaria"
+msgstr "el valor de OID de pg_type no se definió en modo de actualización binaria"
 
-#: commands/typecmds.c:2348
+#: commands/typecmds.c:2340
 #, 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:2463 commands/typecmds.c:2646
+#: commands/typecmds.c:2453 commands/typecmds.c:2636
 #, 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:2467
+#: commands/typecmds.c:2457
 #, c-format
 msgid "constraint \"%s\" of domain \"%s\" does not exist, skipping"
 msgstr "no existe la restricción «%s» en el dominio «%s», ignorando"
 
-#: commands/typecmds.c:2652
+#: commands/typecmds.c:2642
 #, 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:2758
+#: commands/typecmds.c:2747
 #, 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:2971 commands/typecmds.c:3228 commands/typecmds.c:3417
+#: commands/typecmds.c:2960 commands/typecmds.c:3165 commands/typecmds.c:3247
+#: commands/typecmds.c:3434
 #, c-format
 msgid "%s is not a domain"
 msgstr "%s no es un dominio"
 
-#: commands/typecmds.c:3005
+#: commands/typecmds.c:2994
 #, 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:3055
+#: commands/typecmds.c:3045
 #, 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:3158 commands/typecmds.c:3240 commands/typecmds.c:3534
+#: commands/typecmds.c:3177 commands/typecmds.c:3259 commands/typecmds.c:3551
 #, c-format
 msgid "%s is a table's row type"
 msgstr "%s es el tipo de registro de una tabla"
 
-#: commands/typecmds.c:3160 commands/typecmds.c:3242 commands/typecmds.c:3536
+#: commands/typecmds.c:3179 commands/typecmds.c:3261 commands/typecmds.c:3553
 #, c-format
 msgid "Use ALTER TABLE instead."
 msgstr "Considere usar ALTER TABLE."
 
-#: commands/typecmds.c:3167 commands/typecmds.c:3249 commands/typecmds.c:3449
+#: commands/typecmds.c:3186 commands/typecmds.c:3268 commands/typecmds.c:3466
 #, c-format
 msgid "cannot alter array type %s"
 msgstr "no se puede alterar el tipo de array «%s»"
 
-#: commands/typecmds.c:3169 commands/typecmds.c:3251 commands/typecmds.c:3451
+#: commands/typecmds.c:3188 commands/typecmds.c:3270 commands/typecmds.c:3468
 #, 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:3519
+#: commands/typecmds.c:3536
 #, c-format
 msgid "type \"%s\" already exists in schema \"%s\""
 msgstr "ya existe un tipo llamado «%s» en el esquema «%s»"
 
-#: commands/user.c:149
+#: commands/user.c:141
 #, c-format
 msgid "SYSID can no longer be specified"
 msgstr "SYSID ya no puede ser especificado"
 
-#: commands/user.c:291
+#: commands/user.c:295
 #, c-format
 msgid "must be superuser to create superusers"
 msgstr "debe ser superusuario para crear superusuarios"
 
-#: commands/user.c:298
+#: commands/user.c:302
 #, c-format
 msgid "must be superuser to create replication users"
 msgstr "debe ser superusuario para crear usuarios de replicación"
 
-#: commands/user.c:305 commands/user.c:693
-#, fuzzy, c-format
+#: commands/user.c:309 commands/user.c:684
+#, c-format
 msgid "must be superuser to change bypassrls attribute"
-msgstr "debe ser superusuario para crear un tipo base"
+msgstr "debe ser superusuario para cambiar el atributo bypassrls"
 
-#: commands/user.c:312
+#: commands/user.c:316
 #, c-format
 msgid "permission denied to create role"
 msgstr "se ha denegado el permiso para crear el rol"
 
-#: commands/user.c:322 commands/user.c:1176 commands/user.c:1183 gram.y:13599
-#: gram.y:13634
+#: commands/user.c:326 commands/user.c:1160 commands/user.c:1167 gram.y:14486
+#: gram.y:14521 utils/adt/acl.c:5246 utils/adt/acl.c:5252
 #, c-format
 msgid "role name \"%s\" is reserved"
 msgstr "el nombre de rol «%s» está reservado"
 
-#: commands/user.c:324 commands/user.c:1178 commands/user.c:1185
-#, fuzzy, c-format
-#| msgid "role name \"%s\" is reserved"
+#: commands/user.c:328 commands/user.c:1162 commands/user.c:1169
+#, c-format
 msgid "Role names starting with \"pg_\" are reserved."
-msgstr "el nombre de rol «%s» está reservado"
+msgstr "Los nombres de rol que empiezan con «pg_» están reservados."
 
-#: commands/user.c:336 commands/user.c:1191
+#: commands/user.c:340 commands/user.c:1175
 #, c-format
 msgid "role \"%s\" already exists"
 msgstr "el rol «%s» ya existe"
 
 #: commands/user.c:414
-#, fuzzy, c-format
+#, c-format
 msgid "pg_authid OID value not set when in binary upgrade mode"
-msgstr "debe ser superusuario para conectarse en modo de actualización binaria"
+msgstr "el valor de OID de pg_authid no se definió en modo de actualización binaria"
 
-#: commands/user.c:679 commands/user.c:896 commands/user.c:1443
-#: commands/user.c:1589
+#: commands/user.c:670 commands/user.c:880 commands/user.c:1414
+#: commands/user.c:1558
 #, c-format
 msgid "must be superuser to alter superusers"
 msgstr "debe ser superusuario para alterar superusuarios"
 
-#: commands/user.c:686
+#: commands/user.c:677
 #, c-format
 msgid "must be superuser to alter replication users"
 msgstr "debe ser superusuario para alterar usuarios de replicación"
 
-#: commands/user.c:709 commands/user.c:904
+#: commands/user.c:700 commands/user.c:888
 #, c-format
 msgid "permission denied"
 msgstr "permiso denegado"
 
-#: commands/user.c:934
+#: commands/user.c:918
 #, c-format
 msgid "must be superuser to alter settings globally"
 msgstr "debe ser superusuario para alterar parámetros globalmente"
 
-#: commands/user.c:956
+#: commands/user.c:940
 #, c-format
 msgid "permission denied to drop role"
 msgstr "se ha denegado el permiso para eliminar el rol"
 
-#: commands/user.c:980
-#, fuzzy, c-format
+#: commands/user.c:964
+#, c-format
 msgid "cannot use special role specifier in DROP ROLE"
-msgstr "no se puede asignar el nuevo tablespace por omisión «%s»"
+msgstr "no se puede usar un especificador especial de rol en DROP ROLE"
 
-#: commands/user.c:990 commands/user.c:1147 commands/variable.c:805
-#: commands/variable.c:880 utils/adt/acl.c:5121 utils/adt/acl.c:5173
-#: utils/adt/acl.c:5206 utils/adt/acl.c:5224 utils/init/miscinit.c:502
+#: commands/user.c:974 commands/user.c:1131 commands/variable.c:822
+#: commands/variable.c:894 utils/adt/acl.c:5104 utils/adt/acl.c:5151
+#: utils/adt/acl.c:5179 utils/adt/acl.c:5197 utils/init/miscinit.c:504
 #, c-format
 msgid "role \"%s\" does not exist"
 msgstr "no existe el rol «%s»"
 
-#: commands/user.c:995
+#: commands/user.c:979
 #, c-format
 msgid "role \"%s\" does not exist, skipping"
 msgstr "el rol «%s» no existe, ignorando"
 
-#: commands/user.c:1007 commands/user.c:1011
+#: commands/user.c:991 commands/user.c:995
 #, c-format
 msgid "current user cannot be dropped"
 msgstr "el usuario activo no puede ser eliminado"
 
-#: commands/user.c:1015
+#: commands/user.c:999
 #, c-format
 msgid "session user cannot be dropped"
 msgstr "no se puede eliminar un usuario de la sesión"
 
-#: commands/user.c:1026
+#: commands/user.c:1010
 #, c-format
 msgid "must be superuser to drop superusers"
 msgstr "debe ser superusuario para eliminar superusuarios"
 
-#: commands/user.c:1042
+#: commands/user.c:1026
 #, 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:1163
+#: commands/user.c:1147
 #, 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:1167
+#: commands/user.c:1151
 #, c-format
 msgid "current user cannot be renamed"
 msgstr "no se puede cambiar el nombre al usuario activo"
 
-#: commands/user.c:1201
+#: commands/user.c:1185
 #, c-format
 msgid "must be superuser to rename superusers"
 msgstr "debe ser superusuario para cambiar el nombre a superusuarios"
 
-#: commands/user.c:1208
+#: commands/user.c:1192
 #, c-format
 msgid "permission denied to rename role"
 msgstr "se ha denegado el permiso para cambiar el nombre al rol"
 
-#: commands/user.c:1229
+#: commands/user.c:1213
 #, 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:1299
+#: commands/user.c:1273
 #, 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:1337
+#: commands/user.c:1311
 #, c-format
 msgid "permission denied to drop objects"
 msgstr "se ha denegado el permiso para eliminar objetos"
 
-#: commands/user.c:1364 commands/user.c:1376
+#: commands/user.c:1338 commands/user.c:1347
 #, c-format
 msgid "permission denied to reassign objects"
 msgstr "se ha denegado el permiso para reasignar objetos"
 
-#: commands/user.c:1451 commands/user.c:1597
+#: commands/user.c:1422 commands/user.c:1566
 #, c-format
 msgid "must have admin option on role \"%s\""
 msgstr "debe tener opción de admin en rol «%s»"
 
-#: commands/user.c:1468
+#: commands/user.c:1439
 #, c-format
 msgid "must be superuser to set grantor"
 msgstr "debe ser superusuario para especificar el cedente (grantor)"
 
-#: commands/user.c:1493
+#: commands/user.c:1464
 #, c-format
 msgid "role \"%s\" is a member of role \"%s\""
 msgstr "el rol «%s» es un miembro del rol «%s»"
 
-#: commands/user.c:1508
+#: commands/user.c:1479
 #, c-format
 msgid "role \"%s\" is already a member of role \"%s\""
 msgstr "el rol «%s» ya es un miembro del rol «%s»"
 
-#: commands/user.c:1619
+#: commands/user.c:1588
 #, c-format
 msgid "role \"%s\" is not a member of role \"%s\""
 msgstr "el rol «%s» no es un miembro del rol «%s»"
 
-#: commands/vacuum.c:185
+#: commands/vacuum.c:186
 #, c-format
 msgid "%s cannot be executed from VACUUM or ANALYZE"
-msgstr ""
+msgstr "%s no puede ejecutarse desde VACUUM o ANALYZE"
+
+#: commands/vacuum.c:196
+#, 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:528
+#: commands/vacuum.c:565
 #, c-format
 msgid "oldest xmin is far in the past"
 msgstr "xmin más antiguo es demasiado antiguo"
 
-#: commands/vacuum.c:529
+#: commands/vacuum.c:566
 #, c-format
 msgid "Close open transactions soon to avoid wraparound problems."
 msgstr "Cierre transacciones pronto para prevenir problemas por reciclaje de transacciones."
 
-#: commands/vacuum.c:568
+#: commands/vacuum.c:605
 #, c-format
 msgid "oldest multixact is far in the past"
 msgstr "multixact más antiguo es demasiado antiguo"
 
-#: commands/vacuum.c:569
+#: commands/vacuum.c:606
 #, c-format
 msgid "Close open transactions with multixacts soon to avoid wraparound problems."
 msgstr "Cierre transacciones con multixact pronto para prevenir problemas por reciclaje del contador."
 
-#: commands/vacuum.c:1131
+#: commands/vacuum.c:1176
 #, 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:1132
+#: commands/vacuum.c:1177
 #, 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."
 
-#: commands/vacuum.c:1253
+#: commands/vacuum.c:1306
 #, c-format
 msgid "skipping vacuum of \"%s\" --- lock not available"
 msgstr "omitiendo el vacuum de «%s»: el candado no está disponible"
 
-#: commands/vacuum.c:1279
+#: commands/vacuum.c:1332
 #, c-format
 msgid "skipping \"%s\" --- only superuser can vacuum it"
 msgstr "omitiendo «%s»: sólo un superusuario puede aplicarle VACUUM"
 
-#: commands/vacuum.c:1283
+#: commands/vacuum.c:1336
 #, c-format
 msgid "skipping \"%s\" --- only superuser or database owner can vacuum it"
 msgstr "omitiendo «%s»: sólo un superusuario o el dueño de la base de datos puede aplicarle VACUUM"
 
-#: commands/vacuum.c:1287
+#: commands/vacuum.c:1340
 #, c-format
 msgid "skipping \"%s\" --- only table or database owner can vacuum it"
 msgstr "omitiendo «%s»: sólo su dueño o el de la base de datos puede aplicarle VACUUM"
 
-#: commands/vacuum.c:1305
+#: commands/vacuum.c:1359
 #, 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/vacuumlazy.c:363
-#, fuzzy, c-format
+#: commands/vacuumlazy.c:376
+#, c-format
 msgid "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n"
-msgstr "vacuum automático de la tabla «%s.%s.%s»"
+msgstr "vacuum automático de la tabla «%s.%s.%s»: recorridos de índice: %d\n"
 
-#: commands/vacuumlazy.c:368
+#: commands/vacuumlazy.c:381
 #, c-format
 msgid "pages: %u removed, %u remain, %u skipped due to pins, %u skipped frozen\n"
-msgstr ""
+msgstr "páginas: %u eliminadas, %u quedan, %u saltadas debido a «pins», %u congeladas saltadas\n"
 
-#: commands/vacuumlazy.c:374
+#: commands/vacuumlazy.c:387
 #, c-format
-msgid "tuples: %.0f removed, %.0f remain, %.0f are dead but not yet removable\n"
+msgid "tuples: %.0f removed, %.0f remain, %.0f are dead but not yet removable, oldest xmin: %u\n"
 msgstr ""
 
-#: commands/vacuumlazy.c:379
+#: commands/vacuumlazy.c:393
 #, c-format
 msgid "buffer usage: %d hits, %d misses, %d dirtied\n"
-msgstr ""
+msgstr "uso de búfers: %d aciertos, %d fallas, %d ensuciados\n"
 
-#: commands/vacuumlazy.c:383
+#: commands/vacuumlazy.c:397
 #, c-format
 msgid "avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n"
-msgstr ""
+msgstr "tasa lectura promedio: %.3f MB/s, tasa escritura promedio: %.3f MB/s\n"
 
-#: commands/vacuumlazy.c:385
-#, fuzzy, c-format
+#: commands/vacuumlazy.c:399
+#, c-format
 msgid "system usage: %s"
-msgstr "sentencia: %s"
+msgstr "uso de sistema: %s"
 
-#: commands/vacuumlazy.c:837
+#: commands/vacuumlazy.c:859
 #, c-format
 msgid "relation \"%s\" page %u is uninitialized --- fixing"
 msgstr "la página %2$u de la relación «%1$s» no está inicializada --- arreglando"
 
-#: commands/vacuumlazy.c:1301
+#: commands/vacuumlazy.c:1329
 #, c-format
 msgid "\"%s\": removed %.0f row versions in %u pages"
 msgstr "«%s»: se eliminaron %.0f versiones de filas en %u páginas"
 
-#: commands/vacuumlazy.c:1311
+#: commands/vacuumlazy.c:1339
 #, fuzzy, c-format
-msgid "%.0f dead row versions cannot be removed yet.\n"
-msgstr ""
-"%.0f versiones muertas de filas no pueden ser eliminadas aún.\n"
-"%s."
+msgid "%.0f dead row versions cannot be removed yet, oldest xmin: %u\n"
+msgstr "%.0f versiones muertas de filas no pueden ser eliminadas aún.\n"
 
-#: commands/vacuumlazy.c:1313
+#: commands/vacuumlazy.c:1341
 #, c-format
 msgid "There were %.0f unused item pointers.\n"
-msgstr ""
+msgstr "Hubo %.0f punteros de ítem sin uso.\n"
 
-#: commands/vacuumlazy.c:1315
+#: commands/vacuumlazy.c:1343
 #, c-format
-msgid "Skipped %u page due to buffer pins.\n"
-msgid_plural "Skipped %u pages due to buffer pins.\n"
+msgid "Skipped %u page due to buffer pins"
+msgid_plural "Skipped %u pages due to buffer pins"
 msgstr[0] ""
 msgstr[1] ""
 
-#: commands/vacuumlazy.c:1319
+#: commands/vacuumlazy.c:1347
+#, c-format
+msgid "%u frozen page.\n"
+msgid_plural "%u frozen pages.\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: commands/vacuumlazy.c:1351
 #, c-format
 msgid "%u page is entirely empty.\n"
 msgid_plural "%u pages are entirely empty.\n"
 msgstr[0] ""
 msgstr[1] ""
 
-#: commands/vacuumlazy.c:1327
+#: commands/vacuumlazy.c:1358
 #, c-format
 msgid "\"%s\": found %.0f removable, %.0f nonremovable row versions in %u out of %u pages"
 msgstr "«%s»: se encontraron %.0f versiones de filas eliminables y %.0f no eliminables en %u de %u páginas"
 
-#: commands/vacuumlazy.c:1396
+#: commands/vacuumlazy.c:1427
 #, c-format
 msgid "\"%s\": removed %d row versions in %d pages"
 msgstr "«%s»: se eliminaron %d versiones de filas en %d páginas"
 
-#: commands/vacuumlazy.c:1585
+#: commands/vacuumlazy.c:1615
 #, c-format
 msgid "scanned index \"%s\" to remove %d row versions"
 msgstr "se recorrió el índice «%s» para eliminar %d versiones de filas"
 
-#: commands/vacuumlazy.c:1631
+#: commands/vacuumlazy.c:1661
 #, 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/vacuumlazy.c:1635
+#: commands/vacuumlazy.c:1665
 #, c-format
 msgid ""
 "%.0f index row versions were removed.\n"
@@ -9662,112 +10433,118 @@ msgstr ""
 "%u páginas de índice han sido eliminadas, %u son reusables.\n"
 "%s."
 
-#: commands/vacuumlazy.c:1721
+#: commands/vacuumlazy.c:1760
 #, 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"
 
-#: commands/vacuumlazy.c:1786
+#: commands/vacuumlazy.c:1825
 #, c-format
 msgid "\"%s\": truncated %u to %u pages"
 msgstr "«%s»: truncadas %u a %u páginas"
 
-#: commands/vacuumlazy.c:1842
+#: commands/vacuumlazy.c:1890
 #, c-format
 msgid "\"%s\": suspending truncate due to conflicting lock request"
 msgstr "«%s»: suspendiendo el truncado debido a una petición de candado en conflicto"
 
-#: commands/variable.c:164 utils/misc/guc.c:9877
+#: commands/variable.c:165 utils/misc/guc.c:10019 utils/misc/guc.c:10081
 #, c-format
 msgid "Unrecognized key word: \"%s\"."
 msgstr "Palabra clave no reconocida: «%s»."
 
-#: commands/variable.c:176
+#: commands/variable.c:177
 #, c-format
 msgid "Conflicting \"datestyle\" specifications."
 msgstr "Especificaciones contradictorias de «datestyle»."
 
-#: commands/variable.c:298
+#: commands/variable.c:299
 #, c-format
 msgid "Cannot specify months in time zone interval."
 msgstr "No se pueden especificar meses en el intervalo de huso horario."
 
-#: commands/variable.c:304
+#: commands/variable.c:305
 #, c-format
 msgid "Cannot specify days in time zone interval."
 msgstr "No se pueden especificar días en el intervalo de huso horario."
 
-#: commands/variable.c:346 commands/variable.c:428
+#: commands/variable.c:343 commands/variable.c:425
 #, c-format
 msgid "time zone \"%s\" appears to use leap seconds"
 msgstr "el huso horario «%s» parece usar segundos intercalares (bisiestos)"
 
-#: commands/variable.c:348 commands/variable.c:430
+#: commands/variable.c:345 commands/variable.c:427
 #, c-format
 msgid "PostgreSQL does not support leap seconds."
 msgstr "PostgreSQL no soporta segundos intercalares."
 
-#: commands/variable.c:357
+#: commands/variable.c:354
 #, c-format
 msgid "UTC timezone offset is out of range."
 msgstr "desplazamiento de huso horario UTC fuera de rango"
 
-#: commands/variable.c:497
+#: commands/variable.c:494
 #, c-format
 msgid "cannot set transaction read-write mode inside a read-only transaction"
 msgstr "no se puede poner en modo de escritura dentro de una transacción de sólo lectura"
 
-#: commands/variable.c:504
+#: commands/variable.c:501
 #, c-format
 msgid "transaction read-write mode must be set before any query"
 msgstr "el modo de escritura debe ser activado antes de cualquier consulta"
 
-#: commands/variable.c:511
+#: commands/variable.c:508
 #, c-format
 msgid "cannot set transaction read-write mode during recovery"
 msgstr "no se puede poner en modo de escritura durante la recuperación"
 
-#: commands/variable.c:560
+#: commands/variable.c:557
 #, c-format
 msgid "SET TRANSACTION ISOLATION LEVEL must be called before any query"
 msgstr "SET TRANSACTION ISOLATION LEVEL debe ser llamado antes de cualquier consulta"
 
-#: commands/variable.c:567
+#: commands/variable.c:564
 #, c-format
 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:574 storage/lmgr/predicate.c:1587
+#: commands/variable.c:571 storage/lmgr/predicate.c:1634
 #, c-format
 msgid "cannot use serializable mode in a hot standby"
 msgstr "no se puede utilizar el modo serializable en un hot standby"
 
-#: commands/variable.c:575
+#: commands/variable.c:572
 #, c-format
 msgid "You can use REPEATABLE READ instead."
 msgstr "Puede utilizar REPEATABLE READ en su lugar."
 
-#: commands/variable.c:623
+#: commands/variable.c:620
 #, c-format
 msgid "SET TRANSACTION [NOT] DEFERRABLE cannot be called within a subtransaction"
 msgstr "SET TRANSACTION [NOT] DEFERRABLE no puede ser llamado en una subtransacción"
 
-#: commands/variable.c:629
+#: commands/variable.c:626
 #, c-format
 msgid "SET TRANSACTION [NOT] DEFERRABLE must be called before any query"
 msgstr "SET TRANSACTION [NOT] DEFERRABLE debe ser llamado antes de cualquier consulta"
 
-#: commands/variable.c:711
+#: commands/variable.c:708
 #, c-format
 msgid "Conversion between %s and %s is not supported."
 msgstr "La conversión entre %s y %s no está soportada."
 
-#: commands/variable.c:718
+#: commands/variable.c:715
 #, c-format
 msgid "Cannot change \"client_encoding\" now."
 msgstr "No se puede cambiar «client_encoding» ahora."
 
-#: commands/variable.c:898
+#: commands/variable.c:776
+#, fuzzy, c-format
+#| msgid "cannot change client_encoding in a parallel worker"
+msgid "cannot change client_encoding during a parallel operation"
+msgstr "no se puede cambiar «client_encoding» en un trabajador paralelo"
+
+#: commands/variable.c:912
 #, c-format
 msgid "permission denied to set role \"%s\""
 msgstr "se ha denegado el permiso para definir el rol «%s»"
@@ -9782,52 +10559,52 @@ msgstr "valor no válido para la opción «check_option»"
 msgid "Valid values are \"local\" and \"cascaded\"."
 msgstr "Los valores aceptables son «local» y «cascaded»."
 
-#: commands/view.c:114
+#: commands/view.c:101
 #, 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:129
+#: commands/view.c:115
 #, c-format
 msgid "view must have at least one column"
 msgstr "una vista debe tener al menos una columna"
 
-#: commands/view.c:263 commands/view.c:275
+#: commands/view.c:281 commands/view.c:293
 #, c-format
 msgid "cannot drop columns from view"
 msgstr "no se pueden eliminar columnas de una vista"
 
-#: commands/view.c:280
+#: commands/view.c:298
 #, 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:288
+#: commands/view.c:306
 #, 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:427
+#: commands/view.c:451
 #, c-format
 msgid "views must not contain SELECT INTO"
 msgstr "una vista no puede tener SELECT INTO"
 
-#: commands/view.c:440
+#: commands/view.c:463
 #, 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:511
+#: commands/view.c:533
 #, 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:519
+#: commands/view.c:541
 #, 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:533
+#: commands/view.c:555
 #, c-format
 msgid "view \"%s\" will be a temporary view"
 msgstr "la vista «%s» será una vista temporal"
@@ -9862,992 +10639,1102 @@ 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:231 executor/execQual.c:1178
+#: executor/execCurrent.c:231 executor/execExprInterp.c:1899
 #, 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:243 executor/execQual.c:1190
+#: executor/execCurrent.c:243 executor/execExprInterp.c:1911
 #, c-format
 msgid "no value found for parameter %d"
 msgstr "no se encontró un valor para parámetro %d"
 
-#: executor/execIndexing.c:539
+#: executor/execExpr.c:780 parser/parse_agg.c:779
+#, c-format
+msgid "window function calls cannot be nested"
+msgstr "no se pueden anidar llamadas a funciones de ventana deslizante"
+
+#: executor/execExpr.c:1224
+#, c-format
+msgid "target type is not an array"
+msgstr "el tipo de destino no es un array"
+
+#: executor/execExpr.c:1547
+#, 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:2079 executor/execSRF.c:670 parser/parse_func.c:120
+#: parser/parse_func.c:547 parser/parse_func.c:921
+#, 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:2356 executor/execExpr.c:2362
+#: executor/execExprInterp.c:2210 utils/adt/arrayfuncs.c:260
+#: utils/adt/arrayfuncs.c:558 utils/adt/arrayfuncs.c:1288
+#: utils/adt/arrayfuncs.c:3361 utils/adt/arrayfuncs.c:5239
+#: utils/adt/arrayfuncs.c:5756
+#, 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:1571
+#, fuzzy, c-format
+msgid "attribute %d of type %s has been dropped"
+msgstr "El atributo «%s» de tipo %s no existe en el tipo %s."
+
+#: executor/execExprInterp.c:1577
 #, fuzzy, c-format
+msgid "attribute %d of type %s has wrong type"
+msgstr "el atributo %d tiene tipo erróneo"
+
+#: executor/execExprInterp.c:1579 executor/execExprInterp.c:2496
+#, 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:1989
+#, 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:2188
+#, c-format
+msgid "cannot merge incompatible arrays"
+msgstr "no se puede mezclar arrays incompatibles"
+
+#: executor/execExprInterp.c:2189
+#, 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:2230 executor/execExprInterp.c:2260
+#, 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:2495
+#, c-format
+msgid "attribute %d has wrong type"
+msgstr "el atributo %d tiene tipo erróneo"
+
+#: executor/execExprInterp.c:2604
+#, c-format
+msgid "array subscript in assignment must not be null"
+msgstr "subíndice de array en asignación no puede ser nulo"
+
+#: executor/execExprInterp.c:3037 utils/adt/domains.c:148
+#, c-format
+msgid "domain %s does not allow null values"
+msgstr "el dominio %s no permite valores null"
+
+#: executor/execExprInterp.c:3052 utils/adt/domains.c:183
+#, 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:3419 executor/execExprInterp.c:3436
+#: executor/execExprInterp.c:3538 executor/nodeModifyTable.c:96
+#: executor/nodeModifyTable.c:106 executor/nodeModifyTable.c:123
+#: executor/nodeModifyTable.c:131
+#, 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/execExprInterp.c:3420
+#, 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:3437 executor/nodeModifyTable.c:107
+#, 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/execExprInterp.c:3539 executor/execSRF.c:925
+#, 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:543
+#, c-format
 msgid "ON CONFLICT does not support deferrable unique constraints/exclusion constraints as arbiters"
-msgstr "el método de acceso «%s» no soporta restricciones por exclusión"
+msgstr "ON CONFLICT no soporta las restricciones únicas/de exclusión postergables como árbitros"
 
-#: executor/execIndexing.c:816
+#: executor/execIndexing.c:818
 #, c-format
 msgid "could not create exclusion constraint \"%s\""
 msgstr "no se pudo crear la restricción por exclusión «%s»"
 
-#: executor/execIndexing.c:819
+#: executor/execIndexing.c:821
 #, c-format
 msgid "Key %s conflicts with key %s."
 msgstr "La llave %s está en conflicto con la llave %s."
 
-#: executor/execIndexing.c:821
+#: executor/execIndexing.c:823
 #, c-format
 msgid "Key conflicts exist."
 msgstr "Existe un conflicto de llave."
 
-#: executor/execIndexing.c:827
+#: executor/execIndexing.c:829
 #, c-format
 msgid "conflicting key value violates exclusion constraint \"%s\""
 msgstr "llave en conflicto viola restricción por exclusión «%s»"
 
-#: executor/execIndexing.c:830
+#: executor/execIndexing.c:832
 #, 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:832
+#: executor/execIndexing.c:834
 #, c-format
 msgid "Key conflicts with existing key."
 msgstr "La llave está en conflicto con una llave existente."
 
-#: executor/execMain.c:1027
+#: executor/execMain.c:1113
 #, c-format
 msgid "cannot change sequence \"%s\""
 msgstr "no se puede cambiar la secuencia «%s»"
 
-#: executor/execMain.c:1033
+#: executor/execMain.c:1119
 #, c-format
 msgid "cannot change TOAST relation \"%s\""
 msgstr "no se puede cambiar la relación TOAST «%s»"
 
-#: executor/execMain.c:1051 rewrite/rewriteHandler.c:2648
+#: executor/execMain.c:1137 rewrite/rewriteHandler.c:2707
 #, c-format
 msgid "cannot insert into view \"%s\""
 msgstr "no se puede insertar en la vista «%s»"
 
-#: executor/execMain.c:1053 rewrite/rewriteHandler.c:2651
+#: executor/execMain.c:1139 rewrite/rewriteHandler.c:2710
 #, 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 activar las inserciones en la vista, provea un disparador INSTEAD OF INSERT un una regla incodicional ON INSERT DO INSTEAD."
 
-#: executor/execMain.c:1059 rewrite/rewriteHandler.c:2656
+#: executor/execMain.c:1145 rewrite/rewriteHandler.c:2715
 #, c-format
 msgid "cannot update view \"%s\""
 msgstr "no se puede actualizar la vista «%s»"
 
-#: executor/execMain.c:1061 rewrite/rewriteHandler.c:2659
+#: executor/execMain.c:1147 rewrite/rewriteHandler.c:2718
 #, c-format
 msgid "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule."
 msgstr "Para activar las actualizaciones en la vista, provea un disparador INSTEAD OF UPDATE o una regla incondicional ON UPDATE DO INSTEAD."
 
-#: executor/execMain.c:1067 rewrite/rewriteHandler.c:2664
+#: executor/execMain.c:1153 rewrite/rewriteHandler.c:2723
 #, c-format
 msgid "cannot delete from view \"%s\""
 msgstr "no se puede eliminar de la vista «%s»"
 
-#: executor/execMain.c:1069 rewrite/rewriteHandler.c:2667
+#: executor/execMain.c:1155 rewrite/rewriteHandler.c:2726
 #, 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 activar las eliminaciones en la vista, provea un disparador INSTEAD OF DELETE o una regla incondicional ON DELETE DO INSTEAD."
 
-#: executor/execMain.c:1080
+#: executor/execMain.c:1166
 #, c-format
 msgid "cannot change materialized view \"%s\""
 msgstr "no se puede cambiar la vista materializada «%s»"
 
-#: executor/execMain.c:1092
+#: executor/execMain.c:1178
 #, c-format
 msgid "cannot insert into foreign table \"%s\""
 msgstr "no se puede insertar en la tabla foránea «%s»"
 
-#: executor/execMain.c:1098
+#: executor/execMain.c:1184
 #, c-format
 msgid "foreign table \"%s\" does not allow inserts"
 msgstr "la tabla foránea «%s» no permite inserciones"
 
-#: executor/execMain.c:1105
+#: executor/execMain.c:1191
 #, c-format
 msgid "cannot update foreign table \"%s\""
 msgstr "no se puede actualizar la tabla foránea «%s»"
 
-#: executor/execMain.c:1111
+#: executor/execMain.c:1197
 #, c-format
 msgid "foreign table \"%s\" does not allow updates"
 msgstr "la tabla foránea «%s» no permite actualizaciones"
 
-#: executor/execMain.c:1118
+#: executor/execMain.c:1204
 #, c-format
 msgid "cannot delete from foreign table \"%s\""
 msgstr "no se puede eliminar desde la tabla foránea «%s»"
 
-#: executor/execMain.c:1124
+#: executor/execMain.c:1210
 #, c-format
 msgid "foreign table \"%s\" does not allow deletes"
 msgstr "la tabla foránea «%s» no permite eliminaciones"
 
-#: executor/execMain.c:1135
+#: executor/execMain.c:1221
 #, c-format
 msgid "cannot change relation \"%s\""
 msgstr "no se puede cambiar la relación «%s»"
 
-#: executor/execMain.c:1161
+#: executor/execMain.c:1248
 #, c-format
 msgid "cannot lock rows in sequence \"%s\""
 msgstr "no se puede bloquear registros de la secuencia «%s»"
 
-#: executor/execMain.c:1168
+#: executor/execMain.c:1255
 #, 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:1175
+#: executor/execMain.c:1262
 #, c-format
 msgid "cannot lock rows in view \"%s\""
 msgstr "no se puede bloquear registros en la vista «%s»"
 
-#: executor/execMain.c:1183
+#: executor/execMain.c:1270
 #, c-format
 msgid "cannot lock rows in materialized view \"%s\""
 msgstr "no se puede bloquear registros en la vista materializada «%s»"
 
-#: executor/execMain.c:1192 executor/execMain.c:2603
+#: executor/execMain.c:1279 executor/execMain.c:2878
 #: executor/nodeLockRows.c:132
 #, 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:1198
+#: executor/execMain.c:1285
 #, c-format
 msgid "cannot lock rows in relation \"%s\""
 msgstr "no se puede bloquear registros en la tabla «%s»"
 
-#: executor/execMain.c:1721
-#, c-format
-msgid "null value in column \"%s\" violates not-null constraint"
-msgstr "el valor null para la columna «%s» viola la restricción not null"
+#: executor/execMain.c:1896
+#, fuzzy, c-format
+msgid "new row for relation \"%s\" violates partition constraint"
+msgstr "el nuevo registro para la relación «%s» viola la restricción «check» «%s»"
 
-#: executor/execMain.c:1723 executor/execMain.c:1749 executor/execMain.c:1838
+#: executor/execMain.c:1898 executor/execMain.c:1976 executor/execMain.c:2022
+#: executor/execMain.c:2113
 #, c-format
 msgid "Failing row contains %s."
 msgstr "La fila que falla contiene %s."
 
-#: executor/execMain.c:1747
+#: executor/execMain.c:1974
+#, c-format
+msgid "null value in column \"%s\" violates not-null constraint"
+msgstr "el valor null para la columna «%s» viola la restricción not null"
+
+#: executor/execMain.c:2020
 #, 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:1836
-#, fuzzy, c-format
-#| msgid "new row for relation \"%s\" violates check constraint \"%s\""
+#: executor/execMain.c:2111
+#, c-format
 msgid "new row violates check option for view \"%s\""
-msgstr "el nuevo registro para la relación «%s» viola la restricción «check» «%s»"
+msgstr "el nuevo registro para la vista «%s» viola la opción check"
 
-#: executor/execMain.c:1846
-#, fuzzy, c-format
-#| msgid "%s %s will create implicit index \"%s\" for table \"%s\""
+#: executor/execMain.c:2121
+#, c-format
 msgid "new row violates row-level security policy \"%s\" for table \"%s\""
-msgstr "%s %s creará el índice implícito «%s» para la tabla «%s»"
+msgstr "el nuevo registro viola la política de seguridad de registros «%s» para la tabla «%s»"
 
-#: executor/execMain.c:1851
-#, fuzzy, c-format
-#| msgid "reading row security enabled for table \"%s.%s\"\n"
+#: executor/execMain.c:2126
+#, c-format
 msgid "new row violates row-level security policy for table \"%s\""
-msgstr "leyendo si seguridad de filas está activa para la tabla «%s.%s»\n"
+msgstr "el nuevo registro viola la política de seguridad de registros para la tabla «%s»"
 
-#: executor/execMain.c:1858
+#: executor/execMain.c:2133
 #, c-format
 msgid "new row violates row-level security policy \"%s\" (USING expression) for table \"%s\""
-msgstr ""
+msgstr "el nuevo registro viola la política de seguridad de registros «%s» (expresión USING) para la tabla «%s»"
 
-#: executor/execMain.c:1863
+#: executor/execMain.c:2138
 #, c-format
 msgid "new row violates row-level security policy (USING expression) for table \"%s\""
-msgstr ""
+msgstr "el nuevo registro viola la política de seguridad de registros (expresión USING) para la tabla «%s»"
 
-#: executor/execQual.c:302 executor/execQual.c:339 executor/execQual.c:3213
-#: utils/adt/array_userfuncs.c:472 utils/adt/arrayfuncs.c:260
-#: utils/adt/arrayfuncs.c:558 utils/adt/arrayfuncs.c:1288
-#: utils/adt/arrayfuncs.c:3361 utils/adt/arrayfuncs.c:5245
-#: utils/adt/arrayfuncs.c:5768
-#, 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/execMain.c:3339
+#, fuzzy, c-format
+msgid "no partition of relation \"%s\" found for row"
+msgstr "no se encontraron relaciones coincidentes en el tablespace «%s»"
 
-#: executor/execQual.c:324 executor/execQual.c:360
-#, c-format
-msgid "array subscript in assignment must not be null"
-msgstr "subíndice de array en asignación no puede ser nulo"
+#: executor/execMain.c:3341
+#, fuzzy, c-format
+msgid "Partition key of the failing row contains %s."
+msgstr "La fila que falla contiene %s."
 
-#: executor/execQual.c:657 executor/execQual.c:4138
+#: executor/execReplication.c:197 executor/execReplication.c:355
 #, c-format
-msgid "attribute %d has wrong type"
-msgstr "el atributo %d tiene tipo erróneo"
+msgid "concurrent update, retrying"
+msgstr ""
 
-#: executor/execQual.c:658 executor/execQual.c:4139
+#: executor/execReplication.c:257 parser/parse_oper.c:228
+#: utils/adt/array_userfuncs.c:724 utils/adt/array_userfuncs.c:863
+#: utils/adt/arrayfuncs.c:3639 utils/adt/arrayfuncs.c:4077
+#: utils/adt/arrayfuncs.c:6037 utils/adt/rowtypes.c:1167
 #, c-format
-msgid "Table has type %s, but query expects %s."
-msgstr "La tabla tiene tipo %s, pero la consulta esperaba %s."
+msgid "could not identify an equality operator for type %s"
+msgstr "no se pudo identificar un operador de igualdad para el tipo %s"
 
-#: executor/execQual.c:851 executor/execQual.c:868 executor/execQual.c:1068
-#: executor/nodeModifyTable.c:95 executor/nodeModifyTable.c:105
-#: executor/nodeModifyTable.c:122 executor/nodeModifyTable.c:130
-#, 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/execReplication.c:563
+#, fuzzy, c-format
+msgid "cannot update table \"%s\" because it does not have replica identity and publishes updates"
+msgstr "no se puede cambiar el tipo «%s» porque es el tipo de una tabla tipada"
 
-#: executor/execQual.c:852
+#: executor/execReplication.c:565
 #, 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."
+msgid "To enable updating the table, set REPLICA IDENTITY using ALTER TABLE."
+msgstr ""
 
-#: executor/execQual.c:869 executor/nodeModifyTable.c:106
+#: executor/execReplication.c:569
+#, fuzzy, c-format
+msgid "cannot delete from table \"%s\" because it does not have replica identity and publishes deletes"
+msgstr "no se puede cambiar el tipo «%s» porque es el tipo de una tabla tipada"
+
+#: executor/execReplication.c:571
 #, 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."
+msgid "To enable deleting from the table, set REPLICA IDENTITY using ALTER TABLE."
+msgstr ""
+
+#: executor/execReplication.c:590
+#, fuzzy, c-format
+msgid "logical replication target relation \"%s.%s\" is not a table"
+msgstr "la relación referida «%s» no es una tabla"
 
-#: executor/execQual.c:1069 executor/execQual.c:1665
+#: executor/execSRF.c:308
 #, 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."
+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/execQual.c:1344 parser/parse_func.c:115 parser/parse_func.c:542
-#: parser/parse_func.c:895
+#: executor/execSRF.c:356 executor/execSRF.c:620
 #, 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"
+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/execQual.c:1533
+#: executor/execSRF.c:363 executor/execSRF.c:638
 #, c-format
-msgid "functions and operators can take at most one set argument"
-msgstr "las funciones y operadores pueden tomar a lo más un argumento que sea un conjunto"
+msgid "unrecognized table-function returnMode: %d"
+msgstr "modo de retorno (returnMode) de la función tabular no es reconocido: %d"
 
-#: executor/execQual.c:1583
+#: executor/execSRF.c:843
 #, 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/execQual.c:1638 executor/execQual.c:1654 executor/execQual.c:1664
+#: executor/execSRF.c:898 executor/execSRF.c:914 executor/execSRF.c:924
 #, 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/execQual.c:1639
+#: executor/execSRF.c:899
 #, 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/execQual.c:1655
+#: executor/execSRF.c:915
 #, 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/execQual.c:1897 executor/execQual.c:2328
+#: executor/execUtils.c:639
 #, 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"
+msgid "materialized view \"%s\" has not been populated"
+msgstr "la vista materializada «%s» no ha sido poblada"
 
-#: executor/execQual.c:1917 executor/execQual.c:2335
+#: executor/execUtils.c:641
 #, c-format
-msgid "unrecognized table-function returnMode: %d"
-msgstr "modo de retorno (returnMode) de la función tabular no es reconocido: %d"
+msgid "Use the REFRESH MATERIALIZED VIEW command."
+msgstr "Use la orden REFRESH MATERIALIZED VIEW."
 
-#: executor/execQual.c:2245
+#: executor/functions.c:225
 #, c-format
-msgid "function returning set of rows cannot return null value"
-msgstr "una función que retorna un conjunto de registros no puede devolver un valor null"
+msgid "could not determine actual type of argument declared %s"
+msgstr "no se pudo determinar el tipo de argumento declarado %s"
 
-#: executor/execQual.c:2302
+#: executor/functions.c:520
 #, 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"
+msgid "cannot COPY to/from client in a SQL function"
+msgstr "no se puede ejecutar COPY desde/a un cliente en una función SQL"
 
-#: executor/execQual.c:2517
+#. translator: %s is a SQL statement name
+#: executor/functions.c:526
 #, c-format
-msgid "IS DISTINCT FROM does not support set arguments"
-msgstr "IS DISTINCT FROM no soporta argumentos que sean conjuntos"
+msgid "%s is not allowed in a SQL function"
+msgstr "%s no está permitido en una función SQL"
 
-#: executor/execQual.c:2594
+#. translator: %s is a SQL statement name
+#: executor/functions.c:534 executor/spi.c:1282 executor/spi.c:2069
 #, c-format
-msgid "op ANY/ALL (array) does not support set arguments"
-msgstr "op ANY/ALL (array) no soporta argumentos que sean conjuntos"
+msgid "%s is not allowed in a non-volatile function"
+msgstr "%s no está permitido en una función no-«volatile»"
 
-#: executor/execQual.c:3191
+#: executor/functions.c:654
 #, c-format
-msgid "cannot merge incompatible arrays"
-msgstr "no se puede mezclar arrays incompatibles"
+msgid "could not determine actual result type for function declared to return type %s"
+msgstr "no se pudo determinar el tipo de resultado para función declarada retornando tipo %s"
 
-#: executor/execQual.c:3192
+#: executor/functions.c:1413
 #, 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."
+msgid "SQL function \"%s\" statement %d"
+msgstr "función SQL «%s» en la sentencia %d"
 
-#: executor/execQual.c:3233 executor/execQual.c:3260
+#: executor/functions.c:1439
 #, c-format
-msgid "multidimensional arrays must have array expressions with matching dimensions"
-msgstr "los arrays multidimensionales deben tener expresiones de arrays con dimensiones coincidentes"
+msgid "SQL function \"%s\" during startup"
+msgstr "función SQL «%s» durante el inicio"
 
-#: executor/execQual.c:3775
+#: executor/functions.c:1597 executor/functions.c:1634
+#: executor/functions.c:1646 executor/functions.c:1759
+#: executor/functions.c:1792 executor/functions.c:1822
 #, c-format
-msgid "NULLIF does not support set arguments"
-msgstr "NULLIF no soporta argumentos que sean conjuntos"
+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/execQual.c:4008 utils/adt/domains.c:136
+#: executor/functions.c:1599
 #, c-format
-msgid "domain %s does not allow null values"
-msgstr "el dominio %s no permite valores null"
+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."
 
-#: executor/execQual.c:4038 utils/adt/domains.c:173
+#: executor/functions.c:1636
 #, c-format
-msgid "value for domain %s violates check constraint \"%s\""
-msgstr "el valor para el dominio %s viola la restricción «check» «%s»"
+msgid "Final statement must return exactly one column."
+msgstr "La sentencia final debe retornar exactamente una columna."
 
-#: executor/execQual.c:4393
-#, 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/execQual.c:4597 parser/parse_agg.c:743
-#, c-format
-msgid "window function calls cannot be nested"
-msgstr "no se pueden anidar llamadas a funciones de ventana deslizante"
-
-#: executor/execQual.c:4809
-#, c-format
-msgid "target type is not an array"
-msgstr "el tipo de destino no es un array"
-
-#: executor/execQual.c:4924
-#, 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/execQual.c:5059 utils/adt/arrayfuncs.c:3803
-#: utils/adt/arrayfuncs.c:6341 utils/adt/rowtypes.c:927
-#, 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"
-
-#: executor/execUtils.c:819
-#, c-format
-msgid "materialized view \"%s\" has not been populated"
-msgstr "la vista materializada «%s» no ha sido poblada"
-
-#: executor/execUtils.c:821
-#, c-format
-msgid "Use the REFRESH MATERIALIZED VIEW command."
-msgstr "Use la orden REFRESH MATERIALIZED VIEW."
-
-#: executor/functions.c:225
-#, c-format
-msgid "could not determine actual type of argument declared %s"
-msgstr "no se pudo determinar el tipo de argumento declarado %s"
-
-#. translator: %s is a SQL statement name
-#: executor/functions.c:508
-#, c-format
-msgid "%s is not allowed in a SQL function"
-msgstr "%s no está permitido en una función SQL"
-
-#. translator: %s is a SQL statement name
-#: executor/functions.c:515 executor/spi.c:1368 executor/spi.c:2158
-#, 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:643
-#, c-format
-msgid "could not determine actual result type for function declared to return type %s"
-msgstr "no se pudo determinar el tipo de resultado para función declarada retornando tipo %s"
-
-#: executor/functions.c:1408
-#, c-format
-msgid "SQL function \"%s\" statement %d"
-msgstr "función SQL «%s» en la sentencia %d"
-
-#: executor/functions.c:1434
-#, c-format
-msgid "SQL function \"%s\" during startup"
-msgstr "función SQL «%s» durante el inicio"
-
-#: executor/functions.c:1593 executor/functions.c:1630
-#: executor/functions.c:1642 executor/functions.c:1755
-#: executor/functions.c:1788 executor/functions.c:1818
-#, 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:1595
-#, 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."
-
-#: executor/functions.c:1632
-#, c-format
-msgid "Final statement must return exactly one column."
-msgstr "La sentencia final debe retornar exactamente una columna."
-
-#: executor/functions.c:1644
+#: executor/functions.c:1648
 #, c-format
 msgid "Actual return type is %s."
 msgstr "El verdadero tipo de retorno es %s."
 
-#: executor/functions.c:1757
+#: executor/functions.c:1761
 #, c-format
 msgid "Final statement returns too many columns."
 msgstr "La sentencia final retorna demasiadas columnas."
 
-#: executor/functions.c:1790
+#: executor/functions.c:1794
 #, 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:1820
+#: executor/functions.c:1824
 #, c-format
 msgid "Final statement returns too few columns."
 msgstr "La sentencia final retorna muy pocas columnas."
 
-#: executor/functions.c:1869
+#: executor/functions.c:1873
 #, 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:3011
-#, fuzzy, c-format
-#| msgid "final function with extra arguments must not be declared STRICT"
-msgid "combine function for aggregate %u must to be declared as strict"
-msgstr "la función final con argumentos extra no debe declararse STRICT"
+#: executor/nodeAgg.c:3470
+#, c-format
+msgid "combine function for aggregate %u must be declared as STRICT"
+msgstr "la función «combine» para la función de agregación %u debe declararse STRICT"
 
-#: executor/nodeAgg.c:3055 executor/nodeWindowAgg.c:2289
+#: executor/nodeAgg.c:3515 executor/nodeWindowAgg.c:2278
 #, 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:3127 parser/parse_agg.c:597 parser/parse_agg.c:627
+#: executor/nodeAgg.c:3569 parser/parse_agg.c:618 parser/parse_agg.c:648
 #, c-format
 msgid "aggregate function calls cannot be nested"
 msgstr "no se pueden anidar llamadas a funciones de agregación"
 
-#: executor/nodeCustom.c:148 executor/nodeCustom.c:159
-#, fuzzy, c-format
+#: executor/nodeCustom.c:142 executor/nodeCustom.c:153
+#, c-format
 msgid "custom scan \"%s\" does not support MarkPos"
-msgstr "la extensión «%s» no soporta SET SCHEMA"
+msgstr "el scan personalizado «%s» no soporta MarkPos"
 
-#: executor/nodeHashjoin.c:823 executor/nodeHashjoin.c:853
+#: executor/nodeHashjoin.c:767 executor/nodeHashjoin.c:797
 #, c-format
 msgid "could not rewind hash-join temporary file: %m"
 msgstr "falló la búsqueda en el archivo temporal de hash-join: %m"
 
-#: executor/nodeHashjoin.c:888 executor/nodeHashjoin.c:894
+#: executor/nodeHashjoin.c:832 executor/nodeHashjoin.c:838
 #, c-format
 msgid "could not write to hash-join temporary file: %m"
 msgstr "no se pudo escribir el archivo temporal de hash-join: %m"
 
-#: executor/nodeHashjoin.c:928 executor/nodeHashjoin.c:938
+#: executor/nodeHashjoin.c:879 executor/nodeHashjoin.c:889
 #, c-format
 msgid "could not read from hash-join temporary file: %m"
 msgstr "no se pudo leer el archivo temporal de hash-join: %m"
 
-#: executor/nodeIndexonlyscan.c:179
-#, fuzzy, c-format
+#: executor/nodeIndexonlyscan.c:233
+#, 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:253
+#: executor/nodeLimit.c:252
 #, c-format
 msgid "OFFSET must not be negative"
 msgstr "OFFSET no debe ser negativo"
 
-#: executor/nodeLimit.c:280
+#: executor/nodeLimit.c:278
 #, c-format
 msgid "LIMIT must not be negative"
 msgstr "LIMIT no debe ser negativo"
 
-#: executor/nodeMergejoin.c:1584
+#: executor/nodeMergejoin.c:1554
 #, c-format
 msgid "RIGHT JOIN is only supported with merge-joinable join conditions"
 msgstr "RIGHT JOIN sólo está soportado con condiciones que se pueden usar con merge join"
 
-#: executor/nodeMergejoin.c:1604
+#: executor/nodeMergejoin.c:1574
 #, c-format
 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:96
+#: executor/nodeModifyTable.c:97
 #, c-format
 msgid "Query has too many columns."
 msgstr "La consulta tiene demasiadas columnas."
 
-#: executor/nodeModifyTable.c:123
+#: executor/nodeModifyTable.c:124
 #, 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/nodeModifyTable.c:131
+#: executor/nodeModifyTable.c:132
 #, c-format
 msgid "Query has too few columns."
 msgstr "La consulta tiene muy pocas columnas."
 
-#: executor/nodeModifyTable.c:1117
+#: executor/nodeModifyTable.c:1253
 #, c-format
 msgid "ON CONFLICT DO UPDATE command cannot affect row a second time"
-msgstr ""
+msgstr "la orden ON CONFLICT DO UPDATE no puede afectar el registro una segunda vez"
 
-#: executor/nodeModifyTable.c:1118
+#: executor/nodeModifyTable.c:1254
 #, c-format
 msgid "Ensure that no rows proposed for insertion within the same command have duplicate constrained values."
-msgstr ""
+msgstr "Asegúrese de que ningún registro propuesto para inserción dentro de la misma orden tenga valores duplicados restringidos."
 
-#: executor/nodeSamplescan.c:307
-#, fuzzy, c-format
+#: executor/nodeSamplescan.c:298
+#, c-format
 msgid "TABLESAMPLE parameter cannot be null"
-msgstr "el argumento %d no puede ser null"
+msgstr "el parámetro TABLESAMPLE no puede ser null"
 
-#: executor/nodeSamplescan.c:320
+#: executor/nodeSamplescan.c:310
 #, c-format
 msgid "TABLESAMPLE REPEATABLE parameter cannot be null"
-msgstr ""
+msgstr "el parámetro TABLESAMPLE REPEATABLE no puede ser null"
 
-#: executor/nodeSubplan.c:345 executor/nodeSubplan.c:384
-#: executor/nodeSubplan.c:1040
+#: executor/nodeSubplan.c:333 executor/nodeSubplan.c:372
+#: executor/nodeSubplan.c:1004
 #, c-format
 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:365
+#, fuzzy, c-format
+msgid "namespace URI must not be null"
+msgstr "el nombre de slot no debe ser null"
+
+#: executor/nodeTableFuncscan.c:376
+#, fuzzy, c-format
+msgid "row filter expression must not be null"
+msgstr "la posición inicial no debe ser null"
+
+#: executor/nodeTableFuncscan.c:401
+#, fuzzy, c-format
+msgid "column filter expression must not be null"
+msgstr "la posición inicial no debe ser null"
+
+#: executor/nodeTableFuncscan.c:402
+#, fuzzy, c-format
+msgid "Filter for column \"%s\" is null."
+msgstr "faltan datos en la columna «%s»"
+
+#: executor/nodeTableFuncscan.c:481
+#, fuzzy, c-format
+msgid "null is not allowed in column \"%s\""
+msgstr "no se puede alterar la columna heredada «%s»"
+
 #: executor/nodeWindowAgg.c:353
 #, c-format
 msgid "moving-aggregate transition function must not return null"
 msgstr "la función de transición de moving-aggregate no debe retornar valor nulo"
 
-#: executor/nodeWindowAgg.c:1609
+#: executor/nodeWindowAgg.c:1621
 #, c-format
 msgid "frame starting offset must not be null"
 msgstr "la posición inicial del marco no debe ser null"
 
-#: executor/nodeWindowAgg.c:1622
+#: executor/nodeWindowAgg.c:1634
 #, c-format
 msgid "frame starting offset must not be negative"
 msgstr "la posición inicial del marco no debe ser negativa"
 
-#: executor/nodeWindowAgg.c:1635
+#: executor/nodeWindowAgg.c:1646
 #, c-format
 msgid "frame ending offset must not be null"
 msgstr "la posición final del marco no debe ser null"
 
-#: executor/nodeWindowAgg.c:1648
+#: executor/nodeWindowAgg.c:1659
 #, c-format
 msgid "frame ending offset must not be negative"
 msgstr "la posición final del marco no debe ser negativa"
 
-#: executor/spi.c:214
+#: executor/spi.c:197
 #, c-format
 msgid "transaction left non-empty SPI stack"
 msgstr "transacción dejó un stack SPI no vacío"
 
-#: executor/spi.c:215 executor/spi.c:279
+#: executor/spi.c:198 executor/spi.c:261
 #, c-format
 msgid "Check for missing \"SPI_finish\" calls."
 msgstr "Revise llamadas a «SPI_finish» faltantes."
 
-#: executor/spi.c:278
+#: executor/spi.c:260
 #, c-format
 msgid "subtransaction left non-empty SPI stack"
 msgstr "subtransacción dejó un stack SPI no vacío"
 
-#: executor/spi.c:1229
+#: executor/spi.c:1143
 #, 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:1234
+#: executor/spi.c:1148
 #, c-format
 msgid "cannot open %s query as cursor"
 msgstr "no se puede abrir consulta %s como cursor"
 
-#: executor/spi.c:1342
+#: executor/spi.c:1253
 #, 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:1343 parser/analyze.c:2292
+#: executor/spi.c:1254 parser/analyze.c:2447
 #, c-format
 msgid "Scrollable cursors must be READ ONLY."
 msgstr "Los cursores declarados SCROLL deben ser READ ONLY."
 
-#: executor/spi.c:2459
+#: executor/spi.c:2374
 #, c-format
 msgid "SQL statement \"%s\""
 msgstr "sentencia SQL: «%s»"
 
-#: foreign/foreign.c:314
+#: executor/tqueue.c:317
+#, c-format
+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:188
 #, c-format
 msgid "user mapping not found for \"%s\""
 msgstr "no se encontró un mapeo para el usuario «%s»"
 
-#: foreign/foreign.c:750
+#: foreign/foreign.c:640
 #, c-format
 msgid "invalid option \"%s\""
 msgstr "el nombre de opción «%s» no es válido"
 
-#: foreign/foreign.c:751
+#: foreign/foreign.c:641
 #, c-format
 msgid "Valid options in this context are: %s"
 msgstr "Las opciones válidas en este contexto son: %s"
 
-#: gram.y:1004
+#: gram.y:1006
+#, fuzzy, c-format
+msgid "UNENCRYPTED PASSWORD is no longer supported"
+msgstr "aclinsert ya no está soportado"
+
+#: gram.y:1007
+#, c-format
+msgid "Remove UNENCRYPTED to store the password in encrypted form instead."
+msgstr ""
+
+#: gram.y:1069
 #, c-format
 msgid "unrecognized role option \"%s\""
 msgstr "opción de rol no reconocida «%s»"
 
-#: gram.y:1280 gram.y:1295
+#: gram.y:1343 gram.y:1358
 #, 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:1440
+#: gram.y:1503
 #, c-format
 msgid "current database cannot be changed"
 msgstr "no se puede cambiar la base de datos activa"
 
-#: gram.y:1564
+#: gram.y:1627
 #, 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:2602 gram.y:2631
+#: gram.y:2643
+#, fuzzy, c-format
+msgid "sequence option \"%s\" not supported here"
+msgstr "la expansión de filas a través de «*» no está soportado aquí"
+
+#: gram.y:2856 gram.y:2885
 #, c-format
 msgid "STDIN/STDOUT not allowed with PROGRAM"
 msgstr "STDIN/STDOUT no están permitidos con PROGRAM"
 
-#: gram.y:2897 gram.y:2904 gram.y:10275 gram.y:10283
+#: gram.y:3195 gram.y:3202 gram.y:11093 gram.y:11101
 #, c-format
 msgid "GLOBAL is deprecated in temporary table creation"
 msgstr "GLOBAL está obsoleto para la creación de tablas temporales"
 
-#: gram.y:3345 utils/adt/ri_triggers.c:316 utils/adt/ri_triggers.c:373
-#: utils/adt/ri_triggers.c:792 utils/adt/ri_triggers.c:1015
-#: utils/adt/ri_triggers.c:1171 utils/adt/ri_triggers.c:1352
-#: utils/adt/ri_triggers.c:1517 utils/adt/ri_triggers.c:1693
-#: utils/adt/ri_triggers.c:1873 utils/adt/ri_triggers.c:2064
-#: utils/adt/ri_triggers.c:2122 utils/adt/ri_triggers.c:2227
-#: utils/adt/ri_triggers.c:2404
+#: gram.y:3677 utils/adt/ri_triggers.c:311 utils/adt/ri_triggers.c:368
+#: utils/adt/ri_triggers.c:787 utils/adt/ri_triggers.c:1010
+#: utils/adt/ri_triggers.c:1166 utils/adt/ri_triggers.c:1347
+#: utils/adt/ri_triggers.c:1512 utils/adt/ri_triggers.c:1688
+#: utils/adt/ri_triggers.c:1868 utils/adt/ri_triggers.c:2059
+#: utils/adt/ri_triggers.c:2117 utils/adt/ri_triggers.c:2222
+#: utils/adt/ri_triggers.c:2399
 #, c-format
 msgid "MATCH PARTIAL not yet implemented"
 msgstr "MATCH PARTIAL no está implementada"
 
-#: gram.y:4800
+#: gram.y:5139
+#, fuzzy, c-format
+msgid "unrecognized row security option \"%s\""
+msgstr "opción de rol no reconocida «%s»"
+
+#: gram.y:5140
+#, c-format
+msgid "Only PERMISSIVE or RESTRICTIVE policies are supported currently."
+msgstr ""
+
+#: gram.y:5248
 msgid "duplicate trigger events specified"
 msgstr "se han especificado eventos de disparador duplicados"
 
-#: gram.y:4893 parser/parse_utilcmd.c:2741 parser/parse_utilcmd.c:2767
+#: gram.y:5384 parser/parse_utilcmd.c:3032 parser/parse_utilcmd.c:3058
 #, c-format
 msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE"
 msgstr "una restricción declarada INITIALLY DEFERRED debe ser DEFERRABLE"
 
-#: gram.y:4900
+#: gram.y:5391
 #, c-format
 msgid "conflicting constraint properties"
 msgstr "propiedades de restricción contradictorias"
 
-#: gram.y:5032
+#: gram.y:5497
 #, c-format
 msgid "CREATE ASSERTION is not yet implemented"
 msgstr "CREATE ASSERTION no está implementado"
 
-#: gram.y:5048
+#: gram.y:5512
 #, c-format
 msgid "DROP ASSERTION is not yet implemented"
 msgstr "DROP ASSERTION no está implementado"
 
-#: gram.y:5394
+#: gram.y:5892
 #, c-format
 msgid "RECHECK is no longer required"
 msgstr "RECHECK ya no es requerido"
 
-#: gram.y:5395
+#: gram.y:5893
 #, c-format
 msgid "Update your data type."
 msgstr "Actualice su tipo de datos."
 
-#: gram.y:6973
+#: gram.y:7536
 #, c-format
 msgid "aggregates cannot have output arguments"
 msgstr "las funciones de agregación no pueden tener argumentos de salida"
 
-#: gram.y:7292 utils/adt/regproc.c:774 utils/adt/regproc.c:815
+#: gram.y:7865 utils/adt/regproc.c:691 utils/adt/regproc.c:732
 #, c-format
 msgid "missing argument"
 msgstr "falta un argumento"
 
-#: gram.y:7293 utils/adt/regproc.c:775 utils/adt/regproc.c:816
+#: gram.y:7866 utils/adt/regproc.c:692 utils/adt/regproc.c:733
 #, 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."
 
-#: gram.y:8843 gram.y:8861
+#: gram.y:9668 gram.y:9686
 #, c-format
 msgid "WITH CHECK OPTION not supported on recursive views"
 msgstr "WITH CHECK OPTION no está soportado con vistas recursivas"
 
-#: gram.y:9867 parser/parse_expr.c:1476
+#: gram.y:10219
 #, 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"
+msgid "unrecognized VACUUM option \"%s\""
+msgstr "opción de VACUUM «%s» no reconocida"
 
-#: gram.y:10383
+#: gram.y:11201
 #, c-format
 msgid "LIMIT #,# syntax is not supported"
 msgstr "la sintaxis LIMIT #,# no está soportada"
 
-#: gram.y:10384
+#: gram.y:11202
 #, c-format
 msgid "Use separate LIMIT and OFFSET clauses."
 msgstr "Use cláusulas LIMIT y OFFSET separadas."
 
-#: gram.y:10647 gram.y:10672
+#: gram.y:11483 gram.y:11508
 #, c-format
 msgid "VALUES in FROM must have an alias"
 msgstr "VALUES en FROM debe tener un alias"
 
-#: gram.y:10648 gram.y:10673
+#: gram.y:11484 gram.y:11509
 #, c-format
 msgid "For example, FROM (VALUES ...) [AS] foo."
 msgstr "Por ejemplo, FROM (VALUES ...) [AS] foo."
 
-#: gram.y:10653 gram.y:10678
+#: gram.y:11489 gram.y:11514
 #, c-format
 msgid "subquery in FROM must have an alias"
 msgstr "las subconsultas en FROM deben tener un alias"
 
-#: gram.y:10654 gram.y:10679
+#: gram.y:11490 gram.y:11515
 #, c-format
 msgid "For example, FROM (SELECT ...) [AS] foo."
 msgstr "Por ejemplo, FROM (SELECT ...) [AS] foo."
 
-#: gram.y:11253
+#: gram.y:11969
+#, c-format
+msgid "only one DEFAULT value is allowed"
+msgstr ""
+
+#: gram.y:11978
+#, c-format
+msgid "only one PATH value per column is allowed"
+msgstr ""
+
+#: gram.y:11987
+#, fuzzy, c-format
+msgid "conflicting or redundant NULL / NOT NULL declarations for column \"%s\""
+msgstr "las declaraciones NULL/NOT NULL no son coincidentes para la columna «%s» de la tabla «%s»"
+
+#: gram.y:11996
+#, fuzzy, c-format
+msgid "unrecognized column option \"%s\""
+msgstr "opción de rol no reconocida «%s»"
+
+#: gram.y:12250
 #, 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:11262
+#: gram.y:12259
 #, 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:11766
+#: gram.y:12750
 #, 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:11771
+#: gram.y:12755
 #, 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:11948
+#: gram.y:12930
 #, c-format
 msgid "UNIQUE predicate is not yet implemented"
 msgstr "el predicado UNIQUE no está implementado"
 
-#: gram.y:12280
+#: gram.y:13277
 #, 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:12285
+#: gram.y:13282
 #, c-format
 msgid "cannot use DISTINCT with WITHIN GROUP"
 msgstr "no se permite DISTINCT con WITHIN GROUP"
 
-#: gram.y:12290
+#: gram.y:13287
 #, c-format
 msgid "cannot use VARIADIC with WITHIN GROUP"
 msgstr "no se permite VARIADIC con WITHIN GROUP"
 
-#: gram.y:12796
+#: gram.y:13713
 #, c-format
 msgid "RANGE PRECEDING is only supported with UNBOUNDED"
 msgstr "RANGE PRECEDING sólo está soportado con UNBOUNDED"
 
-#: gram.y:12802
+#: gram.y:13719
 #, c-format
 msgid "RANGE FOLLOWING is only supported with UNBOUNDED"
 msgstr "RANGE FOLLOWING sólo está soportado con UNBOUNDED"
 
-#: gram.y:12829 gram.y:12852
+#: gram.y:13746 gram.y:13769
 #, c-format
 msgid "frame start cannot be UNBOUNDED FOLLOWING"
 msgstr "el inicio de «frame» no puede ser UNBOUNDED FOLLOWING"
 
-#: gram.y:12834
+#: gram.y:13751
 #, 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:12857
+#: gram.y:13774
 #, c-format
 msgid "frame end cannot be UNBOUNDED PRECEDING"
 msgstr "el fin de «frame» no puede ser UNBOUNDED PRECEDING"
 
-#: gram.y:12863
+#: gram.y:13780
 #, 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:12870
+#: gram.y:13787
 #, 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:13535
+#: gram.y:14422
 #, c-format
 msgid "type modifier cannot have parameter name"
 msgstr "el modificador de tipo no puede tener nombre de parámetro"
 
-#: gram.y:13541
+#: gram.y:14428
 #, c-format
 msgid "type modifier cannot have ORDER BY"
 msgstr "el modificador de tipo no puede tener ORDER BY"
 
-#: gram.y:13605 gram.y:13611
-#, fuzzy, c-format
+#: gram.y:14492 gram.y:14498
+#, c-format
 msgid "%s cannot be used as a role name here"
-msgstr "%s no puede ser aplicado a un join"
+msgstr "%s no puede ser usado como nombre de rol aquí"
 
-#: gram.y:14233 gram.y:14422
+#: gram.y:15160 gram.y:15349
 msgid "improper use of \"*\""
 msgstr "uso impropio de «*»"
 
-#: gram.y:14385 gram.y:14402 tsearch/spell.c:954 tsearch/spell.c:971
+#: gram.y:15312 gram.y:15329 tsearch/spell.c:954 tsearch/spell.c:971
 #: tsearch/spell.c:988 tsearch/spell.c:1005 tsearch/spell.c:1070
 #, c-format
 msgid "syntax error"
 msgstr "error de sintaxis"
 
-#: gram.y:14486
+#: gram.y:15413
 #, 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:14523
+#: gram.y:15450
 #, c-format
 msgid "multiple ORDER BY clauses not allowed"
 msgstr "no se permiten múltiples cláusulas ORDER BY"
 
-#: gram.y:14534
+#: gram.y:15461
 #, c-format
 msgid "multiple OFFSET clauses not allowed"
 msgstr "no se permiten múltiples cláusulas OFFSET"
 
-#: gram.y:14543
+#: gram.y:15470
 #, c-format
 msgid "multiple LIMIT clauses not allowed"
 msgstr "no se permiten múltiples cláusulas LIMIT"
 
-#: gram.y:14552
+#: gram.y:15479
 #, c-format
 msgid "multiple WITH clauses not allowed"
 msgstr "no se permiten múltiples cláusulas WITH"
 
-#: gram.y:14732
+#: gram.y:15683
 #, 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:14833
+#: gram.y:15784
 #, 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:14871 gram.y:14884
+#: gram.y:15822 gram.y:15835
 #, 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:14897
+#: gram.y:15848
 #, 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:14910
+#: gram.y:15861
 #, c-format
 msgid "%s constraints cannot be marked NO INHERIT"
 msgstr "las restricciones %s no pueden ser marcadas NO INHERIT"
 
-#: guc-file.l:315
+#: guc-file.l:313
 #, c-format
 msgid "unrecognized configuration parameter \"%s\" in file \"%s\" line %u"
 msgstr "parámetro de configuración «%s» no reconocido en el archivo «%s» línea %u"
 
-#: guc-file.l:352 utils/misc/guc.c:5893 utils/misc/guc.c:6085
-#: utils/misc/guc.c:6175 utils/misc/guc.c:6265 utils/misc/guc.c:6373
-#: utils/misc/guc.c:6468
+#: guc-file.l:350 utils/misc/guc.c:5995 utils/misc/guc.c:6188
+#: utils/misc/guc.c:6278 utils/misc/guc.c:6368 utils/misc/guc.c:6476
+#: utils/misc/guc.c:6571
 #, 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"
 
-#: guc-file.l:388
+#: guc-file.l:386
 #, 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"
 
-#: guc-file.l:454
+#: guc-file.l:452
 #, c-format
 msgid "parameter \"%s\" changed to \"%s\""
 msgstr "el parámetro «%s» fue cambiado a «%s»"
 
-#: guc-file.l:496
+#: guc-file.l:494
 #, c-format
 msgid "configuration file \"%s\" contains errors"
 msgstr "el archivo de configuración «%s» contiene errores"
 
-#: guc-file.l:501
+#: guc-file.l:499
 #, 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"
 
-#: guc-file.l:506
+#: guc-file.l:504
 #, 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"
 
-#: guc-file.l:579
+#: guc-file.l:577
 #, c-format
 msgid "could not open configuration file \"%s\": maximum nesting depth exceeded"
 msgstr "no se pudo abrir el archivo de configuración «%s»: nivel de anidamiento máximo excedido"
 
-#: guc-file.l:595 libpq/hba.c:1808
+#: guc-file.l:593 libpq/hba.c:2110 libpq/hba.c:2510
 #, c-format
 msgid "could not open configuration file \"%s\": %m"
 msgstr "no se pudo abrir el archivo de configuración «%s»: %m"
 
-#: guc-file.l:606
+#: guc-file.l:604
 #, c-format
 msgid "skipping missing configuration file \"%s\""
 msgstr "saltando el archivo de configuración faltante «%s»"
 
-#: guc-file.l:860
+#: guc-file.l:858
 #, c-format
 msgid "syntax error in file \"%s\" line %u, near end of line"
 msgstr "error de sintaxis en el archivo «%s» línea %u, cerca del fin de línea"
 
-#: guc-file.l:870
+#: guc-file.l:868
 #, c-format
 msgid "syntax error in file \"%s\" line %u, near token \"%s\""
 msgstr "error de sintaxis en el archivo «%s» línea %u, cerca de la palabra «%s»"
 
-#: guc-file.l:890
+#: guc-file.l:888
 #, c-format
 msgid "too many syntax errors found, abandoning file \"%s\""
 msgstr "se encontraron demasiados errores de sintaxis, abandonando el archivo «%s»"
 
-#: guc-file.l:942
+#: guc-file.l:940
 #, c-format
 msgid "could not open configuration directory \"%s\": %m"
 msgstr "no se pudo abrir el directorio de configuración «%s»: %m"
@@ -10857,1215 +11744,1419 @@ msgstr "no se pudo abrir el directorio de configuración «%s»: %m"
 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."
 
-#: libpq/auth.c:251
+#: libpq/auth-scram.c:199 libpq/auth-scram.c:439 libpq/auth-scram.c:448
+#, fuzzy, c-format
+#| msgid "invalid RADIUS port number: \"%s\""
+msgid "invalid SCRAM verifier for user \"%s\""
+msgstr "número de puerto RADIUS no válido: «%s»"
+
+#: libpq/auth-scram.c:210
+#, fuzzy, c-format
+msgid "User \"%s\" does not have a valid SCRAM verifier."
+msgstr "Usuario no tiene privilegios de conexión."
+
+#: libpq/auth-scram.c:288 libpq/auth-scram.c:293 libpq/auth-scram.c:587
+#: libpq/auth-scram.c:595 libpq/auth-scram.c:676 libpq/auth-scram.c:686
+#: libpq/auth-scram.c:804 libpq/auth-scram.c:811 libpq/auth-scram.c:826
+#: libpq/auth-scram.c:1056 libpq/auth-scram.c:1064
+#, c-format
+msgid "malformed SCRAM message"
+msgstr ""
+
+#: libpq/auth-scram.c:289
+#, fuzzy, c-format
+#| msgid "empty message text"
+msgid "The message is empty."
+msgstr "mensaje de texto vacío"
+
+#: libpq/auth-scram.c:294
+#, fuzzy, c-format
+#| msgid "bit string length %d does not match type bit(%d)"
+msgid "Message length does not match input length."
+msgstr "el largo de la cadena de bits %d no coincide con el tipo bit(%d)"
+
+#: libpq/auth-scram.c:326
+#, fuzzy, c-format
+msgid "invalid SCRAM response"
+msgstr "consulta no válido"
+
+#: libpq/auth-scram.c:327
+#, fuzzy, c-format
+#| msgid "Role \"%s\" does not exist."
+msgid "Nonce does not match."
+msgstr "No existe el rol «%s»."
+
+#: libpq/auth-scram.c:401
+#, fuzzy, c-format
+msgid "could not generate random salt"
+msgstr "no se pudo generar un vector aleatorio de encriptación"
+
+#: libpq/auth-scram.c:588
+#, fuzzy, c-format
+#| msgid "Expected string, but found \"%s\"."
+msgid "Expected attribute '%c' but found %s."
+msgstr "Se esperaba una cadena, se encontró «%s»."
+
+#: libpq/auth-scram.c:596 libpq/auth-scram.c:687
+#, fuzzy, c-format
+#| msgid "Expected %d parameters but got %d."
+msgid "Expected character = for attribute %c."
+msgstr "Se esperaban %d parámetros pero se obtuvieron %d."
+
+#: libpq/auth-scram.c:677
+#, c-format
+msgid "Attribute expected, but found invalid character %s."
+msgstr ""
+
+#: libpq/auth-scram.c:800
+#, c-format
+msgid "client requires SCRAM channel binding, but it is not supported"
+msgstr ""
+
+#: libpq/auth-scram.c:805
+#, fuzzy, c-format
+#| msgid "Unexpected end of input."
+msgid "Unexpected channel-binding flag %s."
+msgstr "Fin inesperado de la entrada."
+
+#: libpq/auth-scram.c:812
+#, fuzzy, c-format
+#| msgid "Expected \":\", but found \"%s\"."
+msgid "Comma expected, but found character %s."
+msgstr "Se esperaba «:», se encontró «%s»."
+
+#: libpq/auth-scram.c:822
+#, c-format
+msgid "client uses authorization identity, but it is not supported"
+msgstr ""
+
+#: libpq/auth-scram.c:827
+#, c-format
+msgid "Unexpected attribute %s in client-first-message."
+msgstr ""
+
+#: libpq/auth-scram.c:843
+#, c-format
+msgid "client requires an unsupported SCRAM extension"
+msgstr ""
+
+#: libpq/auth-scram.c:857
+#, c-format
+msgid "non-printable characters in SCRAM nonce"
+msgstr ""
+
+#: libpq/auth-scram.c:974
+#, fuzzy, c-format
+msgid "could not generate random nonce"
+msgstr "no se pudo generar un vector aleatorio de encriptación"
+
+#: libpq/auth-scram.c:1042
+#, c-format
+msgid "unexpected SCRAM channel-binding attribute in client-final-message"
+msgstr ""
+
+#: libpq/auth-scram.c:1057
+#, c-format
+msgid "Malformed proof in client-final-message."
+msgstr ""
+
+#: libpq/auth-scram.c:1065
+#, c-format
+msgid "Garbage found at the end of client-final-message."
+msgstr ""
+
+#: libpq/auth.c:274
 #, 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:254
+#: libpq/auth.c:277
 #, c-format
 msgid "\"trust\" authentication failed for user \"%s\""
 msgstr "la autentificación «trust» falló para el usuario «%s»"
 
-#: libpq/auth.c:257
+#: libpq/auth.c:280
 #, c-format
 msgid "Ident authentication failed for user \"%s\""
 msgstr "la autentificación Ident falló para el usuario «%s»"
 
-#: libpq/auth.c:260
+#: libpq/auth.c:283
 #, c-format
 msgid "Peer authentication failed for user \"%s\""
 msgstr "la autentificación Peer falló para el usuario «%s»"
 
-#: libpq/auth.c:264
+#: libpq/auth.c:288
 #, c-format
 msgid "password authentication failed for user \"%s\""
 msgstr "la autentificación password falló para el usuario «%s»"
 
-#: libpq/auth.c:269
+#: libpq/auth.c:293
 #, c-format
 msgid "GSSAPI authentication failed for user \"%s\""
 msgstr "la autentificación GSSAPI falló para el usuario «%s»"
 
-#: libpq/auth.c:272
+#: libpq/auth.c:296
 #, c-format
 msgid "SSPI authentication failed for user \"%s\""
 msgstr "la autentificación SSPI falló para el usuario «%s»"
 
-#: libpq/auth.c:275
+#: libpq/auth.c:299
 #, c-format
 msgid "PAM authentication failed for user \"%s\""
 msgstr "la autentificación PAM falló para el usuario «%s»"
 
-#: libpq/auth.c:278
-#, fuzzy, c-format
-#| msgid "SSPI authentication failed for user \"%s\""
+#: libpq/auth.c:302
+#, c-format
 msgid "BSD authentication failed for user \"%s\""
-msgstr "la autentificación SSPI falló para el usuario «%s»"
+msgstr "la autentificación BSD falló para el usuario «%s»"
 
-#: libpq/auth.c:281
+#: libpq/auth.c:305
 #, c-format
 msgid "LDAP authentication failed for user \"%s\""
 msgstr "la autentificación LDAP falló para el usuario «%s»"
 
-#: libpq/auth.c:284
+#: libpq/auth.c:308
 #, c-format
 msgid "certificate authentication failed for user \"%s\""
 msgstr "la autentificación por certificado falló para el usuario «%s»"
 
-#: libpq/auth.c:287
+#: libpq/auth.c:311
 #, c-format
 msgid "RADIUS authentication failed for user \"%s\""
 msgstr "la autentificación RADIUS falló para el usuario «%s»"
 
-#: libpq/auth.c:290
+#: libpq/auth.c:314
 #, 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:294
+#: libpq/auth.c:318
 #, c-format
 msgid "Connection matched pg_hba.conf line %d: \"%s\""
 msgstr "La conexión coincidió con la línea %d de pg_hba.conf: «%s»"
 
-#: libpq/auth.c:349
+#: libpq/auth.c:365
+#, 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:376
 #, c-format
 msgid "connection requires a valid client certificate"
 msgstr "la conexión requiere un certificado de cliente válido"
 
-#: libpq/auth.c:391
+#: libpq/auth.c:409
 #, 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"
 
-#: libpq/auth.c:393 libpq/auth.c:409 libpq/auth.c:467 libpq/auth.c:485
+#: libpq/auth.c:411 libpq/auth.c:427 libpq/auth.c:485 libpq/auth.c:503
 msgid "SSL off"
 msgstr "SSL inactivo"
 
-#: libpq/auth.c:393 libpq/auth.c:409 libpq/auth.c:467 libpq/auth.c:485
+#: libpq/auth.c:411 libpq/auth.c:427 libpq/auth.c:485 libpq/auth.c:503
 msgid "SSL on"
 msgstr "SSL activo"
 
-#: libpq/auth.c:397
+#: libpq/auth.c:415
 #, c-format
 msgid "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\""
 msgstr "pg_hba.conf rechaza la conexión de replicación para el servidor «%s», usuario «%s»"
 
-#: libpq/auth.c:406
+#: libpq/auth.c:424
 #, 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:413
+#: libpq/auth.c:431
 #, c-format
 msgid "pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\""
 msgstr "pg_hba.conf rechaza la conexión para el servidor «%s», usuario «%s», base de datos «%s»"
 
-#: libpq/auth.c:442
+#: libpq/auth.c:460
 #, 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:445
+#: libpq/auth.c:463
 #, 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:448
+#: libpq/auth.c:466
 #, 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:451
+#: libpq/auth.c:469
 #, 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:456
+#: libpq/auth.c:474
 #, 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."
 
-#: libpq/auth.c:465
+#: libpq/auth.c:483
 #, 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"
 
-#: libpq/auth.c:472
+#: libpq/auth.c:490
 #, c-format
 msgid "no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\""
 msgstr "no hay una línea en pg_hba.conf para la conexión de replicación desde el servidor «%s», usuario «%s»"
 
-#: libpq/auth.c:482
+#: libpq/auth.c:500
 #, 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:490
+#: libpq/auth.c:508
 #, c-format
 msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\""
 msgstr "no hay una línea en pg_hba.conf para «%s», usuario «%s», base de datos «%s»"
 
-#: libpq/auth.c:533 libpq/hba.c:1180
-#, 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:667
+#: libpq/auth.c:661
 #, 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:695
+#: libpq/auth.c:689
 #, c-format
 msgid "invalid password packet size"
 msgstr "el tamaño del paquete de contraseña no es válido"
 
-#: libpq/auth.c:825
+#: libpq/auth.c:809 libpq/hba.c:1325
+#, 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:815
+#, fuzzy, c-format
+msgid "could not generate random MD5 salt"
+msgstr "no se pudo generar un vector aleatorio de encriptación"
+
+#: libpq/auth.c:860
+#, fuzzy, c-format
+msgid "SASL authentication is not supported in protocol version 2"
+msgstr "SSPI no está soportado por el protocolo versión 2"
+
+#: libpq/auth.c:902
+#, fuzzy, c-format
+msgid "expected SASL response, got message type %d"
+msgstr "se esperaba una respuesta GSS, se obtuvo mensaje de tipo %d"
+
+#: libpq/auth.c:939
+#, fuzzy, c-format
+msgid "client selected an invalid SASL authentication mechanism"
+msgstr "método de autentificación «%s» no válido"
+
+#: libpq/auth.c:1086
 #, c-format
 msgid "GSSAPI is not supported in protocol version 2"
 msgstr "GSSAPI no está soportado por el protocolo versión 2"
 
-#: libpq/auth.c:885
+#: libpq/auth.c:1146
 #, 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:946
+#: libpq/auth.c:1208
 msgid "accepting GSS security context failed"
 msgstr "falló la aceptación del contexto de seguridad GSS"
 
-#: libpq/auth.c:972
+#: libpq/auth.c:1234
 msgid "retrieving GSS user name failed"
 msgstr "falló la obtención del nombre de usuario GSS"
 
-#: libpq/auth.c:1091
+#: libpq/auth.c:1354
 #, c-format
 msgid "SSPI is not supported in protocol version 2"
 msgstr "SSPI no está soportado por el protocolo versión 2"
 
-#: libpq/auth.c:1106
+#: libpq/auth.c:1369
 msgid "could not acquire SSPI credentials"
 msgstr "no se pudo obtener las credenciales SSPI"
 
-#: libpq/auth.c:1124
+#: libpq/auth.c:1387
 #, 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:1196
+#: libpq/auth.c:1460
 msgid "could not accept SSPI security context"
 msgstr "no se pudo aceptar un contexto SSPI"
 
-#: libpq/auth.c:1258
+#: libpq/auth.c:1522
 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:1377 libpq/auth.c:1396
-#, fuzzy, c-format
-#| msgid "could not parse file name \"%s\""
+#: libpq/auth.c:1641 libpq/auth.c:1660
+#, c-format
 msgid "could not translate name"
-msgstr "no se pudo interpretar el nombre de archivo «%s»"
+msgstr "no se pudo traducir el nombre"
 
-#: libpq/auth.c:1409
-#, fuzzy, c-format
-#| msgid "channel name too long"
+#: libpq/auth.c:1673
+#, c-format
 msgid "realm name too long"
-msgstr "el nombre de canal es demasiado largo"
+msgstr "nombre de «realm» demasiado largo"
 
-#: libpq/auth.c:1424
-#, fuzzy, c-format
-#| msgid "encoding name too long"
+#: libpq/auth.c:1688
+#, c-format
 msgid "translated account name too long"
-msgstr "el nombre de codificación es demasiado largo"
+msgstr "nombre de cuenta traducido demasiado largo"
 
-#: libpq/auth.c:1610
+#: libpq/auth.c:1874
 #, 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:1625
+#: libpq/auth.c:1889
 #, 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:1637
+#: libpq/auth.c:1901
 #, c-format
 msgid "could not connect to Ident server at address \"%s\", port %s: %m"
 msgstr "no se pudo conectar al servidor Ident «%s», port %s: %m"
 
-#: libpq/auth.c:1659
+#: libpq/auth.c:1923
 #, 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:1676
+#: libpq/auth.c:1940
 #, 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:1686
+#: libpq/auth.c:1950
 #, c-format
 msgid "invalidly formatted response from Ident server: \"%s\""
 msgstr "respuesta del servidor Ident en formato no válido: «%s»"
 
-#: libpq/auth.c:1726
+#: libpq/auth.c:1990
 #, 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:1730
+#: libpq/auth.c:1994
 #, c-format
 msgid "could not get peer credentials: %m"
 msgstr "no se pudo recibir credenciales: %m"
 
-#: libpq/auth.c:1739
+#: libpq/auth.c:2003
 #, 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:1823 libpq/auth.c:2149 libpq/auth.c:2509
+#: libpq/auth.c:2087 libpq/auth.c:2413 libpq/auth.c:2726
 #, c-format
 msgid "empty password returned by client"
 msgstr "el cliente retornó una contraseña vacía"
 
-#: libpq/auth.c:1833
+#: libpq/auth.c:2097
 #, c-format
 msgid "error from underlying PAM layer: %s"
 msgstr "se ha recibido un error de la biblioteca PAM: %s"
 
-#: libpq/auth.c:1914
+#: libpq/auth.c:2178
 #, c-format
 msgid "could not create PAM authenticator: %s"
 msgstr "no se pudo crear autenticador PAM: %s"
 
-#: libpq/auth.c:1925
+#: libpq/auth.c:2189
 #, c-format
 msgid "pam_set_item(PAM_USER) failed: %s"
 msgstr "pam_set_item(PAM_USER) falló: %s"
 
-#: libpq/auth.c:1936
-#, fuzzy, c-format
-#| msgid "pam_set_item(PAM_USER) failed: %s"
+#: libpq/auth.c:2200
+#, c-format
 msgid "pam_set_item(PAM_RHOST) failed: %s"
-msgstr "pam_set_item(PAM_USER) falló: %s"
+msgstr "pam_set_item(PAM_RHOST) falló: %s"
 
-#: libpq/auth.c:1947
+#: libpq/auth.c:2211
 #, c-format
 msgid "pam_set_item(PAM_CONV) failed: %s"
 msgstr "pam_set_item(PAM_CONV) falló: %s"
 
-#: libpq/auth.c:1958
+#: libpq/auth.c:2222
 #, c-format
 msgid "pam_authenticate failed: %s"
 msgstr "pam_authenticate falló: %s"
 
-#: libpq/auth.c:1969
+#: libpq/auth.c:2233
 #, c-format
 msgid "pam_acct_mgmt failed: %s"
 msgstr "pam_acct_mgmt falló: %s"
 
-#: libpq/auth.c:1980
+#: libpq/auth.c:2244
 #, c-format
 msgid "could not release PAM authenticator: %s"
 msgstr "no se pudo liberar autenticador PAM: %s"
 
-#: libpq/auth.c:2045
+#: libpq/auth.c:2309
 #, c-format
 msgid "could not initialize LDAP: %m"
 msgstr "no se pudo inicializar LDAP: %m"
 
-#: libpq/auth.c:2048
+#: libpq/auth.c:2312
 #, c-format
 msgid "could not initialize LDAP: error code %d"
 msgstr "no se pudo inicializar LDAP: código de error %d"
 
-#: libpq/auth.c:2058
+#: libpq/auth.c:2322
 #, 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:2087
+#: libpq/auth.c:2351
 #, c-format
 msgid "could not load wldap32.dll"
 msgstr "no se pudo cargar wldap32.dll"
 
-#: libpq/auth.c:2095
+#: libpq/auth.c:2359
 #, c-format
 msgid "could not load function _ldap_start_tls_sA in wldap32.dll"
 msgstr "no se pudo cargar la función _ldap_start_tls_sA en wldap32.dll"
 
-#: libpq/auth.c:2096
+#: libpq/auth.c:2360
 #, c-format
 msgid "LDAP over SSL is not supported on this platform."
 msgstr "LDAP sobre SSL no está soportado en esta plataforma."
 
-#: libpq/auth.c:2111
+#: libpq/auth.c:2375
 #, c-format
 msgid "could not start LDAP TLS session: %s"
 msgstr "no se pudo iniciar sesión de LDAP TLS: %s"
 
-#: libpq/auth.c:2133
+#: libpq/auth.c:2397
 #, c-format
 msgid "LDAP server not specified"
 msgstr "servidor LDAP no especificado"
 
-#: libpq/auth.c:2186
+#: libpq/auth.c:2450
 #, 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:2201
+#: libpq/auth.c:2465
 #, 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:2225
+#: libpq/auth.c:2489
 #, 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:2236
+#: libpq/auth.c:2500
 #, c-format
 msgid "LDAP user \"%s\" does not exist"
 msgstr "no existe el usuario LDAP «%s»"
 
-#: libpq/auth.c:2237
+#: libpq/auth.c:2501
 #, 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:2241
+#: libpq/auth.c:2505
 #, c-format
 msgid "LDAP user \"%s\" is not unique"
 msgstr "el usuario LDAP «%s» no es única"
 
-#: libpq/auth.c:2242
+#: libpq/auth.c:2506
 #, 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:2260
+#: libpq/auth.c:2524
 #, 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:2280
+#: libpq/auth.c:2544
 #, c-format
 msgid "could not unbind after searching for user \"%s\" on server \"%s\": %s"
 msgstr "no se pudo desconectar después de buscar al usuario «%s» en el servidor «%s»: %s"
 
-#: libpq/auth.c:2310
+#: libpq/auth.c:2574
 #, 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:2338
+#: libpq/auth.c:2602
 #, 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:2465
+#: libpq/auth.c:2705
 #, c-format
 msgid "RADIUS server not specified"
 msgstr "servidor RADIUS no especificado"
 
-#: libpq/auth.c:2472
+#: libpq/auth.c:2712
 #, c-format
 msgid "RADIUS secret not specified"
 msgstr "secreto RADIUS no especificado"
 
-#: libpq/auth.c:2488 libpq/hba.c:1634
+#: libpq/auth.c:2733
+#, 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:2830 libpq/hba.c:1876
 #, 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:2516
-#, fuzzy, c-format
-#| msgid "RADIUS authentication does not support passwords longer than 16 characters"
-msgid "RADIUS authentication does not support passwords longer than %d characters"
-msgstr "la autentificación RADIUS no soporta contraseñas más largas de 16 caracteres"
-
-#: libpq/auth.c:2528
+#: libpq/auth.c:2844
 #, c-format
 msgid "could not generate random encryption vector"
 msgstr "no se pudo generar un vector aleatorio de encriptación"
 
-#: libpq/auth.c:2563
+#: libpq/auth.c:2878
 #, c-format
 msgid "could not perform MD5 encryption of password"
 msgstr "no se pudo efectuar cifrado MD5 de la contraseña"
 
-#: libpq/auth.c:2588
+#: libpq/auth.c:2904
 #, c-format
 msgid "could not create RADIUS socket: %m"
 msgstr "no se pudo crear el socket RADIUS: %m"
 
-#: libpq/auth.c:2609
+#: libpq/auth.c:2926
 #, c-format
 msgid "could not bind local RADIUS socket: %m"
 msgstr "no se pudo enlazar el socket RADIUS local: %m"
 
-#: libpq/auth.c:2619
+#: libpq/auth.c:2936
 #, c-format
 msgid "could not send RADIUS packet: %m"
 msgstr "no se pudo enviar el paquete RADIUS: %m"
 
-#: libpq/auth.c:2652 libpq/auth.c:2677
-#, c-format
-msgid "timeout waiting for RADIUS response"
+#: libpq/auth.c:2969 libpq/auth.c:2995
+#, fuzzy, c-format
+msgid "timeout waiting for RADIUS response from %s"
 msgstr "se agotó el tiempo de espera de la respuesta RADIUS"
 
-#: libpq/auth.c:2670
+#: libpq/auth.c:2988
 #, 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:2699
+#: libpq/auth.c:3018
 #, c-format
 msgid "could not read RADIUS response: %m"
 msgstr "no se pudo leer la respuesta RADIUS: %m"
 
-#: libpq/auth.c:2711 libpq/auth.c:2715
-#, c-format
-msgid "RADIUS response was sent from incorrect port: %d"
+#: libpq/auth.c:3031 libpq/auth.c:3035
+#, fuzzy, c-format
+msgid "RADIUS response from %s was sent from incorrect port: %d"
 msgstr "la respuesta RADIUS fue enviada desde el port incorrecto: %d"
 
-#: libpq/auth.c:2724
-#, c-format
-msgid "RADIUS response too short: %d"
+#: libpq/auth.c:3044
+#, fuzzy, c-format
+msgid "RADIUS response from %s too short: %d"
 msgstr "la respuesta RADIUS es demasiado corta: %d"
 
-#: libpq/auth.c:2731
-#, c-format
-msgid "RADIUS response has corrupt length: %d (actual length %d)"
+#: libpq/auth.c:3051
+#, fuzzy, c-format
+msgid "RADIUS response from %s has corrupt length: %d (actual length %d)"
 msgstr "la respuesta RADIUS tiene largo corrupto: %d (largo real %d)"
 
-#: libpq/auth.c:2739
-#, c-format
-msgid "RADIUS response is to a different request: %d (should be %d)"
+#: libpq/auth.c:3059
+#, fuzzy, c-format
+msgid "RADIUS response from %s is to a different request: %d (should be %d)"
 msgstr "la respuesta RADIUS es a una petición diferente: %d (debería ser %d)"
 
-#: libpq/auth.c:2764
+#: libpq/auth.c:3084
 #, c-format
 msgid "could not perform MD5 encryption of received packet"
 msgstr "no se pudo realizar cifrado MD5 del paquete recibido"
 
-#: libpq/auth.c:2773
-#, c-format
-msgid "RADIUS response has incorrect MD5 signature"
+#: libpq/auth.c:3093
+#, fuzzy, c-format
+msgid "RADIUS response from %s has incorrect MD5 signature"
 msgstr "la respuesta RADIUS tiene firma MD5 incorrecta"
 
-#: libpq/auth.c:2790
-#, c-format
-msgid "RADIUS response has invalid code (%d) for user \"%s\""
+#: libpq/auth.c:3111
+#, fuzzy, c-format
+msgid "RADIUS response from %s has invalid code (%d) for user \"%s\""
 msgstr "la respuesta RADIUS tiene código no válido (%d) para el usuario «%s»"
 
-#: libpq/be-fsstubs.c:134 libpq/be-fsstubs.c:165 libpq/be-fsstubs.c:199
-#: libpq/be-fsstubs.c:239 libpq/be-fsstubs.c:264 libpq/be-fsstubs.c:312
-#: libpq/be-fsstubs.c:335 libpq/be-fsstubs.c:583
+#: libpq/be-fsstubs.c:132 libpq/be-fsstubs.c:163 libpq/be-fsstubs.c:197
+#: libpq/be-fsstubs.c:237 libpq/be-fsstubs.c:262 libpq/be-fsstubs.c:310
+#: libpq/be-fsstubs.c:333 libpq/be-fsstubs.c:581
 #, c-format
 msgid "invalid large-object descriptor: %d"
 msgstr "el descriptor de objeto grande no es válido: %d"
 
-#: libpq/be-fsstubs.c:180 libpq/be-fsstubs.c:218 libpq/be-fsstubs.c:602
-#: libpq/be-fsstubs.c:790
+#: libpq/be-fsstubs.c:178 libpq/be-fsstubs.c:216 libpq/be-fsstubs.c:600
+#: libpq/be-fsstubs.c:788
 #, c-format
 msgid "permission denied for large object %u"
 msgstr "permiso denegado al objeto grande %u"
 
-#: libpq/be-fsstubs.c:205 libpq/be-fsstubs.c:589
+#: libpq/be-fsstubs.c:203 libpq/be-fsstubs.c:587
 #, c-format
 msgid "large object descriptor %d was not opened for writing"
 msgstr "el descriptor de objeto grande %d no fue abierto para escritura"
 
-#: libpq/be-fsstubs.c:247
+#: libpq/be-fsstubs.c:245
 #, c-format
 msgid "lo_lseek result out of range for large-object descriptor %d"
 msgstr "el resultado de lo_lseek está fuera de rango para el descriptor de objeto grande %d"
 
-#: libpq/be-fsstubs.c:320
+#: libpq/be-fsstubs.c:318
 #, c-format
 msgid "lo_tell result out of range for large-object descriptor %d"
 msgstr "el resultado de lo_tell está fuera de rango para el descriptor de objeto grande %d"
 
-#: libpq/be-fsstubs.c:457
+#: libpq/be-fsstubs.c:455
 #, c-format
 msgid "must be superuser to use server-side lo_import()"
 msgstr "debe ser superusuario para utilizar lo_import() en el extremo del servidor"
 
-#: libpq/be-fsstubs.c:458
+#: libpq/be-fsstubs.c:456
 #, c-format
 msgid "Anyone can use the client-side lo_import() provided by libpq."
 msgstr "Todos los usuarios pueden utilizar lo_import() de cliente proporcionada por libpq."
 
-#: libpq/be-fsstubs.c:471
+#: libpq/be-fsstubs.c:469
 #, c-format
 msgid "could not open server file \"%s\": %m"
 msgstr "no se pudo abrir el archivo de servidor «%s»: %m"
 
-#: libpq/be-fsstubs.c:493
+#: libpq/be-fsstubs.c:491
 #, c-format
 msgid "could not read server file \"%s\": %m"
 msgstr "no se pudo leer el archivo de servidor «%s»: %m"
 
-#: libpq/be-fsstubs.c:523
+#: libpq/be-fsstubs.c:521
 #, c-format
 msgid "must be superuser to use server-side lo_export()"
 msgstr "debe ser superusuario para utilizar lo_export() en el extremo del servidor"
 
-#: libpq/be-fsstubs.c:524
+#: libpq/be-fsstubs.c:522
 #, c-format
 msgid "Anyone can use the client-side lo_export() provided by libpq."
 msgstr "Todos los usuarios pueden utilizar lo_export() de cliente proporcionada por libpq."
 
-#: libpq/be-fsstubs.c:549
+#: libpq/be-fsstubs.c:547
 #, c-format
 msgid "could not create server file \"%s\": %m"
 msgstr "no se pudo crear el archivo del servidor «%s»: %m"
 
-#: libpq/be-fsstubs.c:561
+#: libpq/be-fsstubs.c:559
 #, c-format
 msgid "could not write server file \"%s\": %m"
 msgstr "no se pudo escribir el archivo del servidor «%s»: %m"
 
-#: libpq/be-fsstubs.c:815
+#: libpq/be-fsstubs.c:813
 #, c-format
 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:857 utils/adt/genfile.c:211 utils/adt/genfile.c:252
+#: libpq/be-fsstubs.c:855 utils/adt/genfile.c:212 utils/adt/genfile.c:253
 #, c-format
 msgid "requested length cannot be negative"
 msgstr "el tamaño solicitado no puede ser negativo"
 
-#: libpq/be-secure-openssl.c:184
+#: libpq/be-secure-openssl.c:197
 #, c-format
 msgid "could not create SSL context: %s"
 msgstr "no se pudo crear un contexto SSL: %s"
 
-#: libpq/be-secure-openssl.c:200
+#: libpq/be-secure-openssl.c:225
 #, 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:206
+#: libpq/be-secure-openssl.c:234
 #, 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-openssl.c:212
-#, fuzzy, c-format
-#| msgid "%s: file \"%s\" is not a regular file\n"
+#: libpq/be-secure-openssl.c:243
+#, c-format
 msgid "private key file \"%s\" is not a regular file"
-msgstr "%s: el archivo «%s» no es un archivo regular\n"
+msgstr "el archivo de llave privada «%s» no es un archivo regular"
 
-#: libpq/be-secure-openssl.c:224
+#: libpq/be-secure-openssl.c:258
 #, c-format
 msgid "private key file \"%s\" must be owned by the database user or root"
-msgstr ""
+msgstr "el archivo de llave privada «%s» debe ser de propiedad del usuario de base de datos o root"
 
-#: libpq/be-secure-openssl.c:244
+#: libpq/be-secure-openssl.c:281
 #, 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-openssl.c:246
+#: libpq/be-secure-openssl.c:283
 #, 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-openssl.c:300
+#, c-format
+msgid "private key file \"%s\" cannot be reloaded because it requires a passphrase"
 msgstr ""
 
-#: libpq/be-secure-openssl.c:253
+#: libpq/be-secure-openssl.c:305
 #, 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:258
+#: libpq/be-secure-openssl.c:314
 #, c-format
 msgid "check of private key failed: %s"
 msgstr "falló la revisión de la llave privada: %s"
 
-#: libpq/be-secure-openssl.c:287
+#: libpq/be-secure-openssl.c:334
+#, c-format
+msgid "could not set the cipher list (no valid ciphers available)"
+msgstr ""
+
+#: libpq/be-secure-openssl.c:352
 #, 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:311
+#: libpq/be-secure-openssl.c:379
 #, c-format
 msgid "SSL certificate revocation list file \"%s\" ignored"
 msgstr "ignorando lista de revocación de certificados SSL «%s»"
 
-#: libpq/be-secure-openssl.c:313
+#: libpq/be-secure-openssl.c:381
 #, c-format
 msgid "SSL library does not support certificate revocation lists."
 msgstr "La libreria SSL no soporta listas de revocación de certificados."
 
-#: libpq/be-secure-openssl.c:318
+#: libpq/be-secure-openssl.c:388
 #, 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:365
+#: libpq/be-secure-openssl.c:469
+#, fuzzy, c-format
+msgid "could not initialize SSL connection: SSL context not set up"
+msgstr "no se pudo inicializar la conexión SSL: %s"
+
+#: libpq/be-secure-openssl.c:477
 #, c-format
 msgid "could not initialize SSL connection: %s"
 msgstr "no se pudo inicializar la conexión SSL: %s"
 
-#: libpq/be-secure-openssl.c:373
+#: libpq/be-secure-openssl.c:485
 #, c-format
 msgid "could not set SSL socket: %s"
 msgstr "no se definir un socket SSL: %s"
 
-#: libpq/be-secure-openssl.c:427
+#: libpq/be-secure-openssl.c:540
 #, c-format
 msgid "could not accept SSL connection: %m"
 msgstr "no se pudo aceptar una conexión SSL: %m"
 
-#: libpq/be-secure-openssl.c:431 libpq/be-secure-openssl.c:442
+#: libpq/be-secure-openssl.c:544 libpq/be-secure-openssl.c:555
 #, 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:436
+#: libpq/be-secure-openssl.c:549
 #, c-format
 msgid "could not accept SSL connection: %s"
 msgstr "no se pudo aceptar una conexión SSL: %s"
 
-#: libpq/be-secure-openssl.c:447 libpq/be-secure-openssl.c:588
-#: libpq/be-secure-openssl.c:648
+#: libpq/be-secure-openssl.c:560 libpq/be-secure-openssl.c:701
+#: libpq/be-secure-openssl.c:767
 #, c-format
 msgid "unrecognized SSL error code: %d"
 msgstr "código de error SSL no reconocido: %d"
 
-#: libpq/be-secure-openssl.c:491
+#: libpq/be-secure-openssl.c:602
 #, 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:502
+#: libpq/be-secure-openssl.c:613
 #, c-format
 msgid "SSL connection from \"%s\""
 msgstr "conexión SSL desde «%s»"
 
-#: libpq/be-secure-openssl.c:579 libpq/be-secure-openssl.c:639
+#: libpq/be-secure-openssl.c:690 libpq/be-secure-openssl.c:752
 #, c-format
 msgid "SSL error: %s"
 msgstr "error de SSL: %s"
 
-#: libpq/be-secure-openssl.c:988
+#: libpq/be-secure-openssl.c:1187
 #, c-format
 msgid "ECDH: unrecognized curve name: %s"
 msgstr "ECDH: nombre de curva no reconocida: %s"
 
-#: libpq/be-secure-openssl.c:993
+#: libpq/be-secure-openssl.c:1196
 #, c-format
 msgid "ECDH: could not create key"
 msgstr "ECDH: no se pudo crear la llave"
 
-#: libpq/be-secure-openssl.c:1017
+#: libpq/be-secure-openssl.c:1224
 msgid "no SSL error reported"
 msgstr "código de error SSL no reportado"
 
-#: libpq/be-secure-openssl.c:1021
+#: libpq/be-secure-openssl.c:1228
 #, c-format
 msgid "SSL error code %lu"
 msgstr "código de error SSL %lu"
 
-#: libpq/be-secure.c:171 libpq/be-secure.c:256
-#, fuzzy, c-format
-#| msgid "terminating connection due to administrator command"
+#: libpq/be-secure.c:188 libpq/be-secure.c:274
+#, c-format
 msgid "terminating connection due to unexpected postmaster exit"
-msgstr "terminando la conexión debido a una orden del administrador"
+msgstr "terminando la conexión debido al término inesperado de postmaster"
 
-#: libpq/crypt.c:54
-#, fuzzy, c-format
-#| msgid "role \"%s\" does not exist"
+#: libpq/crypt.c:51
+#, c-format
 msgid "Role \"%s\" does not exist."
-msgstr "no existe el rol «%s»"
+msgstr "No existe el rol «%s»."
 
-#: libpq/crypt.c:64
+#: libpq/crypt.c:61
 #, c-format
 msgid "User \"%s\" has no password assigned."
 msgstr "El usuario «%s» no tiene una contraseña asignada."
 
-#: libpq/crypt.c:79
-#, fuzzy, c-format
-#| msgid "User \"%s\" has an expired password."
+#: libpq/crypt.c:76
+#, c-format
 msgid "User \"%s\" has an empty password."
-msgstr "El usuario «%s» tiene contraseña expirada."
+msgstr "El usuario «%s» tiene contraseña vacía."
 
-#: libpq/crypt.c:159
+#: libpq/crypt.c:87
 #, c-format
 msgid "User \"%s\" has an expired password."
 msgstr "El usuario «%s» tiene contraseña expirada."
 
-#: libpq/crypt.c:167
-#, fuzzy, c-format
-#| msgid "Password for user %s: "
+#: libpq/crypt.c:181
+#, c-format
+msgid "User \"%s\" has a password that cannot be used with MD5 authentication."
+msgstr ""
+
+#: libpq/crypt.c:205 libpq/crypt.c:246 libpq/crypt.c:270
+#, c-format
 msgid "Password does not match for user \"%s\"."
-msgstr "Contraseña para usuario %s: "
+msgstr "La contraseña no coincide para el usuario «%s»."
+
+#: libpq/crypt.c:289
+#, c-format
+msgid "Password of user \"%s\" is in unrecognized format."
+msgstr ""
 
-#: libpq/hba.c:188
+#: libpq/hba.c:235
 #, c-format
 msgid "authentication file token too long, skipping: \"%s\""
 msgstr "una palabra en el archivo de autentificación es demasiado larga, ignorando: «%s»"
 
-#: libpq/hba.c:332
+#: libpq/hba.c:407
 #, c-format
 msgid "could not open secondary authentication file \"@%s\" as \"%s\": %m"
 msgstr "no se pudo abrir el archivo secundario de autentificación «@%s» como «%s»: %m"
 
-#: libpq/hba.c:409
+#: libpq/hba.c:509
 #, c-format
 msgid "authentication file line too long"
 msgstr "línea en el archivo de autentificación demasiado larga"
 
-#: libpq/hba.c:410 libpq/hba.c:757 libpq/hba.c:773 libpq/hba.c:803
-#: libpq/hba.c:849 libpq/hba.c:862 libpq/hba.c:884 libpq/hba.c:893
-#: libpq/hba.c:914 libpq/hba.c:926 libpq/hba.c:945 libpq/hba.c:966
-#: libpq/hba.c:977 libpq/hba.c:1032 libpq/hba.c:1050 libpq/hba.c:1062
-#: libpq/hba.c:1079 libpq/hba.c:1089 libpq/hba.c:1103 libpq/hba.c:1119
-#: libpq/hba.c:1134 libpq/hba.c:1145 libpq/hba.c:1181 libpq/hba.c:1219
-#: libpq/hba.c:1230 libpq/hba.c:1250 libpq/hba.c:1261 libpq/hba.c:1278
-#: libpq/hba.c:1327 libpq/hba.c:1364 libpq/hba.c:1374 libpq/hba.c:1430
-#: libpq/hba.c:1442 libpq/hba.c:1455 libpq/hba.c:1547 libpq/hba.c:1636
-#: libpq/hba.c:1654 libpq/hba.c:1675 tsearch/ts_locale.c:182
+#: libpq/hba.c:510 libpq/hba.c:867 libpq/hba.c:887 libpq/hba.c:925
+#: libpq/hba.c:975 libpq/hba.c:989 libpq/hba.c:1011 libpq/hba.c:1020
+#: libpq/hba.c:1041 libpq/hba.c:1054 libpq/hba.c:1074 libpq/hba.c:1096
+#: libpq/hba.c:1108 libpq/hba.c:1164 libpq/hba.c:1184 libpq/hba.c:1198
+#: libpq/hba.c:1217 libpq/hba.c:1228 libpq/hba.c:1243 libpq/hba.c:1261
+#: libpq/hba.c:1277 libpq/hba.c:1289 libpq/hba.c:1326 libpq/hba.c:1367
+#: libpq/hba.c:1380 libpq/hba.c:1402 libpq/hba.c:1414 libpq/hba.c:1432
+#: libpq/hba.c:1482 libpq/hba.c:1521 libpq/hba.c:1532 libpq/hba.c:1549
+#: libpq/hba.c:1559 libpq/hba.c:1617 libpq/hba.c:1655 libpq/hba.c:1671
+#: libpq/hba.c:1770 libpq/hba.c:1859 libpq/hba.c:1878 libpq/hba.c:1907
+#: libpq/hba.c:1920 libpq/hba.c:1943 libpq/hba.c:1965 libpq/hba.c:1979
+#: tsearch/ts_locale.c:182
 #, c-format
 msgid "line %d of configuration file \"%s\""
 msgstr "línea %d del archivo de configuración «%s»"
 
 #. translator: the second %s is a list of auth methods
-#: libpq/hba.c:755
+#: libpq/hba.c:865
 #, 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:771
+#: libpq/hba.c:885
 #, 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:792
+#: libpq/hba.c:913
 #, c-format
 msgid "missing entry in file \"%s\" at end of line %d"
 msgstr "falta una entrada en el archivo «%s» al final de la línea %d"
 
-#: libpq/hba.c:802
+#: libpq/hba.c:924
 #, c-format
 msgid "multiple values in ident field"
 msgstr "múltiples valores en campo «ident»"
 
-#: libpq/hba.c:847
+#: libpq/hba.c:973
 #, c-format
 msgid "multiple values specified for connection type"
 msgstr "múltiples valores especificados para tipo de conexión"
 
-#: libpq/hba.c:848
+#: libpq/hba.c:974
 #, c-format
 msgid "Specify exactly one connection type per line."
 msgstr "Especifique exactamente un tipo de conexión por línea."
 
-#: libpq/hba.c:861
+#: libpq/hba.c:988
 #, c-format
 msgid "local connections are not supported by this build"
 msgstr "las conexiones locales no están soportadas en este servidor"
 
-#: libpq/hba.c:882
+#: libpq/hba.c:1009
 #, c-format
-msgid "hostssl requires SSL to be turned on"
-msgstr "hostssl requiere que SSL esté activado"
+msgid "hostssl record cannot match because SSL is disabled"
+msgstr ""
 
-#: libpq/hba.c:883
+#: libpq/hba.c:1010
 #, c-format
 msgid "Set ssl = on in postgresql.conf."
 msgstr "Defina «ssl = on» en postgresql.conf."
 
-#: libpq/hba.c:891
-#, c-format
-msgid "hostssl is not supported by this build"
+#: libpq/hba.c:1018
+#, fuzzy, c-format
+msgid "hostssl record cannot match because SSL is not supported by this build"
 msgstr "hostssl no está soportado en este servidor"
 
-#: libpq/hba.c:892
+#: libpq/hba.c:1019
 #, c-format
 msgid "Compile with --with-openssl to use SSL connections."
 msgstr "Compile con --with-openssl para usar conexiones SSL."
 
-#: libpq/hba.c:912
+#: libpq/hba.c:1039
 #, c-format
 msgid "invalid connection type \"%s\""
 msgstr "tipo de conexión «%s» no válido"
 
-#: libpq/hba.c:925
+#: libpq/hba.c:1053
 #, 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:944
+#: libpq/hba.c:1073
 #, c-format
 msgid "end-of-line before role specification"
 msgstr "fin de línea antes de especificación de rol"
 
-#: libpq/hba.c:965
+#: libpq/hba.c:1095
 #, 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:975
+#: libpq/hba.c:1106
 #, c-format
 msgid "multiple values specified for host address"
 msgstr "múltiples valores especificados para la dirección de anfitrión"
 
-#: libpq/hba.c:976
+#: libpq/hba.c:1107
 #, c-format
 msgid "Specify one address range per line."
 msgstr "Especifique un rango de direcciones por línea."
 
-#: libpq/hba.c:1030
+#: libpq/hba.c:1162
 #, c-format
 msgid "invalid IP address \"%s\": %s"
 msgstr "dirección IP «%s» no válida: %s"
 
-#: libpq/hba.c:1048
+#: libpq/hba.c:1182
 #, 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:1060
+#: libpq/hba.c:1196
 #, c-format
 msgid "invalid CIDR mask in address \"%s\""
 msgstr "máscara CIDR no válida en dirección «%s»"
 
-#: libpq/hba.c:1077
+#: libpq/hba.c:1215
 #, 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:1078
+#: libpq/hba.c:1216
 #, 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:1088
+#: libpq/hba.c:1227
 #, c-format
 msgid "multiple values specified for netmask"
 msgstr "múltiples valores especificados para la máscara de red"
 
-#: libpq/hba.c:1101
+#: libpq/hba.c:1241
 #, c-format
 msgid "invalid IP mask \"%s\": %s"
 msgstr "máscara IP «%s» no válida: %s"
 
-#: libpq/hba.c:1118
+#: libpq/hba.c:1260
 #, c-format
 msgid "IP address and mask do not match"
 msgstr "La dirección y máscara IP no coinciden"
 
-#: libpq/hba.c:1133
+#: libpq/hba.c:1276
 #, 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:1143
+#: libpq/hba.c:1287
 #, c-format
 msgid "multiple values specified for authentication type"
 msgstr "múltiples valores especificados para el tipo de autentificación"
 
-#: libpq/hba.c:1144
+#: libpq/hba.c:1288
 #, c-format
 msgid "Specify exactly one authentication type per line."
 msgstr "Especifique exactamente un tipo de autentificación por línea."
 
-#: libpq/hba.c:1217
+#: libpq/hba.c:1365
 #, c-format
 msgid "invalid authentication method \"%s\""
 msgstr "método de autentificación «%s» no válido"
 
-#: libpq/hba.c:1228
+#: libpq/hba.c:1378
 #, 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:1249
+#: libpq/hba.c:1401
 #, 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:1260
+#: libpq/hba.c:1413
 #, 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:1277
+#: libpq/hba.c:1431
 #, 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:1326
+#: libpq/hba.c:1481
 #, 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:1363
+#: libpq/hba.c:1520
 #, c-format
 msgid "cannot use ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, or ldapurl together with ldapprefix"
 msgstr "no se puede usar ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute o ldapurl junto con ldapprefix"
 
-#: libpq/hba.c:1373
+#: libpq/hba.c:1531
 #, 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:1416
+#: libpq/hba.c:1548
+#, fuzzy, c-format
+msgid "list of RADIUS servers cannot be empty"
+msgstr "servidor RADIUS no especificado"
+
+#: libpq/hba.c:1558
+#, fuzzy, c-format
+msgid "list of RADIUS secrets cannot be empty"
+msgstr "secreto RADIUS no especificado"
+
+#: libpq/hba.c:1611
+#, c-format
+msgid "the number of %s (%i) must be 1 or the same as the number of %s (%i)"
+msgstr ""
+
+#: libpq/hba.c:1645
 msgid "ident, peer, gssapi, sspi, and cert"
 msgstr "ident, peer, gssapi, sspi y cert"
 
-#: libpq/hba.c:1429
+#: libpq/hba.c:1654
 #, 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:1440
-#, 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/hba.c:1454
+#: libpq/hba.c:1670
 #, c-format
 msgid "clientcert can not be set to 0 when using \"cert\" authentication"
 msgstr "clientcert no puede establecerse en 0 cuando se emplea autentificación «cert»"
 
-#: libpq/hba.c:1490
+#: libpq/hba.c:1707
 #, c-format
 msgid "could not parse LDAP URL \"%s\": %s"
 msgstr "no se pudo interpretar la URL LDAP «%s»: %s"
 
-#: libpq/hba.c:1498
+#: libpq/hba.c:1717
 #, c-format
 msgid "unsupported LDAP URL scheme: %s"
 msgstr "esquema de URL LDAP no soportado: %s"
 
-#: libpq/hba.c:1514
+#: libpq/hba.c:1735
 #, c-format
 msgid "filters not supported in LDAP URLs"
 msgstr "los filtros no están soportados en URLs LDAP"
 
-#: libpq/hba.c:1522
+#: libpq/hba.c:1744
 #, c-format
 msgid "LDAP URLs not supported on this platform"
 msgstr "las URLs LDAP no está soportado en esta plataforma"
 
-#: libpq/hba.c:1546
+#: libpq/hba.c:1769
 #, c-format
 msgid "invalid LDAP port number: \"%s\""
 msgstr "número de puerto LDAP no válido: «%s»"
 
-#: libpq/hba.c:1586 libpq/hba.c:1593
+#: libpq/hba.c:1810 libpq/hba.c:1817
 msgid "gssapi and sspi"
 msgstr "gssapi y sspi"
 
-#: libpq/hba.c:1602 libpq/hba.c:1611
+#: libpq/hba.c:1826 libpq/hba.c:1835
 msgid "sspi"
-msgstr ""
+msgstr "sspi"
+
+#: libpq/hba.c:1857
+#, fuzzy, c-format
+msgid "could not parse RADIUS server list \"%s\""
+msgstr "no se pudo abrir el archivo de servidor «%s»: %m"
+
+#: libpq/hba.c:1905
+#, fuzzy, c-format
+msgid "could not parse RADIUS port list \"%s\""
+msgstr "no se pudo leer la respuesta RADIUS: %m"
 
-#: libpq/hba.c:1653
+#: libpq/hba.c:1919
 #, c-format
 msgid "invalid RADIUS port number: \"%s\""
 msgstr "número de puerto RADIUS no válido: «%s»"
 
-#: libpq/hba.c:1673
+#: libpq/hba.c:1941
+#, fuzzy, c-format
+msgid "could not parse RADIUS secret list \"%s\""
+msgstr "no se pudo crear el socket RADIUS: %m"
+
+#: libpq/hba.c:1963
+#, fuzzy, c-format
+msgid "could not parse RADIUS identifiers list \"%s\""
+msgstr "no se pudo interpretar el nombre de archivo «%s»"
+
+#: libpq/hba.c:1977
 #, c-format
 msgid "unrecognized authentication option name: \"%s\""
 msgstr "nombre de opción de autentificación desconocido: «%s»"
 
-#: libpq/hba.c:1859
+#: libpq/hba.c:2161
 #, c-format
 msgid "configuration file \"%s\" contains no entries"
 msgstr "el archivo de configuración «%s» no contiene líneas"
 
-#: libpq/hba.c:1955
+#: libpq/hba.c:2666
 #, c-format
 msgid "invalid regular expression \"%s\": %s"
 msgstr "la expresión regular «%s» no es válida: %s"
 
-#: libpq/hba.c:2015
+#: libpq/hba.c:2726
 #, c-format
 msgid "regular expression match for \"%s\" failed: %s"
 msgstr "la coincidencia de expresión regular para «%s» falló: %s"
 
-#: libpq/hba.c:2034
+#: libpq/hba.c:2745
 #, 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:2131
+#: libpq/hba.c:2842
 #, 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:2151
+#: libpq/hba.c:2862
 #, 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/hba.c:2186
+#: libpq/hba.c:2895
 #, c-format
 msgid "could not open usermap file \"%s\": %m"
 msgstr "no se pudo abrir el archivo de mapa de usuarios «%s»: %m"
 
-#: libpq/pqcomm.c:202
+#: libpq/pqcomm.c:220
 #, 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:354
+#: libpq/pqcomm.c:374
 #, 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:375
+#: libpq/pqcomm.c:395
 #, 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:379
+#: libpq/pqcomm.c:399
 #, 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:406
+#: libpq/pqcomm.c:426
 #, 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:415
+#: libpq/pqcomm.c:435
 msgid "IPv4"
 msgstr "IPv4"
 
-#: libpq/pqcomm.c:419
+#: libpq/pqcomm.c:439
 msgid "IPv6"
 msgstr "IPv6"
 
-#: libpq/pqcomm.c:424
+#: libpq/pqcomm.c:444
 msgid "Unix"
 msgstr "Unix"
 
-#: libpq/pqcomm.c:429
+#: libpq/pqcomm.c:449
 #, c-format
 msgid "unrecognized address family %d"
 msgstr "la familia de direcciones %d no es reconocida"
 
-#. translator: %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:440
-#, c-format
-msgid "could not create %s socket: %m"
-msgstr "no se pudo crear el socket %s: %m"
+#. translator: first %s is IPv4, IPv6, or Unix
+#: libpq/pqcomm.c:475
+#, fuzzy, c-format
+msgid "could not create %s socket for address \"%s\": %m"
+msgstr "no se pudo crear el socket de escucha para «%s»"
 
-#: libpq/pqcomm.c:465
-#, c-format
-msgid "setsockopt(SO_REUSEADDR) failed: %m"
+#. translator: first %s is IPv4, IPv6, or Unix
+#: libpq/pqcomm.c:501
+#, fuzzy, c-format
+msgid "setsockopt(SO_REUSEADDR) failed for %s address \"%s\": %m"
 msgstr "setsockopt(SO_REUSEADDR) falló: %m"
 
-#: libpq/pqcomm.c:480
-#, c-format
-msgid "setsockopt(IPV6_V6ONLY) failed: %m"
+#. translator: first %s is IPv4, IPv6, or Unix
+#: libpq/pqcomm.c:518
+#, fuzzy, c-format
+msgid "setsockopt(IPV6_V6ONLY) failed for %s address \"%s\": %m"
 msgstr "setsockopt(IPV6_V6ONLY) falló: %m"
 
-#. translator: %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:499
-#, c-format
-msgid "could not bind %s socket: %m"
-msgstr "no se pudo enlazar al socket %s: %m"
+#. translator: first %s is IPv4, IPv6, or Unix
+#: libpq/pqcomm.c:538
+#, fuzzy, c-format
+msgid "could not bind %s address \"%s\": %m"
+msgstr "no se pudo enlazar a la dirección local «%s»: %m"
 
-#: libpq/pqcomm.c:502
+#: libpq/pqcomm.c:541
 #, c-format
 msgid "Is another postmaster already running on port %d? If not, remove socket file \"%s\" and retry."
 msgstr "¿Hay otro postmaster corriendo en el puerto %d? Si no, elimine el socket «%s» y reintente."
 
-#: libpq/pqcomm.c:505
+#: libpq/pqcomm.c:544
 #, c-format
 msgid "Is another postmaster already running on port %d? If not, wait a few seconds and retry."
 msgstr "¿Hay otro postmaster corriendo en el puerto %d? Si no, aguarde unos segundos y reintente."
 
-#. translator: %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:538
-#, c-format
-msgid "could not listen on %s socket: %m"
+#. translator: first %s is IPv4, IPv6, or Unix
+#: libpq/pqcomm.c:577
+#, fuzzy, c-format
+msgid "could not listen on %s address \"%s\": %m"
+msgstr "no se pudo enlazar a la dirección local «%s»: %m"
+
+#: libpq/pqcomm.c:586
+#, fuzzy, c-format
+msgid "listening on Unix socket \"%s\""
 msgstr "no se pudo escuchar en el socket %s: %m"
 
-#: libpq/pqcomm.c:623
+#. translator: first %s is IPv4 or IPv6
+#: libpq/pqcomm.c:592
+#, fuzzy, c-format
+msgid "listening on %s address \"%s\", port %d"
+msgstr "no se pudo conectar al servidor Ident «%s», port %s: %m"
+
+#: libpq/pqcomm.c:675
 #, c-format
 msgid "group \"%s\" does not exist"
 msgstr "no existe el grupo «%s»"
 
-#: libpq/pqcomm.c:633
+#: libpq/pqcomm.c:685
 #, 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:644
+#: libpq/pqcomm.c:696
 #, 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:674
+#: libpq/pqcomm.c:726
 #, c-format
 msgid "could not accept new connection: %m"
 msgstr "no se pudo aceptar una nueva conexión: %m"
 
-#: libpq/pqcomm.c:885
-#, fuzzy, c-format
+#: libpq/pqcomm.c:927
+#, c-format
 msgid "there is no client connection"
-msgstr "se encontró fin de archivo inesperado en la conexión del cliente"
+msgstr "no hay conexión de cliente"
 
-#: libpq/pqcomm.c:936 libpq/pqcomm.c:1032
+#: libpq/pqcomm.c:978 libpq/pqcomm.c:1074
 #, c-format
 msgid "could not receive data from client: %m"
 msgstr "no se pudo recibir datos del cliente: %m"
 
-#: libpq/pqcomm.c:1177 tcop/postgres.c:3906
-#, fuzzy, c-format
-#| msgid "terminating connection because protocol sync was lost"
+#: libpq/pqcomm.c:1219 tcop/postgres.c:3928
+#, 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:1243
+#: libpq/pqcomm.c:1285
 #, c-format
 msgid "unexpected EOF within message length word"
 msgstr "EOF inesperado dentro de la palabra de tamaño del mensaje"
 
-#: libpq/pqcomm.c:1254
+#: libpq/pqcomm.c:1296
 #, c-format
 msgid "invalid message length"
 msgstr "el largo de mensaje no es válido"
 
-#: libpq/pqcomm.c:1276 libpq/pqcomm.c:1289
+#: libpq/pqcomm.c:1318 libpq/pqcomm.c:1331
 #, c-format
 msgid "incomplete message from client"
 msgstr "mensaje incompleto del cliente"
 
-#: libpq/pqcomm.c:1422
+#: libpq/pqcomm.c:1464
 #, c-format
 msgid "could not send data to client: %m"
 msgstr "no se pudo enviar datos al cliente: %m"
 
-#: libpq/pqformat.c:436
+#: libpq/pqformat.c:437
 #, c-format
 msgid "no data left in message"
 msgstr "no hay datos restantes en el mensaje"
 
-#: libpq/pqformat.c:556 libpq/pqformat.c:574 libpq/pqformat.c:595
+#: libpq/pqformat.c:557 libpq/pqformat.c:575 libpq/pqformat.c:596
 #: utils/adt/arrayfuncs.c:1457 utils/adt/rowtypes.c:563
 #, c-format
 msgid "insufficient data left in message"
 msgstr "los datos restantes del mensaje son insuficientes"
 
-#: libpq/pqformat.c:636
+#: libpq/pqformat.c:637 libpq/pqformat.c:666
 #, c-format
 msgid "invalid string in message"
 msgstr "cadena inválida en el mensaje"
 
-#: libpq/pqformat.c:652
+#: libpq/pqformat.c:682
 #, c-format
 msgid "invalid message format"
 msgstr "formato de mensaje no válido"
@@ -12075,7 +13166,7 @@ msgstr "formato de mensaje no válido"
 msgid "%s: WSAStartup failed: %d\n"
 msgstr "%s: WSAStartup falló: %d\n"
 
-#: main/main.c:327
+#: main/main.c:328
 #, c-format
 msgid ""
 "%s is the PostgreSQL server.\n"
@@ -12084,7 +13175,7 @@ msgstr ""
 "%s es el servidor PostgreSQL.\n"
 "\n"
 
-#: main/main.c:328
+#: main/main.c:329
 #, c-format
 msgid ""
 "Usage:\n"
@@ -12095,114 +13186,114 @@ msgstr ""
 "  %s [OPCION]...\n"
 "\n"
 
-#: main/main.c:329
+#: main/main.c:330
 #, c-format
 msgid "Options:\n"
 msgstr "Opciones:\n"
 
-#: main/main.c:330
+#: main/main.c:331
 #, 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:331
+#: main/main.c:332
 #, 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:332
+#: main/main.c:333
 #, 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:333
+#: main/main.c:334
 #, c-format
 msgid "  -d 1-5             debugging level\n"
 msgstr "  -d 1-5          nivel de depuración\n"
 
-#: main/main.c:334
+#: main/main.c:335
 #, c-format
 msgid "  -D DATADIR         database directory\n"
 msgstr "  -D DATADIR      directorio de bases de datos\n"
 
-#: main/main.c:335
+#: main/main.c:336
 #, c-format
 msgid "  -e                 use European date input format (DMY)\n"
 msgstr "  -e              usar estilo europeo de fechas (DMY)\n"
 
-#: main/main.c:336
+#: main/main.c:337
 #, c-format
 msgid "  -F                 turn fsync off\n"
 msgstr "  -F              desactivar fsync\n"
 
-#: main/main.c:337
+#: main/main.c:338
 #, 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:338
+#: main/main.c:339
 #, c-format
 msgid "  -i                 enable TCP/IP connections\n"
 msgstr "  -i              activar conexiones TCP/IP\n"
 
-#: main/main.c:339
+#: main/main.c:340
 #, c-format
 msgid "  -k DIRECTORY       Unix-domain socket location\n"
 msgstr "  -k DIRECTORIO   ubicación del socket Unix\n"
 
-#: main/main.c:341
+#: main/main.c:342
 #, c-format
 msgid "  -l                 enable SSL connections\n"
 msgstr "  -l              activar conexiones SSL\n"
 
-#: main/main.c:343
+#: main/main.c:344
 #, 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:344
+#: main/main.c:345
 #, c-format
 msgid "  -o OPTIONS         pass \"OPTIONS\" to each server process (obsolete)\n"
 msgstr "  -o OPCIONES     pasar «OPCIONES» a cada proceso servidor (obsoleto)\n"
 
-#: main/main.c:345
+#: main/main.c:346
 #, 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:346
+#: main/main.c:347
 #, c-format
 msgid "  -s                 show statistics after each query\n"
 msgstr "  -s              mostrar estadísticas después de cada consulta\n"
 
-#: main/main.c:347
+#: main/main.c:348
 #, 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:348
+#: main/main.c:349
 #, 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:349
+#: main/main.c:350
 #, c-format
 msgid "  --NAME=VALUE       set run-time parameter\n"
 msgstr "  --NOMBRE=VALOR  definir parámetro de ejecución\n"
 
-#: main/main.c:350
+#: main/main.c:351
 #, 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:351
+#: main/main.c:352
 #, c-format
 msgid "  -?, --help         show this help, then exit\n"
 msgstr "  -?, --help      muestra esta ayuda, luego sale\n"
 
-#: main/main.c:353
+#: main/main.c:354
 #, c-format
 msgid ""
 "\n"
@@ -12211,44 +13302,44 @@ msgstr ""
 "\n"
 "Opciones de desarrollador:\n"
 
-#: main/main.c:354
+#: main/main.c:355
 #, c-format
 msgid "  -f s|i|n|m|h       forbid use of some plan types\n"
 msgstr "  -f s|i|n|m|h    impedir el uso de algunos tipos de planes\n"
 
-#: main/main.c:355
+#: main/main.c:356
 #, c-format
 msgid "  -n                 do not reinitialize shared memory after abnormal exit\n"
 msgstr "  -n              no reinicializar memoria compartida después de salida anormal\n"
 
-#: main/main.c:356
+#: main/main.c:357
 #, 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:358
 #, c-format
 msgid "  -P                 disable system indexes\n"
 msgstr "  -P              desactivar índices de sistema\n"
 
-#: main/main.c:358
+#: main/main.c:359
 #, 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
+#: main/main.c:360
 #, c-format
 msgid "  -T                 send SIGSTOP to all backend processes if one dies\n"
 msgstr ""
 "  -T              enviar SIGSTOP a todos los procesos backend si uno de ellos\n"
 "                  muere\n"
 
-#: main/main.c:360
+#: main/main.c:361
 #, 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:363
 #, c-format
 msgid ""
 "\n"
@@ -12257,37 +13348,37 @@ msgstr ""
 "\n"
 "Opciones para modo mono-usuario:\n"
 
-#: main/main.c:363
+#: main/main.c:364
 #, 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:365
 #, 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:366
 #, 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:367
 #, 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:368
 #, 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:373
+#: main/main.c:369 main/main.c:374
 #, 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:371
 #, c-format
 msgid ""
 "\n"
@@ -12296,22 +13387,22 @@ msgstr ""
 "\n"
 "Opciones para modo de inicio (bootstrapping):\n"
 
-#: main/main.c:371
+#: main/main.c:372
 #, 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
+#: main/main.c:373
 #, 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:374
+#: main/main.c:375
 #, c-format
 msgid "  -x NUM             internal use\n"
 msgstr "  -x NUM          uso interno\n"
 
-#: main/main.c:376
+#: main/main.c:377
 #, c-format
 msgid ""
 "\n"
@@ -12328,7 +13419,7 @@ msgstr ""
 "\n"
 "Reporte errores a <pgsql-bugs@postgresql.org>\n"
 
-#: main/main.c:390
+#: main/main.c:391
 #, c-format
 msgid ""
 "\"root\" execution of the PostgreSQL server is not permitted.\n"
@@ -12342,12 +13433,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:407
+#: main/main.c:408
 #, 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:414
+#: main/main.c:415
 #, c-format
 msgid ""
 "Execution of PostgreSQL by a user with administrative permissions is not\n"
@@ -12363,789 +13454,828 @@ msgstr ""
 "iniciar correctamente el servidor.\n"
 
 #: nodes/extensible.c:66
-#, fuzzy, c-format
-#| msgid "extension \"%s\" already exists"
+#, c-format
 msgid "extensible node type \"%s\" already exists"
-msgstr "la extensión «%s» ya existe"
+msgstr "el tipo de nodo extensible «%s» ya existe"
 
 #: nodes/extensible.c:114
-#, fuzzy, c-format
-#| msgid "extension \"%s\" does not exist"
+#, c-format
 msgid "ExtensibleNodeMethods \"%s\" was not registered"
-msgstr "no existe la extensión «%s»"
+msgstr "ExtensibleNodeMethods «%s» no fue registrado"
 
-#: nodes/nodeFuncs.c:123 nodes/nodeFuncs.c:154 parser/parse_coerce.c:1820
-#: parser/parse_coerce.c:1848 parser/parse_coerce.c:1924
-#: parser/parse_expr.c:1994 parser/parse_func.c:597 parser/parse_oper.c:952
+#: nodes/nodeFuncs.c:123 nodes/nodeFuncs.c:154 parser/parse_coerce.c:1844
+#: parser/parse_coerce.c:1872 parser/parse_coerce.c:1948
+#: parser/parse_expr.c:2110 parser/parse_func.c:602 parser/parse_oper.c:964
 #, 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"
 
-#: optimizer/path/allpaths.c:2618
-#, fuzzy, c-format
-msgid "WHERE CURRENT OF is not supported on a view with no underlying relation"
-msgstr "WHERE CURRENT OF no está soportado para este tipo de tabla"
-
-#: optimizer/path/allpaths.c:2623
-#, fuzzy, c-format
-msgid "WHERE CURRENT OF is not supported on a view with more than one underlying relation"
-msgstr "WHERE CURRENT OF no está soportado para este tipo de tabla"
-
-#: optimizer/path/allpaths.c:2628
-#, fuzzy, c-format
-msgid "WHERE CURRENT OF is not supported on a view with grouping or aggregation"
-msgstr "WHERE CURRENT OF no está soportado para este tipo de tabla"
-
-#: optimizer/path/joinrels.c:802
+#: optimizer/path/joinrels.c:826
 #, 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"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: optimizer/plan/initsplan.c:1124
+#: optimizer/plan/initsplan.c:1200
 #, 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:1473 parser/analyze.c:1481 parser/analyze.c:1679
-#: parser/analyze.c:2460
+#: optimizer/plan/planner.c:1544 parser/analyze.c:1624 parser/analyze.c:1821
+#: parser/analyze.c:2615
 #, c-format
 msgid "%s is not allowed with UNION/INTERSECT/EXCEPT"
 msgstr "%s no está permitido con UNION/INTERSECT/EXCEPT"
 
-#: optimizer/plan/planner.c:3752
+#: optimizer/plan/planner.c:2144 optimizer/plan/planner.c:4102
 #, c-format
 msgid "could not implement GROUP BY"
 msgstr "no se pudo implementar GROUP BY"
 
-#: optimizer/plan/planner.c:3753 optimizer/plan/planner.c:4095
-#: optimizer/prep/prepunion.c:927
+#: optimizer/plan/planner.c:2145 optimizer/plan/planner.c:4103
+#: optimizer/plan/planner.c:4843 optimizer/prep/prepunion.c:938
 #, 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:4094
+#: optimizer/plan/planner.c:4842
 #, c-format
 msgid "could not implement DISTINCT"
 msgstr "no se pudo implementar DISTINCT"
 
-#: optimizer/plan/planner.c:4633
+#: optimizer/plan/planner.c:5522
 #, c-format
 msgid "could not implement window PARTITION BY"
 msgstr "No se pudo implementar PARTITION BY de ventana"
 
-#: optimizer/plan/planner.c:4634
+#: optimizer/plan/planner.c:5523
 #, 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:4638
+#: optimizer/plan/planner.c:5527
 #, c-format
 msgid "could not implement window ORDER BY"
 msgstr "no se pudo implementar ORDER BY de ventana"
 
-#: optimizer/plan/planner.c:4639
+#: optimizer/plan/planner.c:5528
 #, 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/plan/setrefs.c:423
+#: optimizer/plan/setrefs.c:413
 #, c-format
 msgid "too many range table entries"
 msgstr "demasiadas «range table entries»"
 
-#: optimizer/prep/prepunion.c:480
+#: optimizer/prep/prepunion.c:493
 #, c-format
 msgid "could not implement recursive UNION"
 msgstr "no se pudo implementar UNION recursivo"
 
-#: optimizer/prep/prepunion.c:481
+#: optimizer/prep/prepunion.c:494
 #, 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:926
+#: optimizer/prep/prepunion.c:937
 #, c-format
 msgid "could not implement %s"
 msgstr "no se pudo implementar %s"
 
-#: optimizer/util/clauses.c:4965
+#: optimizer/util/clauses.c:4668
 #, c-format
 msgid "SQL function \"%s\" during inlining"
 msgstr "función SQL «%s», durante expansión en línea"
 
-#: optimizer/util/plancat.c:114
+#: optimizer/util/plancat.c:120
 #, c-format
 msgid "cannot access temporary or unlogged relations during recovery"
 msgstr "no se pueden crear tablas temporales o unlogged durante la recuperación"
 
-#: optimizer/util/plancat.c:591
+#: optimizer/util/plancat.c:620
 #, c-format
-msgid "system columns cannot be used in an ON CONFLICT clause"
-msgstr ""
+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:609
+#: optimizer/util/plancat.c:637
 #, c-format
 msgid "constraint in ON CONFLICT clause has no associated index"
-msgstr ""
+msgstr "la restricción en la cláusula ON CONFLICT no tiene un índice asociado"
 
-#: optimizer/util/plancat.c:661
-#, fuzzy, c-format
+#: optimizer/util/plancat.c:688
+#, c-format
 msgid "ON CONFLICT DO UPDATE not supported with exclusion constraints"
-msgstr "el método de acceso «%s» no soporta restricciones por exclusión"
+msgstr "ON CONFLICT DO UPDATE no está soportado con restricciones de exclusión"
 
-#: optimizer/util/plancat.c:768
-#, fuzzy, c-format
+#: optimizer/util/plancat.c:793
+#, c-format
 msgid "there is no unique or exclusion constraint matching the ON CONFLICT specification"
-msgstr "no hay restricción unique que coincida con las columnas dadas en la tabla referida «%s»"
+msgstr "no hay restricción única o de exclusión que coincida con la especificación ON CONFLICT"
 
-#: parser/analyze.c:639 parser/analyze.c:1253
+#: parser/analyze.c:700 parser/analyze.c:1387
 #, 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:811
+#: parser/analyze.c:855
+#, fuzzy, c-format
+msgid "ON CONFLICT clause is not supported with partitioned tables"
+msgstr "ON CONFLICT no está soportado con tablas que son catálogos de sistema"
+
+#: parser/analyze.c:918
 #, c-format
 msgid "INSERT has more expressions than target columns"
 msgstr "INSERT tiene más expresiones que columnas de destino"
 
-#: parser/analyze.c:829
+#: parser/analyze.c:936
 #, c-format
 msgid "INSERT has more target columns than expressions"
 msgstr "INSERT tiene más columnas de destino que expresiones"
 
-#: parser/analyze.c:833
+#: parser/analyze.c:940
 #, 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:1074 parser/analyze.c:1454
+#: parser/analyze.c:1200 parser/analyze.c:1597
 #, c-format
 msgid "SELECT ... INTO is not allowed here"
 msgstr "SELECT ... INTO no está permitido aquí"
 
-#: parser/analyze.c:1267
-#, c-format
-msgid "DEFAULT can only appear in a VALUES list within INSERT"
-msgstr "DEFAULT sólo puede aparecer en listas VALUES dentro de un INSERT"
-
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:1386 parser/analyze.c:2630
+#: parser/analyze.c:1529 parser/analyze.c:2794
 #, c-format
 msgid "%s cannot be applied to VALUES"
 msgstr "%s no puede ser aplicado a VALUES"
 
-#: parser/analyze.c:1607
+#: parser/analyze.c:1748
 #, c-format
 msgid "invalid UNION/INTERSECT/EXCEPT ORDER BY clause"
 msgstr "cláusula UNION/INTERSECT/EXCEPT ORDER BY no válida"
 
-#: parser/analyze.c:1608
+#: parser/analyze.c:1749
 #, 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:1609
+#: parser/analyze.c:1750
 #, 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:1669
+#: parser/analyze.c:1811
 #, 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:1733
+#: parser/analyze.c:1883
 #, 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:1822
+#: parser/analyze.c:1972
 #, 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:2215
+#: parser/analyze.c:2365
 #, c-format
 msgid "RETURNING must have at least one column"
 msgstr "RETURNING debe tener al menos una columna"
 
-#: parser/analyze.c:2252
+#: parser/analyze.c:2406
 #, c-format
 msgid "cannot specify both SCROLL and NO SCROLL"
 msgstr "no se puede especificar SCROLL y NO SCROLL"
 
-#: parser/analyze.c:2270
+#: parser/analyze.c:2425
 #, 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:2278
+#: parser/analyze.c:2433
 #, c-format
 msgid "DECLARE CURSOR WITH HOLD ... %s is not supported"
 msgstr "DECLARE CURSOR WITH HOLD ... %s no está soportado"
 
-#: parser/analyze.c:2281
+#: parser/analyze.c:2436
 #, 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:2289
+#: parser/analyze.c:2444
 #, 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:2300
+#: parser/analyze.c:2455
 #, c-format
 msgid "DECLARE INSENSITIVE CURSOR ... %s is not supported"
 msgstr "DECLARE INSENSITIVE CURSOR ... %s no está soportado"
 
-#: parser/analyze.c:2303
+#: parser/analyze.c:2458
 #, c-format
 msgid "Insensitive cursors must be READ ONLY."
 msgstr "Los cursores insensitivos deben ser READ ONLY."
 
-#: parser/analyze.c:2369
+#: parser/analyze.c:2524
 #, 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:2379
+#: parser/analyze.c:2534
 #, 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:2389
+#: parser/analyze.c:2544
 #, 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:2401
+#: parser/analyze.c:2556
 #, 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:2467
+#: parser/analyze.c:2622
 #, 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:2474
+#: parser/analyze.c:2629
 #, 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:2481
+#: parser/analyze.c:2636
 #, 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:2488
+#: parser/analyze.c:2643
 #, 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:2495
+#: parser/analyze.c:2650
 #, 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:2502
+#: parser/analyze.c:2657
 #, 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:2581
+#: parser/analyze.c:2736
 #, 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:2612
+#: parser/analyze.c:2767
 #, 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:2621
+#: parser/analyze.c:2776
 #, 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:2639
+#: parser/analyze.c:2785
+#, fuzzy, c-format
+msgid "%s cannot be applied to a table 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:2803
 #, 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:2656
+#: parser/analyze.c:2812
+#, fuzzy, c-format
+msgid "%s cannot be applied to a named tuplestore"
+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:2829
 #, 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:208 parser/parse_oper.c:220
+#: parser/parse_agg.c:221 parser/parse_oper.c:222
 #, 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:210
+#: parser/parse_agg.c:223
 #, 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:245
+#: parser/parse_agg.c:258
 #, c-format
 msgid "GROUPING must have fewer than 32 arguments"
-msgstr ""
+msgstr "GROUPING debe tener menos de 32 argumentos"
 
-#: parser/parse_agg.c:348
+#: parser/parse_agg.c:361
 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:350
-#, fuzzy
+#: parser/parse_agg.c:363
 msgid "grouping operations are not allowed in JOIN conditions"
-msgstr "no se permiten funciones de ventana deslizante en condiciones JOIN"
+msgstr "no se permiten las operaciones «grouping» en condiciones JOIN"
 
-#: parser/parse_agg.c:362
+#: parser/parse_agg.c:375
 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:364
-#, fuzzy
+#: parser/parse_agg.c:377
 msgid "grouping operations 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"
+msgstr "las operaciones «grouping» no están permitidas en la cláusula FROM de su mismo nivel de consulta"
 
-#: parser/parse_agg.c:369
+#: parser/parse_agg.c:382
 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:371
-#, fuzzy
+#: parser/parse_agg.c:384
 msgid "grouping operations are not allowed in functions in FROM"
-msgstr "no se permiten funciones de ventana deslizante en funciones en FROM"
+msgstr "no se permiten operaciones «grouping» en funciones en FROM"
 
-#: parser/parse_agg.c:379
-#, fuzzy
+#: parser/parse_agg.c:392
 msgid "aggregate functions are not allowed in policy expressions"
-msgstr "no se permiten funciones de agregación en una expresión de índice"
+msgstr "no se permiten funciones de agregación en expresiones de políticas"
 
-#: parser/parse_agg.c:381
-#, fuzzy
+#: parser/parse_agg.c:394
 msgid "grouping operations are not allowed in policy expressions"
-msgstr "no se permiten funciones de ventana deslizante en expresiones de índice"
+msgstr "no se permiten operaciones «grouping» en expresiones de políticas"
 
-#: parser/parse_agg.c:398
+#: parser/parse_agg.c:411
 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:400
-#, fuzzy
+#: parser/parse_agg.c:413
 msgid "grouping operations are not allowed in window RANGE"
-msgstr "no se permiten funciones de agregación en RANGE de ventana deslizante"
+msgstr "no se permiten operaciones «grouping» en RANGE de ventana deslizante"
 
-#: parser/parse_agg.c:405
+#: parser/parse_agg.c:418
 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:407
-#, fuzzy
+#: parser/parse_agg.c:420
 msgid "grouping operations are not allowed in window ROWS"
-msgstr "no se permiten funciones de agregación en ROWS de ventana deslizante"
+msgstr "no se permiten operaciones «grouping» en ROWS de ventana deslizante"
 
-#: parser/parse_agg.c:440
+#: parser/parse_agg.c:454
 msgid "aggregate functions are not allowed in check constraints"
 msgstr "no se permiten funciones de agregación en restricciones «check»"
 
-#: parser/parse_agg.c:442
-#, fuzzy
+#: parser/parse_agg.c:456
 msgid "grouping operations are not allowed in check constraints"
-msgstr "no se permiten funciones de ventana deslizante en restricciones «check»"
+msgstr "no se permiten operaciones «grouping» en restricciones «check»"
 
-#: parser/parse_agg.c:449
+#: parser/parse_agg.c:463
 msgid "aggregate functions are not allowed in DEFAULT expressions"
 msgstr "no se permiten funciones de agregación en expresiones DEFAULT"
 
-#: parser/parse_agg.c:451
-#, fuzzy
+#: parser/parse_agg.c:465
 msgid "grouping operations are not allowed in DEFAULT expressions"
-msgstr "no se permiten funciones de ventana deslizante en expresiones DEFAULT"
+msgstr "no se permiten operaciones «grouping» en expresiones DEFAULT"
 
-#: parser/parse_agg.c:456
+#: parser/parse_agg.c:470
 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:458
-#, fuzzy
+#: parser/parse_agg.c:472
 msgid "grouping operations are not allowed in index expressions"
-msgstr "no se permiten funciones de ventana deslizante en expresiones de índice"
+msgstr "no se permiten operaciones «grouping» en expresiones de índice"
 
-#: parser/parse_agg.c:463
+#: parser/parse_agg.c:477
 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:465
-#, fuzzy
+#: parser/parse_agg.c:479
 msgid "grouping operations are not allowed in index predicates"
-msgstr "no se permiten funciones de ventana deslizante en predicados de índice"
+msgstr "no se permiten operaciones «grouping» en predicados de índice"
 
-#: parser/parse_agg.c:470
+#: parser/parse_agg.c:484
 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:472
-#, fuzzy
+#: parser/parse_agg.c:486
 msgid "grouping operations are not allowed in transform expressions"
-msgstr "no se permiten funciones de ventana deslizante en expresiones de transformación"
+msgstr "no se permiten operaciones «grouping» en expresiones de transformación"
 
-#: parser/parse_agg.c:477
+#: parser/parse_agg.c:491
 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:479
-#, fuzzy
+#: parser/parse_agg.c:493
 msgid "grouping operations are not allowed in EXECUTE parameters"
-msgstr "no se permiten funciones de ventana deslizante en parámetros a EXECUTE"
+msgstr "no se permiten operaciones «grouping» en parámetros a EXECUTE"
 
-#: parser/parse_agg.c:484
+#: parser/parse_agg.c:498
 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"
 
-#: parser/parse_agg.c:486
-#, fuzzy
+#: parser/parse_agg.c:500
 msgid "grouping operations 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 operaciones «grouping» en condiciones WHEN de un disparador"
+
+#: parser/parse_agg.c:505
+#, fuzzy
+msgid "aggregate functions are not allowed in partition key expression"
+msgstr "no se permiten funciones de agregación en una expresión de índice"
+
+#: parser/parse_agg.c:507
+#, fuzzy
+msgid "grouping operations are not allowed in partition key expression"
+msgstr "no se permiten operaciones «grouping» en expresiones de índice"
 
 #. translator: %s is name of a SQL construct, eg GROUP BY
-#: parser/parse_agg.c:509 parser/parse_clause.c:1550
+#: parser/parse_agg.c:530 parser/parse_clause.c:1830
 #, 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:512
-#, fuzzy, c-format
+#: parser/parse_agg.c:533
+#, c-format
 msgid "grouping operations are not allowed in %s"
-msgstr "no se permiten funciones de ventana deslizante en %s"
+msgstr "no se permiten operaciones «grouping» en %s"
 
-#: parser/parse_agg.c:620
+#: parser/parse_agg.c:641
 #, 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:691
+#: parser/parse_agg.c:720
+#, fuzzy, c-format
+#| msgid "aggregate function calls cannot contain window function calls"
+msgid "aggregate function calls cannot contain set-returning function calls"
+msgstr "las llamadas a funciones de agregación no pueden contener llamadas a funciones de ventana deslizante"
+
+#: parser/parse_agg.c:721 parser/parse_expr.c:1761 parser/parse_expr.c:2237
+#: parser/parse_func.c:773
+#, fuzzy, c-format
+#| msgid "%s is not allowed with set-returning functions in the target list"
+msgid "You might be able to move the set-returning function into a LATERAL FROM item."
+msgstr "%s no está permitido con funciones que retornan conjuntos en la lista de resultados"
+
+#: parser/parse_agg.c:726
 #, 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:769
+#: parser/parse_agg.c:805
 msgid "window functions are not allowed in JOIN conditions"
 msgstr "no se permiten funciones de ventana deslizante en condiciones JOIN"
 
-#: parser/parse_agg.c:776
+#: parser/parse_agg.c:812
 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:782
-#, fuzzy
+#: parser/parse_agg.c:818
 msgid "window functions are not allowed in policy expressions"
-msgstr "no se permiten funciones de ventana deslizante en expresiones de índice"
+msgstr "no se permiten funciones de ventana deslizante en expresiones de políticas"
 
-#: parser/parse_agg.c:794
+#: parser/parse_agg.c:830
 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:825
+#: parser/parse_agg.c:862
 msgid "window functions are not allowed in check constraints"
 msgstr "no se permiten funciones de ventana deslizante en restricciones «check»"
 
-#: parser/parse_agg.c:829
+#: parser/parse_agg.c:866
 msgid "window functions are not allowed in DEFAULT expressions"
 msgstr "no se permiten funciones de ventana deslizante en expresiones DEFAULT"
 
-#: parser/parse_agg.c:832
+#: parser/parse_agg.c:869
 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:835
+#: parser/parse_agg.c:872
 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:838
+#: parser/parse_agg.c:875
 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:841
+#: parser/parse_agg.c:878
 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:844
+#: parser/parse_agg.c:881
 msgid "window functions are not allowed in trigger WHEN conditions"
 msgstr "no se permiten funciones de ventana deslizante en condiciones WHEN de un disparador"
 
+#: parser/parse_agg.c:884
+#, fuzzy
+msgid "window functions are not allowed in partition key expression"
+msgstr "no se permiten funciones de ventana deslizante en expresiones de índice"
+
 #. translator: %s is name of a SQL construct, eg GROUP BY
-#: parser/parse_agg.c:864 parser/parse_clause.c:1559
+#: parser/parse_agg.c:904 parser/parse_clause.c:1839
 #, c-format
 msgid "window functions are not allowed in %s"
 msgstr "no se permiten funciones de ventana deslizante en %s"
 
-#: parser/parse_agg.c:898 parser/parse_clause.c:2396
+#: parser/parse_agg.c:938 parser/parse_clause.c:2673
 #, c-format
 msgid "window \"%s\" does not exist"
 msgstr "la ventana «%s» no existe"
 
-#: parser/parse_agg.c:983
+#: parser/parse_agg.c:1023
 #, c-format
 msgid "too many grouping sets present (maximum 4096)"
-msgstr ""
+msgstr "demasiados conjuntos «grouping» presentes (máximo 4096)"
 
-#: parser/parse_agg.c:1132
+#: parser/parse_agg.c:1172
 #, 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:1325
+#: parser/parse_agg.c:1365
 #, 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:1328
+#: parser/parse_agg.c:1368
 #, 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:1333
+#: parser/parse_agg.c:1373
 #, 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:1497
+#: parser/parse_agg.c:1537
 #, c-format
 msgid "arguments to GROUPING must be grouping expressions of the associated query level"
-msgstr ""
+msgstr "los argumentos de GROUPING deben ser expresiones agrupantes del nivel de consulta asociado"
 
-#: parser/parse_clause.c:649
-#, c-format
+#: parser/parse_clause.c:192
+#, fuzzy, c-format
+msgid "relation \"%s\" cannot be the target of a modifying statement"
+msgstr "relación «%s» no es un padre de la relación «%s»"
+
+#: parser/parse_clause.c:637 parser/parse_clause.c:665
+#: parser/parse_func.c:2153
+#, fuzzy, c-format
+msgid "set-returning functions must appear at top level of FROM"
+msgstr "no se permiten funciones de ventana deslizante en %s"
+
+#: parser/parse_clause.c:677
+#, 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:682
+#: parser/parse_clause.c:710
 #, 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:683
+#: parser/parse_clause.c:711
 #, 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:689
+#: parser/parse_clause.c:717
 #, 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:690
+#: parser/parse_clause.c:718
 #, 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:697
+#: parser/parse_clause.c:725
 #, 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:698
+#: parser/parse_clause.c:726
 #, 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:753
+#: parser/parse_clause.c:829
+#, c-format
+msgid "only one FOR ORDINALITY column is allowed"
+msgstr ""
+
+#: parser/parse_clause.c:890
 #, fuzzy, c-format
-msgid "tablesample method %s does not exist"
-msgstr "no existe el método de acceso «%s»"
+msgid "column name \"%s\" is not unique"
+msgstr "la función %s no es única"
 
-#: parser/parse_clause.c:775
+#: parser/parse_clause.c:932
 #, fuzzy, c-format
+msgid "namespace name \"%s\" is not unique"
+msgstr "la función %s no es única"
+
+#: parser/parse_clause.c:942
+#, c-format
+msgid "only one default namespace is allowed"
+msgstr ""
+
+#: parser/parse_clause.c:1003
+#, c-format
+msgid "tablesample method %s does not exist"
+msgstr "no existe el método de tablesample «%s»"
+
+#: parser/parse_clause.c:1025
+#, 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 autentificación «%s» requiere que el argumento «%s» esté definido"
-msgstr[1] "el método de autentificación «%s» requiere que el argumento «%s» esté definido"
+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:809
-#, fuzzy, c-format
+#: parser/parse_clause.c:1059
+#, c-format
 msgid "tablesample method %s does not support REPEATABLE"
-msgstr "el método de acceso «%s» no soporta las opciones ASC/DESC"
+msgstr "el método de tablesample «%s» no soporta la opción REPEATABLE"
 
-#: parser/parse_clause.c:940
+#: parser/parse_clause.c:1220
 #, c-format
 msgid "TABLESAMPLE clause can only be applied to tables and materialized views"
-msgstr ""
+msgstr "la cláusula TABLESAMPLE sólo puede aplicarse a tablas y vistas materializadas"
 
-#: parser/parse_clause.c:1110
+#: parser/parse_clause.c:1390
 #, 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:1125
+#: parser/parse_clause.c:1405
 #, 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:1134
+#: parser/parse_clause.c:1414
 #, 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:1148
+#: parser/parse_clause.c:1428
 #, 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:1157
+#: parser/parse_clause.c:1437
 #, 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:1211
+#: parser/parse_clause.c:1491
 #, c-format
 msgid "column alias list for \"%s\" has too many entries"
 msgstr "la lista de alias de columnas para «%s» tiene demasiadas entradas"
 
 #. translator: %s is name of a SQL construct, eg LIMIT
-#: parser/parse_clause.c:1520
+#: parser/parse_clause.c:1800
 #, 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:1685
+#: parser/parse_clause.c:1965
 #, 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:1714
+#: parser/parse_clause.c:1994
 #, 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:1736
+#: parser/parse_clause.c:2016
 #, 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:2178
+#: parser/parse_clause.c:2457
 #, c-format
 msgid "CUBE is limited to 12 elements"
-msgstr ""
+msgstr "CUBE está limitado a 12 elementos"
 
-#: parser/parse_clause.c:2384
+#: parser/parse_clause.c:2661
 #, c-format
 msgid "window \"%s\" is already defined"
 msgstr "la ventana «%s» ya está definida"
 
-#: parser/parse_clause.c:2446
+#: parser/parse_clause.c:2722
 #, 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:2458
+#: parser/parse_clause.c:2734
 #, 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:2488 parser/parse_clause.c:2494
+#: parser/parse_clause.c:2764 parser/parse_clause.c:2770
 #, 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:2496
+#: parser/parse_clause.c:2772
 #, 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:2562
+#: parser/parse_clause.c:2838
 #, 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:2563
+#: parser/parse_clause.c:2839
 #, 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:2596
+#: parser/parse_clause.c:2871
 #, 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:2597
+#: parser/parse_clause.c:2872
 #, c-format
 msgid "SELECT DISTINCT must have at least one column"
 msgstr "SELECT DISTINCT debe tener al menos una columna"
 
-#: parser/parse_clause.c:2663 parser/parse_clause.c:2695
+#: parser/parse_clause.c:2938 parser/parse_clause.c:2970
 #, 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:2774
-#, fuzzy, c-format
+#: parser/parse_clause.c:3048
+#, c-format
 msgid "ASC/DESC is not allowed in ON CONFLICT clause"
-msgstr "%s no está permitido con cláusulas DISTINCT"
+msgstr "ASC/DESC no están permitidos en cláusulas ON CONFLICT"
 
-#: parser/parse_clause.c:2780
-#, fuzzy, c-format
+#: parser/parse_clause.c:3054
+#, c-format
 msgid "NULLS FIRST/LAST is not allowed in ON CONFLICT clause"
-msgstr "%s no está permitido con cláusulas DISTINCT"
+msgstr "NULLS FIRST/LAST no están permitidos en cláusulas ON CONFLICT"
 
-#: parser/parse_clause.c:2860
+#: parser/parse_clause.c:3134
 #, c-format
 msgid "ON CONFLICT DO UPDATE requires inference specification or constraint name"
-msgstr ""
+msgstr "ON CONFLICT DO UPDATE requiere una especificación de inferencia o nombre de restricción"
 
-#: parser/parse_clause.c:2861
+#: parser/parse_clause.c:3135
 #, c-format
 msgid "For example, ON CONFLICT (column_name)."
-msgstr ""
+msgstr "Por ejemplo, ON CONFLICT (nombre_de_columna)."
 
-#: parser/parse_clause.c:2872
-#, fuzzy, c-format
+#: parser/parse_clause.c:3146
+#, c-format
 msgid "ON CONFLICT is not supported with system catalog tables"
-msgstr "no se puede reescribir la tabla «%s» que es usada como tabla de catálogo"
+msgstr "ON CONFLICT no está soportado con tablas que son catálogos de sistema"
 
-#: parser/parse_clause.c:2880
-#, fuzzy, c-format
+#: parser/parse_clause.c:3154
+#, c-format
 msgid "ON CONFLICT is not supported on table \"%s\" used as a catalog table"
-msgstr "no se puede reescribir la tabla «%s» que es usada como tabla de catálogo"
+msgstr "ON CONFLICT no está soportado en la tabla «%s» usada como catálogo de sistema"
 
-#: parser/parse_clause.c:3012
+#: parser/parse_clause.c:3280
 #, 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:3014
+#: parser/parse_clause.c:3282
 #, 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_coerce.c:971 parser/parse_coerce.c:1001
 #: parser/parse_coerce.c:1019 parser/parse_coerce.c:1034
-#: parser/parse_expr.c:2028 parser/parse_expr.c:2552 parser/parse_target.c:874
+#: parser/parse_expr.c:2144 parser/parse_expr.c:2732 parser/parse_target.c:936
 #, c-format
 msgid "cannot cast type %s to %s"
 msgstr "no se puede convertir el tipo %s a %s"
@@ -13166,105 +14296,95 @@ msgid "Input has too many columns."
 msgstr "La entrada tiene demasiadas columnas."
 
 #. translator: first %s is name of a SQL construct, eg WHERE
-#: parser/parse_coerce.c:1080
+#. translator: first %s is name of a SQL construct, eg LIMIT
+#: parser/parse_coerce.c:1080 parser/parse_coerce.c:1128
 #, c-format
-msgid "argument of %s must be type boolean, not type %s"
-msgstr "el argumento de %s debe ser de tipo boolean, no tipo %s"
+msgid "argument of %s must be type %s, not type %s"
+msgstr "el argumento de %s debe ser de tipo %s, no tipo %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:1090 parser/parse_coerce.c:1139
+#: parser/parse_coerce.c:1091 parser/parse_coerce.c:1140
 #, c-format
 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 LIMIT
-#: parser/parse_coerce.c:1127
-#, c-format
-msgid "argument of %s must be type %s, not type %s"
-msgstr "el argumento de %s debe ser de tipo %s, no tipo %s"
-
 #. translator: first %s is name of a SQL construct, eg CASE
-#: parser/parse_coerce.c:1260
+#: parser/parse_coerce.c:1280
 #, 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"
 
 #. translator: first %s is name of a SQL construct, eg CASE
-#: parser/parse_coerce.c:1327
+#: parser/parse_coerce.c:1347
 #, 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:1629
+#: parser/parse_coerce.c:1649
 #, c-format
 msgid "arguments declared \"anyelement\" are not all alike"
 msgstr "los argumentos declarados «anyelement» no son de tipos compatibles"
 
-#: parser/parse_coerce.c:1649
+#: parser/parse_coerce.c:1669
 #, c-format
 msgid "arguments declared \"anyarray\" are not all alike"
 msgstr "los argumentos declarados «anyarray» no son de tipos compatibles"
 
-#: parser/parse_coerce.c:1669
+#: parser/parse_coerce.c:1689
 #, c-format
 msgid "arguments declared \"anyrange\" are not all alike"
 msgstr "los argumentos declarados «anyrange» no son de tipos compatibles"
 
-#: parser/parse_coerce.c:1698 parser/parse_coerce.c:1909
-#: parser/parse_coerce.c:1943
-#, c-format
-msgid "argument declared \"anyarray\" is not an array but type %s"
+#: parser/parse_coerce.c:1718 parser/parse_coerce.c:1933
+#: parser/parse_coerce.c:1967
+#, fuzzy, c-format
+msgid "argument declared %s is not an array but type %s"
 msgstr "el argumento declarado «anyarray» no es un array sino de tipo %s"
 
-#: parser/parse_coerce.c:1714
-#, c-format
-msgid "argument declared \"anyarray\" is not consistent with argument declared \"anyelement\""
-msgstr "el argumento declarado «anyarray» no es consistente con el argumento declarado «anyelement»"
+#: parser/parse_coerce.c:1734 parser/parse_coerce.c:1773
+#, fuzzy, c-format
+msgid "argument declared %s is not consistent with argument declared %s"
+msgstr "el argumento declarado «anyrange» no es consistente con el argumento declarado «anyelement»"
 
-#: parser/parse_coerce.c:1735 parser/parse_coerce.c:1956
-#, c-format
-msgid "argument declared \"anyrange\" is not a range type but type %s"
+#: parser/parse_coerce.c:1756 parser/parse_coerce.c:1980
+#, fuzzy, c-format
+msgid "argument declared %s is not a range type but type %s"
 msgstr "el argumento declarado «anyrange» no es un tipo de rango sino tipo %s"
 
-#: parser/parse_coerce.c:1751
-#, c-format
-msgid "argument declared \"anyrange\" is not consistent with argument declared \"anyelement\""
-msgstr "el argumento declarado «anyrange» no es consistente con el argumento declarado «anyelement»"
-
-#: parser/parse_coerce.c:1771
-#, c-format
-msgid "could not determine polymorphic type because input has type \"unknown\""
+#: parser/parse_coerce.c:1794
+#, fuzzy, c-format
+msgid "could not determine polymorphic type because input has type %s"
 msgstr "no se pudo determinar el tipo polimórfico porque el tipo de entrada es «unknown»"
 
-#: parser/parse_coerce.c:1781
+#: parser/parse_coerce.c:1805
 #, c-format
 msgid "type matched to anynonarray is an array type: %s"
 msgstr "el argumento coincidente con anynonarray es un array: %s"
 
-#: parser/parse_coerce.c:1791
+#: parser/parse_coerce.c:1815
 #, c-format
 msgid "type matched to anyenum is not an enum type: %s"
 msgstr "el tipo coincidente con anyenum no es un tipo enum: %s"
 
-#: parser/parse_coerce.c:1831 parser/parse_coerce.c:1861
+#: parser/parse_coerce.c:1855 parser/parse_coerce.c:1885
 #, c-format
 msgid "could not find range type for data type %s"
 msgstr "no se pudo encontrar un tipo de rango para el tipo de dato %s"
 
 #: parser/parse_collate.c:228 parser/parse_collate.c:475
-#: parser/parse_collate.c:986
+#: parser/parse_collate.c:981
 #, c-format
 msgid "collation mismatch between implicit collations \"%s\" and \"%s\""
 msgstr "discordancia de ordenamientos (collation) entre los ordenamientos implícitos «%s» y «%s»"
 
 #: parser/parse_collate.c:231 parser/parse_collate.c:478
-#: parser/parse_collate.c:989
+#: parser/parse_collate.c:984
 #, c-format
 msgid "You can choose the collation by applying the COLLATE clause to one or both expressions."
 msgstr "Puede elegir el ordenamiento aplicando la cláusula COLLATE a una o ambas expresiones."
 
-#: parser/parse_collate.c:834
+#: parser/parse_collate.c:831
 #, c-format
 msgid "collation mismatch between explicit collations \"%s\" and \"%s\""
 msgstr "discordancia de ordenamientos (collation) entre los ordenamientos explícitos «%s» y «%s»"
@@ -13324,79 +14444,84 @@ msgstr "la columna %2$d en la consulta recursiva «%1$s» tiene ordenamiento (co
 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:419
+#: parser/parse_cte.c:418
 #, 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:599
+#: parser/parse_cte.c:598
 #, 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:651
+#: parser/parse_cte.c:650
 #, 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:659
+#: parser/parse_cte.c:658
 #, 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:703
+#: parser/parse_cte.c:702
 #, 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:709
+#: parser/parse_cte.c:708
 #, c-format
 msgid "OFFSET in a recursive query is not implemented"
 msgstr "OFFSET no está implementado en una consulta recursiva"
 
-#: parser/parse_cte.c:715
+#: parser/parse_cte.c:714
 #, c-format
 msgid "LIMIT in a recursive query is not implemented"
 msgstr "LIMIT no está implementado en una consulta recursiva"
 
-#: parser/parse_cte.c:721
+#: parser/parse_cte.c:720
 #, 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:778
+#: parser/parse_cte.c:777
 #, 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:387 parser/parse_relation.c:3083
-#: parser/parse_relation.c:3103
+#: parser/parse_expr.c:350
+#, fuzzy, c-format
+msgid "DEFAULT is not allowed in this context"
+msgstr "los arrays con elementos null no son permitidos en este contexto"
+
+#: parser/parse_expr.c:403 parser/parse_relation.c:3248
+#: parser/parse_relation.c:3268
 #, c-format
 msgid "column %s.%s does not exist"
 msgstr "no existe la columna %s.%s"
 
-#: parser/parse_expr.c:399
+#: parser/parse_expr.c:415
 #, 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:405
+#: parser/parse_expr.c:421
 #, 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:411
+#: parser/parse_expr.c:427
 #, 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:441 parser/parse_target.c:660
+#: parser/parse_expr.c:458 parser/parse_target.c:722
 #, 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:767 parser/parse_relation.c:667
-#: parser/parse_relation.c:767 parser/parse_target.c:1109
+#: parser/parse_expr.c:767 parser/parse_relation.c:689
+#: parser/parse_relation.c:789 parser/parse_target.c:1171
 #, c-format
 msgid "column reference \"%s\" is ambiguous"
 msgstr "la referencia a la columna «%s» es ambigua"
@@ -13407,364 +14532,460 @@ msgstr "la referencia a la columna «%s» es ambigua"
 msgid "there is no parameter $%d"
 msgstr "no hay parámetro $%d"
 
-#: parser/parse_expr.c:1042
+#: parser/parse_expr.c:1066
 #, c-format
 msgid "NULLIF requires = operator to yield boolean"
 msgstr "NULLIF requiere que el operador = retorne boolean"
 
-#: parser/parse_expr.c:1705
+#. translator: %s is name of a SQL construct, eg NULLIF
+#: parser/parse_expr.c:1072 parser/parse_expr.c:3048
+#, fuzzy, c-format
+#| msgid "argument of %s must not return a set"
+msgid "%s must not return a set"
+msgstr "el argumento de %s no debe retornar un conjunto"
+
+#: 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:1565
+#, 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:1759 parser/parse_expr.c:2235 parser/parse_func.c:2256
+#, fuzzy, c-format
+msgid "set-returning functions are not allowed in %s"
+msgstr "no se permiten funciones de ventana deslizante en %s"
+
+#: parser/parse_expr.c:1819
 msgid "cannot use subquery in check constraint"
 msgstr "no se pueden usar subconsultas en una restricción «check»"
 
-#: parser/parse_expr.c:1709
+#: parser/parse_expr.c:1823
 msgid "cannot use subquery in DEFAULT expression"
 msgstr "no se puede usar una subconsulta en una expresión DEFAULT"
 
-#: parser/parse_expr.c:1712
+#: parser/parse_expr.c:1826
 msgid "cannot use subquery in index expression"
 msgstr "no se puede usar una subconsulta en una expresión de índice"
 
-#: parser/parse_expr.c:1715
+#: parser/parse_expr.c:1829
 msgid "cannot use subquery in index predicate"
 msgstr "no se puede usar una subconsulta en un predicado de índice"
 
-#: parser/parse_expr.c:1718
+#: parser/parse_expr.c:1832
 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:1721
+#: parser/parse_expr.c:1835
 msgid "cannot use subquery in EXECUTE parameter"
 msgstr "no se puede usar una subconsulta en un parámetro a EXECUTE"
 
-#: parser/parse_expr.c:1724
+#: parser/parse_expr.c:1838
 msgid "cannot use subquery in trigger WHEN condition"
 msgstr "no se puede usar una subconsulta en la condición WHEN de un disparador"
 
-#: parser/parse_expr.c:1778
+#: parser/parse_expr.c:1841
+#, fuzzy
+msgid "cannot use subquery in partition key expression"
+msgstr "no se puede usar una subconsulta en una expresión de índice"
+
+#: parser/parse_expr.c:1894
 #, c-format
 msgid "subquery must return only one column"
 msgstr "la subconsulta debe retornar sólo una columna"
 
-#: parser/parse_expr.c:1862
+#: parser/parse_expr.c:1978
 #, c-format
 msgid "subquery has too many columns"
 msgstr "la subconsulta tiene demasiadas columnas"
 
-#: parser/parse_expr.c:1867
+#: parser/parse_expr.c:1983
 #, c-format
 msgid "subquery has too few columns"
 msgstr "la subconsulta tiene muy pocas columnas"
 
-#: parser/parse_expr.c:1968
+#: parser/parse_expr.c:2084
 #, 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:1969
+#: parser/parse_expr.c:2085
 #, 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:1983
+#: parser/parse_expr.c:2099
 #, 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:2206
+#: parser/parse_expr.c:2386
 #, 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:2207
+#: parser/parse_expr.c:2387
 #, 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:2222
+#: parser/parse_expr.c:2402
 #, 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:2329
+#: parser/parse_expr.c:2509
 #, c-format
 msgid "cannot cast XMLSERIALIZE result to %s"
 msgstr "no se puede convertir el resultado de XMLSERIALIZE a %s"
 
-#: parser/parse_expr.c:2625 parser/parse_expr.c:2821
+#: parser/parse_expr.c:2805 parser/parse_expr.c:3001
 #, c-format
 msgid "unequal number of entries in row expressions"
 msgstr "número desigual de entradas en expresiones de registro"
 
-#: parser/parse_expr.c:2635
+#: parser/parse_expr.c:2815
 #, c-format
 msgid "cannot compare rows of zero length"
 msgstr "no se pueden comparar registros de largo cero"
 
-#: parser/parse_expr.c:2660
+#: parser/parse_expr.c:2840
 #, 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:2667
+#: parser/parse_expr.c:2847
 #, 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:2726 parser/parse_expr.c:2767
+#: parser/parse_expr.c:2906 parser/parse_expr.c:2947
 #, 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:2728
+#: parser/parse_expr.c:2908
 #, 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:2769
+#: parser/parse_expr.c:2949
 #, c-format
 msgid "There are multiple equally-plausible candidates."
 msgstr "Hay múltiples candidatos igualmente plausibles."
 
-#: parser/parse_expr.c:2861
+#: parser/parse_expr.c:3042
 #, 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:3151 parser/parse_expr.c:3169
+#: parser/parse_expr.c:3361 parser/parse_expr.c:3379
 #, c-format
 msgid "operator precedence change: %s is now lower precedence than %s"
-msgstr ""
+msgstr "cambio de precedencia de operadores: %s es ahora de menor precedencia que %s"
 
-#: parser/parse_func.c:174
+#: parser/parse_func.c:179
 #, c-format
 msgid "argument name \"%s\" used more than once"
 msgstr "el nombre de argumento «%s» fue especificado más de una vez"
 
-#: parser/parse_func.c:185
+#: parser/parse_func.c:190
 #, c-format
 msgid "positional argument cannot follow named argument"
 msgstr "un argumento posicional no puede seguir a un argumento con nombre"
 
-#: parser/parse_func.c:270
+#: parser/parse_func.c:275
 #, c-format
 msgid "%s(*) specified, but %s is not an aggregate function"
 msgstr "se especificó %s(*), pero %s no es una función de agregación"
 
-#: parser/parse_func.c:277
+#: parser/parse_func.c:282
 #, c-format
 msgid "DISTINCT specified, but %s is not an aggregate function"
 msgstr "se especificó DISTINCT, pero %s no es una función de agregación"
 
-#: parser/parse_func.c:283
+#: parser/parse_func.c:288
 #, c-format
 msgid "WITHIN GROUP specified, but %s is not an aggregate function"
 msgstr "se especificó WITHIN GROUP, pero %s no es una función de agregación"
 
-#: parser/parse_func.c:289
+#: parser/parse_func.c:294
 #, c-format
 msgid "ORDER BY specified, but %s is not an aggregate function"
 msgstr "se especificó ORDER BY, pero %s no es una función de agregación"
 
-#: parser/parse_func.c:295
+#: parser/parse_func.c:300
 #, c-format
 msgid "FILTER specified, but %s is not an aggregate function"
 msgstr "se especificó FILTER, pero %s no es una función de agregación"
 
-#: parser/parse_func.c:301
+#: parser/parse_func.c:306
 #, c-format
 msgid "OVER specified, but %s is not a window function nor an aggregate function"
 msgstr "se especificó OVER, pero %s no es una función de ventana deslizante ni una función de agregación"
 
-#: parser/parse_func.c:331
+#: parser/parse_func.c:336
 #, c-format
 msgid "WITHIN GROUP is required for ordered-set aggregate %s"
 msgstr "WITHIN GROUP es obligatorio para la función de agregación de conjuntos ordenados %s"
 
-#: parser/parse_func.c:337
+#: parser/parse_func.c:342
 #, c-format
 msgid "OVER is not supported for ordered-set aggregate %s"
 msgstr "OVER no está soportado para la función de agregación de conjuntos ordenados %s"
 
-#: parser/parse_func.c:368 parser/parse_func.c:397
+#: parser/parse_func.c:373 parser/parse_func.c:402
 #, c-format
 msgid "There is an ordered-set aggregate %s, but it requires %d direct arguments, not %d."
 msgstr "Hay una función de agregación de conjuntos ordenados %s, pero requiere %d argumentos directos, no %d."
 
-#: parser/parse_func.c:422
+#: parser/parse_func.c:427
 #, c-format
 msgid "To use the hypothetical-set aggregate %s, the number of hypothetical direct arguments (here %d) must match the number of ordering columns (here %d)."
 msgstr "Para usar la función de agregación de conjunto hipotética %s, el número de argumentos hipotéticos directos (acá %d) debe coincidir con el número de columnas del ordenamiento (acá %d)."
 
-#: parser/parse_func.c:436
+#: parser/parse_func.c:441
 #, c-format
 msgid "There is an ordered-set aggregate %s, but it requires at least %d direct arguments."
 msgstr "Hay una función de agregación de conjuntos ordenados %s, pero requiere al menos %d argumentos directos"
 
-#: parser/parse_func.c:455
+#: parser/parse_func.c:460
 #, c-format
 msgid "%s is not an ordered-set aggregate, so it cannot have WITHIN GROUP"
 msgstr "%s no es una función de agregación de conjunto ordenado, por lo que no puede tener WITHIN GROUP"
 
-#: parser/parse_func.c:468
+#: parser/parse_func.c:473
 #, c-format
 msgid "window function %s requires an OVER clause"
 msgstr "la función de ventana deslizante %s requiere una cláusula OVER"
 
-#: parser/parse_func.c:475
+#: parser/parse_func.c:480
 #, c-format
 msgid "window function %s cannot have WITHIN GROUP"
 msgstr "la función de ventana deslizante %s no puede tener WITHIN GROUP"
 
-#: parser/parse_func.c:496
+#: parser/parse_func.c:501
 #, c-format
 msgid "function %s is not unique"
 msgstr "la función %s no es única"
 
-#: parser/parse_func.c:499
+#: parser/parse_func.c:504
 #, c-format
 msgid "Could not choose a best candidate function. You might need to add explicit type casts."
 msgstr "No se pudo escoger la función más adecuada. Puede ser necesario agregar conversiones explícitas de tipos."
 
-#: parser/parse_func.c:510
+#: parser/parse_func.c:515
 #, c-format
 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:521
+#: parser/parse_func.c:526
 #, c-format
 msgid "No function matches the given name and argument types. You might need to add explicit type casts."
 msgstr "Ninguna función coincide en el nombre y tipos de argumentos. Puede ser necesario agregar conversión explícita de tipos."
 
-#: parser/parse_func.c:623
+#: parser/parse_func.c:628
 #, c-format
 msgid "VARIADIC argument must be an array"
 msgstr "el parámetro VARIADIC debe ser un array"
 
-#: parser/parse_func.c:669 parser/parse_func.c:733
+#: parser/parse_func.c:680 parser/parse_func.c:744
 #, 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"
 
-#: parser/parse_func.c:676
+#: parser/parse_func.c:687
 #, c-format
 msgid "aggregates cannot return sets"
 msgstr "las funciones de agregación no pueden retornar conjuntos"
 
-#: parser/parse_func.c:691
+#: parser/parse_func.c:702
 #, c-format
 msgid "aggregates cannot use named arguments"
 msgstr "las funciones de agregación no pueden usar argumentos con nombre"
 
-#: parser/parse_func.c:723
+#: parser/parse_func.c:734
 #, c-format
 msgid "DISTINCT is not implemented for window functions"
 msgstr "DISTINCT no está implementado para funciones de ventana deslizante"
 
-#: parser/parse_func.c:743
+#: parser/parse_func.c:754
 #, 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_func.c:752
+#: parser/parse_func.c:763
 #, 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:758
+#: parser/parse_func.c:772
+#, fuzzy, c-format
+#| msgid "aggregate function calls cannot contain window function calls"
+msgid "window function calls cannot contain set-returning function calls"
+msgstr "las llamadas a funciones de agregación no pueden contener llamadas a funciones de ventana deslizante"
+
+#: parser/parse_func.c:780
 #, c-format
 msgid "window functions cannot return sets"
 msgstr "las funciones de ventana deslizante no pueden retornar conjuntos"
 
-#: parser/parse_func.c:2008
+#: parser/parse_func.c:1950
+#, fuzzy, c-format
+msgid "function name \"%s\" is not unique"
+msgstr "la función %s no es única"
+
+#: parser/parse_func.c:1952
+#, c-format
+msgid "Specify the argument list to select the function unambiguously."
+msgstr ""
+
+#: parser/parse_func.c:1962
+#, fuzzy, c-format
+msgid "could not find a function named \"%s\""
+msgstr "no se encuentra la función «%s» en el archivo «%s»"
+
+#: parser/parse_func.c:2064
 #, c-format
 msgid "aggregate %s(*) does not exist"
 msgstr "no existe la función de agregación %s(*)"
 
-#: parser/parse_func.c:2013
+#: parser/parse_func.c:2069
 #, c-format
 msgid "aggregate %s does not exist"
 msgstr "no existe la función de agregación %s"
 
-#: parser/parse_func.c:2032
+#: parser/parse_func.c:2088
 #, c-format
 msgid "function %s is not an aggregate"
 msgstr "la función %s no es una función de agregación"
 
-#: parser/parse_node.c:84
+#: parser/parse_func.c:2140
+#, fuzzy
+msgid "set-returning functions are not allowed in JOIN conditions"
+msgstr "no se permiten funciones de ventana deslizante en condiciones JOIN"
+
+#: parser/parse_func.c:2161
+#, fuzzy
+msgid "set-returning functions are not allowed in policy expressions"
+msgstr "no se permiten funciones de ventana deslizante en expresiones de políticas"
+
+#: parser/parse_func.c:2176
+#, fuzzy
+msgid "set-returning functions are not allowed in window definitions"
+msgstr "no se permiten funciones de ventana deslizante en definiciones de ventana deslizante"
+
+#: parser/parse_func.c:2214
+#, fuzzy
+msgid "set-returning functions are not allowed in check constraints"
+msgstr "no se permiten funciones de ventana deslizante en restricciones «check»"
+
+#: parser/parse_func.c:2218
+#, fuzzy
+msgid "set-returning functions are not allowed in DEFAULT expressions"
+msgstr "no se permiten funciones de ventana deslizante en expresiones DEFAULT"
+
+#: parser/parse_func.c:2221
+#, fuzzy
+msgid "set-returning functions are not allowed in index expressions"
+msgstr "no se permiten funciones de ventana deslizante en expresiones de índice"
+
+#: parser/parse_func.c:2224
+#, fuzzy
+msgid "set-returning functions are not allowed in index predicates"
+msgstr "no se permiten funciones de ventana deslizante en predicados de índice"
+
+#: parser/parse_func.c:2227
+#, fuzzy
+msgid "set-returning functions are not allowed in transform expressions"
+msgstr "no se permiten funciones de ventana deslizante en expresiones de transformación"
+
+#: parser/parse_func.c:2230
+#, fuzzy
+msgid "set-returning functions are not allowed in EXECUTE parameters"
+msgstr "no se permiten funciones de ventana deslizante en parámetros a EXECUTE"
+
+#: parser/parse_func.c:2233
+#, fuzzy
+msgid "set-returning functions are not allowed in trigger WHEN conditions"
+msgstr "no se permiten funciones de ventana deslizante en condiciones WHEN de un disparador"
+
+#: parser/parse_func.c:2236
+#, fuzzy
+msgid "set-returning functions are not allowed in partition key expressions"
+msgstr "no se permiten funciones de ventana deslizante en expresiones de índice"
+
+#: parser/parse_node.c:87
 #, 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_node.c:253
+#: parser/parse_node.c:256
 #, c-format
 msgid "cannot subscript type %s because it is not an array"
 msgstr "no se puede poner subíndices al tipo %s porque no es un array"
 
-#: parser/parse_node.c:356 parser/parse_node.c:393
+#: parser/parse_node.c:358 parser/parse_node.c:395
 #, c-format
 msgid "array subscript must have type integer"
 msgstr "los subíndices de arrays deben tener tipo entero"
 
-#: parser/parse_node.c:424
+#: parser/parse_node.c:426
 #, c-format
 msgid "array assignment requires type %s but expression is of type %s"
 msgstr "la asignación de array debe tener tipo %s pero la expresión es de tipo %s"
 
-#: parser/parse_oper.c:125 parser/parse_oper.c:722 utils/adt/regproc.c:583
-#: utils/adt/regproc.c:603 utils/adt/regproc.c:787
+#: parser/parse_oper.c:125 parser/parse_oper.c:724 utils/adt/regproc.c:520
+#: utils/adt/regproc.c:704
 #, c-format
 msgid "operator does not exist: %s"
 msgstr "el operador no existe: %s"
 
-#: parser/parse_oper.c:222
+#: parser/parse_oper.c:224
 #, 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:226 utils/adt/array_userfuncs.c:782
-#: utils/adt/array_userfuncs.c:920 utils/adt/arrayfuncs.c:3639
-#: utils/adt/arrayfuncs.c:4077 utils/adt/arrayfuncs.c:6055
-#: utils/adt/rowtypes.c:1167
-#, 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"
-
-#: parser/parse_oper.c:478
+#: parser/parse_oper.c:480
 #, 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:714
+#: parser/parse_oper.c:716
 #, c-format
 msgid "operator is not unique: %s"
 msgstr "el operador no es único: %s"
 
-#: parser/parse_oper.c:716
+#: parser/parse_oper.c:718
 #, 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:724
+#: parser/parse_oper.c:726
 #, c-format
 msgid "No operator matches the given name and argument type(s). You might need to add explicit type casts."
 msgstr "Ningún operador coincide con el nombre y el tipo de los argumentos. Puede ser necesario agregar conversiones explícitas de tipos."
 
-#: parser/parse_oper.c:783 parser/parse_oper.c:897
+#: parser/parse_oper.c:787 parser/parse_oper.c:909
 #, c-format
 msgid "operator is only a shell: %s"
 msgstr "el operador está inconcluso: %s"
 
-#: parser/parse_oper.c:885
+#: parser/parse_oper.c:897
 #, 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:927
+#: parser/parse_oper.c:939
 #, 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:932
+#: parser/parse_oper.c:944
 #, 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"
@@ -13774,158 +14995,158 @@ 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_relation.c:174
+#: parser/parse_relation.c:176
 #, c-format
 msgid "table reference \"%s\" is ambiguous"
 msgstr "la referencia a la tabla «%s» es ambigua"
 
-#: parser/parse_relation.c:218
+#: parser/parse_relation.c:220
 #, c-format
 msgid "table reference %u is ambiguous"
 msgstr "la referencia a la tabla %u es ambigua"
 
-#: parser/parse_relation.c:397
+#: parser/parse_relation.c:419
 #, c-format
 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:424 parser/parse_relation.c:3023
+#: parser/parse_relation.c:446 parser/parse_relation.c:3188
 #, 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:427 parser/parse_relation.c:3028
+#: parser/parse_relation.c:449 parser/parse_relation.c:3193
 #, 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."
 
-#: parser/parse_relation.c:429
+#: parser/parse_relation.c:451
 #, c-format
 msgid "The combining JOIN type must be INNER or LEFT for a LATERAL reference."
 msgstr "El tipo de JOIN debe ser INNER o LEFT para una referencia LATERAL."
 
-#: parser/parse_relation.c:705
+#: parser/parse_relation.c:727
 #, c-format
 msgid "system column \"%s\" reference in check constraint is invalid"
 msgstr "la referencia a columna a sistema «%s» en una restricción check no es válida"
 
-#: parser/parse_relation.c:1065 parser/parse_relation.c:1345
-#: parser/parse_relation.c:1847
+#: parser/parse_relation.c:1086 parser/parse_relation.c:1372
+#: parser/parse_relation.c:1941
 #, 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:1152
+#: parser/parse_relation.c:1179
 #, 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:1154
+#: parser/parse_relation.c:1181
 #, 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."
 
-#: parser/parse_relation.c:1465
+#: parser/parse_relation.c:1492
 #, c-format
 msgid "a column definition list is only allowed for functions returning \"record\""
 msgstr "sólo se permite una lista de definición de columnas en funciones que retornan «record»"
 
-#: parser/parse_relation.c:1474
+#: parser/parse_relation.c:1501
 #, c-format
 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:1553
+#: parser/parse_relation.c:1580
 #, 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:1675
+#: parser/parse_relation.c:1769
 #, 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:1730
+#: parser/parse_relation.c:1824
 #, 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:1820
+#: parser/parse_relation.c:1914
 #, 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:2652 parser/parse_relation.c:2807
+#: parser/parse_relation.c:2809 parser/parse_relation.c:2972
 #, c-format
 msgid "column %d of relation \"%s\" does not exist"
 msgstr "no existe la columna %d en la relación «%s»"
 
-#: parser/parse_relation.c:3026
+#: parser/parse_relation.c:3191
 #, 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:3034
+#: parser/parse_relation.c:3199
 #, 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:3086
-#, fuzzy, c-format
+#: parser/parse_relation.c:3251
+#, c-format
 msgid "Perhaps you meant to reference the column \"%s.%s\"."
-msgstr "Probablemente quiera hacer referencia al alias de la tabla «%s»."
+msgstr "Probablemente quiera hacer referencia a la columna «%s.%s»."
 
-#: parser/parse_relation.c:3088
+#: parser/parse_relation.c:3253
 #, 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:3105
-#, fuzzy, c-format
+#: parser/parse_relation.c:3270
+#, c-format
 msgid "Perhaps you meant to reference the column \"%s.%s\" or the column \"%s.%s\"."
-msgstr "Probablemente quiera hacer referencia al alias de la tabla «%s»."
+msgstr "Probablemente quiera hacer referencia a la columna «%s.%s» o la columna «%s.%s»."
 
-#: parser/parse_target.c:421 parser/parse_target.c:713
+#: parser/parse_target.c:483 parser/parse_target.c:775
 #, c-format
 msgid "cannot assign to system column \"%s\""
 msgstr "no se puede asignar a la columna de sistema «%s»"
 
-#: parser/parse_target.c:449
+#: parser/parse_target.c:511
 #, 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:454
+#: parser/parse_target.c:516
 #, c-format
 msgid "cannot set a subfield to DEFAULT"
 msgstr "no se puede definir un subcampo a DEFAULT"
 
-#: parser/parse_target.c:523
+#: parser/parse_target.c:585
 #, 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:697
+#: parser/parse_target.c:759
 #, 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:706
+#: parser/parse_target.c:768
 #, 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:773
+#: parser/parse_target.c:835
 #, c-format
 msgid "array assignment to \"%s\" requires type %s but expression is of type %s"
 msgstr "la asignación de array a «%s» requiere tipo %s pero la expresión es de tipo %s"
 
-#: parser/parse_target.c:783
+#: parser/parse_target.c:845
 #, 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:1199
+#: parser/parse_target.c:1261
 #, c-format
 msgid "SELECT * with no tables specified is not valid"
 msgstr "SELECT * sin especificar tablas no es válido"
@@ -13945,7 +15166,7 @@ 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:261 parser/parse_type.c:805 utils/cache/typcache.c:239
+#: parser/parse_type.c:261 parser/parse_type.c:804 utils/cache/typcache.c:243
 #, c-format
 msgid "type \"%s\" is only a shell"
 msgstr "el tipo «%s» está inconcluso"
@@ -13960,269 +15181,315 @@ msgstr "un modificador de tipo no está permitido para el tipo «%s»"
 msgid "type modifiers must be simple constants or identifiers"
 msgstr "los modificadores de tipo deben ser constantes simples o identificadores"
 
-#: parser/parse_type.c:671 parser/parse_type.c:770
+#: parser/parse_type.c:670 parser/parse_type.c:769
 #, c-format
 msgid "invalid type name \"%s\""
 msgstr "el nombre de tipo «%s» no es válido"
 
-#: parser/parse_utilcmd.c:399
-#, c-format
-msgid "array of serial is not implemented"
-msgstr "array de serial no está implementado"
+#: parser/parse_utilcmd.c:264
+#, fuzzy, c-format
+msgid "cannot create partitioned table as inheritance child"
+msgstr "no se pueden crear tablas temporales en modo paralelo"
 
-#: parser/parse_utilcmd.c:447
+#: parser/parse_utilcmd.c:434
 #, c-format
 msgid "%s will create implicit sequence \"%s\" for serial column \"%s.%s\""
 msgstr "%s creará una secuencia implícita «%s» para la columna serial «%s.%s»"
 
-#: parser/parse_utilcmd.c:541 parser/parse_utilcmd.c:553
+#: parser/parse_utilcmd.c:549
+#, c-format
+msgid "array of serial is not implemented"
+msgstr "array de serial no está implementado"
+
+#: parser/parse_utilcmd.c:625 parser/parse_utilcmd.c:637
 #, 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:565
+#: parser/parse_utilcmd.c:649
 #, 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:582 parser/parse_utilcmd.c:673
+#: parser/parse_utilcmd.c:670
 #, fuzzy, c-format
+msgid "multiple identity specifications for column \"%s\" of table \"%s\""
+msgstr "múltiples valores default especificados para columna «%s» de tabla «%s»"
+
+#: parser/parse_utilcmd.c:693 parser/parse_utilcmd.c:810
+#, c-format
 msgid "primary key constraints are not supported on foreign tables"
-msgstr "las restricciones no están soportadas en tablas foráneas"
+msgstr "las restricciones de llave primaria no están soportadas en tablas foráneas"
 
-#: parser/parse_utilcmd.c:591 parser/parse_utilcmd.c:683
+#: parser/parse_utilcmd.c:699 parser/parse_utilcmd.c:816
 #, fuzzy, c-format
+msgid "primary key constraints are not supported on partitioned tables"
+msgstr "las restricciones de llave primaria no están soportadas en tablas foráneas"
+
+#: parser/parse_utilcmd.c:708 parser/parse_utilcmd.c:826
+#, c-format
 msgid "unique constraints are not supported on foreign tables"
-msgstr "las restricciones no están soportadas en tablas foráneas"
+msgstr "las restricciones unique no están soportadas en tablas foráneas"
 
-#: parser/parse_utilcmd.c:608 parser/parse_utilcmd.c:707
+#: parser/parse_utilcmd.c:714 parser/parse_utilcmd.c:832
 #, fuzzy, c-format
+msgid "unique constraints are not supported on partitioned tables"
+msgstr "las restricciones unique no están soportadas en tablas foráneas"
+
+#: parser/parse_utilcmd.c:731 parser/parse_utilcmd.c:862
+#, c-format
 msgid "foreign key constraints are not supported on foreign tables"
-msgstr "las restricciones no están soportadas en tablas foráneas"
+msgstr "las restricciones de llave foránea no están soportadas en tablas foráneas"
+
+#: parser/parse_utilcmd.c:737 parser/parse_utilcmd.c:868
+#, fuzzy, c-format
+msgid "foreign key constraints are not supported on partitioned tables"
+msgstr "las restricciones de llave foránea no están soportadas en tablas foráneas"
 
-#: parser/parse_utilcmd.c:693
+#: parser/parse_utilcmd.c:765
 #, fuzzy, c-format
+msgid "both default and identity specified for column \"%s\" of table \"%s\""
+msgstr "múltiples valores default especificados para columna «%s» de tabla «%s»"
+
+#: parser/parse_utilcmd.c:842
+#, c-format
 msgid "exclusion constraints are not supported on foreign tables"
-msgstr "las restricciones no están soportadas en tablas foráneas"
+msgstr "las restricciones exclusion no están soportadas en tablas foráneas"
+
+#: parser/parse_utilcmd.c:848
+#, fuzzy, c-format
+msgid "exclusion constraints are not supported on partitioned tables"
+msgstr "las restricciones exclusion no están soportadas en tablas foráneas"
 
-#: parser/parse_utilcmd.c:757
+#: parser/parse_utilcmd.c:918
 #, 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:1288 parser/parse_utilcmd.c:1364
+#: parser/parse_utilcmd.c:1473 parser/parse_utilcmd.c:1549
 #, 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:1634
+#: parser/parse_utilcmd.c:1818
 #, 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:1654
+#: parser/parse_utilcmd.c:1838
 #, 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:1662
+#: parser/parse_utilcmd.c:1846
 #, c-format
 msgid "index \"%s\" does not belong to table \"%s\""
 msgstr "el índice «%s» no pertenece a la tabla «%s»"
 
-#: parser/parse_utilcmd.c:1669
+#: parser/parse_utilcmd.c:1853
 #, c-format
 msgid "index \"%s\" is not valid"
 msgstr "el índice «%s» no es válido"
 
-#: parser/parse_utilcmd.c:1675
+#: parser/parse_utilcmd.c:1859
 #, c-format
 msgid "\"%s\" is not a unique index"
 msgstr "«%s» no es un índice único"
 
-#: parser/parse_utilcmd.c:1676 parser/parse_utilcmd.c:1683
-#: parser/parse_utilcmd.c:1690 parser/parse_utilcmd.c:1760
+#: parser/parse_utilcmd.c:1860 parser/parse_utilcmd.c:1867
+#: parser/parse_utilcmd.c:1874 parser/parse_utilcmd.c:1944
 #, 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:1682
+#: parser/parse_utilcmd.c:1866
 #, c-format
 msgid "index \"%s\" contains expressions"
 msgstr "el índice «%s» contiene expresiones"
 
-#: parser/parse_utilcmd.c:1689
+#: parser/parse_utilcmd.c:1873
 #, c-format
 msgid "\"%s\" is a partial index"
 msgstr "«%s» es un índice parcial"
 
-#: parser/parse_utilcmd.c:1701
+#: parser/parse_utilcmd.c:1885
 #, c-format
 msgid "\"%s\" is a deferrable index"
 msgstr "«%s» no es un índice postergable (deferrable)"
 
-#: parser/parse_utilcmd.c:1702
+#: parser/parse_utilcmd.c:1886
 #, 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:1759
+#: parser/parse_utilcmd.c:1943
 #, c-format
 msgid "index \"%s\" does not have default sorting behavior"
 msgstr "el índice «%s» no tiene el comportamiento de ordenamiento por omisión"
 
-#: parser/parse_utilcmd.c:1906
+#: parser/parse_utilcmd.c:2087
 #, 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:1912
+#: parser/parse_utilcmd.c:2093
 #, 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:2116
-#, c-format
-msgid "index expression cannot return a set"
-msgstr "las expresiones de índice no pueden retornar conjuntos"
-
-#: parser/parse_utilcmd.c:2127
+#: parser/parse_utilcmd.c:2302
 #, 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:2173
+#: parser/parse_utilcmd.c:2348
 #, c-format
 msgid "rules on materialized views are not supported"
 msgstr "las reglas en vistas materializadas no están soportadas"
 
-#: parser/parse_utilcmd.c:2234
+#: parser/parse_utilcmd.c:2409
 #, 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:2306
+#: parser/parse_utilcmd.c:2481
 #, 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:2324 parser/parse_utilcmd.c:2423
-#: rewrite/rewriteHandler.c:485 rewrite/rewriteManip.c:1015
+#: parser/parse_utilcmd.c:2499 parser/parse_utilcmd.c:2598
+#: rewrite/rewriteHandler.c:500 rewrite/rewriteManip.c:1015
 #, 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:2342
+#: parser/parse_utilcmd.c:2517
 #, c-format
 msgid "ON SELECT rule cannot use OLD"
 msgstr "una regla ON SELECT no puede usar OLD"
 
-#: parser/parse_utilcmd.c:2346
+#: parser/parse_utilcmd.c:2521
 #, c-format
 msgid "ON SELECT rule cannot use NEW"
 msgstr "una regla ON SELECT no puede usar NEW"
 
-#: parser/parse_utilcmd.c:2355
+#: parser/parse_utilcmd.c:2530
 #, c-format
 msgid "ON INSERT rule cannot use OLD"
 msgstr "una regla ON INSERT no puede usar OLD"
 
-#: parser/parse_utilcmd.c:2361
+#: parser/parse_utilcmd.c:2536
 #, c-format
 msgid "ON DELETE rule cannot use NEW"
 msgstr "una regla ON DELETE no puede usar NEW"
 
-#: parser/parse_utilcmd.c:2389
+#: parser/parse_utilcmd.c:2564
 #, 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:2396
+#: parser/parse_utilcmd.c:2571
 #, 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:2599
-#, c-format
-msgid "transform expression must not return a set"
-msgstr "la expresión de transformación no puede retornar conjuntos"
-
-#: parser/parse_utilcmd.c:2713
+#: parser/parse_utilcmd.c:3004
 #, c-format
 msgid "misplaced DEFERRABLE clause"
 msgstr "cláusula DEFERRABLE mal puesta"
 
-#: parser/parse_utilcmd.c:2718 parser/parse_utilcmd.c:2733
+#: parser/parse_utilcmd.c:3009 parser/parse_utilcmd.c:3024
 #, 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:2728
+#: parser/parse_utilcmd.c:3019
 #, c-format
 msgid "misplaced NOT DEFERRABLE clause"
 msgstr "la cláusula NOT DEFERRABLE está mal puesta"
 
-#: parser/parse_utilcmd.c:2749
+#: parser/parse_utilcmd.c:3040
 #, c-format
 msgid "misplaced INITIALLY DEFERRED clause"
 msgstr "la cláusula INITIALLY DEFERRED está mal puesta"
 
-#: parser/parse_utilcmd.c:2754 parser/parse_utilcmd.c:2780
+#: parser/parse_utilcmd.c:3045 parser/parse_utilcmd.c:3071
 #, 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:2775
+#: parser/parse_utilcmd.c:3066
 #, c-format
 msgid "misplaced INITIALLY IMMEDIATE clause"
 msgstr "la cláusula INITIALLY IMMEDIATE está mal puesta"
 
-#: parser/parse_utilcmd.c:2966
+#: parser/parse_utilcmd.c:3257
 #, 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/scansup.c:204
-#, c-format
-msgid "identifier \"%s\" will be truncated to \"%s\""
-msgstr "el identificador «%s» se truncará a «%s»"
+#: parser/parse_utilcmd.c:3316
+#, fuzzy, c-format
+msgid "invalid bound specification for a list partition"
+msgstr "especificación de formato no válida para un valor de interval"
 
-#: port/pg_sema.c:113 port/sysv_sema.c:113
-#, c-format
-msgid "could not create semaphores: %m"
-msgstr "no se pudo crear semáforos: %m"
+#: parser/parse_utilcmd.c:3373
+#, fuzzy, c-format
+msgid "invalid bound specification for a range partition"
+msgstr "especificación de formato no válida para un valor de interval"
 
-#: port/pg_sema.c:114 port/sysv_sema.c:114
+#: parser/parse_utilcmd.c:3379
+#, fuzzy, c-format
+msgid "FROM must specify exactly one value per partitioning column"
+msgstr "debe especificar al menos una columna"
+
+#: parser/parse_utilcmd.c:3383
+#, fuzzy, c-format
+msgid "TO must specify exactly one value per partitioning column"
+msgstr "debe especificar al menos una columna"
+
+#: parser/parse_utilcmd.c:3400 parser/parse_utilcmd.c:3414
 #, c-format
-msgid "Failed system call was semget(%lu, %d, 0%o)."
-msgstr "La llamada a sistema fallida fue semget(%lu, %d, 0%o)."
+msgid "cannot specify finite value after UNBOUNDED"
+msgstr ""
+
+#: parser/parse_utilcmd.c:3456 parser/parse_utilcmd.c:3470
+#, fuzzy, c-format
+msgid "cannot specify NULL in range bound"
+msgstr "no se puede especificar NULL en modo BINARY"
+
+#: parser/parse_utilcmd.c:3513 parser/parse_utilcmd.c:3525
+#, fuzzy, c-format
+msgid "specified value cannot be cast to type %s for column \"%s\""
+msgstr "no se puede alterar el tipo de la columna «%s» dos veces"
+
+#: parser/parse_utilcmd.c:3527
+#, fuzzy, c-format
+#| msgid "This may be because of a non-immutable index expression."
+msgid "The cast requires a non-immutable conversion."
+msgstr "Esto puede deberse a una expresión de índice no inmutable."
 
-#: port/pg_sema.c:118 port/sysv_sema.c:118
+#: parser/parse_utilcmd.c:3528
 #, 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."
+msgid "Try putting the literal value in single quotes."
 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"
-"La documentación de PostgreSQL contiene más información acerca de cómo configurar su sistema para PostgreSQL."
 
-#: port/pg_sema.c:148 port/sysv_sema.c:148
+#: parser/scansup.c:204
 #, 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."
+msgid "identifier \"%s\" will be truncated to \"%s\""
+msgstr "el identificador «%s» se truncará a «%s»"
 
-#: port/pg_shmem.c:141 port/sysv_shmem.c:141
+#: port/pg_shmem.c:196 port/sysv_shmem.c:196
 #, 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:142 port/sysv_shmem.c:142
+#: port/pg_shmem.c:197 port/sysv_shmem.c:197
 #, 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:146 port/sysv_shmem.c:146
+#: port/pg_shmem.c:201 port/sysv_shmem.c:201
 #, 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"
@@ -14231,7 +15498,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:153 port/sysv_shmem.c:153
+#: port/pg_shmem.c:208 port/sysv_shmem.c:208
 #, 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"
@@ -14240,7 +15507,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:159 port/sysv_shmem.c:159
+#: port/pg_shmem.c:214 port/sysv_shmem.c:214
 #, 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"
@@ -14249,52 +15516,72 @@ 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:340 port/sysv_shmem.c:340
-#, c-format
-msgid "huge TLB pages not supported on this platform"
-msgstr "las «huge TLB pages» no están soportadas en esta plataforma"
-
-#: port/pg_shmem.c:390 port/sysv_shmem.c:390
+#: port/pg_shmem.c:505 port/sysv_shmem.c:505
 #, c-format
 msgid "could not map anonymous shared memory: %m"
 msgstr "no se pudo mapear memoria compartida anónima: %m"
 
-#: port/pg_shmem.c:392 port/sysv_shmem.c:392
+#: port/pg_shmem.c:507 port/sysv_shmem.c:507
 #, 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."
 
-#: port/pg_shmem.c:439 port/sysv_shmem.c:439 port/win32_shmem.c:134
+#: port/pg_shmem.c:573 port/sysv_shmem.c:573 port/win32_shmem.c:134
 #, c-format
 msgid "huge pages not supported on this platform"
 msgstr "las huge pages no están soportados en esta plataforma"
 
-#: port/pg_shmem.c:553 port/sysv_shmem.c:553
+#: port/pg_shmem.c:668 port/sysv_shmem.c:668
 #, c-format
 msgid "could not stat data directory \"%s\": %m"
 msgstr "no se pudo hacer stat al directorio de datos «%s»: %m"
 
-#: port/win32/crashdump.c:122
+#: port/sysv_sema.c:123
+#, c-format
+msgid "could not create semaphores: %m"
+msgstr "no se pudo crear semáforos: %m"
+
+#: port/sysv_sema.c:124
+#, 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:128
+#, 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 ""
+"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"
+"La documentación de PostgreSQL contiene más información acerca de cómo configurar su sistema para PostgreSQL."
+
+#: port/sysv_sema.c:158
+#, 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."
+
+#: port/win32/crashdump.c:121
 #, c-format
 msgid "could not load dbghelp.dll, cannot write crash dump\n"
 msgstr "no se pudo cargar dbghelp.dll, no se puede escribir el volcado de la caída\n"
 
-#: port/win32/crashdump.c:130
+#: port/win32/crashdump.c:129
 #, c-format
 msgid "could not load required functions in dbghelp.dll, cannot write crash dump\n"
 msgstr "no fue posible cargar las funciones requeridas desde dbghelp.dll, no se puede escribir el volcado de la caída\n"
 
-#: port/win32/crashdump.c:161
+#: port/win32/crashdump.c:160
 #, c-format
 msgid "could not open crash dump file \"%s\" for writing: error code %lu\n"
 msgstr "no se pudo abrir el archivo del volcado de caída «%s» para escritura: código de error %lu\n"
 
-#: port/win32/crashdump.c:168
+#: port/win32/crashdump.c:167
 #, c-format
 msgid "wrote crash dump to file \"%s\"\n"
 msgstr "se escribió el volcado de caída en el archivo «%s».\n"
 
-#: port/win32/crashdump.c:170
+#: port/win32/crashdump.c:169
 #, c-format
 msgid "could not write crash dump to file \"%s\": error code %lu\n"
 msgstr "no se pudo escribir el volcado de caída al archivo «%s»: código de error %lu\n"
@@ -14314,22 +15601,22 @@ msgstr "no se pudo crear tubería para escuchar señales: código de error %lu;
 msgid "could not create signal dispatch thread: error code %lu\n"
 msgstr "no se pudo crear thread de despacho de señales: código de error %lu\n"
 
-#: port/win32_sema.c:94
+#: port/win32_sema.c:104
 #, c-format
 msgid "could not create semaphore: error code %lu"
 msgstr "no se pudo crear semáforo: código de error %lu"
 
-#: port/win32_sema.c:167
+#: port/win32_sema.c:181
 #, c-format
 msgid "could not lock semaphore: error code %lu"
 msgstr "no se pudo bloquear semáforo: código de error %lu"
 
-#: port/win32_sema.c:187
+#: port/win32_sema.c:201
 #, c-format
 msgid "could not unlock semaphore: error code %lu"
 msgstr "no se pudo desbloquear semáforo: código de error %lu"
 
-#: port/win32_sema.c:216
+#: port/win32_sema.c:231
 #, c-format
 msgid "could not try-lock semaphore: error code %lu"
 msgstr "no se pudo intentar-bloquear (try-lock) el semáforo: código de error %lu"
@@ -14364,107 +15651,112 @@ 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:377
+#: postmaster/autovacuum.c:416
 #, c-format
 msgid "could not fork autovacuum launcher process: %m"
 msgstr "no se pudo iniciar el lanzador autovacuum: %m"
 
-#: postmaster/autovacuum.c:413
+#: postmaster/autovacuum.c:452
 #, c-format
 msgid "autovacuum launcher started"
 msgstr "lanzador de autovacuum iniciado"
 
-#: postmaster/autovacuum.c:775
+#: postmaster/autovacuum.c:839
 #, c-format
 msgid "autovacuum launcher shutting down"
 msgstr "apagando lanzador de autovacuum"
 
-#: postmaster/autovacuum.c:1443
+#: postmaster/autovacuum.c:1501
 #, c-format
 msgid "could not fork autovacuum worker process: %m"
 msgstr "no se pudo lanzar el proceso «autovacuum worker»: %m"
 
-#: postmaster/autovacuum.c:1639
+#: postmaster/autovacuum.c:1707
 #, c-format
 msgid "autovacuum: processing database \"%s\""
 msgstr "autovacuum: procesando la base de datos «%s»"
 
-#: postmaster/autovacuum.c:2051
-#, c-format
-msgid "autovacuum: dropping orphan temp table \"%s\".\"%s\" in database \"%s\""
+#: postmaster/autovacuum.c:2281
+#, fuzzy, c-format
+msgid "autovacuum: dropping orphan temp table \"%s.%s.%s\""
 msgstr "autovacuum: eliminando la tabla temporal huérfana «%s».«%s» en la base de datos «%s»"
 
-#: postmaster/autovacuum.c:2063
-#, c-format
-msgid "autovacuum: found orphan temp table \"%s\".\"%s\" in database \"%s\""
-msgstr "autovacuum: se encontró una tabla temporal huérfana «%s».«%s» en la base de datos «%s»"
-
-#: postmaster/autovacuum.c:2346
+#: postmaster/autovacuum.c:2487
 #, c-format
 msgid "automatic vacuum of table \"%s.%s.%s\""
 msgstr "vacuum automático de la tabla «%s.%s.%s»"
 
-#: postmaster/autovacuum.c:2349
+#: postmaster/autovacuum.c:2490
 #, c-format
 msgid "automatic analyze of table \"%s.%s.%s\""
 msgstr "análisis automático de la tabla «%s.%s.%s»"
 
-#: postmaster/autovacuum.c:2877
+#: postmaster/autovacuum.c:2701
+#, fuzzy, c-format
+msgid "processing work entry for relation \"%s.%s.%s\""
+msgstr "permiso denegado a la relación %s"
+
+#: postmaster/autovacuum.c:3345
 #, c-format
 msgid "autovacuum not started because of misconfiguration"
 msgstr "autovacuum no fue iniciado debido a un error de configuración"
 
-#: postmaster/autovacuum.c:2878
+#: postmaster/autovacuum.c:3346
 #, c-format
 msgid "Enable the \"track_counts\" option."
 msgstr "Active la opción «track_counts»."
 
-#: postmaster/bgworker.c:346 postmaster/bgworker.c:746
+#: postmaster/bgworker.c:393 postmaster/bgworker.c:856
 #, c-format
 msgid "registering background worker \"%s\""
 msgstr "registrando el «background worker» «%s»"
 
-#: postmaster/bgworker.c:375
+#: postmaster/bgworker.c:425
 #, c-format
 msgid "unregistering background worker \"%s\""
 msgstr "des-registrando el «background worker» «%s»"
 
-#: postmaster/bgworker.c:484
+#: postmaster/bgworker.c:590
 #, c-format
 msgid "background worker \"%s\": must attach to shared memory in order to request a database connection"
 msgstr "«background worker» «%s»: debe acoplarse a memoria compartida para poder solicitar una conexión a base de datos"
 
-#: postmaster/bgworker.c:493
+#: postmaster/bgworker.c:599
 #, c-format
 msgid "background worker \"%s\": cannot request database access if starting at postmaster start"
 msgstr "«background worker» «%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:507
+#: postmaster/bgworker.c:613
 #, c-format
 msgid "background worker \"%s\": invalid restart interval"
 msgstr "«background worker» «%s»: intervalo de reinicio no válido"
 
-#: postmaster/bgworker.c:552
+#: postmaster/bgworker.c:628
+#, fuzzy, c-format
+msgid "background worker \"%s\": parallel workers may not be configured for restart"
+msgstr "«background worker» «%s»: intervalo de reinicio no válido"
+
+#: postmaster/bgworker.c:673
 #, c-format
 msgid "terminating background worker \"%s\" due to administrator command"
 msgstr "terminando el «background worker» «%s» debido a una orden del administrador"
 
-#: postmaster/bgworker.c:753
+#: postmaster/bgworker.c:864
 #, c-format
 msgid "background worker \"%s\": must be registered in shared_preload_libraries"
 msgstr "«background worker» «%s»: debe ser registrado en shared_preload_libraries"
 
-#: postmaster/bgworker.c:765
+#: postmaster/bgworker.c:876
 #, c-format
 msgid "background worker \"%s\": only dynamic background workers can request notification"
 msgstr "«background worker» «%s»: sólo los «background worker» dinámicos pueden pedir notificaciones"
 
-#: postmaster/bgworker.c:780
+#: postmaster/bgworker.c:891
 #, c-format
 msgid "too many background workers"
 msgstr "demasiados «background workers»"
 
-#: postmaster/bgworker.c:781
+#: postmaster/bgworker.c:892
 #, 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."
@@ -14472,12 +15764,12 @@ msgstr[0] "Hasta %d «background worker» puede registrarse con la configuració
 msgstr[1] "Hasta %d «background workers» pueden registrarse con la configuración actual."
 
 # FIXME a %s would be nice here
-#: postmaster/bgworker.c:785
+#: postmaster/bgworker.c:896
 #, c-format
 msgid "Consider increasing the configuration parameter \"max_worker_processes\"."
 msgstr "Considere incrementar el parámetro de configuración «max_worker_processes»."
 
-#: postmaster/checkpointer.c:465
+#: postmaster/checkpointer.c:464
 #, c-format
 msgid "checkpoints are occurring too frequently (%d second apart)"
 msgid_plural "checkpoints are occurring too frequently (%d seconds apart)"
@@ -14485,32 +15777,27 @@ msgstr[0] "los puntos de control están ocurriendo con demasiada frecuencia (cad
 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:469
-#, fuzzy, c-format
-msgid "Consider increasing the configuration parameter \"max_wal_size\"."
-msgstr "Considere incrementar el parámetro de configuración «max_worker_processes»."
-
-#: postmaster/checkpointer.c:616
+#: postmaster/checkpointer.c:468
 #, c-format
-msgid "transaction log switch forced (archive_timeout=%d)"
-msgstr "cambio forzado de registro de transacción (archive_timeout=%d)"
+msgid "Consider increasing the configuration parameter \"max_wal_size\"."
+msgstr "Considere incrementar el parámetro de configuración «max_wal_size»."
 
-#: postmaster/checkpointer.c:1074
+#: postmaster/checkpointer.c:1087
 #, c-format
 msgid "checkpoint request failed"
 msgstr "falló la petición de punto de control"
 
-#: postmaster/checkpointer.c:1075
+#: postmaster/checkpointer.c:1088
 #, 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/checkpointer.c:1270
+#: postmaster/checkpointer.c:1283
 #, c-format
 msgid "compacted fsync request queue from %d entries to %d entries"
 msgstr "la cola de peticiones de fsync fue compactada de %d a %d elementos"
 
-#: postmaster/pgarch.c:149
+#: postmaster/pgarch.c:148
 #, c-format
 msgid "could not fork archiver: %m"
 msgstr "no se pudo lanzar el proceso archivador: %m"
@@ -14521,8 +15808,8 @@ msgid "archive_mode enabled, yet archive_command is not set"
 msgstr "archive_mode activado, pero archive_command no está definido"
 
 #: postmaster/pgarch.c:484
-#, c-format
-msgid "archiving transaction log file \"%s\" failed too many times, will try again later"
+#, fuzzy, c-format
+msgid "archiving write-ahead log file \"%s\" failed too many times, will try again later"
 msgstr "el archivado del archivo de transacción «%s» falló demasiadas veces, se reintentará nuevamente más tarde"
 
 #: postmaster/pgarch.c:587
@@ -14541,7 +15828,7 @@ msgstr "La orden fallida era: «%s»"
 msgid "archive command was terminated by exception 0x%X"
 msgstr "la orden de archivado fue terminada por una excepción 0x%X"
 
-#: postmaster/pgarch.c:598 postmaster/postmaster.c:3478
+#: postmaster/pgarch.c:598 postmaster/postmaster.c:3567
 #, 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."
@@ -14561,304 +15848,298 @@ msgstr "la orden de archivado fue terminada por una señal %d"
 msgid "archive command exited with unrecognized status %d"
 msgstr "la orden de archivado fue terminada con código no reconocido %d"
 
-#: postmaster/pgarch.c:631
-#, c-format
-msgid "archived transaction log file \"%s\""
-msgstr "el archivo de registro «%s» ha sido archivado"
-
-#: postmaster/pgarch.c:680
+#: postmaster/pgarch.c:679
 #, c-format
 msgid "could not open archive status directory \"%s\": %m"
 msgstr "no se pudo abrir el directorio de estado de archivado «%s»: %m"
 
-#: postmaster/pgstat.c:356
+#: postmaster/pgstat.c:395
 #, c-format
 msgid "could not resolve \"localhost\": %s"
 msgstr "no se pudo resolver «localhost»: %s"
 
-#: postmaster/pgstat.c:379
+#: postmaster/pgstat.c:418
 #, c-format
 msgid "trying another address for the statistics collector"
 msgstr "intentando otra dirección para el recolector de estadísticas"
 
-#: postmaster/pgstat.c:388
+#: postmaster/pgstat.c:427
 #, c-format
 msgid "could not create socket for statistics collector: %m"
 msgstr "no se pudo crear el socket para el recolector de estadísticas: %m"
 
-#: postmaster/pgstat.c:400
+#: postmaster/pgstat.c:439
 #, c-format
 msgid "could not bind socket for statistics collector: %m"
 msgstr "no se pudo enlazar (bind) el socket para el recolector de estadísticas: %m"
 
-#: postmaster/pgstat.c:411
+#: postmaster/pgstat.c:450
 #, c-format
 msgid "could not get address of socket for statistics collector: %m"
 msgstr "no se pudo obtener la dirección del socket de estadísticas: %m"
 
-#: postmaster/pgstat.c:427
+#: postmaster/pgstat.c:466
 #, c-format
 msgid "could not connect socket for statistics collector: %m"
 msgstr "no se pudo conectar el socket para el recolector de estadísticas: %m"
 
-#: postmaster/pgstat.c:448
+#: postmaster/pgstat.c:487
 #, c-format
 msgid "could not send test message on socket for statistics collector: %m"
 msgstr "no se pudo enviar el mensaje de prueba al recolector de estadísticas: %m"
 
-#: postmaster/pgstat.c:474
+#: postmaster/pgstat.c:513
 #, c-format
 msgid "select() failed in statistics collector: %m"
 msgstr "select() falló en el recolector de estadísticas: %m"
 
-#: postmaster/pgstat.c:489
+#: postmaster/pgstat.c:528
 #, c-format
 msgid "test message did not get through on socket for statistics collector"
 msgstr "el mensaje de prueba al recolector de estadísticas no ha sido recibido en el socket"
 
-#: postmaster/pgstat.c:504
+#: postmaster/pgstat.c:543
 #, c-format
 msgid "could not receive test message on socket for statistics collector: %m"
 msgstr "no se pudo recibir el mensaje de prueba en el socket del recolector de estadísticas: %m"
 
-#: postmaster/pgstat.c:514
+#: postmaster/pgstat.c:553
 #, c-format
 msgid "incorrect test message transmission on socket for statistics collector"
 msgstr "transmisión del mensaje de prueba incorrecta en el socket del recolector de estadísticas"
 
-#: postmaster/pgstat.c:537
+#: postmaster/pgstat.c:576
 #, c-format
 msgid "could not set statistics collector socket to nonblocking mode: %m"
 msgstr "no se pudo poner el socket de estadísticas en modo no bloqueante: %m"
 
-#: postmaster/pgstat.c:547
+#: postmaster/pgstat.c:615
 #, c-format
 msgid "disabling statistics collector for lack of working socket"
 msgstr "desactivando el recolector de estadísticas por falla del socket"
 
-#: postmaster/pgstat.c:694
+#: postmaster/pgstat.c:762
 #, c-format
 msgid "could not fork statistics collector: %m"
 msgstr "no se pudo crear el proceso para el recolector de estadísticas: %m"
 
-#: postmaster/pgstat.c:1262
+#: postmaster/pgstat.c:1342
 #, c-format
 msgid "unrecognized reset target: \"%s\""
 msgstr "destino de reset no reconocido: «%s»"
 
-#: postmaster/pgstat.c:1263
+#: postmaster/pgstat.c:1343
 #, c-format
 msgid "Target must be \"archiver\" or \"bgwriter\"."
 msgstr "El destino debe ser «archiver» o «bgwriter»."
 
-#: postmaster/pgstat.c:3578
+#: postmaster/pgstat.c:4287
 #, c-format
 msgid "could not read statistics message: %m"
 msgstr "no se pudo leer un mensaje de estadísticas: %m"
 
-#: postmaster/pgstat.c:3909 postmaster/pgstat.c:4086
+#: postmaster/pgstat.c:4619 postmaster/pgstat.c:4776
 #, c-format
 msgid "could not open temporary statistics file \"%s\": %m"
 msgstr "no se pudo abrir el archivo temporal de estadísticas «%s»: %m"
 
-#: postmaster/pgstat.c:3977 postmaster/pgstat.c:4131
+#: postmaster/pgstat.c:4686 postmaster/pgstat.c:4821
 #, c-format
 msgid "could not write temporary statistics file \"%s\": %m"
 msgstr "no se pudo escribir el archivo temporal de estadísticas «%s»: %m"
 
-#: postmaster/pgstat.c:3986 postmaster/pgstat.c:4140
+#: postmaster/pgstat.c:4695 postmaster/pgstat.c:4830
 #, c-format
 msgid "could not close temporary statistics file \"%s\": %m"
 msgstr "no se pudo cerrar el archivo temporal de estadísticas «%s»: %m"
 
-#: postmaster/pgstat.c:3994 postmaster/pgstat.c:4148
+#: postmaster/pgstat.c:4703 postmaster/pgstat.c:4838
 #, 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"
 
-#: postmaster/pgstat.c:4230 postmaster/pgstat.c:4413 postmaster/pgstat.c:4568
+#: postmaster/pgstat.c:4927 postmaster/pgstat.c:5133 postmaster/pgstat.c:5286
 #, c-format
 msgid "could not open statistics file \"%s\": %m"
 msgstr "no se pudo abrir el archivo de estadísticas «%s»: %m"
 
-#: postmaster/pgstat.c:4242 postmaster/pgstat.c:4252 postmaster/pgstat.c:4262
-#: postmaster/pgstat.c:4283 postmaster/pgstat.c:4298 postmaster/pgstat.c:4354
-#: postmaster/pgstat.c:4425 postmaster/pgstat.c:4445 postmaster/pgstat.c:4463
-#: postmaster/pgstat.c:4479 postmaster/pgstat.c:4497 postmaster/pgstat.c:4513
-#: postmaster/pgstat.c:4580 postmaster/pgstat.c:4592 postmaster/pgstat.c:4604
-#: postmaster/pgstat.c:4629 postmaster/pgstat.c:4651
+#: postmaster/pgstat.c:4939 postmaster/pgstat.c:4949 postmaster/pgstat.c:4970
+#: postmaster/pgstat.c:4992 postmaster/pgstat.c:5007 postmaster/pgstat.c:5070
+#: postmaster/pgstat.c:5145 postmaster/pgstat.c:5165 postmaster/pgstat.c:5183
+#: postmaster/pgstat.c:5199 postmaster/pgstat.c:5217 postmaster/pgstat.c:5233
+#: postmaster/pgstat.c:5298 postmaster/pgstat.c:5310 postmaster/pgstat.c:5322
+#: postmaster/pgstat.c:5347 postmaster/pgstat.c:5369
 #, c-format
 msgid "corrupted statistics file \"%s\""
 msgstr "el archivo de estadísticas «%s» está corrupto"
 
-#: postmaster/pgstat.c:4768
+#: postmaster/pgstat.c:5498
 #, c-format
 msgid "using stale statistics instead of current ones because stats collector is not responding"
 msgstr "usando estadísticas añejas en vez de actualizadas porque el recolector de estadísticas no está respondiendo"
 
-#: postmaster/pgstat.c:5086
+#: postmaster/pgstat.c:5825
 #, c-format
 msgid "database hash table corrupted during cleanup --- abort"
 msgstr "el hash de bases de datos se corrompió durante la finalización; abortando"
 
-#: postmaster/postmaster.c:676
+#: postmaster/postmaster.c:710
 #, 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:762
+#: postmaster/postmaster.c:796
 #, 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:813
+#: postmaster/postmaster.c:847
 #, c-format
 msgid "%s: invalid argument: \"%s\"\n"
 msgstr "%s: argumento no válido: «%s»\n"
 
-#: postmaster/postmaster.c:848
+#: postmaster/postmaster.c:886
 #, c-format
 msgid "%s: superuser_reserved_connections must be less than max_connections\n"
 msgstr "%s: superuser_reserved_connections debe ser menor que max_connections\n"
 
-#: postmaster/postmaster.c:853
+#: postmaster/postmaster.c:891
 #, c-format
 msgid "%s: max_wal_senders must be less than max_connections\n"
 msgstr "%s: max_wal_senders debe ser menor que max_connections\n"
 
-#: postmaster/postmaster.c:858
+#: postmaster/postmaster.c:896
 #, c-format
 msgid "WAL archival cannot be enabled when wal_level is \"minimal\""
-msgstr ""
+msgstr "el archivador de WAL no puede activarse cuando wal_level es «minimal»"
 
-#: postmaster/postmaster.c:861
-#, fuzzy, c-format
-#| msgid "WAL streaming (max_wal_senders > 0) requires wal_level \"archive\", \"hot_standby\", or \"logical\""
+#: postmaster/postmaster.c:899
+#, 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 «archive» o «hot_standby» o «logical»"
+msgstr "el flujo de WAL (max_wal_senders > 0) requiere wal_level «replica» o «logical»"
 
-#: postmaster/postmaster.c:869
+#: postmaster/postmaster.c:907
 #, 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:961 postmaster/postmaster.c:1059
-#: utils/init/miscinit.c:1429
+#: postmaster/postmaster.c:1010 postmaster/postmaster.c:1108
+#: utils/init/miscinit.c:1455
 #, c-format
 msgid "invalid list syntax in parameter \"%s\""
 msgstr "la sintaxis de lista no es válida para el parámetro «%s»"
 
-#: postmaster/postmaster.c:992
+#: postmaster/postmaster.c:1041
 #, c-format
 msgid "could not create listen socket for \"%s\""
 msgstr "no se pudo crear el socket de escucha para «%s»"
 
-#: postmaster/postmaster.c:998
+#: postmaster/postmaster.c:1047
 #, c-format
 msgid "could not create any TCP/IP sockets"
 msgstr "no se pudo crear ningún socket TCP/IP"
 
-#: postmaster/postmaster.c:1081
+#: postmaster/postmaster.c:1130
 #, 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:1087
+#: postmaster/postmaster.c:1136
 #, c-format
 msgid "could not create any Unix-domain sockets"
 msgstr "no se pudo crear ningún socket de dominio Unix"
 
-#: postmaster/postmaster.c:1099
+#: postmaster/postmaster.c:1148
 #, c-format
 msgid "no socket created for listening"
 msgstr "no se creó el socket de atención"
 
-#: postmaster/postmaster.c:1139
+#: postmaster/postmaster.c:1188
 #, 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:1168
+#: postmaster/postmaster.c:1217
 #, 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"
 
-#: postmaster/postmaster.c:1172
+#: postmaster/postmaster.c:1221
 #, 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"
 
-#: postmaster/postmaster.c:1223
+#: postmaster/postmaster.c:1278
 #, c-format
 msgid "ending log output to stderr"
 msgstr "terminando la salida de registro a stderr"
 
-#: postmaster/postmaster.c:1224
+#: postmaster/postmaster.c:1279
 #, 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:1250 utils/init/postinit.c:214
+#: postmaster/postmaster.c:1305 utils/init/postinit.c:213
 #, c-format
 msgid "could not load pg_hba.conf"
 msgstr "no se pudo cargar pg_hba.conf"
 
-#: postmaster/postmaster.c:1276
+#: postmaster/postmaster.c:1331
 #, c-format
 msgid "postmaster became multithreaded during startup"
 msgstr "postmaster se volvió multi-hilo durante la partida"
 
-#: postmaster/postmaster.c:1277
+#: postmaster/postmaster.c:1332
 #, 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:1374
+#: postmaster/postmaster.c:1437
 #, c-format
 msgid "%s: could not locate matching postgres executable"
 msgstr "%s: no se pudo localizar el ejecutable postgres correspondiente"
 
-#: postmaster/postmaster.c:1397 utils/misc/tzparser.c:341
+#: postmaster/postmaster.c:1460 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:1425
+#: postmaster/postmaster.c:1488
 #, c-format
 msgid "data directory \"%s\" does not exist"
 msgstr "no existe el directorio de datos «%s»"
 
-#: postmaster/postmaster.c:1430
+#: postmaster/postmaster.c:1493
 #, c-format
 msgid "could not read permissions of directory \"%s\": %m"
 msgstr "no se pudo obtener los permisos del directorio «%s»: %m"
 
-#: postmaster/postmaster.c:1438
+#: postmaster/postmaster.c:1501
 #, c-format
 msgid "specified data directory \"%s\" is not a directory"
 msgstr "el directorio de datos especificado «%s» no es un directorio"
 
-#: postmaster/postmaster.c:1454
+#: postmaster/postmaster.c:1517
 #, c-format
 msgid "data directory \"%s\" has wrong ownership"
 msgstr "el directorio de datos «%s» tiene dueño equivocado"
 
-#: postmaster/postmaster.c:1456
+#: postmaster/postmaster.c:1519
 #, 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."
 
-#: postmaster/postmaster.c:1476
+#: postmaster/postmaster.c:1539
 #, c-format
 msgid "data directory \"%s\" has group or world access"
 msgstr "el directorio de datos «%s» tiene acceso para el grupo u otros"
 
-#: postmaster/postmaster.c:1478
+#: postmaster/postmaster.c:1541
 #, c-format
 msgid "Permissions should be u=rwx (0700)."
 msgstr "Los permisos deberían ser u=rwx (0700)."
 
-#: postmaster/postmaster.c:1489
+#: postmaster/postmaster.c:1552
 #, c-format
 msgid ""
 "%s: could not find the database system\n"
@@ -14869,597 +16150,673 @@ msgstr ""
 "Se esperaba encontrar en el directorio PGDATA «%s»,\n"
 "pero no se pudo abrir el archivo «%s»: %s\n"
 
-#: postmaster/postmaster.c:1666
+#: postmaster/postmaster.c:1729
 #, c-format
 msgid "select() failed in postmaster: %m"
 msgstr "select() falló en postmaster: %m"
 
-#: postmaster/postmaster.c:1816
+#: postmaster/postmaster.c:1884
 #, c-format
 msgid "performing immediate shutdown because data directory lock file is invalid"
-msgstr ""
+msgstr "ejecutando un apagado inmediato porque el archivo de bloqueo del directorio de datos no es válido"
 
-#: postmaster/postmaster.c:1894 postmaster/postmaster.c:1925
+#: postmaster/postmaster.c:1962 postmaster/postmaster.c:1993
 #, c-format
 msgid "incomplete startup packet"
 msgstr "el paquete de inicio está incompleto"
 
-#: postmaster/postmaster.c:1906
+#: postmaster/postmaster.c:1974
 #, c-format
 msgid "invalid length of startup packet"
 msgstr "el de paquete de inicio tiene largo incorrecto"
 
-#: postmaster/postmaster.c:1964
+#: postmaster/postmaster.c:2032
 #, c-format
 msgid "failed to send SSL negotiation response: %m"
 msgstr "no se pudo enviar la respuesta de negociación SSL: %m"
 
-#: postmaster/postmaster.c:1993
+#: postmaster/postmaster.c:2061
 #, 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"
 
-#: postmaster/postmaster.c:2056 utils/misc/guc.c:5657 utils/misc/guc.c:5750
-#: utils/misc/guc.c:7047 utils/misc/guc.c:9783 utils/misc/guc.c:9817
+#: postmaster/postmaster.c:2124 utils/misc/guc.c:5759 utils/misc/guc.c:5852
+#: utils/misc/guc.c:7153 utils/misc/guc.c:9907 utils/misc/guc.c:9941
 #, c-format
 msgid "invalid value for parameter \"%s\": \"%s\""
 msgstr "valor no válido para el parámetro «%s»: «%s»"
 
-#: postmaster/postmaster.c:2059
-#, fuzzy, c-format
-#| msgid "Valid values are: false, 0, true, 1, database."
+#: postmaster/postmaster.c:2127
+#, c-format
 msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"."
-msgstr "Los valores válidos son: false, 0, true, 1, database."
+msgstr "Los valores válidos son: «false», 0, «true», 1, «database»."
 
-#: postmaster/postmaster.c:2079
+#: postmaster/postmaster.c:2147
 #, 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:2107
+#: postmaster/postmaster.c:2175
 #, 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:2166
+#: postmaster/postmaster.c:2234
 #, c-format
 msgid "the database system is starting up"
 msgstr "el sistema de base de datos está iniciándose"
 
-#: postmaster/postmaster.c:2171
+#: postmaster/postmaster.c:2239
 #, c-format
 msgid "the database system is shutting down"
 msgstr "el sistema de base de datos está apagándose"
 
-#: postmaster/postmaster.c:2176
+#: postmaster/postmaster.c:2244
 #, 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:2181 storage/ipc/procarray.c:297
-#: storage/ipc/sinvaladt.c:298 storage/lmgr/proc.c:340
+#: postmaster/postmaster.c:2249 storage/ipc/procarray.c:291
+#: storage/ipc/sinvaladt.c:298 storage/lmgr/proc.c:338
 #, c-format
 msgid "sorry, too many clients already"
 msgstr "lo siento, ya tenemos demasiados clientes"
 
-#: postmaster/postmaster.c:2243
+#: postmaster/postmaster.c:2311
 #, 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:2251
+#: postmaster/postmaster.c:2319
 #, 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:2471
+#: postmaster/postmaster.c:2530
 #, c-format
 msgid "received SIGHUP, reloading configuration files"
 msgstr "se recibió SIGHUP, releyendo el archivo de configuración"
 
-#: postmaster/postmaster.c:2496
-#, c-format
-msgid "pg_hba.conf not reloaded"
+#: postmaster/postmaster.c:2555
+#, fuzzy, c-format
+msgid "pg_hba.conf was not reloaded"
 msgstr "pg_hba.conf no ha sido recargado"
 
-#: postmaster/postmaster.c:2500
-#, c-format
-msgid "pg_ident.conf not reloaded"
+#: postmaster/postmaster.c:2559
+#, fuzzy, c-format
+msgid "pg_ident.conf was not reloaded"
 msgstr "pg_ident.conf no ha sido recargado"
 
-#: postmaster/postmaster.c:2541
+#: postmaster/postmaster.c:2569
+#, fuzzy, c-format
+msgid "SSL configuration was not reloaded"
+msgstr "el parámetro de configuración de búsqueda en texto «%s» no es reconocido"
+
+#: postmaster/postmaster.c:2617
 #, c-format
 msgid "received smart shutdown request"
 msgstr "se recibió petición de apagado inteligente"
 
-#: postmaster/postmaster.c:2596
+#: postmaster/postmaster.c:2675
 #, c-format
 msgid "received fast shutdown request"
 msgstr "se recibió petición de apagado rápido"
 
-#: postmaster/postmaster.c:2625
+#: postmaster/postmaster.c:2708
 #, c-format
 msgid "aborting any active transactions"
 msgstr "abortando transacciones activas"
 
-#: postmaster/postmaster.c:2659
+#: postmaster/postmaster.c:2742
 #, c-format
 msgid "received immediate shutdown request"
 msgstr "se recibió petición de apagado inmediato"
 
-#: postmaster/postmaster.c:2723
+#: postmaster/postmaster.c:2809
 #, c-format
 msgid "shutdown at recovery target"
-msgstr ""
+msgstr "apagándose al alcanzar el destino de recuperación"
 
-#: postmaster/postmaster.c:2739 postmaster/postmaster.c:2762
+#: postmaster/postmaster.c:2825 postmaster/postmaster.c:2848
 msgid "startup process"
 msgstr "proceso de inicio"
 
-#: postmaster/postmaster.c:2742
+#: postmaster/postmaster.c:2828
 #, 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:2803
+#: postmaster/postmaster.c:2889
 #, 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:2822
+#: postmaster/postmaster.c:2910
 msgid "background writer process"
 msgstr "proceso background writer"
 
-#: postmaster/postmaster.c:2876
+#: postmaster/postmaster.c:2964
 msgid "checkpointer process"
 msgstr "proceso checkpointer"
 
-#: postmaster/postmaster.c:2892
+#: postmaster/postmaster.c:2980
 msgid "WAL writer process"
 msgstr "proceso escritor de WAL"
 
-#: postmaster/postmaster.c:2906
+#: postmaster/postmaster.c:2995
 msgid "WAL receiver process"
 msgstr "proceso receptor de WAL"
 
-#: postmaster/postmaster.c:2921
+#: postmaster/postmaster.c:3010
 msgid "autovacuum launcher process"
 msgstr "proceso lanzador de autovacuum"
 
-#: postmaster/postmaster.c:2936
+#: postmaster/postmaster.c:3025
 msgid "archiver process"
 msgstr "proceso de archivado"
 
-#: postmaster/postmaster.c:2952
+#: postmaster/postmaster.c:3041
 msgid "statistics collector process"
 msgstr "recolector de estadísticas"
 
-#: postmaster/postmaster.c:2966
+#: postmaster/postmaster.c:3055
 msgid "system logger process"
 msgstr "proceso de log"
 
-#: postmaster/postmaster.c:3028
+#: postmaster/postmaster.c:3117
 msgid "worker process"
 msgstr "proceso «background worker»"
 
-#: postmaster/postmaster.c:3111 postmaster/postmaster.c:3131
-#: postmaster/postmaster.c:3138 postmaster/postmaster.c:3156
+#: postmaster/postmaster.c:3200 postmaster/postmaster.c:3220
+#: postmaster/postmaster.c:3227 postmaster/postmaster.c:3245
 msgid "server process"
 msgstr "proceso de servidor"
 
-#: postmaster/postmaster.c:3210
+#: postmaster/postmaster.c:3299
 #, 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:3466
+#: postmaster/postmaster.c:3555
 #, 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:3468 postmaster/postmaster.c:3479
-#: postmaster/postmaster.c:3490 postmaster/postmaster.c:3499
-#: postmaster/postmaster.c:3509
+#: postmaster/postmaster.c:3557 postmaster/postmaster.c:3568
+#: postmaster/postmaster.c:3579 postmaster/postmaster.c:3588
+#: postmaster/postmaster.c:3598
 #, 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:3476
+#: postmaster/postmaster.c:3565
 #, 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:3486
+#: postmaster/postmaster.c:3575
 #, 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:3497
+#: postmaster/postmaster.c:3586
 #, c-format
 msgid "%s (PID %d) was terminated by signal %d"
 msgstr "%s (PID %d) fue terminado por una señal %d"
 
 #. translator: %s is a noun phrase describing a child process, such as
 #. "server process"
-#: postmaster/postmaster.c:3507
+#: postmaster/postmaster.c:3596
 #, c-format
 msgid "%s (PID %d) exited with unrecognized status %d"
 msgstr "%s (PID %d) terminó con código no reconocido %d"
 
-#: postmaster/postmaster.c:3694
+#: postmaster/postmaster.c:3783
 #, c-format
 msgid "abnormal database system shutdown"
 msgstr "apagado anormal del sistema de bases de datos"
 
-#: postmaster/postmaster.c:3734
+#: postmaster/postmaster.c:3823
 #, c-format
 msgid "all server processes terminated; reinitializing"
 msgstr "todos los procesos fueron terminados; reinicializando"
 
-#: postmaster/postmaster.c:3946
+#: postmaster/postmaster.c:3989 postmaster/postmaster.c:5392
+#: postmaster/postmaster.c:5756
+#, fuzzy, c-format
+msgid "could not generate random cancel key"
+msgstr "no se pudo generar un vector aleatorio de encriptación"
+
+#: postmaster/postmaster.c:4043
 #, 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:3988
+#: postmaster/postmaster.c:4085
 msgid "could not fork new process for connection: "
 msgstr "no se pudo lanzar el nuevo proceso para la conexión: "
 
-#: postmaster/postmaster.c:4102
+#: postmaster/postmaster.c:4199
 #, c-format
 msgid "connection received: host=%s port=%s"
 msgstr "conexión recibida: host=%s port=%s"
 
-#: postmaster/postmaster.c:4107
+#: postmaster/postmaster.c:4204
 #, c-format
 msgid "connection received: host=%s"
 msgstr "conexión recibida: host=%s"
 
-#: postmaster/postmaster.c:4390
+#: postmaster/postmaster.c:4489
 #, c-format
 msgid "could not execute server process \"%s\": %m"
 msgstr "no se pudo lanzar el proceso servidor «%s»: %m"
 
-#: postmaster/postmaster.c:4955
+#: postmaster/postmaster.c:4832
+#, c-format
+msgid "SSL configuration could not be loaded in child process"
+msgstr ""
+
+#: postmaster/postmaster.c:4964
+#, c-format
+msgid "Please report this to <pgsql-bugs@postgresql.org>."
+msgstr "Por favor reporte esto a <pgsql-bugs@postgresql.org>."
+
+#: postmaster/postmaster.c:5051
 #, 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:5242
+#: postmaster/postmaster.c:5320
 #, c-format
 msgid "could not fork startup process: %m"
 msgstr "no se pudo lanzar el proceso de inicio: %m"
 
-#: postmaster/postmaster.c:5246
+#: postmaster/postmaster.c:5324
 #, c-format
 msgid "could not fork background writer process: %m"
 msgstr "no se pudo lanzar el background writer: %m"
 
-#: postmaster/postmaster.c:5250
+#: postmaster/postmaster.c:5328
 #, c-format
 msgid "could not fork checkpointer process: %m"
 msgstr "no se pudo lanzar el checkpointer: %m"
 
-#: postmaster/postmaster.c:5254
+#: postmaster/postmaster.c:5332
 #, c-format
 msgid "could not fork WAL writer process: %m"
 msgstr "no se pudo lanzar el proceso escritor de WAL: %m"
 
-#: postmaster/postmaster.c:5258
+#: postmaster/postmaster.c:5336
 #, c-format
 msgid "could not fork WAL receiver process: %m"
 msgstr "no se pudo lanzar el proceso receptor de WAL: %m"
 
-#: postmaster/postmaster.c:5262
+#: postmaster/postmaster.c:5340
 #, c-format
 msgid "could not fork process: %m"
 msgstr "no se pudo lanzar el proceso: %m"
 
-#: postmaster/postmaster.c:5424 postmaster/postmaster.c:5447
+#: postmaster/postmaster.c:5527 postmaster/postmaster.c:5550
 #, 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:5431 postmaster/postmaster.c:5454
+#: postmaster/postmaster.c:5534 postmaster/postmaster.c:5557
 #, c-format
 msgid "invalid processing mode in background worker"
 msgstr "modo de procesamiento no válido en «background worker»"
 
-#: postmaster/postmaster.c:5506
+#: postmaster/postmaster.c:5629
 #, c-format
 msgid "starting background worker process \"%s\""
 msgstr "iniciando el proceso «background worker» «%s»"
 
-#: postmaster/postmaster.c:5517
+#: postmaster/postmaster.c:5641
 #, c-format
 msgid "could not fork worker process: %m"
 msgstr "no se pudo lanzar el proceso «background worker»: %m"
 
-#: postmaster/postmaster.c:5895
+#: postmaster/postmaster.c:6065
 #, 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:5927
+#: postmaster/postmaster.c:6097
 #, 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:5956
+#: postmaster/postmaster.c:6126
 #, 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:5963
+#: postmaster/postmaster.c:6133
 #, 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:5972
+#: postmaster/postmaster.c:6142
 #, c-format
 msgid "could not remove file \"%s\": %s\n"
 msgstr "no se pudo eliminar el archivo «%s»: %s\n"
 
-#: postmaster/postmaster.c:5989
+#: postmaster/postmaster.c:6159
 #, 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:5998
+#: postmaster/postmaster.c:6168
 #, 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:6005
+#: postmaster/postmaster.c:6175
 #, 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:6166
+#: postmaster/postmaster.c:6336
 #, 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:6171
+#: postmaster/postmaster.c:6341
 #, 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:441 postmaster/syslogger.c:1041
+#: postmaster/syslogger.c:452 postmaster/syslogger.c:1053
 #, 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:490
+#: postmaster/syslogger.c:502
 #, c-format
 msgid "logger shutting down"
 msgstr "apagando proceso de log"
 
-#: postmaster/syslogger.c:534 postmaster/syslogger.c:548
+#: postmaster/syslogger.c:546 postmaster/syslogger.c:560
 #, c-format
 msgid "could not create pipe for syslog: %m"
 msgstr "no se pudo crear la tubería para syslog: %m"
 
-#: postmaster/syslogger.c:584
+#: postmaster/syslogger.c:596
 #, c-format
 msgid "could not fork system logger: %m"
 msgstr "no se pudo crear el proceso de log: %m"
 
-#: postmaster/syslogger.c:620
+#: postmaster/syslogger.c:632
 #, c-format
 msgid "redirecting log output to logging collector process"
 msgstr "redirigiendo la salida del registro al proceso recolector de registro"
 
-#: postmaster/syslogger.c:621
+#: postmaster/syslogger.c:633
 #, 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:629
+#: postmaster/syslogger.c:641
 #, c-format
 msgid "could not redirect stdout: %m"
 msgstr "no se pudo redirigir stdout: %m"
 
-#: postmaster/syslogger.c:634 postmaster/syslogger.c:651
+#: postmaster/syslogger.c:646 postmaster/syslogger.c:663
 #, c-format
 msgid "could not redirect stderr: %m"
 msgstr "no se pudo redirigir stderr: %m"
 
-#: postmaster/syslogger.c:996
+#: postmaster/syslogger.c:1008
 #, c-format
 msgid "could not write to log file: %s\n"
 msgstr "no se pudo escribir al archivo de log: %s\n"
 
-#: postmaster/syslogger.c:1136
+#: postmaster/syslogger.c:1150
 #, c-format
 msgid "could not open log file \"%s\": %m"
 msgstr "no se pudo abrir el archivo de registro «%s»: %m"
 
-#: postmaster/syslogger.c:1198 postmaster/syslogger.c:1242
+#: postmaster/syslogger.c:1212 postmaster/syslogger.c:1256
 #, 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:261
+#: regex/regc_pg_locale.c:262
 #, 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"
 
-#: repl_gram.y:260 repl_gram.y:292
+#: repl_gram.y:320 repl_gram.y:352
 #, c-format
 msgid "invalid timeline %u"
 msgstr "timeline %u no válido"
 
-#: repl_scanner.l:120
+#: repl_scanner.l:125
 msgid "invalid streaming start location"
 msgstr "posición de inicio de flujo de WAL no válida"
 
-#: repl_scanner.l:171 scan.l:671
+#: repl_scanner.l:176 scan.l:670
 msgid "unterminated quoted string"
 msgstr "una cadena de caracteres entre comillas está inconclusa"
 
-#: repl_scanner.l:181
-#, c-format
-msgid "syntax error: unexpected character \"%s\""
-msgstr "error de sintaxis: carácter «%s» inesperado"
-
-#: replication/basebackup.c:230
+#: replication/basebackup.c:303
 #, c-format
 msgid "could not stat control file \"%s\": %m"
 msgstr "no se pudo hacer stat al archivo de control «%s»: %m"
 
-#: replication/basebackup.c:339
+#: replication/basebackup.c:412
 #, c-format
 msgid "could not find any WAL files"
 msgstr "no se pudo encontrar ningún archivo de WAL"
 
-#: replication/basebackup.c:352 replication/basebackup.c:366
-#: replication/basebackup.c:375
+#: replication/basebackup.c:425 replication/basebackup.c:439
+#: replication/basebackup.c:448
 #, c-format
 msgid "could not find WAL file \"%s\""
 msgstr "no se pudo encontrar archivo de WAL «%s»"
 
-#: replication/basebackup.c:414 replication/basebackup.c:440
+#: replication/basebackup.c:487 replication/basebackup.c:513
 #, c-format
 msgid "unexpected WAL file size \"%s\""
 msgstr "tamaño del archivo WAL «%s» inesperado"
 
-#: replication/basebackup.c:426 replication/basebackup.c:1172
+#: replication/basebackup.c:499 replication/basebackup.c:1228
 #, c-format
 msgid "base backup could not send data, aborting backup"
 msgstr "el respaldo base no pudo enviar datos, abortando el respaldo"
 
-#: replication/basebackup.c:528 replication/basebackup.c:537
-#: replication/basebackup.c:546 replication/basebackup.c:555
-#: replication/basebackup.c:564 replication/basebackup.c:575
-#: replication/basebackup.c:592
+#: replication/basebackup.c:601 replication/basebackup.c:610
+#: replication/basebackup.c:619 replication/basebackup.c:628
+#: replication/basebackup.c:637 replication/basebackup.c:648
+#: replication/basebackup.c:665
 #, c-format
 msgid "duplicate option \"%s\""
 msgstr "nombre de opción «%s» duplicada"
 
-#: replication/basebackup.c:581 utils/misc/guc.c:5667
+#: replication/basebackup.c:654 utils/misc/guc.c:5769
 #, 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)"
 
-#: replication/basebackup.c:855 replication/basebackup.c:957
+#: replication/basebackup.c:928 replication/basebackup.c:1025
 #, c-format
 msgid "could not stat file or directory \"%s\": %m"
 msgstr "no se pudo hacer stat al archivo o directorio «%s»: %m"
 
-#: replication/basebackup.c:1124
+#: replication/basebackup.c:1180
 #, c-format
 msgid "skipping special file \"%s\""
 msgstr "ignorando el archivo especial «%s»"
 
-#: replication/basebackup.c:1235
-#, fuzzy, c-format
+#: replication/basebackup.c:1293
+#, c-format
 msgid "file name too long for tar format: \"%s\""
-msgstr "el miembro de archivador «%s» es demasiado grande para el formato tar"
+msgstr "nombre de archivo demasiado largo para el formato tar: «%s»"
 
-#: replication/basebackup.c:1240
+#: replication/basebackup.c:1298
 #, c-format
 msgid "symbolic link target too long for tar format: file name \"%s\", target \"%s\""
-msgstr ""
+msgstr "destino de enlace simbólico demasiado largo para el formato tar: nombre de archivo «%s», destino «%s»"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:116
+#: replication/libpqwalreceiver/libpqwalreceiver.c:226
+#, fuzzy, c-format
+msgid "invalid connection string syntax: %s"
+msgstr "límite de conexión no válido: %d"
+
+#: replication/libpqwalreceiver/libpqwalreceiver.c:250
 #, c-format
-msgid "could not connect to the primary server: %s"
-msgstr "no se pudo hacer la conexión al servidor primario: %s"
+msgid "could not parse connection string: %s"
+msgstr "no se pudo interpretar la cadena de conexión: %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:140
+#: replication/libpqwalreceiver/libpqwalreceiver.c:300
 #, 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:151
-#: replication/libpqwalreceiver/libpqwalreceiver.c:305
+#: replication/libpqwalreceiver/libpqwalreceiver.c:311
+#: replication/libpqwalreceiver/libpqwalreceiver.c:518
 #, c-format
 msgid "invalid response from primary server"
 msgstr "respuesta no válida del servidor primario"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:152
+#: replication/libpqwalreceiver/libpqwalreceiver.c:312
 #, 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:168
-#, 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/libpqwalreceiver/libpqwalreceiver.c:169
-#, 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/libpqwalreceiver/libpqwalreceiver.c:211
+#: replication/libpqwalreceiver/libpqwalreceiver.c:378
+#: replication/libpqwalreceiver/libpqwalreceiver.c:384
+#: replication/libpqwalreceiver/libpqwalreceiver.c:409
 #, c-format
 msgid "could not start WAL streaming: %s"
 msgstr "no se pudo iniciar el flujo de WAL: %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:229
+#: replication/libpqwalreceiver/libpqwalreceiver.c:428
 #, 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:251
+#: replication/libpqwalreceiver/libpqwalreceiver.c:450
 #, 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:263
+#: replication/libpqwalreceiver/libpqwalreceiver.c:464
+#, fuzzy, c-format
+#| msgid "error reading result of streaming command: %s"
+msgid "error while shutting down streaming COPY: %s"
+msgstr "ocurrió un error mientras se leía la orden de flujo: %s"
+
+#: replication/libpqwalreceiver/libpqwalreceiver.c:473
 #, 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:271
+#: replication/libpqwalreceiver/libpqwalreceiver.c:481
+#: replication/libpqwalreceiver/libpqwalreceiver.c:709
 #, c-format
 msgid "unexpected result after CommandComplete: %s"
 msgstr "resultado inesperado después de CommandComplete: %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:294
+#: replication/libpqwalreceiver/libpqwalreceiver.c:507
 #, 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:306
+#: replication/libpqwalreceiver/libpqwalreceiver.c:519
 #, 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:334
-#, fuzzy, c-format
-#| msgid "invalid mask length: %d"
-msgid "invalid socket: %s"
-msgstr "largo de máscara no válido: %d"
-
-#: replication/libpqwalreceiver/libpqwalreceiver.c:374
-#: storage/ipc/latch.c:1271
-#, c-format
-msgid "select() failed: %m"
-msgstr "select() fallida: %m"
-
-#: replication/libpqwalreceiver/libpqwalreceiver.c:497
-#: replication/libpqwalreceiver/libpqwalreceiver.c:524
-#: replication/libpqwalreceiver/libpqwalreceiver.c:530
+#: replication/libpqwalreceiver/libpqwalreceiver.c:673
+#: replication/libpqwalreceiver/libpqwalreceiver.c:724
+#: replication/libpqwalreceiver/libpqwalreceiver.c:730
 #, 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:549
+#: replication/libpqwalreceiver/libpqwalreceiver.c:749
 #, 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:798
+#, fuzzy, c-format
+msgid "could not create replication slot \"%s\": %s"
+msgstr "no se pudo crear la configuración regional «%s»: %m"
+
+#: replication/libpqwalreceiver/libpqwalreceiver.c:832
+#, fuzzy, c-format
+msgid "invalid query response"
+msgstr "consulta no válido"
+
+#: replication/libpqwalreceiver/libpqwalreceiver.c:833
+#, fuzzy, c-format
+msgid "Expected %d fields, got %d fields."
+msgstr "Se esperaba 1 tupla con 2 campos, se obtuvieron %d tuplas con %d campos."
+
+#: replication/libpqwalreceiver/libpqwalreceiver.c:902
+#, fuzzy, c-format
+msgid "the query interface requires a database connection"
+msgstr "decodificación lógica requiere una conexión a una base de datos"
+
+#: replication/libpqwalreceiver/libpqwalreceiver.c:933
+msgid "empty query"
+msgstr ""
+
+#: replication/logical/launcher.c:268
+#, fuzzy, c-format
+msgid "starting logical replication worker for subscription \"%s\""
+msgstr "iniciando la decodificación lógica para el slot «%s»"
+
+#: replication/logical/launcher.c:275
+#, fuzzy, c-format
+msgid "cannot start logical replication workers when max_replication_slots = 0"
+msgstr "no se puede consultar o manipular orígenes de replicación cuando max_replication_slots = 0"
+
+#: replication/logical/launcher.c:355
+#, fuzzy, c-format
+msgid "out of logical replication worker slots"
+msgstr "la base de datos «%s» está siendo usada por un slot de replicación lógica"
+
+#: replication/logical/launcher.c:356
+#, fuzzy, c-format
+msgid "You might need to increase max_logical_replication_workers."
+msgstr "Puede ser necesario incrementar max_locks_per_transaction."
+
+#: replication/logical/launcher.c:401
+#, fuzzy, c-format
+msgid "out of background worker slots"
+msgstr "demasiados «background workers»"
+
+#: replication/logical/launcher.c:402
+#, fuzzy, c-format
+msgid "You might need to increase max_worker_processes."
+msgstr "Puede ser necesario incrementar max_locks_per_transaction."
+
+#: replication/logical/launcher.c:564
+#, c-format
+msgid "logical replication worker slot %d is empty, cannot attach"
+msgstr ""
+
+#: replication/logical/launcher.c:573
+#, c-format
+msgid "logical replication worker slot %d is already used by another worker, cannot attach"
+msgstr ""
+
+#: replication/logical/launcher.c:798
+#, fuzzy, c-format
+msgid "logical replication launcher started"
+msgstr "lanzador de autovacuum iniciado"
+
 # FIXME see slot.c:779.  See also  postmaster.c:835
 #: replication/logical/logical.c:83
 #, c-format
@@ -15476,865 +16833,1146 @@ msgstr "decodificación lógica requiere una conexión a una base de datos"
 msgid "logical decoding cannot be used while in recovery"
 msgstr "la decodificación lógica no puede ejecutarse durante la recuperación"
 
-#: replication/logical/logical.c:238 replication/logical/logical.c:350
+#: replication/logical/logical.c:243 replication/logical/logical.c:365
 #, 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:243 replication/logical/logical.c:355
+#: replication/logical/logical.c:248 replication/logical/logical.c:370
 #, 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:250
+#: replication/logical/logical.c:255
 #, 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:392
+#: replication/logical/logical.c:408
 #, c-format
 msgid "starting logical decoding for slot \"%s\""
 msgstr "iniciando la decodificación lógica para el slot «%s»"
 
-#: replication/logical/logical.c:394
+#: replication/logical/logical.c:410
 #, c-format
 msgid "streaming transactions committing after %X/%X, reading WAL from %X/%X"
 msgstr "enviando flujo de transacciones comprometidas después de %X/%X, leyendo WAL de %X/%X"
 
-#: replication/logical/logical.c:529
+#: replication/logical/logical.c:557
 #, 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:536
+#: replication/logical/logical.c:564
 #, 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/logicalfuncs.c:113 replication/slotfuncs.c:32
+#: replication/logical/logicalfuncs.c:114 replication/slotfuncs.c:32
 #, c-format
 msgid "must be superuser or replication role to use replication slots"
 msgstr "debe ser superusuario o rol de replicación para usar slots de replicación"
 
-#: replication/logical/logicalfuncs.c:152
-#, fuzzy, c-format
-#| msgid "field name must not be null"
+#: replication/logical/logicalfuncs.c:153
+#, c-format
 msgid "slot name must not be null"
-msgstr "el nombre de campo no debe ser null"
+msgstr "el nombre de slot no debe ser null"
 
-#: replication/logical/logicalfuncs.c:168
-#, fuzzy, c-format
-#| msgid "typmod array must not contain nulls"
+#: replication/logical/logicalfuncs.c:169
+#, c-format
 msgid "options array must not be null"
-msgstr "los arrays de typmod no deben contener valores nulos"
+msgstr "el array de opciones no debe ser null"
 
-#: replication/logical/logicalfuncs.c:199
+#: replication/logical/logicalfuncs.c:200
 #, c-format
 msgid "array must be one-dimensional"
 msgstr "el array debe ser unidimensional"
 
-#: replication/logical/logicalfuncs.c:205
+#: replication/logical/logicalfuncs.c:206
 #, c-format
 msgid "array must not contain nulls"
 msgstr "el array no debe contener nulls"
 
-#: replication/logical/logicalfuncs.c:221 utils/adt/json.c:2277
-#: utils/adt/jsonb.c:1356
+#: replication/logical/logicalfuncs.c:222 utils/adt/json.c:2282
+#: utils/adt/jsonb.c:1357
 #, 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:258
-#, fuzzy, c-format
-#| msgid "logical decoding output plugin \"%s\" produces binary output, but \"%s\" expects textual data"
+#: replication/logical/logicalfuncs.c:268
+#, 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:181
-#, fuzzy, c-format
+#: replication/logical/origin.c:180
+#, c-format
 msgid "only superusers can query or manipulate replication origins"
-msgstr "debe ser superusuario para alterar usuarios de replicación"
+msgstr "debe ser superusuario para consultar o manipular orígenes de replicación"
 
-#: replication/logical/origin.c:186
-#, fuzzy, c-format
+#: replication/logical/origin.c:185
+#, c-format
 msgid "cannot query or manipulate replication origin when max_replication_slots = 0"
-msgstr "no se puede usar un slot de replicación lógica para replicación física"
+msgstr "no se puede consultar o manipular orígenes de replicación cuando max_replication_slots = 0"
 
-#: replication/logical/origin.c:191
-#, fuzzy, c-format
+#: replication/logical/origin.c:190
+#, c-format
 msgid "cannot manipulate replication origins during recovery"
-msgstr "no se puede ejecutar %s durante la recuperación"
+msgstr "no se puede manipular orígenes de replicación durante la recuperación"
 
-#: replication/logical/origin.c:316
-#, fuzzy, c-format
-#| msgid "could not find parent extension for %s\n"
+#: replication/logical/origin.c:314
+#, c-format
 msgid "could not find free replication origin OID"
-msgstr "no se pudo encontrar la extensión padre para %s\n"
+msgstr "no se pudo encontrar un OID de origen de replicación libre"
 
-#: replication/logical/origin.c:353
+#: replication/logical/origin.c:351
 #, c-format
 msgid "could not drop replication origin with OID %d, in use by PID %d"
-msgstr ""
+msgstr "no se pudo eliminar el origen de replicación con OID %d, en uso por el PID %d"
 
-#: replication/logical/origin.c:671
-#, fuzzy, c-format
+#: replication/logical/origin.c:667
+#, c-format
 msgid "replication checkpoint has wrong magic %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"
+msgstr "el checkpoint de replicación tiene número mágico erróneo %u en lugar de %u"
 
-#: replication/logical/origin.c:703
-#, fuzzy, c-format
+#: replication/logical/origin.c:699
+#, c-format
 msgid "could not read file \"%s\": read %d of %zu"
-msgstr "no se pudo leer el archivo «%s», leídos %d de %u: %m"
+msgstr "no se pudo leer el archivo «%s»: leídos %d de %zu"
 
-#: replication/logical/origin.c:712
-#, fuzzy, c-format
+#: replication/logical/origin.c:708
+#, c-format
 msgid "could not find free replication state, increase max_replication_slots"
-msgstr "los slots de replicación sólo pueden usarse si max_replication_slots > 0"
+msgstr "no se pudo encontrar una estructura de replicación libre, incremente max_replication_slots"
 
-#: replication/logical/origin.c:730
-#, fuzzy, c-format
+#: replication/logical/origin.c:726
+#, c-format
 msgid "replication slot checkpoint has wrong checksum %u, expected %u"
-msgstr "el archivo de slot de replicación «%s» tiene número mágico erróneo %u en lugar de %u"
+msgstr "el checkpoint del slot de replicación tiene suma de verificación errónea %u, se esperaba %u"
 
-#: replication/logical/origin.c:854
-#, fuzzy, c-format
+#: replication/logical/origin.c:850
+#, c-format
 msgid "replication origin with OID %d is already active for PID %d"
-msgstr "el slot de replicación «%s» ya está activo"
+msgstr "el origen de replicación con OID %d ya está activo para el PID %d"
 
-#: replication/logical/origin.c:865 replication/logical/origin.c:1045
-#, fuzzy, c-format
+#: replication/logical/origin.c:861 replication/logical/origin.c:1041
+#, c-format
 msgid "could not find free replication state slot for replication origin with OID %u"
-msgstr "los slots de replicación sólo pueden usarse si max_replication_slots > 0"
+msgstr "no se pudo encontrar un slot libre para el estado del origen de replicación con OID %u"
 
-#: replication/logical/origin.c:867 replication/logical/origin.c:1047
-#: replication/slot.c:1288
+#: replication/logical/origin.c:863 replication/logical/origin.c:1043
+#: replication/slot.c:1448
 #, c-format
 msgid "Increase max_replication_slots and try again."
 msgstr "Aumente max_replication_slots y reintente."
 
-#: replication/logical/origin.c:1004
+#: replication/logical/origin.c:1000
 #, c-format
 msgid "cannot setup replication origin when one is already setup"
-msgstr ""
+msgstr "no se puede establecer un destino de replicación cuando ya hay uno definido"
 
-#: replication/logical/origin.c:1033
-#, fuzzy, c-format
+#: replication/logical/origin.c:1029
+#, c-format
 msgid "replication identifier %d is already active for PID %d"
-msgstr "el slot de replicación «%s» ya está activo"
+msgstr "el identificador de replicación %d ya está activo para el PID %d"
 
-#: replication/logical/origin.c:1079 replication/logical/origin.c:1274
-#: replication/logical/origin.c:1294
+#: replication/logical/origin.c:1075 replication/logical/origin.c:1270
+#: replication/logical/origin.c:1290
 #, c-format
 msgid "no replication origin is configured"
+msgstr "no hay un destino de replicación configurado"
+
+#: replication/logical/relation.c:259
+#, fuzzy, c-format
+msgid "logical replication target relation \"%s.%s\" does not exist"
+msgstr "no existe el slot de replicación «%s»"
+
+#: replication/logical/relation.c:297
+#, c-format
+msgid "logical replication target relation \"%s.%s\" is missing some replicated columns"
+msgstr ""
+
+#: replication/logical/relation.c:337
+#, c-format
+msgid "logical replication target relation \"%s.%s\" uses system columns in REPLICA IDENTITY index"
+msgstr ""
+
+#: replication/logical/relation.c:453
+#, fuzzy, c-format
+msgid "builtin type %u not found"
+msgstr "opción «%s» no encontrada"
+
+#: replication/logical/relation.c:454
+#, c-format
+msgid "This can be caused by having publisher with higher major version than subscriber"
 msgstr ""
 
-#: replication/logical/reorderbuffer.c:2322
+#: replication/logical/relation.c:486
+#, fuzzy, c-format
+msgid "data type \"%s.%s\" required for logical replication does not exist"
+msgstr "la base de datos «%s» está siendo usada por un slot de replicación lógica"
+
+#: replication/logical/reorderbuffer.c:2288
 #, 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:2418
-#: replication/logical/reorderbuffer.c:2438
+#: replication/logical/reorderbuffer.c:2387
+#: replication/logical/reorderbuffer.c:2409
 #, 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:2422
-#: replication/logical/reorderbuffer.c:2442
+#: replication/logical/reorderbuffer.c:2391
+#: replication/logical/reorderbuffer.c:2413
 #, 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"
 
 # FIXME almost duplicated again!?
-#: replication/logical/reorderbuffer.c:3097
+#: replication/logical/reorderbuffer.c:3071
 #, 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:612
+#, fuzzy, c-format
+msgid "initial slot snapshot too large"
+msgstr "el archivo «%s» es demasiado grande"
+
 # FIXME: snapshot? instantánea?
-#: replication/logical/snapbuild.c:600
+#: replication/logical/snapbuild.c:664
 #, 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:919 replication/logical/snapbuild.c:1284
-#: replication/logical/snapbuild.c:1815
+#: replication/logical/snapbuild.c:1262 replication/logical/snapbuild.c:1355
+#: replication/logical/snapbuild.c:1842
 #, 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:921
-#, c-format
-msgid "Transaction ID %u finished; no more running transactions."
-msgstr "La transacción de ID %u terminó: no hay más transacciones en ejecución."
-
-#: replication/logical/snapbuild.c:1286
+#: replication/logical/snapbuild.c:1264
 #, c-format
 msgid "There are no running transactions."
 msgstr "No hay transacciones en ejecución."
 
-#: replication/logical/snapbuild.c:1348
+#: replication/logical/snapbuild.c:1306
 #, 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:1350
+#: replication/logical/snapbuild.c:1308 replication/logical/snapbuild.c:1332
+#, 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:1330
+#, 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:1357
 #, c-format
-msgid "%u transaction needs to finish."
-msgid_plural "%u transactions need to finish."
-msgstr[0] "%u transacción debe terminar."
-msgstr[1] "%u transacciones deben terminar."
+msgid "There are no old transactions anymore."
+msgstr "Ya no hay transacciones antiguas en ejecución."
 
 # FIXME almost duplicated string
-#: replication/logical/snapbuild.c:1689 replication/logical/snapbuild.c:1715
-#: replication/logical/snapbuild.c:1729 replication/logical/snapbuild.c:1743
+#: replication/logical/snapbuild.c:1715 replication/logical/snapbuild.c:1743
+#: replication/logical/snapbuild.c:1760 replication/logical/snapbuild.c:1776
 #, c-format
 msgid "could not read file \"%s\", read %d of %d: %m"
 msgstr "no se pudo leer el archivo «%s», leídos %d de %d: %m"
 
 # FIXME "snapbuild"?
-#: replication/logical/snapbuild.c:1695
-#, fuzzy, c-format
-#| msgid "snapbuild state file \"%s\" has wrong magic %u instead of %u"
+#: replication/logical/snapbuild.c:1721
+#, 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"
+msgstr "el archivo de estado de snapbuild «%s» tiene número mágico erróneo: %u en lugar de %u"
 
-#: replication/logical/snapbuild.c:1700
-#, fuzzy, c-format
-#| msgid "snapbuild state file \"%s\" has unsupported version %u instead of %u"
+#: replication/logical/snapbuild.c:1726
+#, 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"
+msgstr "el archivo de estado de snapbuild «%s» tiene versión no soportada: %u en vez de %u"
 
-# FIXME must quote file name
-#: replication/logical/snapbuild.c:1756
-#, fuzzy, c-format
-#| msgid "snapbuild state file %s: checksum mismatch, is %u, should be %u"
+#: replication/logical/snapbuild.c:1789
+#, c-format
 msgid "checksum mismatch for snapbuild state file \"%s\": is %u, should be %u"
-msgstr "archivo de estado de snapbuild %s: suma de verificación no coincidente %u, debería ser %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:1817
+#: replication/logical/snapbuild.c:1844
 #, 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:1890
+#: replication/logical/snapbuild.c:1916
 #, c-format
 msgid "could not parse file name \"%s\""
 msgstr "no se pudo interpretar el nombre de archivo «%s»"
 
-#: replication/slot.c:183
-#, c-format
-msgid "replication slot name \"%s\" is too short"
-msgstr "el nombre de slot de replicación «%s» es demasiado corto"
+#: replication/logical/tablesync.c:138
+#, fuzzy, c-format
+msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has finished"
+msgstr "iniciando la decodificación lógica para el slot «%s»"
 
-#: replication/slot.c:192
-#, c-format
-msgid "replication slot name \"%s\" is too long"
-msgstr "el nombre de slot de replicación «%s» es demasiado largo"
+#: replication/logical/tablesync.c:685
+#, fuzzy, c-format
+msgid "could not fetch table info for table \"%s.%s\" from publisher: %s"
+msgstr "no se pudo recuperar el archivo «%s»: %s"
 
-#: replication/slot.c:205
+#: replication/logical/tablesync.c:691
 #, c-format
-msgid "replication slot name \"%s\" contains invalid character"
-msgstr "el nombre de slot de replicación «%s» contiene caracteres no válidos"
+msgid "table \"%s.%s\" not found on publisher"
+msgstr ""
+
+#: replication/logical/tablesync.c:721
+#, fuzzy, c-format
+msgid "could not fetch table info for table \"%s.%s\": %s"
+msgstr "no se pudo definir un junction para «%s»: %s"
+
+#: replication/logical/tablesync.c:791
+#, fuzzy, c-format
+msgid "could not start initial contents copy for table \"%s.%s\": %s"
+msgstr "no se pudo hacer stat al archivo de control «%s»: %m"
+
+#: replication/logical/tablesync.c:905
+#, fuzzy, c-format
+msgid "table copy could not start transaction on publisher"
+msgstr "no se pudo encontrar el estado de la transacción %u"
 
-#: replication/slot.c:207
+#: replication/logical/tablesync.c:925
 #, 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 «_»."
+msgid "table copy could not finish transaction on publisher"
+msgstr ""
 
-#: replication/slot.c:254
+#: replication/logical/worker.c:291
 #, c-format
-msgid "replication slot \"%s\" already exists"
-msgstr "el slot de replicación «%s» ya existe"
+msgid "processing remote data for replication target relation \"%s.%s\" column \"%s\", remote type %s, local type %s"
+msgstr ""
 
-#: replication/slot.c:264
+#: replication/logical/worker.c:500
 #, c-format
-msgid "all replication slots are in use"
-msgstr "todos los slots de replicación están en uso"
+msgid "ORIGIN message sent out of order"
+msgstr ""
 
-#: replication/slot.c:265
+#: replication/logical/worker.c:631
 #, c-format
-msgid "Free one or increase max_replication_slots."
-msgstr "Libere uno o incremente max_replication_slots."
+msgid "publisher does not send replica identity column expected by the logical replication target relation \"%s.%s\""
+msgstr ""
 
-#: replication/slot.c:351
+#: replication/logical/worker.c:638
 #, c-format
-msgid "replication slot \"%s\" does not exist"
-msgstr "no existe el slot de replicación «%s»"
+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/slot.c:355
+#: replication/logical/worker.c:845
 #, fuzzy, c-format
-msgid "replication slot \"%s\" is active for PID %d"
-msgstr "el slot de replicación «%s» ya está activo"
+msgid "logical replication could not find row for delete in replication target %s"
+msgstr "no se pudo encontrar un OID de origen de replicación libre"
 
-#: replication/slot.c:501 replication/slot.c:912 replication/slot.c:1249
-#, c-format
-msgid "could not remove directory \"%s\""
-msgstr "no se pudo eliminar el directorio «%s»"
+#: replication/logical/worker.c:912
+#, fuzzy, c-format
+msgid "invalid logical replication message type %c"
+msgstr "el tipo de mensaje de frontend %d no es válido"
 
-#: replication/slot.c:761
+#: replication/logical/worker.c:1053
 #, 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 "data stream from publisher has ended"
+msgstr ""
 
-# FIXME see logical.c:81
-#: replication/slot.c:766
+#: replication/logical/worker.c:1212
 #, fuzzy, c-format
-#| msgid "replication slots can only be used if wal_level >= archive"
-msgid "replication slots can only be used if wal_level >= replica"
-msgstr "los slots de replicación sólo pueden usarse si wal_level >= archive"
-
-#: replication/slot.c:1181 replication/slot.c:1219
-#, c-format
-msgid "could not read file \"%s\", read %d of %u: %m"
-msgstr "no se pudo leer el archivo «%s», leídos %d de %u: %m"
+msgid "terminating logical replication worker due to timeout"
+msgstr "terminando el proceso walreceiver debido a que se agotó el tiempo de espera"
 
-#: replication/slot.c:1190
+#: replication/logical/worker.c:1360
 #, fuzzy, c-format
-#| msgid "replication slot file \"%s\" has wrong magic %u instead of %u"
-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"
+msgid "logical replication apply worker for subscription \"%s\" will stop because the subscription was removed"
+msgstr "iniciando la decodificación lógica para el slot «%s»"
 
-#: replication/slot.c:1197
-#, 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/logical/worker.c:1374
+#, fuzzy, c-format
+msgid "logical replication apply worker for subscription \"%s\" will stop because the subscription was disabled"
+msgstr "iniciando la decodificación lógica para el slot «%s»"
 
-#: replication/slot.c:1204
+#: replication/logical/worker.c:1388
 #, c-format
-msgid "replication slot file \"%s\" has corrupted length %u"
-msgstr "el archivo de slot de replicación «%s» tiene largo corrupto %u"
+msgid "logical replication apply worker for subscription \"%s\" will restart because the connection information was changed"
+msgstr ""
 
-#: replication/slot.c:1234
+#: replication/logical/worker.c:1402
 #, fuzzy, c-format
-#| msgid "replication slot file %s: checksum mismatch, is %u, should be %u"
-msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u"
-msgstr "archivo de slot de replicación %s: suma de control no coincidente, es %u, debería ser %u"
-
-#: replication/slot.c:1287
-#, c-format
-msgid "too many replication slots active before shutdown"
-msgstr "demasiados slots de replicacion activos antes del apagado"
+msgid "logical replication apply worker for subscription \"%s\" will restart because subscription was renamed"
+msgstr "iniciando la decodificación lógica para el slot «%s»"
 
-#: replication/syncrep.c:228
+#: replication/logical/worker.c:1419
 #, 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"
+msgid "logical replication apply worker for subscription \"%s\" will restart because the replication slot name was changed"
+msgstr ""
 
-#: replication/syncrep.c:229 replication/syncrep.c:246
+#: replication/logical/worker.c:1433
 #, 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."
+msgid "logical replication apply worker for subscription \"%s\" will restart because subscription's publications were changed"
+msgstr ""
 
-#: replication/syncrep.c:245
+#: replication/logical/worker.c:1541
 #, 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"
+msgid "logical replication apply worker for subscription \"%s\" will not start because the subscription was disabled during startup"
+msgstr ""
 
-#: replication/syncrep.c:375
-#, c-format
-msgid "standby \"%s\" now has synchronous standby priority %u"
-msgstr "el standby «%s» ahora tiene prioridad sincrónica %u"
+#: replication/logical/worker.c:1555
+#, fuzzy, c-format
+msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started"
+msgstr "iniciando la decodificación lógica para el slot «%s»"
 
-#: replication/syncrep.c:435
+#: replication/logical/worker.c:1559
 #, fuzzy, c-format
-#| msgid "standby \"%s\" is now the synchronous standby with priority %u"
-msgid "standby \"%s\" is now a synchronous standby with priority %u"
-msgstr "el standby «%s» es ahora el standby sincrónico con prioridad %u"
+msgid "logical replication apply worker for subscription \"%s\" has started"
+msgstr "iniciando la decodificación lógica para el slot «%s»"
 
-#: replication/syncrep.c:928
+#: replication/logical/worker.c:1599
 #, c-format
-msgid "synchronous_standby_names parser failed"
+msgid "subscription has no replication slot set"
 msgstr ""
 
-#: replication/walreceiver.c:172
-#, c-format
-msgid "terminating walreceiver process due to administrator command"
-msgstr "terminando el proceso walreceiver debido a una orden del administrador"
+#: replication/pgoutput/pgoutput.c:113
+#, fuzzy, c-format
+msgid "invalid proto_version"
+msgstr "el nombre de opción «%s» no es válido"
 
-#: replication/walreceiver.c:324
-#, c-format
+#: replication/pgoutput/pgoutput.c:118
+#, fuzzy, c-format
+msgid "proto_verson \"%s\" out of range"
+msgstr "el huso horario numérico «%s» está fuera de rango"
+
+#: replication/pgoutput/pgoutput.c:135
+#, fuzzy, c-format
+msgid "invalid publication_names syntax"
+msgstr "la sintaxis de nombre no es válida"
+
+#: replication/pgoutput/pgoutput.c:179
+#, c-format
+msgid "client sent proto_version=%d but we only support protocol %d or lower"
+msgstr ""
+
+#: replication/pgoutput/pgoutput.c:185
+#, c-format
+msgid "client sent proto_version=%d but we only support protocol %d or higher"
+msgstr ""
+
+#: replication/pgoutput/pgoutput.c:191
+#, fuzzy, c-format
+msgid "publication_names parameter missing"
+msgstr "parámetro Dictionary duplicado"
+
+#: replication/slot.c:181
+#, 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:190
+#, 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:203
+#, 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:205
+#, 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:252
+#, c-format
+msgid "replication slot \"%s\" already exists"
+msgstr "el slot de replicación «%s» ya existe"
+
+#: replication/slot.c:262
+#, c-format
+msgid "all replication slots are in use"
+msgstr "todos los slots de replicación están en uso"
+
+#: replication/slot.c:263
+#, c-format
+msgid "Free one or increase max_replication_slots."
+msgstr "Libere uno o incremente max_replication_slots."
+
+#: replication/slot.c:357
+#, c-format
+msgid "replication slot \"%s\" does not exist"
+msgstr "no existe el slot de replicación «%s»"
+
+#: replication/slot.c:361 replication/slot.c:879
+#, 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:563 replication/slot.c:1060 replication/slot.c:1409
+#, c-format
+msgid "could not remove directory \"%s\""
+msgstr "no se pudo eliminar el directorio «%s»"
+
+#: replication/slot.c:909
+#, 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"
+
+# FIXME see logical.c:81
+#: replication/slot.c:914
+#, 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"
+
+#: replication/slot.c:1339 replication/slot.c:1379
+#, c-format
+msgid "could not read file \"%s\", read %d of %u: %m"
+msgstr "no se pudo leer el archivo «%s», leídos %d de %u: %m"
+
+#: replication/slot.c:1348
+#, 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:1355
+#, 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:1362
+#, 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:1394
+#, c-format
+msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u"
+msgstr "suma de verificación no coincidenete en archivo de slot de replicación «%s»: es %u, debería ser %u"
+
+#: replication/slot.c:1447
+#, c-format
+msgid "too many replication slots active before shutdown"
+msgstr "demasiados slots de replicacion activos antes del apagado"
+
+#: replication/syncrep.c:248
+#, 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:249 replication/syncrep.c:266
+#, 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:265
+#, 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:396
+#, c-format
+msgid "standby \"%s\" now has synchronous standby priority %u"
+msgstr "el standby «%s» ahora tiene prioridad sincrónica %u"
+
+#: replication/syncrep.c:457
+#, 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"
+
+#: replication/syncrep.c:461
+#, fuzzy, c-format
+msgid "standby \"%s\" is now a candidate for quorum synchronous standby"
+msgstr "el standby «%s» es ahora un standby sincrónico con prioridad %u"
+
+#: replication/syncrep.c:1152
+#, c-format
+msgid "synchronous_standby_names parser failed"
+msgstr "falló la interpretación de «synchronous_standby_names»"
+
+#: replication/syncrep.c:1158
+#, 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:168
+#, c-format
+msgid "terminating walreceiver process due to administrator command"
+msgstr "terminando el proceso walreceiver debido a una orden del administrador"
+
+#: replication/walreceiver.c:300
+#, c-format
+msgid "could not connect to the primary server: %s"
+msgstr "no se pudo hacer la conexión al servidor primario: %s"
+
+#: replication/walreceiver.c:339
+#, 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:340
+#, 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:351
+#, 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:357
+#: replication/walreceiver.c:387
 #, 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:362
+#: replication/walreceiver.c:392
 #, 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:391
+#: replication/walreceiver.c:421
 #, 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:428
+#: replication/walreceiver.c:458
 #, c-format
 msgid "replication terminated by primary server"
 msgstr "replicación terminada por el servidor primario"
 
-#: replication/walreceiver.c:429
+#: replication/walreceiver.c:459
 #, 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:523
+#: replication/walreceiver.c:554
 #, 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:563
+#: replication/walreceiver.c:594
 #, 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:578 replication/walreceiver.c:936
+#: replication/walreceiver.c:609 replication/walreceiver.c:968
 #, c-format
 msgid "could not close log segment %s: %m"
 msgstr "no se pudo cerrar archivo de segmento %s: %m"
 
-#: replication/walreceiver.c:702
+#: replication/walreceiver.c:734
 #, 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:990
+#: replication/walreceiver.c:1022
 #, c-format
 msgid "could not write to log segment %s at offset %u, length %lu: %m"
 msgstr "no se pudo escribir al segmento de log %s en la posición %u, largo %lu: %m"
 
-#: replication/walsender.c:485
+#: replication/walsender.c:490
 #, 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:536
+#: replication/walsender.c:531
+#, c-format
+msgid "IDENTIFY_SYSTEM has not been run before START_REPLICATION"
+msgstr ""
+
+#: replication/walsender.c:548
 #, 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:599
+#: replication/walsender.c:611
 #, 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:603
+#: replication/walsender.c:615
 #, 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:648
+#: replication/walsender.c:660
 #, 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:974
+#: replication/walsender.c:889
+#, fuzzy, c-format
+msgid "CREATE_REPLICATION_SLOT ... EXPORT_SNAPSHOT must not be called inside a transaction"
+msgstr "SET TRANSACTION ISOLATION LEVEL no debe ser llamado en una subtransacción"
+
+#: replication/walsender.c:898
+#, fuzzy, c-format
+msgid "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT must be called inside a transaction"
+msgstr "SET TRANSACTION ISOLATION LEVEL no debe ser llamado en una subtransacción"
+
+#: replication/walsender.c:903
+#, c-format
+msgid "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT must be called in REPEATABLE READ isolation mode transaction"
+msgstr ""
+
+#: replication/walsender.c:908
+#, fuzzy, c-format
+msgid "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT must be called before any query"
+msgstr "SET TRANSACTION SNAPSHOT debe ser llamado antes de cualquier consulta"
+
+#: replication/walsender.c:913
+#, fuzzy, c-format
+msgid "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT must not be called in a subtransaction"
+msgstr "SET TRANSACTION ISOLATION LEVEL no debe ser llamado en una subtransacción"
+
+#: replication/walsender.c:1059
 #, c-format
 msgid "terminating walsender process after promotion"
 msgstr "terminando el proceso walsender luego de la promoción"
 
-#: replication/walsender.c:1300
-#, fuzzy, c-format
+#: replication/walsender.c:1437
+#, c-format
+msgid "cannot execute new commands while WAL sender is in stopping mode"
+msgstr ""
+
+#: replication/walsender.c:1470
+#, c-format
 msgid "received replication command: %s"
-msgstr "La orden fallida era: «%s»"
+msgstr "se recibió orden de replicación: %s"
 
-#: replication/walsender.c:1393 replication/walsender.c:1409
+#: replication/walsender.c:1486 tcop/fastpath.c:281 tcop/postgres.c:997
+#: tcop/postgres.c:1307 tcop/postgres.c:1566 tcop/postgres.c:1971
+#: tcop/postgres.c:2339 tcop/postgres.c:2414
+#, 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:1548
+#, fuzzy, c-format
+msgid "not connected to database"
+msgstr "demasiadas conexiones para la base de datos «%s»"
+
+#: replication/walsender.c:1588 replication/walsender.c:1604
 #, c-format
 msgid "unexpected EOF on standby connection"
 msgstr "se encontró fin de archivo inesperado en la conexión standby"
 
-#: replication/walsender.c:1423
+#: replication/walsender.c:1618
 #, c-format
 msgid "unexpected standby message type \"%c\", after receiving CopyDone"
 msgstr "mensaje de standby de tipo «%c» inesperado, después de recibir CopyDone"
 
-#: replication/walsender.c:1461
+#: replication/walsender.c:1656
 #, c-format
 msgid "invalid standby message type \"%c\""
 msgstr "el tipo «%c» de mensaje del standby no es válido"
 
-#: replication/walsender.c:1502
+#: replication/walsender.c:1697
 #, c-format
 msgid "unexpected message type \"%c\""
 msgstr "mensaje de tipo «%c» inesperado"
 
-#: replication/walsender.c:1786
+#: replication/walsender.c:2067
 #, 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"
 
-#: replication/walsender.c:1879
+#: replication/walsender.c:2156
 #, c-format
 msgid "standby \"%s\" has now caught up with primary"
 msgstr "el standby «%s» ahora está actualizado respecto del primario"
 
-#: replication/walsender.c:1982
+#: replication/walsender.c:2263
 #, 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)"
 
-#: rewrite/rewriteDefine.c:112 rewrite/rewriteDefine.c:973
+#: rewrite/rewriteDefine.c:112 rewrite/rewriteDefine.c:981
 #, 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:297
+#: rewrite/rewriteDefine.c:296
 #, c-format
 msgid "rule actions on OLD are not implemented"
 msgstr "las acciones de regla en OLD no están implementadas"
 
-#: rewrite/rewriteDefine.c:298
+#: rewrite/rewriteDefine.c:297
 #, c-format
 msgid "Use views or triggers instead."
 msgstr "Use vistas o triggers en su lugar."
 
-#: rewrite/rewriteDefine.c:302
+#: rewrite/rewriteDefine.c:301
 #, c-format
 msgid "rule actions on NEW are not implemented"
 msgstr "las acciones de regla en NEW no están implementadas"
 
-#: rewrite/rewriteDefine.c:303
+#: rewrite/rewriteDefine.c:302
 #, c-format
 msgid "Use triggers instead."
 msgstr "Use triggers en su lugar."
 
-#: rewrite/rewriteDefine.c:316
+#: rewrite/rewriteDefine.c:315
 #, 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:317
+#: rewrite/rewriteDefine.c:316
 #, c-format
 msgid "Use views instead."
 msgstr "Use vistas en su lugar."
 
-#: rewrite/rewriteDefine.c:325
+#: rewrite/rewriteDefine.c:324
 #, 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:336
+#: rewrite/rewriteDefine.c:334
 #, 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:344
+#: rewrite/rewriteDefine.c:342
 #, 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:352
+#: rewrite/rewriteDefine.c:350
 #, 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:379
+#: rewrite/rewriteDefine.c:377
 #, c-format
 msgid "\"%s\" is already a view"
 msgstr "«%s» ya es una vista"
 
-#: rewrite/rewriteDefine.c:403
+#: rewrite/rewriteDefine.c:401
 #, c-format
 msgid "view rule for \"%s\" must be named \"%s\""
 msgstr "la regla de vista para «%s» debe llamarse «%s»"
 
-#: rewrite/rewriteDefine.c:432
+#: rewrite/rewriteDefine.c:428
+#, fuzzy, c-format
+msgid "could not convert partitioned table \"%s\" to a view"
+msgstr "no se pudo convertir la tabla «%s» en vista porque tiene índices"
+
+#: rewrite/rewriteDefine.c:434
+#, fuzzy, c-format
+msgid "could not convert partition \"%s\" to a view"
+msgstr "no se pudo convertir la tabla «%s» en vista porque tiene índices"
+
+#: rewrite/rewriteDefine.c:442
 #, c-format
 msgid "could not convert table \"%s\" to a view because it is not empty"
 msgstr "no se pudo convertir la tabla «%s» en vista porque no está vacía"
 
-#: rewrite/rewriteDefine.c:440
+#: rewrite/rewriteDefine.c:450
 #, c-format
 msgid "could not convert table \"%s\" to a view because it has triggers"
 msgstr "no se pudo convertir la tabla «%s» en vista porque tiene triggers"
 
-#: rewrite/rewriteDefine.c:442
+#: rewrite/rewriteDefine.c:452
 #, c-format
 msgid "In particular, the table cannot be involved in any foreign key relationships."
 msgstr "En particular, la tabla no puede estar involucrada en relaciones de llave foránea."
 
-#: rewrite/rewriteDefine.c:447
+#: rewrite/rewriteDefine.c:457
 #, c-format
 msgid "could not convert table \"%s\" to a view because it has indexes"
 msgstr "no se pudo convertir la tabla «%s» en vista porque tiene índices"
 
-#: rewrite/rewriteDefine.c:453
+#: rewrite/rewriteDefine.c:463
 #, c-format
 msgid "could not convert table \"%s\" to a view because it has child tables"
 msgstr "no se pudo convertir la tabla «%s» en vista porque tiene tablas hijas"
 
-#: rewrite/rewriteDefine.c:459
-#, fuzzy, c-format
+#: rewrite/rewriteDefine.c:469
+#, c-format
 msgid "could not convert table \"%s\" to a view because it has row security enabled"
-msgstr "no se pudo convertir la tabla «%s» en vista porque tiene tablas hijas"
+msgstr "no se pudo convertir la tabla «%s» en vista porque tiene seguridad de registros activada"
 
-#: rewrite/rewriteDefine.c:465
-#, fuzzy, c-format
+#: rewrite/rewriteDefine.c:475
+#, c-format
 msgid "could not convert table \"%s\" to a view because it has row security policies"
-msgstr "no se pudo convertir la tabla «%s» en vista porque tiene tablas hijas"
+msgstr "no se pudo convertir la tabla «%s» en vista porque tiene políticas de seguridad de registros"
 
-#: rewrite/rewriteDefine.c:492
+#: rewrite/rewriteDefine.c:502
 #, 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:497
+#: rewrite/rewriteDefine.c:507
 #, 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:501
+#: rewrite/rewriteDefine.c:511
 #, 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:667
+#: rewrite/rewriteDefine.c:676
 #, 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:668
+#: rewrite/rewriteDefine.c:677
 #, c-format
 msgid "RETURNING list has too many entries"
 msgstr "la lista de RETURNING tiene demasiadas entradas"
 
-#: rewrite/rewriteDefine.c:695
+#: rewrite/rewriteDefine.c:704
 #, 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:696
-#, fuzzy, c-format
-#| msgid "cannot convert relation containing dropped columns to view"
+#: rewrite/rewriteDefine.c:705
+#, c-format
 msgid "cannot create a RETURNING list for a relation containing dropped columns"
-msgstr "no se puede convertir en vista una relación que contiene columnas eliminadas"
+msgstr "no se puede crear una lista RETURNING para una relación que contiene columnas eliminadas"
 
-#: rewrite/rewriteDefine.c:702
+#: rewrite/rewriteDefine.c:711
 #, 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:704
+#: rewrite/rewriteDefine.c:713
 #, c-format
 msgid "SELECT target entry is named \"%s\"."
 msgstr "La entrada de destino de SELECT tiene nombre «%s»."
 
-#: rewrite/rewriteDefine.c:713
+#: rewrite/rewriteDefine.c:722
 #, 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:715
+#: rewrite/rewriteDefine.c:724
 #, 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:718 rewrite/rewriteDefine.c:742
+#: rewrite/rewriteDefine.c:727 rewrite/rewriteDefine.c:751
 #, 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:721 rewrite/rewriteDefine.c:746
+#: rewrite/rewriteDefine.c:730 rewrite/rewriteDefine.c:755
 #, 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:737
+#: rewrite/rewriteDefine.c:746
 #, 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:739
+#: rewrite/rewriteDefine.c:748
 #, 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:756
+#: rewrite/rewriteDefine.c:765
 #, 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:757
+#: rewrite/rewriteDefine.c:766
 #, c-format
 msgid "RETURNING list has too few entries"
 msgstr "la lista de RETURNING tiene muy pocas entradas"
 
-#: rewrite/rewriteDefine.c:849 rewrite/rewriteDefine.c:964
-#: rewrite/rewriteSupport.c:112
+#: rewrite/rewriteDefine.c:858 rewrite/rewriteDefine.c:972
+#: rewrite/rewriteSupport.c:109
 #, 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:983
+#: rewrite/rewriteDefine.c:991
 #, 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:528
+#: rewrite/rewriteHandler.c:543
 #, 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:588
+#: rewrite/rewriteHandler.c:603
 #, c-format
 msgid "cannot have RETURNING lists in multiple rules"
 msgstr "no se puede usar RETURNING en múltiples reglas"
 
-#: rewrite/rewriteHandler.c:928 rewrite/rewriteHandler.c:946
+#: rewrite/rewriteHandler.c:818
+#, fuzzy, c-format
+msgid "cannot insert into column \"%s\""
+msgstr "no se puede insertar en la vista «%s»"
+
+#: rewrite/rewriteHandler.c:819 rewrite/rewriteHandler.c:834
+#, c-format
+msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS."
+msgstr ""
+
+#: rewrite/rewriteHandler.c:821
+#, c-format
+msgid "Use OVERRIDING SYSTEM VALUE to override."
+msgstr ""
+
+#: rewrite/rewriteHandler.c:833
+#, fuzzy, c-format
+msgid "column \"%s\" can only be updated to DEFAULT"
+msgstr "la columna «%s» no puede ser declarada SETOF"
+
+#: rewrite/rewriteHandler.c:984 rewrite/rewriteHandler.c:1002
 #, c-format
 msgid "multiple assignments to same column \"%s\""
 msgstr "hay múltiples asignaciones a la misma columna «%s»"
 
-#: rewrite/rewriteHandler.c:1721 rewrite/rewriteHandler.c:3331
+#: rewrite/rewriteHandler.c:1778 rewrite/rewriteHandler.c:3400
 #, 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:1806
-#, fuzzy, c-format
+#: rewrite/rewriteHandler.c:1864
+#, c-format
 msgid "infinite recursion detected in policy for relation \"%s\""
-msgstr "se detectó recursión infinita en las reglas de la relación «%s»"
+msgstr "se detectó recursión infinita en la política para la relación «%s»"
 
-#: rewrite/rewriteHandler.c:2123
+#: rewrite/rewriteHandler.c:2181
 msgid "Junk view columns are not updatable."
 msgstr "Las columnas «basura» de vistas no son actualizables."
 
-#: rewrite/rewriteHandler.c:2128
+#: rewrite/rewriteHandler.c:2186
 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:2131
+#: rewrite/rewriteHandler.c:2189
 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:2134
+#: rewrite/rewriteHandler.c:2192
 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:2192
+#: rewrite/rewriteHandler.c:2250
 msgid "Views containing DISTINCT are not automatically updatable."
 msgstr "Las vistas que contienen DISTINCT no son automáticamente actualizables."
 
-#: rewrite/rewriteHandler.c:2195
+#: rewrite/rewriteHandler.c:2253
 msgid "Views containing GROUP BY are not automatically updatable."
 msgstr "Las vistas que contienen GROUP BY no son automáticamente actualizables."
 
-#: rewrite/rewriteHandler.c:2198
+#: rewrite/rewriteHandler.c:2256
 msgid "Views containing HAVING are not automatically updatable."
 msgstr "Las vistas que contienen HAVING no son automáticamente actualizables."
 
-#: rewrite/rewriteHandler.c:2201
+#: rewrite/rewriteHandler.c:2259
 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:2204
+#: rewrite/rewriteHandler.c:2262
 msgid "Views containing WITH are not automatically updatable."
 msgstr "Las vistas que contienen WITH no son automáticamente actualizables."
 
-#: rewrite/rewriteHandler.c:2207
+#: rewrite/rewriteHandler.c:2265
 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:2219
+#: rewrite/rewriteHandler.c:2277
 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:2222
+#: rewrite/rewriteHandler.c:2280
 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:2225
+#: rewrite/rewriteHandler.c:2283
 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:2232 rewrite/rewriteHandler.c:2236
-#: rewrite/rewriteHandler.c:2243
+#: rewrite/rewriteHandler.c:2290 rewrite/rewriteHandler.c:2294
+#: rewrite/rewriteHandler.c:2302
 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:2246
-#, fuzzy
+#: rewrite/rewriteHandler.c:2305
 msgid "Views containing TABLESAMPLE are not automatically updatable."
-msgstr "Las vistas que contienen WITH no son automáticamente actualizables."
+msgstr "Las vistas que contienen TABLESAMPLE no son automáticamente actualizables."
 
-#: rewrite/rewriteHandler.c:2270
+#: rewrite/rewriteHandler.c:2329
 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:2724
+#: rewrite/rewriteHandler.c:2783
 #, 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:2732
+#: rewrite/rewriteHandler.c:2791
 #, c-format
 msgid "cannot update column \"%s\" of view \"%s\""
 msgstr "no se puede actualizar la columna «%s» vista «%s»"
 
-#: rewrite/rewriteHandler.c:3130
+#: rewrite/rewriteHandler.c:3194
 #, 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:3144
+#: rewrite/rewriteHandler.c:3208
 #, 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:3148
+#: rewrite/rewriteHandler.c:3212
 #, 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:3153
+#: rewrite/rewriteHandler.c:3217
 #, 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"
 
-#: rewrite/rewriteHandler.c:3368
+#: rewrite/rewriteHandler.c:3437
 #, 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:3370
+#: rewrite/rewriteHandler.c:3439
 #, 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:3375
+#: rewrite/rewriteHandler.c:3444
 #, 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:3377
+#: rewrite/rewriteHandler.c:3446
 #, 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:3382
+#: rewrite/rewriteHandler.c:3451
 #, 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:3384
+#: rewrite/rewriteHandler.c:3453
 #, 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:3402
+#: rewrite/rewriteHandler.c:3471
 #, c-format
 msgid "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or UPDATE rules"
-msgstr ""
+msgstr "INSERT con una cláusula ON CONFLICT no puede usarse con una tabla que tiene reglas INSERT o UPDATE"
 
-#: rewrite/rewriteHandler.c:3459
+#: rewrite/rewriteHandler.c:3528
 #, 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"
@@ -16352,136 +17990,121 @@ msgstr "WHERE CURRENT OF no está implementado en una vista"
 #: rewrite/rewriteManip.c:1434
 #, 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 ""
-
-#: rewrite/rewriteSupport.c:154
-#, c-format
-msgid "rule \"%s\" does not exist"
-msgstr "no existe la regla «%s»"
-
-#: rewrite/rewriteSupport.c:167
-#, c-format
-msgid "there are multiple rules named \"%s\""
-msgstr "hay múltiples reglas llamadas «%s»"
-
-#: rewrite/rewriteSupport.c:168
-#, c-format
-msgid "Specify a relation name as well as a rule name."
-msgstr "Especifique un nombre de relación además del nombre de regla."
+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"
 
-#: scan.l:433
+#: scan.l:432
 msgid "unterminated /* comment"
 msgstr "un comentario /* está inconcluso"
 
-#: scan.l:462
+#: scan.l:461
 msgid "unterminated bit string literal"
 msgstr "una cadena de bits está inconclusa"
 
-#: scan.l:483
+#: scan.l:482
 msgid "unterminated hexadecimal string literal"
 msgstr "una cadena hexadecimal está inconclusa"
 
-#: scan.l:533
+#: scan.l:532
 #, c-format
 msgid "unsafe use of string constant with Unicode escapes"
 msgstr "uso inseguro de literal de cadena con escapes Unicode"
 
-#: scan.l:534
+#: scan.l:533
 #, 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."
 
-#: scan.l:580 scan.l:779
+#: scan.l:579 scan.l:778
 msgid "invalid Unicode escape character"
 msgstr "carácter de escape Unicode no válido"
 
-#: scan.l:606 scan.l:614 scan.l:622 scan.l:623 scan.l:624 scan.l:1338
-#: scan.l:1365 scan.l:1369 scan.l:1407 scan.l:1411 scan.l:1433
+#: scan.l:605 scan.l:613 scan.l:621 scan.l:622 scan.l:623 scan.l:1337
+#: scan.l:1364 scan.l:1368 scan.l:1406 scan.l:1410 scan.l:1432 scan.l:1442
 msgid "invalid Unicode surrogate pair"
 msgstr "par sustituto (surrogate) Unicode no válido"
 
-#: scan.l:628
+#: scan.l:627
 #, c-format
 msgid "invalid Unicode escape"
 msgstr "valor de escape Unicode no válido"
 
-#: scan.l:629
+#: scan.l:628
 #, c-format
 msgid "Unicode escapes must be \\uXXXX or \\UXXXXXXXX."
 msgstr "Los escapes Unicode deben ser \\uXXXX o \\UXXXXXXXX."
 
-#: scan.l:640
+#: scan.l:639
 #, c-format
 msgid "unsafe use of \\' in a string literal"
 msgstr "uso inseguro de \\' en un literal de cadena"
 
-#: scan.l:641
+#: scan.l:640
 #, 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:716
+#: scan.l:715
 msgid "unterminated dollar-quoted string"
 msgstr "una cadena separada por $ está inconclusa"
 
-#: scan.l:733 scan.l:759 scan.l:774
+#: scan.l:732 scan.l:758 scan.l:773
 msgid "zero-length delimited identifier"
 msgstr "un identificador delimitado tiene largo cero"
 
-#: scan.l:794 syncrep_scanner.l:84
+#: scan.l:793 syncrep_scanner.l:89
 msgid "unterminated quoted identifier"
 msgstr "un identificador entre comillas está inconcluso"
 
-#: scan.l:925
+#: scan.l:924
 msgid "operator too long"
 msgstr "el operador es demasiado largo"
 
 #. translator: %s is typically the translation of "syntax error"
-#: scan.l:1078
+#: scan.l:1077
 #, 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:1086
+#: scan.l:1085
 #, c-format
 msgid "%s at or near \"%s\""
 msgstr "%s en o cerca de «%s»"
 
-#: scan.l:1252 scan.l:1284
+#: scan.l:1251 scan.l:1283
 msgid "Unicode escape values cannot be used for code point values above 007F when the server encoding is not UTF8"
 msgstr "Los valores de escape Unicode no puede ser usados para valores de «code point» sobre 007F cuando la codificación de servidor no es UTF8"
 
-#: scan.l:1280 scan.l:1425
+#: scan.l:1279 scan.l:1424
 msgid "invalid Unicode escape value"
 msgstr "valor de escape Unicode no válido"
 
-#: scan.l:1482
+#: scan.l:1488
 #, c-format
 msgid "nonstandard use of \\' in a string literal"
 msgstr "uso no estandar de \\' en un literal de cadena"
 
-#: scan.l:1483
+#: scan.l:1489
 #, 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:1492
+#: scan.l:1498
 #, c-format
 msgid "nonstandard use of \\\\ in a string literal"
 msgstr "uso no estandar de \\\\ en un literal de cadena"
 
-#: scan.l:1493
+#: scan.l:1499
 #, 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:1507
+#: scan.l:1513
 #, c-format
 msgid "nonstandard use of escape in a string literal"
 msgstr "uso no estandar de escape en un literal de cadena"
 
-#: scan.l:1508
+#: scan.l:1514
 #, 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'."
@@ -16491,8 +18114,8 @@ msgstr "Use la sintaxis de escape para cadenas, por ej. E'\\r\\n'."
 msgid "no Snowball stemmer available for language \"%s\" and encoding \"%s\""
 msgstr "no se encontró un analizador Snowball para el lenguaje «%s» y la codificación «%s»"
 
-#: snowball/dict_snowball.c:200 tsearch/dict_ispell.c:73
-#: tsearch/dict_simple.c:48
+#: snowball/dict_snowball.c:200 tsearch/dict_ispell.c:74
+#: tsearch/dict_simple.c:49
 #, c-format
 msgid "multiple StopWords parameters"
 msgstr "parámetro StopWords duplicado"
@@ -16512,6 +18135,47 @@ msgstr "parámetro Snowball no reconocido: «%s»"
 msgid "missing Language parameter"
 msgstr "falta un parámetro Language"
 
+#: statistics/dependencies.c:542
+#, c-format
+msgid "invalid zero-length item array in MVDependencies"
+msgstr ""
+
+#: statistics/dependencies.c:673 statistics/dependencies.c:726
+#: statistics/mvdistinct.c:338 statistics/mvdistinct.c:391
+#: utils/adt/pseudotypes.c:94 utils/adt/pseudotypes.c:122
+#: utils/adt/pseudotypes.c:147 utils/adt/pseudotypes.c:171
+#: utils/adt/pseudotypes.c:282 utils/adt/pseudotypes.c:307
+#: utils/adt/pseudotypes.c:335 utils/adt/pseudotypes.c:363
+#: utils/adt/pseudotypes.c:393
+#, c-format
+msgid "cannot accept a value of type %s"
+msgstr "no se puede aceptar un valor de tipo %s"
+
+#: statistics/extended_stats.c:102
+#, fuzzy, c-format
+msgid "statistics object \"%s.%s\" could not be computed for relation \"%s.%s\""
+msgstr "el rol «%s» no pudo ser eliminado de la política «%s» en «%s»"
+
+#: statistics/mvdistinct.c:259
+#, c-format
+msgid "invalid ndistinct magic %08x (expected %08x)"
+msgstr ""
+
+#: statistics/mvdistinct.c:264
+#, fuzzy, c-format
+msgid "invalid ndistinct type %d (expected %d)"
+msgstr "tipo de dato erróneo: %u, se esperaba %u"
+
+#: statistics/mvdistinct.c:269
+#, fuzzy, c-format
+msgid "invalid zero-length item array in MVNDistinct"
+msgstr "el largo largo no es válido en cadena de bits externa"
+
+#: statistics/mvdistinct.c:278
+#, c-format
+msgid "invalid MVNDistinct size %zd (expected at least %zd)"
+msgstr ""
+
 #: storage/buffer/bufmgr.c:544 storage/buffer/bufmgr.c:657
 #, c-format
 msgid "cannot access temporary tables of other sessions"
@@ -16532,164 +18196,165 @@ msgstr "Esto parece ocurrir sólo con kernels defectuosos; considere actualizar
 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:3952
+#: storage/buffer/bufmgr.c:4013
 #, c-format
 msgid "could not write block %u of %s"
 msgstr "no se pudo escribir el bloque %u de %s"
 
-#: storage/buffer/bufmgr.c:3954
+#: storage/buffer/bufmgr.c:4015
 #, 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:3975 storage/buffer/bufmgr.c:3994
+#: storage/buffer/bufmgr.c:4036 storage/buffer/bufmgr.c:4055
 #, c-format
 msgid "writing block %u of relation %s"
 msgstr "escribiendo el bloque %u de la relación %s"
 
-#: storage/buffer/bufmgr.c:4298
-#, fuzzy, c-format
-#| msgid "snapshot_id"
+#: storage/buffer/bufmgr.c:4356
+#, c-format
 msgid "snapshot too old"
-msgstr "id_de_snapshot"
+msgstr "snapshot demasiado antiguo"
 
-#: storage/buffer/localbuf.c:198
+#: storage/buffer/localbuf.c:199
 #, c-format
 msgid "no empty local buffer available"
 msgstr "no hay ningún búfer local disponible"
 
-#: storage/file/fd.c:436 storage/file/fd.c:508 storage/file/fd.c:544
-#, fuzzy, c-format
-#| msgid "could not redirect stdout: %m"
+#: storage/buffer/localbuf.c:427
+#, c-format
+msgid "cannot access temporary tables during a parallel operation"
+msgstr "no se pueden acceder tablas temporales durante una operación paralela"
+
+#: storage/file/fd.c:443 storage/file/fd.c:515 storage/file/fd.c:551
+#, c-format
 msgid "could not flush dirty data: %m"
-msgstr "no se pudo redirigir stdout: %m"
+msgstr "no se pudo sincronizar (flush) datos «sucios»: %m"
 
-#: storage/file/fd.c:466
-#, fuzzy, c-format
-#| msgid "could not determine input data type"
+#: storage/file/fd.c:473
+#, c-format
 msgid "could not determine dirty data size: %m"
-msgstr "no se pudo determinar el tipo de dato de entrada"
+msgstr "no se pudo determinar el tamaño de los datos «sucios»: %m"
 
-#: storage/file/fd.c:518
-#, fuzzy, c-format
-#| msgid "could not uncompress data: %s\n"
+#: storage/file/fd.c:525
+#, c-format
 msgid "could not munmap() while flushing data: %m"
-msgstr "no se pudo descomprimir datos: %s\n"
+msgstr "no se pudo ejecutar munmap() mientras se sincronizaban (flush) datos: %m"
 
-#: storage/file/fd.c:682
+#: storage/file/fd.c:726
 #, c-format
 msgid "could not link file \"%s\" to \"%s\": %m"
 msgstr "no se pudo enlazar (link) el archivo «%s» a «%s»: %m"
 
-#: storage/file/fd.c:776
+#: storage/file/fd.c:820
 #, c-format
 msgid "getrlimit failed: %m"
 msgstr "getrlimit falló: %m"
 
-#: storage/file/fd.c:866
+#: storage/file/fd.c:910
 #, 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:867
+#: storage/file/fd.c:911
 #, c-format
 msgid "System allows %d, we need at least %d."
 msgstr "El sistema permite %d, se requieren al menos %d."
 
-#: storage/file/fd.c:908 storage/file/fd.c:2001 storage/file/fd.c:2094
-#: storage/file/fd.c:2242
+#: storage/file/fd.c:952 storage/file/fd.c:2129 storage/file/fd.c:2222
+#: storage/file/fd.c:2370
 #, 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:1482
+#: storage/file/fd.c:1557
 #, c-format
 msgid "temporary file: path \"%s\", size %lu"
 msgstr "archivo temporal: ruta «%s», tamaño %lu"
 
-#: storage/file/fd.c:1656
+#: storage/file/fd.c:1760
 #, 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:1977 storage/file/fd.c:2027
+#: storage/file/fd.c:2105 storage/file/fd.c:2155
 #, 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:2067
+#: storage/file/fd.c:2195
 #, 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:2218
+#: storage/file/fd.c:2346
 #, 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:2304
+#: storage/file/fd.c:2432 utils/adt/genfile.c:511
 #, c-format
 msgid "could not read directory \"%s\": %m"
 msgstr "no se pudo leer el directorio «%s»: %m"
 
-#: storage/ipc/dsm.c:363
+#: storage/ipc/dsm.c:364
 #, 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:410
+#: storage/ipc/dsm.c:411
 #, c-format
 msgid "dynamic shared memory is disabled"
 msgstr "la memoria compartida dinámica está deshabilitada"
 
-#: storage/ipc/dsm.c:411
+#: storage/ipc/dsm.c:412
 #, c-format
 msgid "Set dynamic_shared_memory_type to a value other than \"none\"."
 msgstr "Defina dynamic_shared_memory_type a un valor distinto de «none»."
 
-#: storage/ipc/dsm.c:431
+#: storage/ipc/dsm.c:432
 #, 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:516
+#: storage/ipc/dsm.c:528
 #, c-format
 msgid "too many dynamic shared memory segments"
 msgstr "demasiados segmentos de memoria compartida dinámica"
 
 #: storage/ipc/dsm_impl.c:261 storage/ipc/dsm_impl.c:361
 #: storage/ipc/dsm_impl.c:533 storage/ipc/dsm_impl.c:648
-#: storage/ipc/dsm_impl.c:811 storage/ipc/dsm_impl.c:953
+#: storage/ipc/dsm_impl.c:819 storage/ipc/dsm_impl.c:963
 #, c-format
 msgid "could not unmap shared memory segment \"%s\": %m"
 msgstr "no se pudo desmapear el segmento de memoria compartida «%s»: %m"
 
 #: storage/ipc/dsm_impl.c:271 storage/ipc/dsm_impl.c:543
-#: storage/ipc/dsm_impl.c:658 storage/ipc/dsm_impl.c:821
+#: storage/ipc/dsm_impl.c:658 storage/ipc/dsm_impl.c:829
 #, c-format
 msgid "could not remove shared memory segment \"%s\": %m"
 msgstr "no se pudo eliminar el segmento de memoria compartida «%s»: %m"
 
-#: storage/ipc/dsm_impl.c:292 storage/ipc/dsm_impl.c:721
-#: storage/ipc/dsm_impl.c:835
+#: storage/ipc/dsm_impl.c:292 storage/ipc/dsm_impl.c:729
+#: storage/ipc/dsm_impl.c:843
 #, c-format
 msgid "could not open shared memory segment \"%s\": %m"
 msgstr "no se pudo abrir el segmento de memoria compartida «%s»: %m"
 
 #: storage/ipc/dsm_impl.c:316 storage/ipc/dsm_impl.c:559
-#: storage/ipc/dsm_impl.c:766 storage/ipc/dsm_impl.c:859
+#: storage/ipc/dsm_impl.c:774 storage/ipc/dsm_impl.c:867
 #, c-format
 msgid "could not stat shared memory segment \"%s\": %m"
 msgstr "no se pudo hacer stat del segmento de memoria compartida «%s»: %m"
 
-#: storage/ipc/dsm_impl.c:335 storage/ipc/dsm_impl.c:878
-#: storage/ipc/dsm_impl.c:926
+#: storage/ipc/dsm_impl.c:335 storage/ipc/dsm_impl.c:886
+#: storage/ipc/dsm_impl.c:936
 #, c-format
 msgid "could not resize shared memory segment \"%s\" to %zu bytes: %m"
 msgstr "no se pudo redimensionar el segmento de memoria compartida «%s» a %zu bytes: %m"
 
 #: storage/ipc/dsm_impl.c:385 storage/ipc/dsm_impl.c:580
-#: storage/ipc/dsm_impl.c:742 storage/ipc/dsm_impl.c:977
+#: storage/ipc/dsm_impl.c:750 storage/ipc/dsm_impl.c:987
 #, c-format
 msgid "could not map shared memory segment \"%s\": %m"
 msgstr "no se pudo mapear el segmento de memoria compartida «%s»: %m"
@@ -16699,69 +18364,72 @@ msgstr "no se pudo mapear el segmento de memoria compartida «%s»: %m"
 msgid "could not get shared memory segment: %m"
 msgstr "no se pudo obtener el segmento de memoria compartida: %m"
 
-#: storage/ipc/dsm_impl.c:694
+#: storage/ipc/dsm_impl.c:714
 #, c-format
 msgid "could not create shared memory segment \"%s\": %m"
 msgstr "no se pudo crear el segmento de memoria compartida «%s»: %m"
 
-#: storage/ipc/dsm_impl.c:1018
+#: storage/ipc/dsm_impl.c:1029 storage/ipc/dsm_impl.c:1077
 #, c-format
 msgid "could not duplicate handle for \"%s\": %m"
 msgstr "no se pudo duplicar el «handle» para «%s»: %m"
 
-#: storage/ipc/latch.c:769
-#, fuzzy, c-format
-#| msgid "poll() failed: %m"
+#: storage/ipc/latch.c:828
+#, c-format
 msgid "epoll_ctl() failed: %m"
-msgstr "poll() fallida: %m"
+msgstr "epoll_ctl() fallida: %m"
 
-#: storage/ipc/latch.c:993
-#, fuzzy, c-format
-#| msgid "poll() failed: %m"
+#: storage/ipc/latch.c:1057
+#, c-format
 msgid "epoll_wait() failed: %m"
-msgstr "poll() fallida: %m"
+msgstr "epoll_wait() fallida: %m"
 
-#: storage/ipc/latch.c:1113
+#: storage/ipc/latch.c:1179
 #, c-format
 msgid "poll() failed: %m"
 msgstr "poll() fallida: %m"
 
-#: storage/ipc/shm_toc.c:108 storage/ipc/shm_toc.c:189 storage/ipc/shmem.c:212
-#: storage/lmgr/lock.c:883 storage/lmgr/lock.c:917 storage/lmgr/lock.c:2682
-#: storage/lmgr/lock.c:4007 storage/lmgr/lock.c:4072 storage/lmgr/lock.c:4364
-#: storage/lmgr/predicate.c:2329 storage/lmgr/predicate.c:2344
-#: storage/lmgr/predicate.c:3736 storage/lmgr/predicate.c:4879
-#: storage/lmgr/proc.c:203 utils/hash/dynahash.c:1045
+#: storage/ipc/shm_toc.c:108 storage/ipc/shm_toc.c:190 storage/lmgr/lock.c:883
+#: storage/lmgr/lock.c:917 storage/lmgr/lock.c:2679 storage/lmgr/lock.c:4004
+#: storage/lmgr/lock.c:4069 storage/lmgr/lock.c:4361
+#: storage/lmgr/predicate.c:2386 storage/lmgr/predicate.c:2401
+#: storage/lmgr/predicate.c:3793 storage/lmgr/predicate.c:4936
+#: utils/hash/dynahash.c:1043
 #, c-format
 msgid "out of shared memory"
 msgstr "memoria compartida agotada"
 
-#: storage/ipc/shmem.c:370 storage/ipc/shmem.c:421
-#, c-format
-msgid "not enough shared memory for data structure \"%s\" (%zu bytes requested)"
+#: storage/ipc/shmem.c:165 storage/ipc/shmem.c:246
+#, fuzzy, c-format
+msgid "out of shared memory (%zu bytes requested)"
 msgstr "el espacio de memoria compartida es insuficiente para la estructura «%s» (%zu bytes solicitados"
 
-#: storage/ipc/shmem.c:389
+#: storage/ipc/shmem.c:421
 #, 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:404
+#: storage/ipc/shmem.c:436
 #, 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:452 storage/ipc/shmem.c:471
+#: storage/ipc/shmem.c:453
+#, 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:484 storage/ipc/shmem.c:503
 #, 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/standby.c:527 tcop/postgres.c:2963
+#: storage/ipc/standby.c:531 tcop/postgres.c:2985
 #, 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:528 tcop/postgres.c:2265
+#: storage/ipc/standby.c:532 tcop/postgres.c:2271
 #, c-format
 msgid "User transaction caused buffer deadlock with recovery."
 msgstr "La transacción del usuario causó un «deadlock» con la recuperación."
@@ -16877,9 +18545,9 @@ msgid "virtual transaction %d/%u"
 msgstr "transacción virtual %d/%u"
 
 #: storage/lmgr/lmgr.c:998
-#, fuzzy, c-format
+#, c-format
 msgid "speculative token %u of transaction %u"
-msgstr "no se pudo encontrar el estado de la transacción %u"
+msgstr "token especulativo %u de la transacción %u"
 
 #: storage/lmgr/lmgr.c:1004
 #, c-format
@@ -16912,761 +18580,757 @@ msgstr "no se puede adquirir candado en modo %s en objetos de la base de datos m
 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:884 storage/lmgr/lock.c:918 storage/lmgr/lock.c:2683
-#: storage/lmgr/lock.c:4008 storage/lmgr/lock.c:4073 storage/lmgr/lock.c:4365
+#: storage/lmgr/lock.c:884 storage/lmgr/lock.c:918 storage/lmgr/lock.c:2680
+#: storage/lmgr/lock.c:4005 storage/lmgr/lock.c:4070 storage/lmgr/lock.c:4362
 #, c-format
 msgid "You might need to increase max_locks_per_transaction."
 msgstr "Puede ser necesario incrementar max_locks_per_transaction."
 
-#: storage/lmgr/lock.c:3124 storage/lmgr/lock.c:3240
+#: storage/lmgr/lock.c:3121 storage/lmgr/lock.c:3237
 #, 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"
 
-#: storage/lmgr/predicate.c:675
+#: storage/lmgr/predicate.c:684
 #, 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:676 storage/lmgr/predicate.c:704
+#: storage/lmgr/predicate.c:685 storage/lmgr/predicate.c:713
 #, 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."
 
-#: storage/lmgr/predicate.c:703
+#: storage/lmgr/predicate.c:712
 #, 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:909
+#: storage/lmgr/predicate.c:918
 #, c-format
 msgid "memory for serializable conflict tracking is nearly exhausted"
 msgstr "la memoria para el seguimiento de conflictos de serialización está casi agotada"
 
-#: storage/lmgr/predicate.c:910
+#: storage/lmgr/predicate.c:919
 #, c-format
 msgid "There might be an idle transaction or a forgotten prepared transaction causing this."
 msgstr "Puede haber una transacción inactiva o una transacción preparada olvidada que esté causando este problema."
 
-#: storage/lmgr/predicate.c:1190 storage/lmgr/predicate.c:1261
-#, c-format
-msgid "not enough shared memory for elements of data structure \"%s\" (%zu bytes requested)"
-msgstr "el espacio de memoria compartida es insuficiente para los elementos de la estructura «%s» (%zu bytes solicitados)"
-
-#: storage/lmgr/predicate.c:1549
+#: storage/lmgr/predicate.c:1546
 #, c-format
 msgid "deferrable snapshot was unsafe; trying a new one"
 msgstr "la instantánea postergada era insegura; intentando con una nueva"
 
-#: storage/lmgr/predicate.c:1588
+#: storage/lmgr/predicate.c:1635
 #, c-format
 msgid "\"default_transaction_isolation\" is set to \"serializable\"."
 msgstr "«default_transaction_isolation» está definido a «serializable»."
 
-#: storage/lmgr/predicate.c:1589
+#: storage/lmgr/predicate.c:1636
 #, 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:1628
+#: storage/lmgr/predicate.c:1676
 #, 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:1706 utils/time/snapmgr.c:535
-#: utils/time/snapmgr.c:541
+#: storage/lmgr/predicate.c:1756 utils/time/snapmgr.c:621
+#: utils/time/snapmgr.c:627
 #, c-format
 msgid "could not import the requested snapshot"
 msgstr "no se pudo importar el snapshot solicitado"
 
-#: storage/lmgr/predicate.c:1707 utils/time/snapmgr.c:542
-#, c-format
-msgid "The source transaction %u is not running anymore."
+#: storage/lmgr/predicate.c:1757 utils/time/snapmgr.c:628
+#, fuzzy, c-format
+#| msgid "The source transaction %u is not running anymore."
+msgid "The source process with pid %d is not running anymore."
 msgstr "La transacción de origen %u ya no está en ejecución."
 
-#: storage/lmgr/predicate.c:2330 storage/lmgr/predicate.c:2345
-#: storage/lmgr/predicate.c:3737
+#: storage/lmgr/predicate.c:2387 storage/lmgr/predicate.c:2402
+#: storage/lmgr/predicate.c:3794
 #, 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:3891 storage/lmgr/predicate.c:3980
-#: storage/lmgr/predicate.c:3988 storage/lmgr/predicate.c:4027
-#: storage/lmgr/predicate.c:4266 storage/lmgr/predicate.c:4603
-#: storage/lmgr/predicate.c:4615 storage/lmgr/predicate.c:4657
-#: storage/lmgr/predicate.c:4695
+#: storage/lmgr/predicate.c:3948 storage/lmgr/predicate.c:4037
+#: storage/lmgr/predicate.c:4045 storage/lmgr/predicate.c:4084
+#: storage/lmgr/predicate.c:4323 storage/lmgr/predicate.c:4660
+#: storage/lmgr/predicate.c:4672 storage/lmgr/predicate.c:4714
+#: storage/lmgr/predicate.c:4752
 #, 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:3893 storage/lmgr/predicate.c:3982
-#: storage/lmgr/predicate.c:3990 storage/lmgr/predicate.c:4029
-#: storage/lmgr/predicate.c:4268 storage/lmgr/predicate.c:4605
-#: storage/lmgr/predicate.c:4617 storage/lmgr/predicate.c:4659
-#: storage/lmgr/predicate.c:4697
+#: storage/lmgr/predicate.c:3950 storage/lmgr/predicate.c:4039
+#: storage/lmgr/predicate.c:4047 storage/lmgr/predicate.c:4086
+#: storage/lmgr/predicate.c:4325 storage/lmgr/predicate.c:4662
+#: storage/lmgr/predicate.c:4674 storage/lmgr/predicate.c:4716
+#: storage/lmgr/predicate.c:4754
 #, c-format
 msgid "The transaction might succeed if retried."
 msgstr "La transacción podría tener éxito si es reintentada."
 
-#: storage/lmgr/proc.c:1263
+#: storage/lmgr/proc.c:1300
 #, c-format
 msgid "Process %d waits for %s on %s."
 msgstr "El proceso %d espera %s en %s."
 
-#: storage/lmgr/proc.c:1274
+#: storage/lmgr/proc.c:1311
 #, c-format
 msgid "sending cancel to blocking autovacuum PID %d"
 msgstr "enviando señal de cancelación a la tarea autovacuum bloqueante con PID %d"
 
-#: storage/lmgr/proc.c:1292 utils/adt/misc.c:270
+#: storage/lmgr/proc.c:1329 utils/adt/misc.c:269
 #, c-format
 msgid "could not send signal to process %d: %m"
 msgstr "no se pudo enviar la señal al proceso %d: %m"
 
-#: storage/lmgr/proc.c:1394
+#: storage/lmgr/proc.c:1431
 #, 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:1409
+#: storage/lmgr/proc.c:1446
 #, 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:1418
+#: storage/lmgr/proc.c:1455
 #, 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:1425
+#: storage/lmgr/proc.c:1462
 #, 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:1441
+#: storage/lmgr/proc.c:1478
 #, 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"
 
-#: storage/page/bufpage.c:144
+#: storage/page/bufpage.c:151
 #, c-format
 msgid "page verification failed, calculated checksum %u but expected %u"
 msgstr "la suma de verificación falló, se calculó %u pero se esperaba %u"
 
-#: storage/page/bufpage.c:200 storage/page/bufpage.c:490
-#: storage/page/bufpage.c:705 storage/page/bufpage.c:836
-#: storage/page/bufpage.c:936
+#: storage/page/bufpage.c:213 storage/page/bufpage.c:505
+#: storage/page/bufpage.c:748 storage/page/bufpage.c:881
+#: storage/page/bufpage.c:977 storage/page/bufpage.c:1087
 #, c-format
 msgid "corrupted page pointers: lower = %u, upper = %u, special = %u"
 msgstr "los punteros de página están corruptos: inferior = %u, superior = %u, especial = %u"
 
-#: storage/page/bufpage.c:534
+#: storage/page/bufpage.c:549
 #, c-format
 msgid "corrupted item pointer: %u"
 msgstr "el puntero de item está corrupto: %u"
 
-#: storage/page/bufpage.c:545 storage/page/bufpage.c:887
-#: storage/page/bufpage.c:1042
+#: storage/page/bufpage.c:560 storage/page/bufpage.c:932
 #, c-format
 msgid "corrupted item lengths: total %u, available space %u"
 msgstr "los largos de ítem están corruptos: total %u, espacio disponible %u"
 
-#: storage/page/bufpage.c:724 storage/page/bufpage.c:860
+#: storage/page/bufpage.c:767 storage/page/bufpage.c:993
+#: storage/page/bufpage.c:1103
 #, c-format
 msgid "corrupted item pointer: offset = %u, size = %u"
 msgstr "el puntero de ítem está corrupto: posición = %u, tamaño = %u"
 
-#: storage/page/bufpage.c:965
+#: storage/page/bufpage.c:905
 #, fuzzy, c-format
+#| msgid "corrupted item pointer: offset = %u, size = %u"
 msgid "corrupted item pointer: offset = %u, length = %u"
 msgstr "el puntero de ítem está corrupto: posición = %u, tamaño = %u"
 
-#: storage/smgr/md.c:447 storage/smgr/md.c:968
+#: storage/smgr/md.c:448 storage/smgr/md.c:974
 #, c-format
 msgid "could not truncate file \"%s\": %m"
 msgstr "no se pudo truncar el archivo «%s»: %m"
 
-#: storage/smgr/md.c:514
+#: storage/smgr/md.c:515
 #, 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:536 storage/smgr/md.c:749 storage/smgr/md.c:824
+#: storage/smgr/md.c:537 storage/smgr/md.c:754 storage/smgr/md.c:830
 #, c-format
 msgid "could not seek to block %u in file \"%s\": %m"
 msgstr "no se pudo posicionar (seek) al bloque %u en el archivo «%s»: %m"
 
-#: storage/smgr/md.c:544
+#: storage/smgr/md.c:545
 #, c-format
 msgid "could not extend file \"%s\": %m"
 msgstr "no se pudo extender el archivo «%s»: %m"
 
-#: storage/smgr/md.c:546 storage/smgr/md.c:553 storage/smgr/md.c:851
+#: storage/smgr/md.c:547 storage/smgr/md.c:554 storage/smgr/md.c:857
 #, c-format
 msgid "Check free disk space."
 msgstr "Verifique el espacio libre en disco."
 
-#: storage/smgr/md.c:550
+#: storage/smgr/md.c:551
 #, 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:767
+#: storage/smgr/md.c:772
 #, c-format
 msgid "could not read block %u in file \"%s\": %m"
 msgstr "no se pudo leer el bloque %u del archivo «%s»: %m"
 
-#: storage/smgr/md.c:783
+#: storage/smgr/md.c:788
 #, 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"
 
-#: storage/smgr/md.c:842
+#: storage/smgr/md.c:848
 #, 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"
 
-#: storage/smgr/md.c:847
+#: storage/smgr/md.c:853
 #, 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"
 
-#: storage/smgr/md.c:944
+#: storage/smgr/md.c:945
 #, 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:993
+#: storage/smgr/md.c:1000
 #, 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:1273
+#: storage/smgr/md.c:1282
 #, c-format
 msgid "could not fsync file \"%s\" but retrying: %m"
 msgstr "no se pudo sincronizar (fsync) archivo «%s» pero reintentando: %m"
 
-#: storage/smgr/md.c:1436
+#: storage/smgr/md.c:1445
 #, c-format
 msgid "could not forward fsync request because request queue is full"
 msgstr "no se pudo enviar una petición fsync porque la cola de peticiones está llena"
 
-#: storage/smgr/md.c:1852
-#, fuzzy, c-format
-#| msgid "could not open file \"%s\" (target block %u): %m"
+#: storage/smgr/md.c:1914
+#, 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): %m"
+msgstr "no se pudo abrir el archivo «%s» (bloque buscado %u): el segmento previo sólo tiene %u bloques"
 
-#: storage/smgr/md.c:1867
+#: storage/smgr/md.c:1928
 #, 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:111 tcop/fastpath.c:475 tcop/fastpath.c:605
+#: tcop/fastpath.c:111 tcop/fastpath.c:463 tcop/fastpath.c:593
 #, c-format
 msgid "invalid argument size %d in function call message"
 msgstr "el tamaño de argumento %d no es válido en el mensaje de llamada a función"
 
-#: tcop/fastpath.c:291 tcop/postgres.c:992 tcop/postgres.c:1303
-#: tcop/postgres.c:1561 tcop/postgres.c:1966 tcop/postgres.c:2333
-#: tcop/postgres.c:2408
-#, 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"
-
-#: tcop/fastpath.c:319
+#: tcop/fastpath.c:309
 #, c-format
 msgid "fastpath function call: \"%s\" (OID %u)"
 msgstr "llamada a función fastpath: «%s» (OID %u)"
 
-#: tcop/fastpath.c:401 tcop/postgres.c:1163 tcop/postgres.c:1428
-#: tcop/postgres.c:1807 tcop/postgres.c:2024
+#: tcop/fastpath.c:391 tcop/postgres.c:1169 tcop/postgres.c:1432
+#: tcop/postgres.c:1812 tcop/postgres.c:2030
 #, c-format
 msgid "duration: %s ms"
 msgstr "duración: %s ms"
 
-#: tcop/fastpath.c:405
+#: tcop/fastpath.c:395
 #, c-format
 msgid "duration: %s ms  fastpath function call: \"%s\" (OID %u)"
 msgstr "duración: %s ms  llamada a función fastpath: «%s» (OID %u)"
 
-#: tcop/fastpath.c:443 tcop/fastpath.c:570
+#: tcop/fastpath.c:431 tcop/fastpath.c:558
 #, c-format
 msgid "function call message contains %d arguments but function requires %d"
 msgstr "el mensaje de llamada a función contiene %d argumentos pero la función requiere %d"
 
-#: tcop/fastpath.c:451
+#: tcop/fastpath.c:439
 #, c-format
 msgid "function call message contains %d argument formats but %d arguments"
 msgstr "el mensaje de llamada a función contiene %d formatos de argumento pero %d argumentos"
 
-#: tcop/fastpath.c:538 tcop/fastpath.c:621
+#: tcop/fastpath.c:526 tcop/fastpath.c:609
 #, c-format
 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:352 tcop/postgres.c:388 tcop/postgres.c:415
+#: tcop/postgres.c:346 tcop/postgres.c:382 tcop/postgres.c:409
 #, c-format
 msgid "unexpected EOF on client connection"
 msgstr "se encontró fin de archivo inesperado en la conexión del cliente"
 
-#: tcop/postgres.c:438 tcop/postgres.c:450 tcop/postgres.c:461
-#: tcop/postgres.c:473 tcop/postgres.c:4297
+#: tcop/postgres.c:432 tcop/postgres.c:444 tcop/postgres.c:455
+#: tcop/postgres.c:467 tcop/postgres.c:4316
 #, c-format
 msgid "invalid frontend message type %d"
 msgstr "el tipo de mensaje de frontend %d no es válido"
 
-#: tcop/postgres.c:933
+#: tcop/postgres.c:938
 #, c-format
 msgid "statement: %s"
 msgstr "sentencia: %s"
 
-#: tcop/postgres.c:1168
+#: tcop/postgres.c:1174
 #, c-format
 msgid "duration: %s ms  statement: %s"
 msgstr "duración: %s ms  sentencia: %s"
 
-#: tcop/postgres.c:1218
+#: tcop/postgres.c:1224
 #, c-format
 msgid "parse %s: %s"
 msgstr "parse %s: %s"
 
-#: tcop/postgres.c:1276
+#: tcop/postgres.c:1280
 #, 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:1433
+#: tcop/postgres.c:1437
 #, c-format
 msgid "duration: %s ms  parse %s: %s"
 msgstr "duración: %s ms  parse: %s: %s"
 
-#: tcop/postgres.c:1478
+#: tcop/postgres.c:1482
 #, c-format
 msgid "bind %s to %s"
 msgstr "bind %s a %s"
 
-#: tcop/postgres.c:1497 tcop/postgres.c:2314
+#: tcop/postgres.c:1501 tcop/postgres.c:2320
 #, c-format
 msgid "unnamed prepared statement does not exist"
 msgstr "no existe una sentencia preparada sin nombre"
 
-#: tcop/postgres.c:1539
+#: tcop/postgres.c:1543
 #, c-format
 msgid "bind message has %d parameter formats but %d parameters"
 msgstr "el mensaje de enlace (bind) tiene %d formatos de parámetro pero %d parámetros"
 
-#: tcop/postgres.c:1545
+#: tcop/postgres.c:1549
 #, c-format
 msgid "bind message supplies %d parameters, but prepared statement \"%s\" requires %d"
 msgstr "el mensaje de enlace (bind) entrega %d parámetros, pero la sentencia preparada «%s» requiere %d"
 
-#: tcop/postgres.c:1714
+#: tcop/postgres.c:1719
 #, c-format
 msgid "incorrect binary data format in bind parameter %d"
 msgstr "el formato de datos binarios es incorrecto en el parámetro de enlace %d"
 
-#: tcop/postgres.c:1812
+#: tcop/postgres.c:1817
 #, c-format
 msgid "duration: %s ms  bind %s%s%s: %s"
 msgstr "duración: %s ms  bind %s%s%s: %s"
 
-#: tcop/postgres.c:1860 tcop/postgres.c:2394
+#: tcop/postgres.c:1865 tcop/postgres.c:2400
 #, c-format
 msgid "portal \"%s\" does not exist"
 msgstr "no existe el portal «%s»"
 
-#: tcop/postgres.c:1945
+#: tcop/postgres.c:1950
 #, c-format
 msgid "%s %s%s%s: %s"
 msgstr "%s %s%s%s: %s"
 
-#: tcop/postgres.c:1947 tcop/postgres.c:2032
+#: tcop/postgres.c:1952 tcop/postgres.c:2038
 msgid "execute fetch from"
 msgstr "ejecutar fetch desde"
 
-#: tcop/postgres.c:1948 tcop/postgres.c:2033
+#: tcop/postgres.c:1953 tcop/postgres.c:2039
 msgid "execute"
 msgstr "ejecutar"
 
-#: tcop/postgres.c:2029
+#: tcop/postgres.c:2035
 #, c-format
 msgid "duration: %s ms  %s %s%s%s: %s"
 msgstr "duración: %s ms  %s %s%s%s: %s"
 
-#: tcop/postgres.c:2155
+#: tcop/postgres.c:2161
 #, c-format
 msgid "prepare: %s"
 msgstr "prepare: %s"
 
-#: tcop/postgres.c:2218
+#: tcop/postgres.c:2224
 #, c-format
 msgid "parameters: %s"
 msgstr "parámetros: %s"
 
-#: tcop/postgres.c:2237
+#: tcop/postgres.c:2243
 #, c-format
 msgid "abort reason: recovery conflict"
 msgstr "razón para abortar: conflicto en la recuperación"
 
-#: tcop/postgres.c:2253
+#: tcop/postgres.c:2259
 #, 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:2256
+#: tcop/postgres.c:2262
 #, 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:2259
+#: tcop/postgres.c:2265
 #, 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:2262
+#: tcop/postgres.c:2268
 #, 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:2268
+#: tcop/postgres.c:2274
 #, 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:2597
+#: tcop/postgres.c:2583
 #, 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:2598
+#: tcop/postgres.c:2584
 #, 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:2602 tcop/postgres.c:2906
+#: tcop/postgres.c:2588 tcop/postgres.c:2913
 #, 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:2688
+#: tcop/postgres.c:2674
 #, c-format
 msgid "floating-point exception"
 msgstr "excepción de coma flotante"
 
-#: tcop/postgres.c:2689
+#: tcop/postgres.c:2675
 #, 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:2851
+#: tcop/postgres.c:2843
 #, 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:2855
+#: tcop/postgres.c:2847
 #, c-format
 msgid "terminating autovacuum process due to administrator command"
 msgstr "terminando el proceso autovacuum debido a una orden del administrador"
 
-#: tcop/postgres.c:2861 tcop/postgres.c:2871 tcop/postgres.c:2904
+#: tcop/postgres.c:2851
+#, fuzzy, c-format
+#| msgid "terminating connection due to administrator command"
+msgid "terminating logical replication worker due to administrator command"
+msgstr "terminando la conexión debido a una orden del administrador"
+
+#: tcop/postgres.c:2855
+#, fuzzy, c-format
+msgid "logical replication launcher shutting down"
+msgstr "apagando lanzador de autovacuum"
+
+#: tcop/postgres.c:2868 tcop/postgres.c:2878 tcop/postgres.c:2911
 #, 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:2877
+#: tcop/postgres.c:2884
 #, c-format
 msgid "terminating connection due to administrator command"
 msgstr "terminando la conexión debido a una orden del administrador"
 
-#: tcop/postgres.c:2887
+#: tcop/postgres.c:2894
 #, c-format
 msgid "connection to client lost"
 msgstr "se ha perdido la conexión al cliente"
 
-#: tcop/postgres.c:2940
+#: tcop/postgres.c:2962
 #, 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)"
 
-#: tcop/postgres.c:2947
+#: tcop/postgres.c:2969
 #, 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:2954
+#: tcop/postgres.c:2976
 #, c-format
 msgid "canceling autovacuum task"
 msgstr "cancelando tarea de autovacuum"
 
-#: tcop/postgres.c:2977
+#: tcop/postgres.c:2999
 #, c-format
 msgid "canceling statement due to user request"
 msgstr "cancelando la sentencia debido a una petición del usuario"
 
-#: tcop/postgres.c:2987
-#, fuzzy, c-format
-#| msgid "terminating connection due to administrator command"
+#: tcop/postgres.c:3009
+#, c-format
 msgid "terminating connection due to idle-in-transaction timeout"
-msgstr "terminando la conexión debido a una orden del administrador"
+msgstr "terminando la conexión debido a que se agotó el tiempo de espera para transacciones abiertas inactivas"
 
-#: tcop/postgres.c:3101
+#: tcop/postgres.c:3123
 #, c-format
 msgid "stack depth limit exceeded"
 msgstr "límite de profundidad de stack alcanzado"
 
-#: tcop/postgres.c:3102
+#: tcop/postgres.c:3124
 #, 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:3165
+#: tcop/postgres.c:3187
 #, c-format
 msgid "\"max_stack_depth\" must not exceed %ldkB."
 msgstr "«max_stack_depth» no debe exceder %ldkB."
 
-#: tcop/postgres.c:3167
+#: tcop/postgres.c:3189
 #, 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:3527
+#: tcop/postgres.c:3549
 #, 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:3528 tcop/postgres.c:3534
+#: tcop/postgres.c:3550 tcop/postgres.c:3556
 #, c-format
 msgid "Try \"%s --help\" for more information."
 msgstr "Pruebe «%s --help» para mayor información."
 
-#: tcop/postgres.c:3532
+#: tcop/postgres.c:3554
 #, c-format
 msgid "%s: invalid command-line argument: %s"
 msgstr "%s: argumento de línea de órdenes no válido: %s"
 
-#: tcop/postgres.c:3594
+#: tcop/postgres.c:3616
 #, c-format
 msgid "%s: no database nor user name specified"
 msgstr "%s: no se ha especificado base de datos ni usuario"
 
-#: tcop/postgres.c:4205
+#: tcop/postgres.c:4224
 #, c-format
 msgid "invalid CLOSE message subtype %d"
 msgstr "subtipo %d de mensaje CLOSE no válido"
 
-#: tcop/postgres.c:4240
+#: tcop/postgres.c:4259
 #, c-format
 msgid "invalid DESCRIBE message subtype %d"
 msgstr "subtipo %d de mensaje DESCRIBE no válido"
 
-#: tcop/postgres.c:4318
+#: tcop/postgres.c:4337
 #, 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:4322
+#: tcop/postgres.c:4341
 #, 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:4492
+#: tcop/postgres.c:4511
 #, 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"
 
-#: tcop/pquery.c:663
+#: tcop/pquery.c:645
 #, c-format
 msgid "bind message has %d result formats but query has %d columns"
 msgstr "el mensaje de enlace (bind) tiene %d formatos de resultado pero la consulta tiene %d columnas"
 
-#: tcop/pquery.c:965
+#: tcop/pquery.c:952
 #, c-format
 msgid "cursor can only scan forward"
 msgstr "el cursor sólo se puede desplazar hacia adelante"
 
-#: tcop/pquery.c:966
+#: tcop/pquery.c:953
 #, 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:235
+#: tcop/utility.c:242
 #, 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:253
-#, fuzzy, c-format
+#: tcop/utility.c:260
+#, c-format
 msgid "cannot execute %s during a parallel operation"
-msgstr "no se puede ejecutar %s durante la recuperación"
+msgstr "no se puede ejecutar %s durante una operación paralela"
 
 #. translator: %s is name of a SQL command, eg CREATE
-#: tcop/utility.c:272
+#: tcop/utility.c:279
 #, 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:290
+#: tcop/utility.c:297
 #, c-format
 msgid "cannot execute %s within security-restricted operation"
 msgstr "no se puede ejecutar %s durante una operación restringida por seguridad"
 
-#: tcop/utility.c:744
+#: tcop/utility.c:765
 #, c-format
 msgid "must be superuser to do CHECKPOINT"
 msgstr "debe ser superusuario para ejecutar CHECKPOINT"
 
-#: tsearch/dict_ispell.c:51 tsearch/dict_thesaurus.c:623
+#: tsearch/dict_ispell.c:52 tsearch/dict_thesaurus.c:624
 #, c-format
 msgid "multiple DictFile parameters"
 msgstr "parámetro DictFile duplicado"
 
-#: tsearch/dict_ispell.c:62
+#: tsearch/dict_ispell.c:63
 #, c-format
 msgid "multiple AffFile parameters"
 msgstr "parámetro AffFile duplicado"
 
-#: tsearch/dict_ispell.c:81
+#: tsearch/dict_ispell.c:82
 #, c-format
 msgid "unrecognized Ispell parameter: \"%s\""
 msgstr "parámetro Ispell no reconocido: «%s»"
 
-#: tsearch/dict_ispell.c:95
+#: tsearch/dict_ispell.c:96
 #, c-format
 msgid "missing AffFile parameter"
 msgstr "falta un parámetro AffFile"
 
-#: tsearch/dict_ispell.c:101 tsearch/dict_thesaurus.c:647
+#: tsearch/dict_ispell.c:102 tsearch/dict_thesaurus.c:648
 #, c-format
 msgid "missing DictFile parameter"
 msgstr "falta un parámetro DictFile"
 
-#: tsearch/dict_simple.c:57
+#: tsearch/dict_simple.c:58
 #, c-format
 msgid "multiple Accept parameters"
 msgstr "parámetro Accept duplicado"
 
-#: tsearch/dict_simple.c:65
+#: tsearch/dict_simple.c:66
 #, c-format
 msgid "unrecognized simple dictionary parameter: \"%s\""
 msgstr "parámetro del diccionario simple no reconocido: «%s»"
 
-#: tsearch/dict_synonym.c:117
+#: tsearch/dict_synonym.c:118
 #, c-format
 msgid "unrecognized synonym parameter: \"%s\""
 msgstr "parámetro de sinónimo no reconocido «%s»"
 
-#: tsearch/dict_synonym.c:124
+#: tsearch/dict_synonym.c:125
 #, c-format
 msgid "missing Synonyms parameter"
 msgstr "falta un parámetro Synonyms"
 
-#: tsearch/dict_synonym.c:131
+#: tsearch/dict_synonym.c:132
 #, c-format
 msgid "could not open synonym file \"%s\": %m"
 msgstr "no se pudo abrir el archivo de sinónimos «%s»: %m"
 
-#: tsearch/dict_thesaurus.c:178
+#: tsearch/dict_thesaurus.c:179
 #, c-format
 msgid "could not open thesaurus file \"%s\": %m"
 msgstr "no se pudo abrir el archivo del tesauro «%s»: %m"
 
-#: tsearch/dict_thesaurus.c:211
+#: tsearch/dict_thesaurus.c:212
 #, c-format
 msgid "unexpected delimiter"
 msgstr "delimitador inesperado"
 
-#: tsearch/dict_thesaurus.c:261 tsearch/dict_thesaurus.c:277
+#: tsearch/dict_thesaurus.c:262 tsearch/dict_thesaurus.c:278
 #, c-format
 msgid "unexpected end of line or lexeme"
 msgstr "fin de línea o lexema inesperado"
 
-#: tsearch/dict_thesaurus.c:286
+#: tsearch/dict_thesaurus.c:287
 #, c-format
 msgid "unexpected end of line"
 msgstr "fin de línea inesperado"
 
-#: tsearch/dict_thesaurus.c:296
+#: tsearch/dict_thesaurus.c:297
 #, c-format
 msgid "too many lexemes in thesaurus entry"
 msgstr "demasiados lexemas en la entrada del tesauro"
 
-#: tsearch/dict_thesaurus.c:420
+#: tsearch/dict_thesaurus.c:421
 #, c-format
 msgid "thesaurus sample word \"%s\" isn't recognized by subdictionary (rule %d)"
 msgstr "la palabra de muestra «%s» del tesauro no es reconocido por el subdiccionario (regla %d)"
 
 # XXX -- stopword?
-#: tsearch/dict_thesaurus.c:426
+#: tsearch/dict_thesaurus.c:427
 #, c-format
 msgid "thesaurus sample word \"%s\" is a stop word (rule %d)"
 msgstr "la palabra de muestra «%s» del tesauro es una stopword (regla %d)"
 
 # XXX -- stopword?
-#: tsearch/dict_thesaurus.c:429
+#: tsearch/dict_thesaurus.c:430
 #, c-format
 msgid "Use \"?\" to represent a stop word within a sample phrase."
 msgstr "Use «?» para representar una stopword en una frase muestra."
 
 # XXX -- stopword?
-#: tsearch/dict_thesaurus.c:575
+#: tsearch/dict_thesaurus.c:576
 #, c-format
 msgid "thesaurus substitute word \"%s\" is a stop word (rule %d)"
 msgstr "la palabra sustituta «%s» del tesauro es una stopword (regla %d)"
 
-#: tsearch/dict_thesaurus.c:582
+#: tsearch/dict_thesaurus.c:583
 #, c-format
 msgid "thesaurus substitute word \"%s\" isn't recognized by subdictionary (rule %d)"
 msgstr "la palabra sustituta «%s» del tesauro no es reconocida por el subdiccionario (regla %d)"
 
-#: tsearch/dict_thesaurus.c:594
+#: tsearch/dict_thesaurus.c:595
 #, c-format
 msgid "thesaurus substitute phrase is empty (rule %d)"
 msgstr "la frase sustituta del tesauro está vacía (regla %d)"
 
-#: tsearch/dict_thesaurus.c:632
+#: tsearch/dict_thesaurus.c:633
 #, c-format
 msgid "multiple Dictionary parameters"
 msgstr "parámetro Dictionary duplicado"
 
-#: tsearch/dict_thesaurus.c:639
+#: tsearch/dict_thesaurus.c:640
 #, c-format
 msgid "unrecognized Thesaurus parameter: \"%s\""
 msgstr "parámetro no reconocido de tesauro: «%s»"
 
-#: tsearch/dict_thesaurus.c:651
+#: tsearch/dict_thesaurus.c:652
 #, c-format
 msgid "missing Dictionary parameter"
 msgstr "falta un paramétro Dictionary"
 
-#: tsearch/spell.c:382 tsearch/spell.c:399 tsearch/spell.c:408
+#: tsearch/spell.c:380 tsearch/spell.c:397 tsearch/spell.c:406
 #: tsearch/spell.c:1034
-#, fuzzy, c-format
-#| msgid "invalid data in file \"%s\""
+#, c-format
 msgid "invalid affix flag \"%s\""
-msgstr "datos no válidos en archivo «%s»"
+msgstr "marca de afijo «%s» no válida"
 
-#: tsearch/spell.c:386 tsearch/spell.c:1038
-#, fuzzy, c-format
-#| msgid "%s: transfer rate \"%s\" is out of range\n"
+#: tsearch/spell.c:384 tsearch/spell.c:1038
+#, c-format
 msgid "affix flag \"%s\" is out of range"
-msgstr "%s: la tasa de transferencia «%s» está fuera de rango\n"
+msgstr "la marca de afijo «%s» está fuera de rango"
 
-#: tsearch/spell.c:416
-#, fuzzy, c-format
-#| msgid "invalid data in file \"%s\""
+#: tsearch/spell.c:414
+#, c-format
 msgid "invalid character in affix flag \"%s\""
-msgstr "datos no válidos en archivo «%s»"
+msgstr "caracteres no válidos en la marca de afijo «%s»"
 
-#: tsearch/spell.c:436
+#: tsearch/spell.c:434
 #, c-format
-msgid "invalid affix flag \"%s\" with long flag value"
-msgstr ""
+msgid "invalid affix flag \"%s\" with \"long\" flag value"
+msgstr "marca de afijo «%s» no válida con el valor de marca «long»"
 
-#: tsearch/spell.c:523
+#: tsearch/spell.c:522
 #, c-format
 msgid "could not open dictionary file \"%s\": %m"
 msgstr "no se pudo abrir el archivo de diccionario «%s»: %m"
@@ -17676,36 +19340,33 @@ msgstr "no se pudo abrir el archivo de diccionario «%s»: %m"
 msgid "invalid regular expression: %s"
 msgstr "la expresión regular no es válida: %s"
 
-#: tsearch/spell.c:1161 tsearch/spell.c:1716
-#, fuzzy, c-format
-#| msgid "invalid cidr value: \"%s\""
+#: tsearch/spell.c:1161 tsearch/spell.c:1721
+#, c-format
 msgid "invalid affix alias \"%s\""
-msgstr "valor cidr no válido: «%s»"
+msgstr "alias de afijo «%s» no válido"
 
-#: tsearch/spell.c:1210 tsearch/spell.c:1280 tsearch/spell.c:1422
+#: tsearch/spell.c:1211 tsearch/spell.c:1282 tsearch/spell.c:1426
 #, c-format
 msgid "could not open affix file \"%s\": %m"
 msgstr "no se pudo abrir el archivo de afijos «%s»: %m"
 
-#: tsearch/spell.c:1264
-#, fuzzy, c-format
-#| msgid "Ispell dictionary supports only default flag value"
-msgid "Ispell dictionary supports only default, long and num flag value"
-msgstr "el diccionario Ispell sólo permite el valor de bandera «default»"
+#: tsearch/spell.c:1265
+#, c-format
+msgid "Ispell dictionary supports only \"default\", \"long\", and \"num\" flag values"
+msgstr "el diccionario Ispell sólo permite los valores «default», «long» y «num»"
 
-#: tsearch/spell.c:1307
-#, fuzzy, c-format
-#| msgid "%s: invalid number of parallel jobs\n"
+#: tsearch/spell.c:1309
+#, c-format
 msgid "invalid number of flag vector aliases"
-msgstr "%s: número de trabajos paralelos no válido\n"
+msgstr "número no válido de alias de opciones"
 
-#: tsearch/spell.c:1538
+#: tsearch/spell.c:1542
 #, c-format
 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:170 utils/adt/tsvector.c:270
-#: utils/adt/tsvector_op.c:1064
+#: tsearch/to_tsany.c:179 utils/adt/tsvector.c:271
+#: utils/adt/tsvector_op.c:1134
 #, 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)"
@@ -17742,7 +19403,7 @@ 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:306
+#: tsearch/wparser.c:322 tsearch/wparser.c:410 tsearch/wparser.c:487
 #, 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)"
@@ -17857,122 +19518,108 @@ msgstr "existen privilegios dependientes"
 msgid "Use CASCADE to revoke them too."
 msgstr "Use CASCADE para revocarlos también."
 
-#: utils/adt/acl.c:1537
+#: utils/adt/acl.c:1520
 #, c-format
 msgid "aclinsert is no longer supported"
 msgstr "aclinsert ya no está soportado"
 
-#: utils/adt/acl.c:1547
+#: utils/adt/acl.c:1530
 #, c-format
 msgid "aclremove is no longer supported"
 msgstr "aclremove ya no está soportado"
 
-#: utils/adt/acl.c:1633 utils/adt/acl.c:1687
+#: utils/adt/acl.c:1616 utils/adt/acl.c:1670
 #, c-format
 msgid "unrecognized privilege type: \"%s\""
 msgstr "tipo de privilegio no reconocido: «%s»"
 
-#: utils/adt/acl.c:3427 utils/adt/regproc.c:123 utils/adt/regproc.c:144
-#: utils/adt/regproc.c:319
+#: utils/adt/acl.c:3410 utils/adt/regproc.c:102 utils/adt/regproc.c:277
 #, c-format
 msgid "function \"%s\" does not exist"
 msgstr "no existe la función «%s»"
 
-#: utils/adt/acl.c:4881
+#: utils/adt/acl.c:4864
 #, c-format
 msgid "must be member of role \"%s\""
 msgstr "debe ser miembro del rol «%s»"
 
-#: utils/adt/acl.c:5279 utils/adt/acl.c:5285
-#, fuzzy, c-format
-#| msgid "role name \"%s\" is reserved"
-msgid "role \"%s\" is reserved"
-msgstr "el nombre de rol «%s» está reservado"
-
-#: utils/adt/array_expanded.c:276 utils/adt/arrayfuncs.c:931
+#: utils/adt/array_expanded.c:274 utils/adt/arrayfuncs.c:931
 #: utils/adt/arrayfuncs.c:1519 utils/adt/arrayfuncs.c:3251
-#: utils/adt/arrayfuncs.c:3389 utils/adt/arrayfuncs.c:5864
-#: utils/adt/arrayfuncs.c:6175 utils/adt/arrayutils.c:93
+#: utils/adt/arrayfuncs.c:3389 utils/adt/arrayfuncs.c:5846
+#: utils/adt/arrayfuncs.c:6157 utils/adt/arrayutils.c:93
 #: utils/adt/arrayutils.c:102 utils/adt/arrayutils.c:109
 #, c-format
 msgid "array size exceeds the maximum allowed (%d)"
 msgstr "el tamaño del array excede el máximo permitido (%d)"
 
-#: utils/adt/array_userfuncs.c:67 utils/adt/array_userfuncs.c:529
-#: utils/adt/array_userfuncs.c:609 utils/adt/json.c:1759 utils/adt/json.c:1854
-#: utils/adt/json.c:1892 utils/adt/jsonb.c:1126 utils/adt/jsonb.c:1155
-#: utils/adt/jsonb.c:1591 utils/adt/jsonb.c:1755 utils/adt/jsonb.c:1765
+#: utils/adt/array_userfuncs.c:79 utils/adt/array_userfuncs.c:471
+#: utils/adt/array_userfuncs.c:551 utils/adt/json.c:1764 utils/adt/json.c:1859
+#: utils/adt/json.c:1897 utils/adt/jsonb.c:1127 utils/adt/jsonb.c:1156
+#: utils/adt/jsonb.c:1592 utils/adt/jsonb.c:1756 utils/adt/jsonb.c:1766
 #, c-format
 msgid "could not determine input data type"
 msgstr "no se pudo determinar el tipo de dato de entrada"
 
-#: utils/adt/array_userfuncs.c:72
-#, fuzzy, c-format
+#: utils/adt/array_userfuncs.c:84
+#, c-format
 msgid "input data type is not an array"
-msgstr "el tipo de destino no es un array"
-
-#: utils/adt/array_userfuncs.c:120 utils/adt/array_userfuncs.c:174
-#: utils/adt/arrayfuncs.c:1322 utils/adt/float.c:1230 utils/adt/float.c:1289
-#: utils/adt/float.c:3558 utils/adt/float.c:3574 utils/adt/int.c:623
-#: utils/adt/int.c:652 utils/adt/int.c:673 utils/adt/int.c:704
-#: utils/adt/int.c:737 utils/adt/int.c:759 utils/adt/int.c:907
-#: utils/adt/int.c:928 utils/adt/int.c:955 utils/adt/int.c:995
-#: utils/adt/int.c:1016 utils/adt/int.c:1043 utils/adt/int.c:1076
-#: utils/adt/int.c:1159 utils/adt/int8.c:1298 utils/adt/numeric.c:2907
-#: utils/adt/numeric.c:2916 utils/adt/varbit.c:1173 utils/adt/varbit.c:1565
-#: utils/adt/varlena.c:1055 utils/adt/varlena.c:2807
+msgstr "el tipo de entrada no es un array"
+
+#: utils/adt/array_userfuncs.c:132 utils/adt/array_userfuncs.c:186
+#: utils/adt/arrayfuncs.c:1322 utils/adt/float.c:1228 utils/adt/float.c:1287
+#: utils/adt/float.c:3556 utils/adt/float.c:3572 utils/adt/int.c:608
+#: utils/adt/int.c:637 utils/adt/int.c:658 utils/adt/int.c:689
+#: utils/adt/int.c:722 utils/adt/int.c:744 utils/adt/int.c:892
+#: utils/adt/int.c:913 utils/adt/int.c:940 utils/adt/int.c:980
+#: utils/adt/int.c:1001 utils/adt/int.c:1028 utils/adt/int.c:1061
+#: utils/adt/int.c:1144 utils/adt/int8.c:1298 utils/adt/numeric.c:2953
+#: utils/adt/numeric.c:2962 utils/adt/varbit.c:1173 utils/adt/varbit.c:1575
+#: utils/adt/varlena.c:1054 utils/adt/varlena.c:2953
 #, c-format
 msgid "integer out of range"
 msgstr "el entero está fuera de rango"
 
-#: utils/adt/array_userfuncs.c:127 utils/adt/array_userfuncs.c:184
+#: utils/adt/array_userfuncs.c:139 utils/adt/array_userfuncs.c:196
 #, c-format
 msgid "argument must be empty or one-dimensional array"
 msgstr "el argumento debe ser vacío o un array unidimensional"
 
-#: utils/adt/array_userfuncs.c:266 utils/adt/array_userfuncs.c:305
-#: utils/adt/array_userfuncs.c:342 utils/adt/array_userfuncs.c:371
-#: utils/adt/array_userfuncs.c:399
+#: utils/adt/array_userfuncs.c:278 utils/adt/array_userfuncs.c:317
+#: utils/adt/array_userfuncs.c:354 utils/adt/array_userfuncs.c:383
+#: utils/adt/array_userfuncs.c:411
 #, c-format
 msgid "cannot concatenate incompatible arrays"
 msgstr "no se pueden concatenar arrays incompatibles"
 
-#: utils/adt/array_userfuncs.c:267
+#: utils/adt/array_userfuncs.c:279
 #, c-format
 msgid "Arrays with element types %s and %s are not compatible for concatenation."
 msgstr "Los arrays con elementos de tipo %s y %s son incompatibles para la concatenación."
 
-#: utils/adt/array_userfuncs.c:306
+#: utils/adt/array_userfuncs.c:318
 #, c-format
 msgid "Arrays of %d and %d dimensions are not compatible for concatenation."
 msgstr "Los arrays de dimesiones %d y %d son incompatibles para la concatenación."
 
-#: utils/adt/array_userfuncs.c:343
+#: utils/adt/array_userfuncs.c:355
 #, c-format
 msgid "Arrays with differing element dimensions are not compatible for concatenation."
 msgstr "Los arrays con elementos de diferentes dimensiones son incompatibles para la concatenación."
 
-#: utils/adt/array_userfuncs.c:372 utils/adt/array_userfuncs.c:400
+#: utils/adt/array_userfuncs.c:384 utils/adt/array_userfuncs.c:412
 #, c-format
 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:468 utils/adt/arrayfuncs.c:1284
-#: utils/adt/arrayfuncs.c:3357 utils/adt/arrayfuncs.c:5764
+#: utils/adt/array_userfuncs.c:667 utils/adt/array_userfuncs.c:819
 #, c-format
-msgid "invalid number of dimensions: %d"
-msgstr "número incorrecto de dimensiones: %d"
-
-#: utils/adt/array_userfuncs.c:725 utils/adt/array_userfuncs.c:876
-#, fuzzy, c-format
 msgid "searching for elements in multidimensional arrays is not supported"
-msgstr "la eliminación de elementos desde arrays multidimensionales no está soportada"
+msgstr "no está soportada la búsqueda de elementos en arrays multidimensionales"
 
-#: utils/adt/array_userfuncs.c:749
-#, fuzzy, c-format
-#| msgid "field name must not be null"
+#: utils/adt/array_userfuncs.c:691
+#, c-format
 msgid "initial position must not be null"
-msgstr "el nombre de campo no debe ser null"
+msgstr "la posición inicial no debe ser null"
 
 #: utils/adt/arrayfuncs.c:268 utils/adt/arrayfuncs.c:282
 #: utils/adt/arrayfuncs.c:293 utils/adt/arrayfuncs.c:315
@@ -18027,7 +19674,7 @@ 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:489 utils/adt/arrayfuncs.c:516
-#: utils/adt/rangetypes.c:2124 utils/adt/rangetypes.c:2132
+#: utils/adt/rangetypes.c:2114 utils/adt/rangetypes.c:2122
 #: utils/adt/rowtypes.c:208 utils/adt/rowtypes.c:216
 #, c-format
 msgid "Unexpected end of input."
@@ -18049,7 +19696,7 @@ msgstr "Elemento de array inesperado."
 msgid "Unmatched \"%c\" character."
 msgstr "Carácter «%c» sin pareja"
 
-#: utils/adt/arrayfuncs.c:597
+#: utils/adt/arrayfuncs.c:597 utils/adt/jsonfuncs.c:2381
 #, c-format
 msgid "Multidimensional arrays must have sub-arrays with matching dimensions."
 msgstr "Los arrays multidimensionales deben tener sub-arrays con dimensiones coincidentes."
@@ -18059,6 +19706,12 @@ msgstr "Los arrays multidimensionales deben tener sub-arrays con dimensiones coi
 msgid "Junk after closing right brace."
 msgstr "Basura después de la llave derecha de cierre."
 
+#: utils/adt/arrayfuncs.c:1284 utils/adt/arrayfuncs.c:3357
+#: utils/adt/arrayfuncs.c:5752
+#, c-format
+msgid "invalid number of dimensions: %d"
+msgstr "número incorrecto de dimensiones: %d"
+
 #: utils/adt/arrayfuncs.c:1295
 #, c-format
 msgid "invalid array flags"
@@ -18070,7 +19723,7 @@ msgid "wrong element type"
 msgstr "el tipo de elemento es erróneo"
 
 #: utils/adt/arrayfuncs.c:1353 utils/adt/rangetypes.c:334
-#: utils/cache/lsyscache.c:2651
+#: utils/cache/lsyscache.c:2683
 #, c-format
 msgid "no binary input function available for type %s"
 msgstr "no hay una función binaria de entrada para el tipo %s"
@@ -18081,7 +19734,7 @@ 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:1574 utils/adt/rangetypes.c:339
-#: utils/cache/lsyscache.c:2684
+#: utils/cache/lsyscache.c:2716
 #, c-format
 msgid "no binary output function available for type %s"
 msgstr "no hay una función binaria de salida para el tipo %s"
@@ -18093,11 +19746,12 @@ msgstr "no está implementada la obtención de segmentos de arrays de largo fijo
 
 #: utils/adt/arrayfuncs.c:2230 utils/adt/arrayfuncs.c:2252
 #: utils/adt/arrayfuncs.c:2301 utils/adt/arrayfuncs.c:2537
-#: utils/adt/arrayfuncs.c:2848 utils/adt/arrayfuncs.c:5744
-#: utils/adt/arrayfuncs.c:5776 utils/adt/arrayfuncs.c:5793
-#: utils/adt/json.c:2290 utils/adt/json.c:2365 utils/adt/jsonb.c:1369
-#: utils/adt/jsonb.c:1455 utils/adt/jsonfuncs.c:3537
-#: utils/adt/jsonfuncs.c:3582 utils/adt/jsonfuncs.c:3629
+#: utils/adt/arrayfuncs.c:2848 utils/adt/arrayfuncs.c:5738
+#: utils/adt/arrayfuncs.c:5764 utils/adt/arrayfuncs.c:5775
+#: utils/adt/json.c:2295 utils/adt/json.c:2370 utils/adt/jsonb.c:1370
+#: utils/adt/jsonb.c:1456 utils/adt/jsonfuncs.c:4141
+#: utils/adt/jsonfuncs.c:4292 utils/adt/jsonfuncs.c:4337
+#: utils/adt/jsonfuncs.c:4384
 #, c-format
 msgid "wrong number of array subscripts"
 msgstr "número incorrecto de subíndices del array"
@@ -18119,15 +19773,14 @@ 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:2826
-#, fuzzy, c-format
-#| msgid "array subscript must have type integer"
+#, c-format
 msgid "array slice subscript must provide both boundaries"
-msgstr "los subíndices de arrays deben tener tipo entero"
+msgstr "los subíndices del segmento de array deben especificar ambos bordes"
 
 #: utils/adt/arrayfuncs.c:2827
 #, c-format
 msgid "When assigning to a slice of an empty array value, slice boundaries must be fully specified."
-msgstr ""
+msgstr "Cuando se asigna a un segmento de un array vacío, los bordes del segmento deben ser especificados completamente."
 
 #: utils/adt/arrayfuncs.c:2838 utils/adt/arrayfuncs.c:2933
 #, c-format
@@ -18150,70 +19803,60 @@ msgstr "no se pueden comparar arrays con elementos de distintos tipos"
 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:5156
-#, fuzzy, c-format
+#: utils/adt/arrayfuncs.c:5152
+#, c-format
 msgid "data type %s is not an array type"
-msgstr "el tipo de destino no es un array"
+msgstr "el tipo %s no es un array"
 
-#: utils/adt/arrayfuncs.c:5213
-#, fuzzy, c-format
+#: utils/adt/arrayfuncs.c:5207
+#, c-format
 msgid "cannot accumulate null arrays"
-msgstr "no se pueden concatenar arrays incompatibles"
+msgstr "no se pueden acumular arrays nulos"
 
-#: utils/adt/arrayfuncs.c:5241
-#, fuzzy, c-format
+#: utils/adt/arrayfuncs.c:5235
+#, c-format
 msgid "cannot accumulate empty arrays"
-msgstr "no se pueden concatenar arrays incompatibles"
+msgstr "no se pueden acumular arrays vacíos"
 
-#: utils/adt/arrayfuncs.c:5270 utils/adt/arrayfuncs.c:5276
-#, fuzzy, c-format
+#: utils/adt/arrayfuncs.c:5264 utils/adt/arrayfuncs.c:5270
+#, c-format
 msgid "cannot accumulate arrays of different dimensionality"
-msgstr "no se pueden comparar arrays con elementos de distintos tipos"
+msgstr "no se pueden acumular arrays de distinta dimensionalidad"
 
-#: utils/adt/arrayfuncs.c:5642 utils/adt/arrayfuncs.c:5682
+#: utils/adt/arrayfuncs.c:5636 utils/adt/arrayfuncs.c:5676
 #, 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:5745 utils/adt/arrayfuncs.c:5777
+#: utils/adt/arrayfuncs.c:5739 utils/adt/arrayfuncs.c:5765
 #, c-format
 msgid "Dimension array must be one dimensional."
 msgstr "El array de dimensiones debe ser unidimensional."
 
-#: utils/adt/arrayfuncs.c:5750 utils/adt/arrayfuncs.c:5782
-#, c-format
-msgid "wrong range of array subscripts"
-msgstr "rango incorrecto en los subíndices del array"
-
-#: utils/adt/arrayfuncs.c:5751 utils/adt/arrayfuncs.c:5783
-#, c-format
-msgid "Lower bound of dimension array must be one."
-msgstr "El límite inferior del array de dimensiones debe ser uno."
-
-#: utils/adt/arrayfuncs.c:5756 utils/adt/arrayfuncs.c:5788
+#: utils/adt/arrayfuncs.c:5744 utils/adt/arrayfuncs.c:5770
 #, c-format
 msgid "dimension values cannot be null"
 msgstr "los valores de dimensión no pueden ser null"
 
-#: utils/adt/arrayfuncs.c:5794
+#: utils/adt/arrayfuncs.c:5776
 #, 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:6040
+#: utils/adt/arrayfuncs.c:6022
 #, 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:6317
-#, fuzzy, c-format
+#: utils/adt/arrayfuncs.c:6299
+#, c-format
 msgid "thresholds must be one-dimensional array"
-msgstr "el argumento debe ser vacío o un array unidimensional"
+msgstr "los umbrales deben ser un array unidimensional"
 
-#: utils/adt/arrayfuncs.c:6322
-#, fuzzy, c-format
+#: utils/adt/arrayfuncs.c:6304
+#, c-format
 msgid "thresholds array must not contain NULLs"
-msgstr "los arrays de typmod no deben contener valores nulos"
+msgstr "el array de umbrales no debe contener nulos"
 
 #: utils/adt/arrayutils.c:209
 #, c-format
@@ -18230,31 +19873,50 @@ msgstr "array de typmod debe ser unidimensional"
 msgid "typmod array must not contain nulls"
 msgstr "los arrays de typmod no deben contener valores nulos"
 
-#: utils/adt/ascii.c:75
+#: utils/adt/ascii.c:76
 #, c-format
 msgid "encoding conversion from %s to ASCII not supported"
 msgstr "la conversión de codificación de %s a ASCII no está soportada"
 
-#: utils/adt/bool.c:153
+#. translator: first %s is inet or cidr
+#: utils/adt/bool.c:153 utils/adt/cash.c:278 utils/adt/datetime.c:3799
+#: utils/adt/float.c:244 utils/adt/float.c:318 utils/adt/float.c:342
+#: utils/adt/float.c:461 utils/adt/float.c:544 utils/adt/float.c:570
+#: utils/adt/geo_ops.c:156 utils/adt/geo_ops.c:166 utils/adt/geo_ops.c:178
+#: utils/adt/geo_ops.c:210 utils/adt/geo_ops.c:255 utils/adt/geo_ops.c:265
+#: utils/adt/geo_ops.c:935 utils/adt/geo_ops.c:1321 utils/adt/geo_ops.c:1356
+#: utils/adt/geo_ops.c:1364 utils/adt/geo_ops.c:3430 utils/adt/geo_ops.c:4563
+#: utils/adt/geo_ops.c:4579 utils/adt/geo_ops.c:4586 utils/adt/mac.c:94
+#: utils/adt/mac8.c:93 utils/adt/mac8.c:166 utils/adt/mac8.c:184
+#: utils/adt/mac8.c:202 utils/adt/mac8.c:221 utils/adt/nabstime.c:1539
+#: utils/adt/network.c:58 utils/adt/numeric.c:593 utils/adt/numeric.c:620
+#: utils/adt/numeric.c:5488 utils/adt/numeric.c:5512 utils/adt/numeric.c:5536
+#: utils/adt/numeric.c:6338 utils/adt/numeric.c:6364 utils/adt/oid.c:44
+#: utils/adt/oid.c:58 utils/adt/oid.c:64 utils/adt/oid.c:86
+#: utils/adt/pg_lsn.c:44 utils/adt/pg_lsn.c:50 utils/adt/tid.c:72
+#: utils/adt/tid.c:80 utils/adt/tid.c:88 utils/adt/txid.c:405
+#: utils/adt/uuid.c:136
 #, c-format
-msgid "invalid input syntax for type boolean: \"%s\""
-msgstr "la sintaxis de entrada no es válida para tipo boolean: «%s»"
+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:246
-#, c-format
-msgid "invalid input syntax for type money: \"%s\""
-msgstr "la sintaxis de entrada no es válida para tipo money: «%s»"
+#: utils/adt/cash.c:211 utils/adt/cash.c:238 utils/adt/cash.c:249
+#: utils/adt/cash.c:292 utils/adt/int8.c:114 utils/adt/numutils.c:75
+#: utils/adt/numutils.c:82 utils/adt/oid.c:70 utils/adt/oid.c:109
+#, fuzzy, c-format
+msgid "value \"%s\" is out of range for type %s"
+msgstr "el valor «%s» está fuera de rango para el tipo oid"
 
-#: utils/adt/cash.c:607 utils/adt/cash.c:657 utils/adt/cash.c:708
-#: utils/adt/cash.c:757 utils/adt/cash.c:809 utils/adt/cash.c:859
-#: utils/adt/float.c:857 utils/adt/float.c:921 utils/adt/float.c:3317
-#: utils/adt/float.c:3380 utils/adt/geo_ops.c:4085 utils/adt/int.c:719
-#: utils/adt/int.c:861 utils/adt/int.c:969 utils/adt/int.c:1058
-#: utils/adt/int.c:1097 utils/adt/int.c:1125 utils/adt/int8.c:597
+#: utils/adt/cash.c:653 utils/adt/cash.c:703 utils/adt/cash.c:754
+#: utils/adt/cash.c:803 utils/adt/cash.c:855 utils/adt/cash.c:905
+#: utils/adt/float.c:855 utils/adt/float.c:919 utils/adt/float.c:3315
+#: utils/adt/float.c:3378 utils/adt/geo_ops.c:4093 utils/adt/int.c:704
+#: utils/adt/int.c:846 utils/adt/int.c:954 utils/adt/int.c:1043
+#: utils/adt/int.c:1082 utils/adt/int.c:1110 utils/adt/int8.c:597
 #: utils/adt/int8.c:657 utils/adt/int8.c:897 utils/adt/int8.c:1005
-#: utils/adt/int8.c:1094 utils/adt/int8.c:1202 utils/adt/numeric.c:6800
-#: utils/adt/numeric.c:7089 utils/adt/numeric.c:8090
-#: utils/adt/timestamp.c:3446
+#: utils/adt/int8.c:1094 utils/adt/int8.c:1202 utils/adt/numeric.c:6902
+#: utils/adt/numeric.c:7191 utils/adt/numeric.c:8203
+#: utils/adt/timestamp.c:3216
 #, c-format
 msgid "division by zero"
 msgstr "división por cero"
@@ -18264,180 +19926,162 @@ msgstr "división por cero"
 msgid "\"char\" out of range"
 msgstr "«char» está fuera de rango"
 
-#: utils/adt/date.c:67 utils/adt/timestamp.c:94 utils/adt/varbit.c:52
-#: utils/adt/varchar.c:45
+#: utils/adt/date.c:67 utils/adt/timestamp.c:95 utils/adt/varbit.c:53
+#: utils/adt/varchar.c:46
 #, c-format
 msgid "invalid type modifier"
 msgstr "el modificador de tipo no es válido"
 
-#: utils/adt/date.c:72
+#: utils/adt/date.c:79
 #, 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:78
+#: utils/adt/date.c:85
 #, 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:141 utils/adt/datetime.c:1277 utils/adt/datetime.c:2148
+#: utils/adt/date.c:146 utils/adt/datetime.c:1209 utils/adt/datetime.c:2117
 #, c-format
 msgid "date/time value \"current\" is no longer supported"
 msgstr "valor de hora/fecha «current» ya no está soportado"
 
-#: utils/adt/date.c:167 utils/adt/date.c:175 utils/adt/formatting.c:3535
-#: utils/adt/formatting.c:3544
+#: utils/adt/date.c:172 utils/adt/date.c:180 utils/adt/formatting.c:3585
+#: utils/adt/formatting.c:3594
 #, c-format
 msgid "date out of range: \"%s\""
 msgstr "fecha fuera de rango: «%s»"
 
-#: utils/adt/date.c:222 utils/adt/date.c:456 utils/adt/date.c:480
-#: utils/adt/xml.c:2029
+#: utils/adt/date.c:227 utils/adt/date.c:539 utils/adt/date.c:563
+#: utils/adt/xml.c:2089
 #, c-format
 msgid "date out of range"
 msgstr "la fecha fuera de rango"
 
-#: utils/adt/date.c:264 utils/adt/timestamp.c:593
+#: utils/adt/date.c:273 utils/adt/timestamp.c:564
 #, c-format
 msgid "date field value out of range: %d-%02d-%02d"
 msgstr "un valor en el campo de fecha está fuera de rango: %d-%02d-%02d"
 
-#: utils/adt/date.c:271 utils/adt/date.c:280 utils/adt/timestamp.c:599
+#: utils/adt/date.c:280 utils/adt/date.c:289 utils/adt/timestamp.c:570
 #, c-format
 msgid "date out of range: %d-%02d-%02d"
 msgstr "fecha fuera de rango: %d-%02d-%02d"
 
-#: utils/adt/date.c:431
+#: utils/adt/date.c:327 utils/adt/date.c:350 utils/adt/date.c:376
+#: utils/adt/date.c:1092 utils/adt/date.c:1138 utils/adt/date.c:1672
+#: utils/adt/date.c:1703 utils/adt/date.c:1732 utils/adt/date.c:2469
+#: utils/adt/datetime.c:1690 utils/adt/formatting.c:3460
+#: utils/adt/formatting.c:3492 utils/adt/formatting.c:3560
+#: utils/adt/json.c:1539 utils/adt/json.c:1561 utils/adt/jsonb.c:824
+#: utils/adt/jsonb.c:848 utils/adt/nabstime.c:456 utils/adt/nabstime.c:499
+#: utils/adt/nabstime.c:529 utils/adt/nabstime.c:572 utils/adt/timestamp.c:230
+#: utils/adt/timestamp.c:262 utils/adt/timestamp.c:692
+#: utils/adt/timestamp.c:701 utils/adt/timestamp.c:779
+#: utils/adt/timestamp.c:812 utils/adt/timestamp.c:2795
+#: utils/adt/timestamp.c:2816 utils/adt/timestamp.c:2829
+#: utils/adt/timestamp.c:2838 utils/adt/timestamp.c:2846
+#: utils/adt/timestamp.c:2901 utils/adt/timestamp.c:2924
+#: utils/adt/timestamp.c:2937 utils/adt/timestamp.c:2948
+#: utils/adt/timestamp.c:2956 utils/adt/timestamp.c:3512
+#: utils/adt/timestamp.c:3637 utils/adt/timestamp.c:3678
+#: utils/adt/timestamp.c:3759 utils/adt/timestamp.c:3805
+#: utils/adt/timestamp.c:3908 utils/adt/timestamp.c:4307
+#: utils/adt/timestamp.c:4406 utils/adt/timestamp.c:4416
+#: utils/adt/timestamp.c:4508 utils/adt/timestamp.c:4610
+#: utils/adt/timestamp.c:4620 utils/adt/timestamp.c:4852
+#: utils/adt/timestamp.c:4866 utils/adt/timestamp.c:4871
+#: utils/adt/timestamp.c:4885 utils/adt/timestamp.c:4930
+#: utils/adt/timestamp.c:4962 utils/adt/timestamp.c:4969
+#: utils/adt/timestamp.c:5002 utils/adt/timestamp.c:5006
+#: utils/adt/timestamp.c:5075 utils/adt/timestamp.c:5079
+#: utils/adt/timestamp.c:5093 utils/adt/timestamp.c:5127 utils/adt/xml.c:2111
+#: utils/adt/xml.c:2118 utils/adt/xml.c:2138 utils/adt/xml.c:2145
+#, c-format
+msgid "timestamp out of range"
+msgstr "el timestamp está fuera de rango"
+
+#: utils/adt/date.c:514
 #, c-format
 msgid "cannot subtract infinite dates"
 msgstr "no se pueden restar fechas infinitas"
 
-#: utils/adt/date.c:509 utils/adt/date.c:544 utils/adt/date.c:566
-#: utils/adt/date.c:2629 utils/adt/date.c:2643
+#: utils/adt/date.c:592 utils/adt/date.c:623 utils/adt/date.c:641
+#: utils/adt/date.c:2506 utils/adt/date.c:2516
 #, c-format
 msgid "date out of range for timestamp"
 msgstr "fecha fuera de rango para timestamp"
 
-#: utils/adt/date.c:1022 utils/adt/date.c:1068 utils/adt/date.c:1678
-#: utils/adt/date.c:1714 utils/adt/date.c:1748 utils/adt/date.c:2592
-#: utils/adt/formatting.c:3410 utils/adt/formatting.c:3442
-#: utils/adt/formatting.c:3510 utils/adt/json.c:1534 utils/adt/json.c:1556
-#: utils/adt/jsonb.c:823 utils/adt/jsonb.c:847 utils/adt/nabstime.c:455
-#: utils/adt/nabstime.c:498 utils/adt/nabstime.c:528 utils/adt/nabstime.c:571
-#: utils/adt/timestamp.c:224 utils/adt/timestamp.c:268
-#: utils/adt/timestamp.c:726 utils/adt/timestamp.c:735
-#: utils/adt/timestamp.c:820 utils/adt/timestamp.c:860
-#: utils/adt/timestamp.c:3021 utils/adt/timestamp.c:3042
-#: utils/adt/timestamp.c:3055 utils/adt/timestamp.c:3064
-#: utils/adt/timestamp.c:3072 utils/adt/timestamp.c:3127
-#: utils/adt/timestamp.c:3150 utils/adt/timestamp.c:3163
-#: utils/adt/timestamp.c:3174 utils/adt/timestamp.c:3182
-#: utils/adt/timestamp.c:3756 utils/adt/timestamp.c:3885
-#: utils/adt/timestamp.c:3926 utils/adt/timestamp.c:4014
-#: utils/adt/timestamp.c:4060 utils/adt/timestamp.c:4171
-#: utils/adt/timestamp.c:4578 utils/adt/timestamp.c:4694
-#: utils/adt/timestamp.c:4704 utils/adt/timestamp.c:4800
-#: utils/adt/timestamp.c:4919 utils/adt/timestamp.c:4929
-#: utils/adt/timestamp.c:5250 utils/adt/timestamp.c:5264
-#: utils/adt/timestamp.c:5269 utils/adt/timestamp.c:5283
-#: utils/adt/timestamp.c:5366 utils/adt/timestamp.c:5398
-#: utils/adt/timestamp.c:5405 utils/adt/timestamp.c:5431
-#: utils/adt/timestamp.c:5435 utils/adt/timestamp.c:5504
-#: utils/adt/timestamp.c:5508 utils/adt/timestamp.c:5522
-#: utils/adt/timestamp.c:5560 utils/adt/xml.c:2051 utils/adt/xml.c:2058
-#: utils/adt/xml.c:2078 utils/adt/xml.c:2085
-#, c-format
-msgid "timestamp out of range"
-msgstr "el timestamp está fuera de rango"
-
-#: utils/adt/date.c:1094
+#: utils/adt/date.c:1164
 #, c-format
 msgid "cannot convert reserved abstime value to date"
 msgstr "no se puede convertir un valor reservado de abstime a date"
 
-#: utils/adt/date.c:1112 utils/adt/date.c:1118
-#, fuzzy, c-format
-#| msgid "date out of range for timestamp"
+#: utils/adt/date.c:1182 utils/adt/date.c:1188
+#, c-format
 msgid "abstime out of range for date"
-msgstr "fecha fuera de rango para timestamp"
+msgstr "abstime fuera de rango para date"
 
-#: utils/adt/date.c:1258 utils/adt/date.c:1265 utils/adt/date.c:2082
-#: utils/adt/date.c:2089
+#: utils/adt/date.c:1301 utils/adt/date.c:2020
 #, c-format
 msgid "time out of range"
 msgstr "hora fuera de rango"
 
-#: utils/adt/date.c:1326 utils/adt/timestamp.c:618
+#: utils/adt/date.c:1357 utils/adt/timestamp.c:589
 #, c-format
 msgid "time field value out of range: %d:%02d:%02g"
 msgstr "un valor en el campo de hora está fuera de rango: %d:%02d:%02g"
 
-#: utils/adt/date.c:1960 utils/adt/date.c:1977
+#: utils/adt/date.c:1907 utils/adt/date.c:1920
 #, c-format
 msgid "\"time\" units \"%s\" not recognized"
 msgstr "las unidades de «time» «%s» no son reconocidas"
 
-#: utils/adt/date.c:2098
+#: utils/adt/date.c:2028
 #, c-format
 msgid "time zone displacement out of range"
 msgstr "desplazamiento de huso horario fuera de rango"
 
-#: utils/adt/date.c:2740 utils/adt/date.c:2757
+#: utils/adt/date.c:2601 utils/adt/date.c:2614
 #, c-format
 msgid "\"time with time zone\" units \"%s\" not recognized"
 msgstr "las unidades de «timestamp with time zone» «%s» no son reconocidas"
 
-#: utils/adt/date.c:2830 utils/adt/datetime.c:994 utils/adt/datetime.c:1874
-#: utils/adt/datetime.c:4700 utils/adt/timestamp.c:532
-#: utils/adt/timestamp.c:559 utils/adt/timestamp.c:5275
-#: utils/adt/timestamp.c:5514
+#: utils/adt/date.c:2687 utils/adt/datetime.c:931 utils/adt/datetime.c:1848
+#: utils/adt/datetime.c:4636 utils/adt/timestamp.c:503
+#: utils/adt/timestamp.c:530 utils/adt/timestamp.c:4877
+#: utils/adt/timestamp.c:5085
 #, c-format
 msgid "time zone \"%s\" not recognized"
 msgstr "el huso horario «%s» no es reconocido"
 
-#: utils/adt/date.c:2870 utils/adt/timestamp.c:5351 utils/adt/timestamp.c:5545
+#: utils/adt/date.c:2719 utils/adt/timestamp.c:4919 utils/adt/timestamp.c:5116
 #, 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:1749
-#, c-format
-msgid "time zone abbreviation \"%s\" is not used in time zone \"%s\""
-msgstr "abreviación de huso horario «%s» no se usa en el huso horario «%s»"
-
-#: utils/adt/datetime.c:3835 utils/adt/datetime.c:3842
+#: utils/adt/datetime.c:3772 utils/adt/datetime.c:3779
 #, c-format
 msgid "date/time field value out of range: \"%s\""
 msgstr "el valor de hora/fecha está fuera de rango: «%s»"
 
-#: utils/adt/datetime.c:3844
+#: utils/adt/datetime.c:3781
 #, c-format
 msgid "Perhaps you need a different \"datestyle\" setting."
 msgstr "Quizás necesite una configuración diferente de «datestyle»."
 
-#: utils/adt/datetime.c:3849
+#: utils/adt/datetime.c:3786
 #, c-format
 msgid "interval field value out of range: \"%s\""
 msgstr "el valor de interval está fuera de rango: «%s»"
 
-#: utils/adt/datetime.c:3855
+#: utils/adt/datetime.c:3792
 #, c-format
 msgid "time zone displacement out of range: \"%s\""
 msgstr "el desplazamiento de huso horario está fuera de rango: «%s»"
 
-#. translator: first %s is inet or cidr
-#: utils/adt/datetime.c:3862 utils/adt/float.c:463 utils/adt/float.c:546
-#: utils/adt/float.c:572 utils/adt/geo_ops.c:156 utils/adt/geo_ops.c:166
-#: utils/adt/geo_ops.c:178 utils/adt/geo_ops.c:210 utils/adt/geo_ops.c:255
-#: utils/adt/geo_ops.c:265 utils/adt/geo_ops.c:935 utils/adt/geo_ops.c:1321
-#: utils/adt/geo_ops.c:1356 utils/adt/geo_ops.c:1364 utils/adt/geo_ops.c:3422
-#: utils/adt/geo_ops.c:4555 utils/adt/geo_ops.c:4571 utils/adt/geo_ops.c:4578
-#: utils/adt/network.c:58
-#, 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/datetime.c:4702
+#: utils/adt/datetime.c:4638
 #, 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»."
@@ -18447,30 +20091,27 @@ 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:110
+#: utils/adt/dbsize.c:116
 #, c-format
 msgid "could not open tablespace directory \"%s\": %m"
 msgstr "no se pudo abrir el directorio de tablespace «%s»: %m"
 
-#: utils/adt/dbsize.c:757 utils/adt/dbsize.c:776 utils/adt/dbsize.c:828
-#, fuzzy, c-format
-#| msgid "invalid cidr value: \"%s\""
+#: utils/adt/dbsize.c:764 utils/adt/dbsize.c:832
+#, c-format
 msgid "invalid size: \"%s\""
-msgstr "valor cidr no válido: «%s»"
+msgstr "tamaño no válido: «%s»"
 
-#: utils/adt/dbsize.c:829
-#, fuzzy, c-format
-#| msgid "invalid time zone name: \"%s\""
+#: utils/adt/dbsize.c:833
+#, c-format
 msgid "Invalid size unit: \"%s\"."
-msgstr "nombre de huso horario no válido: «%s»"
+msgstr "Nombre de unidad de tamaño no válido: «%s»."
 
-#: utils/adt/dbsize.c:830
-#, fuzzy, c-format
-#| msgid "Valid units for this parameter are \"kB\", \"MB\", \"GB\", and \"TB\"."
+#: utils/adt/dbsize.c:834
+#, c-format
 msgid "Valid units are \"bytes\", \"kB\", \"MB\", \"GB\", and \"TB\"."
-msgstr "Unidades válidas para este parámetro son «kB», «MB», «GB» y «TB»."
+msgstr "Unidades válidas son «bytes«, «kB», «MB», «GB» y «TB»."
 
-#: utils/adt/domains.c:85
+#: utils/adt/domains.c:91
 #, c-format
 msgid "type %s is not a domain"
 msgstr "tipo «%s» no es un dominio"
@@ -18493,47 +20134,64 @@ msgstr "el dato hexadecimal no es válido: tiene un número impar de dígitos"
 #: utils/adt/encode.c:295
 #, c-format
 msgid "unexpected \"=\" while decoding base64 sequence"
-msgstr ""
+msgstr "«=» inesperado mientras se decodificaba la secuencia base64"
 
 #: utils/adt/encode.c:307
-#, fuzzy, c-format
+#, c-format
 msgid "invalid symbol \"%c\" while decoding base64 sequence"
-msgstr "la codificación de origen «%s» no es válida"
+msgstr "símbolo «%c» no válido al decodificar secuencia base64"
 
 #: utils/adt/encode.c:327
-#, fuzzy, c-format
+#, c-format
 msgid "invalid base64 end sequence"
-msgstr "secuencia de término no válida"
+msgstr "secuencia de término base64 no válida"
 
 #: utils/adt/encode.c:328
 #, c-format
 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:442 utils/adt/encode.c:507 utils/adt/json.c:785
+#: utils/adt/json.c:825 utils/adt/json.c:841 utils/adt/json.c:853
+#: utils/adt/json.c:863 utils/adt/json.c:914 utils/adt/json.c:946
+#: utils/adt/json.c:965 utils/adt/json.c:977 utils/adt/json.c:989
+#: utils/adt/json.c:1134 utils/adt/json.c:1148 utils/adt/json.c:1159
+#: utils/adt/json.c:1167 utils/adt/json.c:1175 utils/adt/json.c:1183
+#: utils/adt/json.c:1191 utils/adt/json.c:1199 utils/adt/json.c:1207
+#: utils/adt/json.c:1215 utils/adt/json.c:1245 utils/adt/varlena.c:296
+#: utils/adt/varlena.c:337
+#, fuzzy, c-format
+msgid "invalid input syntax for type %s"
+msgstr "sintaxis de entrada no válida para tipo json"
+
+#: utils/adt/enum.c:115
+#, c-format
+msgid "unsafe use of new value \"%s\" of enum type %s"
 msgstr ""
 
-#: utils/adt/encode.c:442 utils/adt/encode.c:507 utils/adt/varlena.c:297
-#: utils/adt/varlena.c:338
+#: utils/adt/enum.c:118
 #, c-format
-msgid "invalid input syntax for type bytea"
-msgstr "sintaxis de entrada no válida para tipo bytea"
+msgid "New enum values must be committed before they can be used."
+msgstr ""
 
-#: utils/adt/enum.c:48 utils/adt/enum.c:58 utils/adt/enum.c:113
-#: utils/adt/enum.c:123
+#: utils/adt/enum.c:136 utils/adt/enum.c:146 utils/adt/enum.c:204
+#: utils/adt/enum.c:214
 #, c-format
 msgid "invalid input value for enum %s: \"%s\""
 msgstr "la sintaxis de entrada no es válida para el enum %s: «%s»"
 
-#: utils/adt/enum.c:85 utils/adt/enum.c:148 utils/adt/enum.c:198
+#: utils/adt/enum.c:176 utils/adt/enum.c:242 utils/adt/enum.c:301
 #, c-format
 msgid "invalid internal value for enum: %u"
 msgstr "el valor interno no es válido para enum: %u"
 
-#: utils/adt/enum.c:356 utils/adt/enum.c:385 utils/adt/enum.c:425
-#: utils/adt/enum.c:445
+#: utils/adt/enum.c:461 utils/adt/enum.c:490 utils/adt/enum.c:530
+#: utils/adt/enum.c:550
 #, c-format
 msgid "could not determine actual enum type"
 msgstr "no se pudo determinar el tipo enum efectivo"
 
-#: utils/adt/enum.c:364 utils/adt/enum.c:393
+#: utils/adt/enum.c:469 utils/adt/enum.c:498
 #, c-format
 msgid "enum %s contains no values"
 msgstr "el enum %s no contiene valores"
@@ -18548,331 +20206,331 @@ msgstr "valor fuera de rango: desbordamiento"
 msgid "value out of range: underflow"
 msgstr "valor fuera de rango: desbordamiento por abajo"
 
-#: utils/adt/float.c:246 utils/adt/float.c:320 utils/adt/float.c:344
-#, c-format
-msgid "invalid input syntax for type real: \"%s\""
-msgstr "la sintaxis de entrada no es válida para tipo real: «%s»"
-
-#: utils/adt/float.c:314
+#: utils/adt/float.c:312
 #, 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:539
+#: utils/adt/float.c:537
 #, 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:1248 utils/adt/float.c:1306 utils/adt/int.c:349
-#: utils/adt/int.c:775 utils/adt/int.c:804 utils/adt/int.c:825
-#: utils/adt/int.c:845 utils/adt/int.c:879 utils/adt/int.c:1174
-#: utils/adt/int8.c:1323 utils/adt/numeric.c:3004 utils/adt/numeric.c:3013
+#: utils/adt/float.c:1246 utils/adt/float.c:1304 utils/adt/int.c:334
+#: utils/adt/int.c:760 utils/adt/int.c:789 utils/adt/int.c:810
+#: utils/adt/int.c:830 utils/adt/int.c:864 utils/adt/int.c:1159
+#: utils/adt/int8.c:1323 utils/adt/numeric.c:3050 utils/adt/numeric.c:3059
 #, c-format
 msgid "smallint out of range"
 msgstr "smallint está fuera de rango"
 
-#: utils/adt/float.c:1432 utils/adt/numeric.c:7522
+#: utils/adt/float.c:1430 utils/adt/numeric.c:7624
 #, 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:1474 utils/adt/numeric.c:2807
+#: utils/adt/float.c:1472 utils/adt/numeric.c:2853
 #, c-format
 msgid "zero raised to a negative power is undefined"
 msgstr "cero elevado a una potencia negativa es indefinido"
 
-#: utils/adt/float.c:1478 utils/adt/numeric.c:2813
+#: utils/adt/float.c:1476 utils/adt/numeric.c:2859
 #, 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:1544 utils/adt/float.c:1574 utils/adt/numeric.c:7787
+#: utils/adt/float.c:1542 utils/adt/float.c:1572 utils/adt/numeric.c:7890
 #, c-format
 msgid "cannot take logarithm of zero"
 msgstr "no se puede calcular logaritmo de cero"
 
-#: utils/adt/float.c:1548 utils/adt/float.c:1578 utils/adt/numeric.c:7791
+#: utils/adt/float.c:1546 utils/adt/float.c:1576 utils/adt/numeric.c:7894
 #, 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:1608 utils/adt/float.c:1638 utils/adt/float.c:1730
-#: utils/adt/float.c:1756 utils/adt/float.c:1783 utils/adt/float.c:1809
-#: utils/adt/float.c:1956 utils/adt/float.c:1991 utils/adt/float.c:2155
-#: utils/adt/float.c:2209 utils/adt/float.c:2273 utils/adt/float.c:2328
+#: utils/adt/float.c:1606 utils/adt/float.c:1636 utils/adt/float.c:1728
+#: utils/adt/float.c:1754 utils/adt/float.c:1781 utils/adt/float.c:1807
+#: utils/adt/float.c:1954 utils/adt/float.c:1989 utils/adt/float.c:2153
+#: utils/adt/float.c:2207 utils/adt/float.c:2271 utils/adt/float.c:2326
 #, c-format
 msgid "input is out of range"
 msgstr "la entrada está fuera de rango"
 
-#: utils/adt/float.c:3534 utils/adt/numeric.c:1447
+#: utils/adt/float.c:3532 utils/adt/numeric.c:1493
 #, c-format
 msgid "count must be greater than zero"
 msgstr "count debe ser mayor que cero"
 
-#: utils/adt/float.c:3539 utils/adt/numeric.c:1454
+#: utils/adt/float.c:3537 utils/adt/numeric.c:1500
 #, 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:3545
+#: utils/adt/float.c:3543
 #, c-format
 msgid "lower and upper bounds must be finite"
 msgstr "los límites inferior y superior deben ser finitos"
 
-#: utils/adt/float.c:3583 utils/adt/numeric.c:1467
+#: utils/adt/float.c:3581 utils/adt/numeric.c:1513
 #, 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:485
+#: utils/adt/formatting.c:493
 #, 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:486
+#: utils/adt/formatting.c:494
 #, 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:1059
+#: utils/adt/formatting.c:1060
 #, c-format
 msgid "\"EEEE\" must be the last pattern used"
 msgstr "«EEEE» debe ser el último patrón usado"
 
-#: utils/adt/formatting.c:1067
+#: utils/adt/formatting.c:1068
 #, c-format
 msgid "\"9\" must be ahead of \"PR\""
 msgstr "«9» debe ir antes de «PR»"
 
-#: utils/adt/formatting.c:1083
+#: utils/adt/formatting.c:1084
 #, c-format
 msgid "\"0\" must be ahead of \"PR\""
 msgstr "«0» debe ir antes de «PR»"
 
-#: utils/adt/formatting.c:1110
+#: utils/adt/formatting.c:1111
 #, c-format
 msgid "multiple decimal points"
 msgstr "hay múltiples puntos decimales"
 
-#: utils/adt/formatting.c:1114 utils/adt/formatting.c:1197
+#: utils/adt/formatting.c:1115 utils/adt/formatting.c:1198
 #, 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:1126
+#: utils/adt/formatting.c:1127
 #, c-format
 msgid "cannot use \"S\" twice"
 msgstr "no se puede usar «S» dos veces"
 
-#: utils/adt/formatting.c:1130
+#: utils/adt/formatting.c:1131
 #, 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:1150
+#: utils/adt/formatting.c:1151
 #, c-format
 msgid "cannot use \"S\" and \"MI\" together"
 msgstr "no se puede usar «S» y «MI» simultáneamente"
 
-#: utils/adt/formatting.c:1160
+#: utils/adt/formatting.c:1161
 #, c-format
 msgid "cannot use \"S\" and \"PL\" together"
 msgstr "no se puede usar «S» y «PL» simultáneamente"
 
-#: utils/adt/formatting.c:1170
+#: utils/adt/formatting.c:1171
 #, c-format
 msgid "cannot use \"S\" and \"SG\" together"
 msgstr "no se puede usar «S» y «SG» simultáneamente"
 
-#: utils/adt/formatting.c:1179
+#: utils/adt/formatting.c:1180
 #, 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:1205
+#: utils/adt/formatting.c:1206
 #, c-format
 msgid "cannot use \"EEEE\" twice"
 msgstr "no se puede usar «EEEE» dos veces"
 
-#: utils/adt/formatting.c:1211
+#: utils/adt/formatting.c:1212
 #, c-format
 msgid "\"EEEE\" is incompatible with other formats"
 msgstr "«EEEE» es incompatible con otros formatos"
 
-#: utils/adt/formatting.c:1212
+#: utils/adt/formatting.c:1213
 #, 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:1412
+#: utils/adt/formatting.c:1402
 #, c-format
 msgid "\"%s\" is not a number"
 msgstr "«%s» no es un número"
 
-#: utils/adt/formatting.c:1513 utils/adt/formatting.c:1565
+#: utils/adt/formatting.c:1480
+#, fuzzy, c-format
+msgid "case conversion failed: %s"
+msgstr "la expresión regular falló: %s"
+
+#: utils/adt/formatting.c:1546
 #, c-format
 msgid "could not determine which collation to use for lower() function"
 msgstr "no se pudo determinar qué ordenamiento (collation) usar para la función lower()"
 
-#: utils/adt/formatting.c:1633 utils/adt/formatting.c:1685
+#: utils/adt/formatting.c:1670
 #, c-format
 msgid "could not determine which collation to use for upper() function"
 msgstr "no se pudo determinar qué ordenamiento (collation) usar para la función upper()"
 
-#: utils/adt/formatting.c:1754 utils/adt/formatting.c:1818
+#: utils/adt/formatting.c:1795
 #, c-format
 msgid "could not determine which collation to use for initcap() function"
 msgstr "no se pudo determinar qué ordenamiento (collation) usar para la función initcap()"
 
-#: utils/adt/formatting.c:2122
+#: utils/adt/formatting.c:2163
 #, c-format
 msgid "invalid combination of date conventions"
 msgstr "combinacion invalida de convenciones de fecha"
 
-#: utils/adt/formatting.c:2123
+#: utils/adt/formatting.c:2164
 #, 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:2140
+#: utils/adt/formatting.c:2181
 #, 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:2142
+#: utils/adt/formatting.c:2183
 #, 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:2203
+#: utils/adt/formatting.c:2244
 #, 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:2205
+#: utils/adt/formatting.c:2246
 #, 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:2208 utils/adt/formatting.c:2222
+#: utils/adt/formatting.c:2249 utils/adt/formatting.c:2263
 #, 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:2218 utils/adt/formatting.c:2231
-#: utils/adt/formatting.c:2361
+#: utils/adt/formatting.c:2259 utils/adt/formatting.c:2272
+#: utils/adt/formatting.c:2402
 #, c-format
 msgid "invalid value \"%s\" for \"%s\""
 msgstr "el valor «%s» no es válido para «%s»"
 
-#: utils/adt/formatting.c:2220
+#: utils/adt/formatting.c:2261
 #, 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:2233
+#: utils/adt/formatting.c:2274
 #, c-format
 msgid "Value must be an integer."
 msgstr "El valor debe ser un entero."
 
-#: utils/adt/formatting.c:2238
+#: utils/adt/formatting.c:2279
 #, 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:2240
+#: utils/adt/formatting.c:2281
 #, 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:2363
+#: utils/adt/formatting.c:2404
 #, 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:2558 utils/adt/formatting.c:2578
-#: utils/adt/formatting.c:2598 utils/adt/formatting.c:2618
-#: utils/adt/formatting.c:2637 utils/adt/formatting.c:2656
-#: utils/adt/formatting.c:2680 utils/adt/formatting.c:2698
-#: utils/adt/formatting.c:2716 utils/adt/formatting.c:2734
-#: utils/adt/formatting.c:2751 utils/adt/formatting.c:2768
+#: utils/adt/formatting.c:2589 utils/adt/formatting.c:2609
+#: utils/adt/formatting.c:2629 utils/adt/formatting.c:2649
+#: utils/adt/formatting.c:2668 utils/adt/formatting.c:2687
+#: utils/adt/formatting.c:2711 utils/adt/formatting.c:2729
+#: utils/adt/formatting.c:2747 utils/adt/formatting.c:2765
+#: utils/adt/formatting.c:2782 utils/adt/formatting.c:2799
 #, c-format
 msgid "localized string format value too long"
 msgstr "cadena traducida en cadena de formato es demasiado larga"
 
-#: utils/adt/formatting.c:3055
-#, c-format
-msgid "\"TZ\"/\"tz\"/\"OF\" format patterns are not supported in to_date"
-msgstr "los patrones de formato «TZ»/«tz»/«OF» no están soportados en to_date"
+#: utils/adt/formatting.c:3086
+#, fuzzy, c-format
+msgid "formatting field \"%s\" is only supported in to_char"
+msgstr "el archivo de slot de replicación «%s» tiene versión no soportada %u"
 
-#: utils/adt/formatting.c:3163
+#: utils/adt/formatting.c:3197
 #, c-format
 msgid "invalid input string for \"Y,YYY\""
 msgstr "cadena de entrada no válida para «Y,YYY»"
 
-#: utils/adt/formatting.c:3674
+#: utils/adt/formatting.c:3703
 #, 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:3676
+#: utils/adt/formatting.c:3705
 #, 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:3771
+#: utils/adt/formatting.c:3811
 #, 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:4620
+#: utils/adt/formatting.c:4678
 #, c-format
 msgid "\"EEEE\" not supported for input"
 msgstr "«EEEE» no está soportado en la entrada"
 
-#: utils/adt/formatting.c:4632
+#: utils/adt/formatting.c:4690
 #, c-format
 msgid "\"RN\" not supported for input"
 msgstr "«RN» no está soportado en la entrada"
 
-#: utils/adt/genfile.c:62
+#: utils/adt/genfile.c:63
 #, c-format
 msgid "reference to parent directory (\"..\") not allowed"
 msgstr "no se permiten referencias a directorios padre («..»)"
 
-#: utils/adt/genfile.c:73
+#: utils/adt/genfile.c:74
 #, c-format
 msgid "absolute path not allowed"
 msgstr "no se permiten rutas absolutas"
 
-#: utils/adt/genfile.c:78
+#: utils/adt/genfile.c:79
 #, c-format
 msgid "path must be in or below the current directory"
 msgstr "la ruta debe estar en o debajo del directorio actual"
 
-#: utils/adt/genfile.c:125 utils/adt/oracle_compat.c:184
+#: utils/adt/genfile.c:126 utils/adt/oracle_compat.c:184
 #: utils/adt/oracle_compat.c:282 utils/adt/oracle_compat.c:758
 #: utils/adt/oracle_compat.c:1059
 #, c-format
 msgid "requested length too large"
 msgstr "el tamaño solicitado es demasiado grande"
 
-#: utils/adt/genfile.c:142
+#: utils/adt/genfile.c:143
 #, c-format
 msgid "could not seek in file \"%s\": %m"
 msgstr "no se pudo posicionar (seek) el archivo «%s»: %m"
 
-#: utils/adt/genfile.c:200 utils/adt/genfile.c:241
+#: utils/adt/genfile.c:201 utils/adt/genfile.c:242
 #, c-format
 msgid "must be superuser to read files"
 msgstr "debe ser superusuario para leer archivos"
 
-#: utils/adt/genfile.c:318
+#: utils/adt/genfile.c:319
 #, c-format
 msgid "must be superuser to get file information"
 msgstr "debe ser superusuario obtener información de archivos"
 
-#: utils/adt/genfile.c:404
+#: utils/adt/genfile.c:405
 #, c-format
 msgid "must be superuser to get directory listings"
 msgstr "debe ser superusuario para obtener listados de directorio"
@@ -18887,8 +20545,8 @@ msgstr "especificación de línea no válida: A y B no pueden ser ambos cero"
 msgid "invalid line specification: must be two distinct points"
 msgstr "especificación de línea no válida: deben ser dos puntos distintos"
 
-#: utils/adt/geo_ops.c:1342 utils/adt/geo_ops.c:3432 utils/adt/geo_ops.c:4245
-#: utils/adt/geo_ops.c:5173
+#: utils/adt/geo_ops.c:1342 utils/adt/geo_ops.c:3440 utils/adt/geo_ops.c:4253
+#: utils/adt/geo_ops.c:5181
 #, c-format
 msgid "too many points requested"
 msgstr "se pidieron demasiados puntos"
@@ -18903,57 +20561,57 @@ msgstr "el número de puntos no es válido en el valor «path» externo"
 msgid "function \"dist_lb\" not implemented"
 msgstr "la función «dist_lb» no está implementada"
 
-#: utils/adt/geo_ops.c:3007
+#: utils/adt/geo_ops.c:3015
 #, c-format
 msgid "function \"close_sl\" not implemented"
 msgstr "la función «close_sl» no está implementada"
 
-#: utils/adt/geo_ops.c:3109
+#: utils/adt/geo_ops.c:3117
 #, c-format
 msgid "function \"close_lb\" not implemented"
 msgstr "la función «close_lb» no está implementada"
 
-#: utils/adt/geo_ops.c:3398
+#: utils/adt/geo_ops.c:3406
 #, c-format
 msgid "cannot create bounding box for empty polygon"
 msgstr "no se puede crear una caja de contorno para un polígono vacío"
 
-#: utils/adt/geo_ops.c:3479
+#: utils/adt/geo_ops.c:3487
 #, c-format
 msgid "invalid number of points in external \"polygon\" value"
 msgstr "el número de puntos no es válido en «polygon» externo"
 
-#: utils/adt/geo_ops.c:4004
+#: utils/adt/geo_ops.c:4012
 #, c-format
 msgid "function \"poly_distance\" not implemented"
 msgstr "la función «poly_distance» no está implementada"
 
-#: utils/adt/geo_ops.c:4357
+#: utils/adt/geo_ops.c:4365
 #, c-format
 msgid "function \"path_center\" not implemented"
 msgstr "la función «path_center» no está implementada"
 
-#: utils/adt/geo_ops.c:4374
+#: utils/adt/geo_ops.c:4382
 #, c-format
 msgid "open path cannot be converted to polygon"
 msgstr "no se puede convertir un camino abierto en polygon"
 
-#: utils/adt/geo_ops.c:4623
+#: utils/adt/geo_ops.c:4631
 #, c-format
 msgid "invalid radius in external \"circle\" value"
 msgstr "el radio no es válido en el valor «circle» externo"
 
-#: utils/adt/geo_ops.c:5159
+#: utils/adt/geo_ops.c:5167
 #, c-format
 msgid "cannot convert circle with radius zero to polygon"
 msgstr "no se puede convertir un círculo de radio cero a polygon"
 
-#: utils/adt/geo_ops.c:5164
+#: utils/adt/geo_ops.c:5172
 #, c-format
 msgid "must request at least 2 points"
 msgstr "debe pedir al menos 2 puntos"
 
-#: utils/adt/geo_ops.c:5208
+#: utils/adt/geo_ops.c:5216
 #, c-format
 msgid "cannot convert empty polygon to circle"
 msgstr "no se puede convertir polígono vacío a circle"
@@ -18968,27 +20626,22 @@ msgstr "int2vector tiene demasiados elementos"
 msgid "invalid int2vector data"
 msgstr "datos de int2vector no válidos"
 
-#: utils/adt/int.c:243 utils/adt/oid.c:212 utils/adt/oid.c:293
+#: utils/adt/int.c:243 utils/adt/oid.c:215 utils/adt/oid.c:296
 #, c-format
 msgid "oidvector has too many elements"
 msgstr "el oidvector tiene demasiados elementos"
 
-#: utils/adt/int.c:1362 utils/adt/int8.c:1460 utils/adt/numeric.c:1355
-#: utils/adt/timestamp.c:5611 utils/adt/timestamp.c:5692
+#: utils/adt/int.c:1347 utils/adt/int8.c:1460 utils/adt/numeric.c:1401
+#: utils/adt/timestamp.c:5178 utils/adt/timestamp.c:5259
 #, c-format
 msgid "step size cannot equal zero"
 msgstr "el tamaño de paso no puede ser cero"
 
 #: utils/adt/int8.c:98 utils/adt/int8.c:133 utils/adt/numutils.c:51
-#: utils/adt/numutils.c:61 utils/adt/numutils.c:103
-#, c-format
-msgid "invalid input syntax for integer: \"%s\""
-msgstr "la sintaxis de entrada no es válida para integer: «%s»"
-
-#: utils/adt/int8.c:114
-#, c-format
-msgid "value \"%s\" is out of range for type bigint"
-msgstr "el valor «%s» está fuera de rango para el tipo bigint"
+#: utils/adt/numutils.c:61 utils/adt/numutils.c:105
+#, fuzzy, c-format
+msgid "invalid input syntax for %s: \"%s\""
+msgstr "la sintaxis de entrada no es válida para tipo %s: «%s»"
 
 #: utils/adt/int8.c:500 utils/adt/int8.c:529 utils/adt/int8.c:550
 #: utils/adt/int8.c:581 utils/adt/int8.c:615 utils/adt/int8.c:640
@@ -18998,8 +20651,8 @@ msgstr "el valor «%s» está fuera de rango para el tipo bigint"
 #: utils/adt/int8.c:964 utils/adt/int8.c:991 utils/adt/int8.c:1031
 #: utils/adt/int8.c:1052 utils/adt/int8.c:1079 utils/adt/int8.c:1112
 #: utils/adt/int8.c:1140 utils/adt/int8.c:1161 utils/adt/int8.c:1188
-#: utils/adt/int8.c:1361 utils/adt/int8.c:1400 utils/adt/numeric.c:2959
-#: utils/adt/varbit.c:1645
+#: utils/adt/int8.c:1361 utils/adt/int8.c:1400 utils/adt/numeric.c:3005
+#: utils/adt/varbit.c:1655
 #, c-format
 msgid "bigint out of range"
 msgstr "bigint está fuera de rango"
@@ -19009,170 +20662,151 @@ msgstr "bigint está fuera de rango"
 msgid "OID out of range"
 msgstr "OID está fuera de rango"
 
-#: utils/adt/json.c:785 utils/adt/json.c:825 utils/adt/json.c:840
-#: utils/adt/json.c:851 utils/adt/json.c:861 utils/adt/json.c:912
-#: utils/adt/json.c:943 utils/adt/json.c:961 utils/adt/json.c:973
-#: utils/adt/json.c:985 utils/adt/json.c:1130 utils/adt/json.c:1144
-#: utils/adt/json.c:1155 utils/adt/json.c:1163 utils/adt/json.c:1171
-#: utils/adt/json.c:1179 utils/adt/json.c:1187 utils/adt/json.c:1195
-#: utils/adt/json.c:1203 utils/adt/json.c:1211 utils/adt/json.c:1241
-#, c-format
-msgid "invalid input syntax for type json"
-msgstr "sintaxis de entrada no válida para tipo json"
-
 #: utils/adt/json.c:786
 #, c-format
 msgid "Character with value 0x%02x must be escaped."
 msgstr "Los caracteres con valor 0x%02x deben ser escapados"
 
-#: utils/adt/json.c:826
+#: utils/adt/json.c:827
 #, c-format
 msgid "\"\\u\" must be followed by four hexadecimal digits."
 msgstr "«\\u» debe ser seguido por cuatro dígitos hexadecimales."
 
-#: utils/adt/json.c:841
+#: utils/adt/json.c:843
 #, 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»."
 
-#: utils/adt/json.c:852 utils/adt/json.c:862 utils/adt/json.c:913
-#: utils/adt/json.c:974 utils/adt/json.c:986
+#: utils/adt/json.c:854 utils/adt/json.c:864 utils/adt/json.c:916
+#: utils/adt/json.c:978 utils/adt/json.c:990
 #, c-format
 msgid "Unicode low surrogate must follow a high surrogate."
 msgstr "Un «low-surrogate» Unicode debe seguir a un «high-surrogate»."
 
-#: utils/adt/json.c:877 utils/adt/json.c:900
+#: utils/adt/json.c:879 utils/adt/json.c:902
 #, c-format
 msgid "unsupported Unicode escape sequence"
 msgstr "secuencia de escape Unicode no soportado"
 
-#: utils/adt/json.c:878
+#: utils/adt/json.c:880
 #, c-format
 msgid "\\u0000 cannot be converted to text."
 msgstr "\\u0000 no puede ser convertido a text."
 
-#: utils/adt/json.c:901
+#: utils/adt/json.c:903
 #, c-format
 msgid "Unicode escape values cannot be used for code point values above 007F when the server encoding is not UTF8."
 msgstr "Los valores de escape Unicode no pueden ser usados para valores de «code point» sobre 007F cuando la codificación de servidor no es UTF8."
 
-#: utils/adt/json.c:944 utils/adt/json.c:962
+#: utils/adt/json.c:948 utils/adt/json.c:966
 #, c-format
 msgid "Escape sequence \"\\%s\" is invalid."
 msgstr "La secuencia de escape «%s» no es válida."
 
-#: utils/adt/json.c:1131
+#: utils/adt/json.c:1135
 #, c-format
 msgid "The input string ended unexpectedly."
 msgstr "La cadena de entrada terminó inesperadamente."
 
-#: utils/adt/json.c:1145
+#: utils/adt/json.c:1149
 #, c-format
 msgid "Expected end of input, but found \"%s\"."
 msgstr "Se esperaba el fin de la entrada, se encontró «%s»."
 
-#: utils/adt/json.c:1156
+#: utils/adt/json.c:1160
 #, c-format
 msgid "Expected JSON value, but found \"%s\"."
 msgstr "Se esperaba un valor JSON, se encontró «%s»."
 
-#: utils/adt/json.c:1164 utils/adt/json.c:1212
+#: utils/adt/json.c:1168 utils/adt/json.c:1216
 #, c-format
 msgid "Expected string, but found \"%s\"."
 msgstr "Se esperaba una cadena, se encontró «%s»."
 
-#: utils/adt/json.c:1172
+#: utils/adt/json.c:1176
 #, c-format
 msgid "Expected array element or \"]\", but found \"%s\"."
 msgstr "Se esperaba un elemento de array o «]», se encontró «%s»."
 
-#: utils/adt/json.c:1180
+#: utils/adt/json.c:1184
 #, c-format
 msgid "Expected \",\" or \"]\", but found \"%s\"."
 msgstr "Se esperaba «,» o «]», se encontró «%s»."
 
-#: utils/adt/json.c:1188
+#: utils/adt/json.c:1192
 #, c-format
 msgid "Expected string or \"}\", but found \"%s\"."
 msgstr "Se esperaba una cadena o «}», se encontró «%s»."
 
-#: utils/adt/json.c:1196
+#: utils/adt/json.c:1200
 #, c-format
 msgid "Expected \":\", but found \"%s\"."
 msgstr "Se esperaba «:», se encontró «%s»."
 
-#: utils/adt/json.c:1204
+#: utils/adt/json.c:1208
 #, c-format
 msgid "Expected \",\" or \"}\", but found \"%s\"."
 msgstr "Se esperaba «,» o «}», se encontró «%s»."
 
-#: utils/adt/json.c:1242
+#: utils/adt/json.c:1246
 #, c-format
 msgid "Token \"%s\" is invalid."
 msgstr "El elemento «%s» no es válido."
 
-#: utils/adt/json.c:1314
+#: utils/adt/json.c:1318
 #, c-format
 msgid "JSON data, line %d: %s%s%s"
 msgstr "Datos JSON, línea %d: %s%s%s"
 
-#: utils/adt/json.c:1469 utils/adt/jsonb.c:724
+#: utils/adt/json.c:1474 utils/adt/jsonb.c:725
 #, 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:2006
-#, fuzzy, c-format
-msgid "could not determine data type for argument 1"
-msgstr "no se pudo determinar el tipo de dato para el argumento %d"
-
-#: utils/adt/json.c:2016
-#, fuzzy, c-format
-msgid "could not determine data type for argument 2"
+#: utils/adt/json.c:2011 utils/adt/json.c:2021 utils/adt/json.c:2147
+#: utils/adt/json.c:2168 utils/adt/json.c:2227 utils/adt/jsonb.c:1215
+#: utils/adt/jsonb.c:1238 utils/adt/jsonb.c:1298
+#, 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:2040 utils/adt/jsonb.c:1781
+#: utils/adt/json.c:2045 utils/adt/jsonb.c:1782
 #, c-format
 msgid "field name must not be null"
 msgstr "el nombre de campo no debe ser null"
 
-#: utils/adt/json.c:2117
+#: utils/adt/json.c:2122
 #, c-format
 msgid "argument list must have even number of elements"
 msgstr "la lista de argumentos debe tener un número par de elementos"
 
-#: utils/adt/json.c:2118
+#: utils/adt/json.c:2123
 #, c-format
 msgid "The arguments of json_build_object() must consist of alternating keys and values."
 msgstr "Los argumentos de json_build_object() deben consistir de llaves y valores alternados."
 
-#: utils/adt/json.c:2142 utils/adt/json.c:2163 utils/adt/json.c:2222
-#, 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:2148
+#: utils/adt/json.c:2153
 #, c-format
 msgid "argument %d cannot be null"
 msgstr "el argumento %d no puede ser null"
 
-#: utils/adt/json.c:2149
+#: utils/adt/json.c:2154
 #, c-format
 msgid "Object keys should be text."
 msgstr "Las llaves de un objeto deben ser de texto."
 
-#: utils/adt/json.c:2284 utils/adt/jsonb.c:1363
+#: utils/adt/json.c:2289 utils/adt/jsonb.c:1364
 #, c-format
 msgid "array must have two columns"
 msgstr "un array debe tener dos columnas"
 
-#: utils/adt/json.c:2308 utils/adt/json.c:2392 utils/adt/jsonb.c:1387
-#: utils/adt/jsonb.c:1482
+#: utils/adt/json.c:2313 utils/adt/json.c:2397 utils/adt/jsonb.c:1388
+#: utils/adt/jsonb.c:1483
 #, 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:2381 utils/adt/jsonb.c:1471
+#: utils/adt/json.c:2386 utils/adt/jsonb.c:1472
 #, c-format
 msgid "mismatched array dimensions"
 msgstr "las dimensiones de array no coinciden"
@@ -19187,181 +20821,199 @@ msgstr "la cadena es demasiado larga para representarla como cadena jsonb."
 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:1182
-#, fuzzy, c-format
-#| msgid "invalid number of points in external \"path\" value"
+#: utils/adt/jsonb.c:1183
+#, c-format
 msgid "invalid number of arguments: object must be matched key value pairs"
-msgstr "el número de puntos no es válido en el valor «path» externo"
+msgstr "número no válido de argumentos: los objetos deben formar pares llave/valor"
 
-#: utils/adt/jsonb.c:1195
-#, fuzzy, c-format
-#| msgid "argument %d cannot be null"
+#: utils/adt/jsonb.c:1196
+#, c-format
 msgid "argument %d: key must not be null"
-msgstr "el argumento %d no puede ser null"
-
-#: utils/adt/jsonb.c:1214 utils/adt/jsonb.c:1237 utils/adt/jsonb.c:1297
-#, fuzzy, c-format
-msgid "argument %d: could not determine data type"
-msgstr "no se pudo determinar el tipo de dato de entrada"
+msgstr "argumento %d: la llave no puede ser null"
 
-#: utils/adt/jsonb.c:1834
-#, fuzzy, c-format
+#: utils/adt/jsonb.c:1835
+#, c-format
 msgid "object keys must be strings"
-msgstr "Las llaves de un objeto deben ser de texto."
+msgstr "las llaves de un objeto deben ser cadenas"
 
-#: utils/adt/jsonb_util.c:656
+#: utils/adt/jsonb_util.c:657
 #, 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:697
+#: utils/adt/jsonb_util.c:698
 #, 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:1525 utils/adt/jsonb_util.c:1545
+#: utils/adt/jsonb_util.c:1526 utils/adt/jsonb_util.c:1546
 #, c-format
 msgid "total size of jsonb array elements exceeds the maximum of %u bytes"
 msgstr "el tamaño total de los elementos del array jsonb excede el máximo de %u bytes"
 
-#: utils/adt/jsonb_util.c:1606 utils/adt/jsonb_util.c:1641
-#: utils/adt/jsonb_util.c:1661
+#: utils/adt/jsonb_util.c:1607 utils/adt/jsonb_util.c:1642
+#: utils/adt/jsonb_util.c:1662
 #, c-format
 msgid "total size of jsonb object elements exceeds the maximum of %u bytes"
 msgstr "el tamaño total de los elementos del objeto jsonb excede el máximo de %u bytes"
 
-#: utils/adt/jsonfuncs.c:305 utils/adt/jsonfuncs.c:470
-#: utils/adt/jsonfuncs.c:2065 utils/adt/jsonfuncs.c:2506
-#: utils/adt/jsonfuncs.c:3012
+#: utils/adt/jsonfuncs.c:511 utils/adt/jsonfuncs.c:676
+#: utils/adt/jsonfuncs.c:2263 utils/adt/jsonfuncs.c:2699
+#: utils/adt/jsonfuncs.c:3393 utils/adt/jsonfuncs.c:3677
 #, c-format
 msgid "cannot call %s on a scalar"
 msgstr "no se puede invocar %s en un escalar"
 
-#: utils/adt/jsonfuncs.c:310 utils/adt/jsonfuncs.c:457
-#: utils/adt/jsonfuncs.c:2495
+#: utils/adt/jsonfuncs.c:516 utils/adt/jsonfuncs.c:663
+#: utils/adt/jsonfuncs.c:2701 utils/adt/jsonfuncs.c:3382
 #, c-format
 msgid "cannot call %s on an array"
 msgstr "no se puede invocar %s en un array"
 
-#: utils/adt/jsonfuncs.c:1373 utils/adt/jsonfuncs.c:1408
+#: utils/adt/jsonfuncs.c:1579 utils/adt/jsonfuncs.c:1614
 #, 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:1377 utils/adt/jsonfuncs.c:1396
+#: utils/adt/jsonfuncs.c:1583 utils/adt/jsonfuncs.c:1602
 #, 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:1473
+#: utils/adt/jsonfuncs.c:1679
 #, c-format
 msgid "cannot call %s on a non-object"
 msgstr "no se puede invocar %s en un no-objeto"
 
-#: utils/adt/jsonfuncs.c:1491 utils/adt/jsonfuncs.c:2178
-#: utils/adt/jsonfuncs.c:2715
+#: utils/adt/jsonfuncs.c:1697 utils/adt/jsonfuncs.c:3208
+#: utils/adt/jsonfuncs.c:3502
 #, 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"
 
-#: utils/adt/jsonfuncs.c:1734
+#: utils/adt/jsonfuncs.c:1936
 #, c-format
 msgid "cannot deconstruct an array as an object"
 msgstr "no se puede desconstruir un array como un objeto"
 
-#: utils/adt/jsonfuncs.c:1746
+#: utils/adt/jsonfuncs.c:1948
 #, c-format
 msgid "cannot deconstruct a scalar"
 msgstr "no se puede desconstruir un escalar"
 
-#: utils/adt/jsonfuncs.c:1792
+#: utils/adt/jsonfuncs.c:1994
 #, c-format
 msgid "cannot extract elements from a scalar"
 msgstr "no se pueden extraer elementos de un escalar"
 
-#: utils/adt/jsonfuncs.c:1796
+#: utils/adt/jsonfuncs.c:1998
 #, c-format
 msgid "cannot extract elements from an object"
 msgstr "no se pudo extraer elementos de un objeto"
 
-#: utils/adt/jsonfuncs.c:2052 utils/adt/jsonfuncs.c:2811
+#: utils/adt/jsonfuncs.c:2250 utils/adt/jsonfuncs.c:3566
 #, c-format
 msgid "cannot call %s on a non-array"
 msgstr "no se puede invocar %s en un no-array"
 
-#: utils/adt/jsonfuncs.c:2139 utils/adt/jsonfuncs.c:2691
+#: utils/adt/jsonfuncs.c:2316 utils/adt/jsonfuncs.c:2321
+#: utils/adt/jsonfuncs.c:2338 utils/adt/jsonfuncs.c:2344
+#, fuzzy, c-format
+msgid "expected json array"
+msgstr "Elemento de array inesperado."
+
+#: utils/adt/jsonfuncs.c:2317
+#, fuzzy, c-format
+msgid "see the value of key \"%s\""
+msgstr "el valor de hora/fecha está fuera de rango: «%s»"
+
+#: utils/adt/jsonfuncs.c:2339
+#, fuzzy, c-format
+msgid "see the array element %s of key \"%s\""
+msgstr "el tipo de elemento de array no puede ser %s"
+
+#: utils/adt/jsonfuncs.c:2345
+#, fuzzy, c-format
+msgid "see the array element %s"
+msgstr "Elemento de array inesperado."
+
+#: utils/adt/jsonfuncs.c:2380
+#, fuzzy, c-format
+msgid "malformed json array"
+msgstr "literal de array no es válido: «%s»"
+
+#: utils/adt/jsonfuncs.c:3168 utils/adt/jsonfuncs.c:3478
 #, c-format
 msgid "first argument of %s must be a row type"
 msgstr "el primer argumento de %s debe ser un tipo de registro"
 
-#: utils/adt/jsonfuncs.c:2180
+#: utils/adt/jsonfuncs.c:3210
 #, c-format
 msgid "Try calling the function in the FROM clause using a column definition list."
 msgstr "Intente invocar la función desde la cláusula FROM usando una lista de definición de columnas"
 
-#: utils/adt/jsonfuncs.c:2827 utils/adt/jsonfuncs.c:2994
+#: utils/adt/jsonfuncs.c:3583 utils/adt/jsonfuncs.c:3659
 #, 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:2851
+#: utils/adt/jsonfuncs.c:3611
 #, c-format
 msgid "cannot call %s on an object"
 msgstr "no se puede invocar %s en un objeto"
 
-#: utils/adt/jsonfuncs.c:3418 utils/adt/jsonfuncs.c:3471
-#, fuzzy, c-format
+#: utils/adt/jsonfuncs.c:4087 utils/adt/jsonfuncs.c:4146
+#: utils/adt/jsonfuncs.c:4226
+#, c-format
 msgid "cannot delete from scalar"
-msgstr "no se puede eliminar de la vista «%s»"
+msgstr "no se puede eliminar de un escalar"
 
-#: utils/adt/jsonfuncs.c:3476
-#, fuzzy, c-format
+#: utils/adt/jsonfuncs.c:4231
+#, c-format
 msgid "cannot delete from object using integer index"
-msgstr "no se puede eliminar desde la tabla foránea «%s»"
+msgstr "no se puede eliminar de un objeto usando un índice numérico"
 
-#: utils/adt/jsonfuncs.c:3542 utils/adt/jsonfuncs.c:3634
-#, fuzzy, c-format
+#: utils/adt/jsonfuncs.c:4297 utils/adt/jsonfuncs.c:4389
+#, c-format
 msgid "cannot set path in scalar"
-msgstr "no se puede obtener el largo de array de un escalar"
+msgstr "no se puede definir una ruta en un escalar"
 
-#: utils/adt/jsonfuncs.c:3587
-#, fuzzy, c-format
+#: utils/adt/jsonfuncs.c:4342
+#, c-format
 msgid "cannot delete path in scalar"
-msgstr "no se puede desconstruir un escalar"
+msgstr "no se puede eliminar una ruta en un escalar"
 
-#: utils/adt/jsonfuncs.c:3757
-#, fuzzy, c-format
+#: utils/adt/jsonfuncs.c:4512
+#, c-format
 msgid "invalid concatenation of jsonb objects"
-msgstr "combinacion invalida de convenciones de fecha"
+msgstr "concatenación no válida de objetos jsonb"
 
-#: utils/adt/jsonfuncs.c:3791
+#: utils/adt/jsonfuncs.c:4546
 #, c-format
 msgid "path element at position %d is null"
-msgstr ""
+msgstr "el elemento en la posición %d de la ruta es null"
 
-#: utils/adt/jsonfuncs.c:3877
-#, fuzzy, c-format
-#| msgid "cannot execute %s during recovery"
+#: utils/adt/jsonfuncs.c:4632
+#, c-format
 msgid "cannot replace existing key"
-msgstr "no se puede ejecutar %s durante la recuperación"
+msgstr "no se puede reemplazar una llave existente"
 
-#: utils/adt/jsonfuncs.c:3878
+#: utils/adt/jsonfuncs.c:4633
 #, c-format
 msgid "Try using the function jsonb_set to replace key value."
-msgstr ""
+msgstr "Intente usar la función jsonb_set para reemplazar el valor de la llave."
 
-#: utils/adt/jsonfuncs.c:3960
-#, fuzzy, c-format
-#| msgid "plpy.prepare: type name at ordinal position %d is not a string"
+#: utils/adt/jsonfuncs.c:4715
+#, c-format
 msgid "path element at position %d is not an integer: \"%s\""
-msgstr "plpy.prepare: el nombre de tipo en la posición %d no es una cadena"
+msgstr "el elemento de ruta en la posición %d no es un entero: «%s»"
 
 #: utils/adt/levenshtein.c:133
-#, fuzzy, c-format
+#, c-format
 msgid "levenshtein argument exceeds maximum length of %d characters"
-msgstr "el tamaño total de los elementos del array jsonb excede el máximo de %u bytes"
+msgstr "el argumento levenshtein excede el largo máximo de %d caracteres"
 
-#: utils/adt/like.c:212 utils/adt/selfuncs.c:5329
+#: utils/adt/like.c:183 utils/adt/selfuncs.c:5562
 #, c-format
 msgid "could not determine which collation to use for ILIKE"
 msgstr "no se pudo determinar qué ordenamiento (collation) usar para ILIKE"
@@ -19381,135 +21033,143 @@ msgstr "cadena de escape no válida"
 msgid "Escape string must be empty or one character."
 msgstr "La cadena de escape debe ser vacía o un carácter."
 
-#: utils/adt/lockfuncs.c:545
+#: utils/adt/lockfuncs.c:664
 #, c-format
 msgid "cannot use advisory locks during a parallel operation"
-msgstr ""
-
-#: utils/adt/mac.c:68
-#, c-format
-msgid "invalid input syntax for type macaddr: \"%s\""
-msgstr "sintaxis de entrada no válida para tipo macaddr: «%s»"
+msgstr "no se pueden usar locks consultivos durante una operación paralela"
 
-#: utils/adt/mac.c:75
+#: utils/adt/mac.c:102
 #, c-format
 msgid "invalid octet value in \"macaddr\" value: \"%s\""
 msgstr "valor de octeto no válido en valor «macaddr»: «%s»"
 
-#: utils/adt/misc.c:239
+#: utils/adt/mac8.c:554
+#, c-format
+msgid "macaddr8 data out of range to convert to macaddr"
+msgstr ""
+
+#: utils/adt/mac8.c:555
+#, 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 ""
+
+#: utils/adt/misc.c:238
 #, c-format
 msgid "PID %d is not a PostgreSQL server process"
 msgstr "PID %d no es un proceso servidor de PostgreSQL"
 
-#: utils/adt/misc.c:290
-#, fuzzy, c-format
+#: utils/adt/misc.c:289
+#, c-format
 msgid "must be a superuser to cancel superuser query"
-msgstr "debe ser superusuario para crear superusuarios"
+msgstr "debe ser superusuario para cancelar una consulta de superusuario"
 
-#: utils/adt/misc.c:295
-#, fuzzy, c-format
+#: utils/adt/misc.c:294
+#, c-format
 msgid "must be a member of the role whose query is being canceled or member of pg_signal_backend"
-msgstr "el tabla «%s» no es un miembro de la extensión que se está creando"
+msgstr "debe ser miembro del rol cuya consulta se está cancelando o ser miembro de pg_signal_backend"
 
-#: utils/adt/misc.c:314
-#, fuzzy, c-format
+#: utils/adt/misc.c:313
+#, c-format
 msgid "must be a superuser to terminate superuser process"
-msgstr "debe ser superusuario para crear superusuarios"
+msgstr "debe ser superusuario para terminar proceso de superusuario"
 
-#: utils/adt/misc.c:319
-#, fuzzy, c-format
+#: utils/adt/misc.c:318
+#, c-format
 msgid "must be a member of the role whose process is being terminated or member of pg_signal_backend"
-msgstr "el tabla «%s» no es un miembro de la extensión que se está creando"
+msgstr "debe ser miembro del rol cuyo proceso se está terminando o ser miembro de pg_signal_backend"
 
-#: utils/adt/misc.c:336
+#: utils/adt/misc.c:335
 #, c-format
 msgid "failed to send signal to postmaster: %m"
 msgstr "no se pudo enviar señal a postmaster: %m"
 
-#: utils/adt/misc.c:356
+#: utils/adt/misc.c:355
 #, 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"
 
-#: utils/adt/misc.c:393
+#: utils/adt/misc.c:392
 #, c-format
 msgid "global tablespace never has databases"
 msgstr "el tablespace global nunca tiene bases de datos"
 
-#: utils/adt/misc.c:414
+#: utils/adt/misc.c:413
 #, c-format
 msgid "%u is not a tablespace OID"
 msgstr "%u no es un OID de tablespace"
 
-#: utils/adt/misc.c:611
+#: utils/adt/misc.c:606
 msgid "unreserved"
 msgstr "no reservado"
 
-#: utils/adt/misc.c:615
+#: utils/adt/misc.c:610
 msgid "unreserved (cannot be function or type name)"
 msgstr "no reservado (no puede ser nombre de función o de tipo)"
 
-#: utils/adt/misc.c:619
+#: utils/adt/misc.c:614
 msgid "reserved (can be function or type name)"
 msgstr "reservado (puede ser nombre de función o de tipo)"
 
-#: utils/adt/misc.c:623
+#: utils/adt/misc.c:618
 msgid "reserved"
 msgstr "reservado"
 
-#: utils/adt/misc.c:797 utils/adt/misc.c:811 utils/adt/misc.c:850
-#: utils/adt/misc.c:856 utils/adt/misc.c:862 utils/adt/misc.c:885
-#, fuzzy, c-format
-#| msgid "invalid snapshot identifier: \"%s\""
+#: utils/adt/misc.c:792 utils/adt/misc.c:806 utils/adt/misc.c:845
+#: utils/adt/misc.c:851 utils/adt/misc.c:857 utils/adt/misc.c:880
+#, c-format
 msgid "string is not a valid identifier: \"%s\""
-msgstr "identificador de snapshot no válido: «%s»"
+msgstr "la cadena no es un identificador válido: «%s»"
 
-#: utils/adt/misc.c:799
+#: utils/adt/misc.c:794
 #, c-format
 msgid "String has unclosed double quotes."
-msgstr ""
+msgstr "La cadena tiene comillas dobles sin cerrar."
 
-#: utils/adt/misc.c:813
-#, fuzzy, c-format
-#| msgid "Extension names must not be empty."
+#: utils/adt/misc.c:808
+#, c-format
 msgid "Quoted identifier must not be empty."
-msgstr "Los nombres de extensión no deben ser vacíos."
+msgstr "El identificador en comillas no debe ser vacío."
 
-#: utils/adt/misc.c:852
+#: utils/adt/misc.c:847
 #, c-format
-msgid "No valid identifier before \".\" symbol."
-msgstr ""
+msgid "No valid identifier before \".\"."
+msgstr "No hay un identificador válido antes de «.»."
+
+#: utils/adt/misc.c:853
+#, c-format
+msgid "No valid identifier after \".\"."
+msgstr "No hay un identificador válido después de «.»."
 
-#: utils/adt/misc.c:858
+#: utils/adt/misc.c:914
+#, fuzzy, c-format
+msgid "log format \"%s\" is not supported"
+msgstr "las unidades de interval «%s» no están soportadas"
+
+#: utils/adt/misc.c:915
 #, c-format
-msgid "No valid identifier after \".\" symbol."
+msgid "The supported log formats are \"stderr\" and \"csvlog\"."
 msgstr ""
 
-#: utils/adt/nabstime.c:136
+#: utils/adt/nabstime.c:137
 #, c-format
 msgid "invalid time zone name: \"%s\""
 msgstr "nombre de huso horario no válido: «%s»"
 
-#: utils/adt/nabstime.c:481 utils/adt/nabstime.c:554
+#: utils/adt/nabstime.c:482 utils/adt/nabstime.c:555
 #, c-format
 msgid "cannot convert abstime \"invalid\" to timestamp"
 msgstr "no se puede convertir el valor reservado de abstime «invalid» a timestamp"
 
-#: utils/adt/nabstime.c:781
+#: utils/adt/nabstime.c:782
 #, c-format
 msgid "invalid status in external \"tinterval\" value"
 msgstr "estatus no válido en valor «tinterval» externo"
 
-#: utils/adt/nabstime.c:855
+#: utils/adt/nabstime.c:852
 #, c-format
 msgid "cannot convert reltime \"invalid\" to interval"
 msgstr "no se puede convertir el reltime «invalid» a interval"
 
-#: utils/adt/nabstime.c:1550
-#, c-format
-msgid "invalid input syntax for type tinterval: \"%s\""
-msgstr "sintaxis de entrada no válida para el tipo tinterval: «%s»"
-
 #: utils/adt/network.c:69
 #, c-format
 msgid "invalid cidr value: \"%s\""
@@ -19520,8 +21180,8 @@ msgstr "valor cidr no válido: «%s»"
 msgid "Value has bits set to right of mask."
 msgstr "El valor tiene bits definidos a la derecha de la máscara"
 
-#: utils/adt/network.c:111 utils/adt/network.c:607 utils/adt/network.c:632
-#: utils/adt/network.c:657
+#: utils/adt/network.c:111 utils/adt/network.c:582 utils/adt/network.c:607
+#: utils/adt/network.c:632
 #, c-format
 msgid "could not format inet value: %m"
 msgstr "no se pudo dar formato al valor inet: %m"
@@ -19549,159 +21209,124 @@ msgstr "largo no válido en valor «%s» externo"
 msgid "invalid external \"cidr\" value"
 msgstr "valor externo «cidr» no válido"
 
-#: utils/adt/network.c:321 utils/adt/network.c:348
+#: utils/adt/network.c:295 utils/adt/network.c:318
 #, c-format
 msgid "invalid mask length: %d"
 msgstr "largo de máscara no válido: %d"
 
-#: utils/adt/network.c:675
+#: utils/adt/network.c:650
 #, c-format
 msgid "could not format cidr value: %m"
 msgstr "no se pudo dar formato al valor cidr: %m"
 
-#: utils/adt/network.c:917
-#, fuzzy, c-format
+#: utils/adt/network.c:883
+#, c-format
 msgid "cannot merge addresses from different families"
-msgstr "no se puede hacer OR entre valores inet de distintos tamaños"
+msgstr "no se pueden mezclar direcciones de familias diferentes"
 
-#: utils/adt/network.c:1343
+#: utils/adt/network.c:1302
 #, c-format
 msgid "cannot AND inet values of different sizes"
 msgstr "no se puede hacer AND entre valores inet de distintos tamaños"
 
-#: utils/adt/network.c:1375
+#: utils/adt/network.c:1334
 #, c-format
 msgid "cannot OR inet values of different sizes"
 msgstr "no se puede hacer OR entre valores inet de distintos tamaños"
 
-#: utils/adt/network.c:1436 utils/adt/network.c:1512
+#: utils/adt/network.c:1395 utils/adt/network.c:1471
 #, c-format
 msgid "result is out of range"
 msgstr "resultado fuera de rango"
 
-#: utils/adt/network.c:1477
+#: utils/adt/network.c:1436
 #, c-format
 msgid "cannot subtract inet values of different sizes"
 msgstr "no se puede sustraer valores inet de distintos tamaños"
 
-#: utils/adt/numeric.c:542 utils/adt/numeric.c:569 utils/adt/numeric.c:5394
-#: utils/adt/numeric.c:5417 utils/adt/numeric.c:5441 utils/adt/numeric.c:5448
-#, c-format
-msgid "invalid input syntax for type numeric: \"%s\""
-msgstr "la sintaxis de entrada no es válida para el tipo numeric: «%s»"
-
-#: utils/adt/numeric.c:759
-#, c-format
-msgid "invalid length in external \"numeric\" value"
-msgstr "el largo no es válido en el valor «numeric» externo"
-
-#: utils/adt/numeric.c:772
+#: utils/adt/numeric.c:819
 #, 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:778
+#: utils/adt/numeric.c:825
 #, 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:787
+#: utils/adt/numeric.c:834
 #, 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:978 utils/adt/numeric.c:992
+#: utils/adt/numeric.c:1024 utils/adt/numeric.c:1038
 #, 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:983
+#: utils/adt/numeric.c:1029
 #, c-format
 msgid "NUMERIC scale %d must be between 0 and precision %d"
 msgstr "la escala de NUMERIC, %d, debe estar entre 0 y la precisión %d"
 
-#: utils/adt/numeric.c:1001
+#: utils/adt/numeric.c:1047
 #, c-format
 msgid "invalid NUMERIC type modifier"
 msgstr "modificador de tipo NUMERIC no es válido"
 
-#: utils/adt/numeric.c:1333
-#, fuzzy, c-format
+#: utils/adt/numeric.c:1379
+#, c-format
 msgid "start value cannot be NaN"
-msgstr "el timestamp no puede ser NaN"
+msgstr "el valor de inicio no puede ser NaN"
 
-#: utils/adt/numeric.c:1338
-#, fuzzy, c-format
+#: utils/adt/numeric.c:1384
+#, c-format
 msgid "stop value cannot be NaN"
-msgstr "el timestamp no puede ser NaN"
+msgstr "el valor de término no puede ser NaN"
 
-#: utils/adt/numeric.c:1348
-#, fuzzy, c-format
+#: utils/adt/numeric.c:1394
+#, c-format
 msgid "step size cannot be NaN"
-msgstr "el tamaño de paso no puede ser cero"
+msgstr "el tamaño de paso no puede ser NaN"
 
-#: utils/adt/numeric.c:2543 utils/adt/numeric.c:5894 utils/adt/numeric.c:7597
-#: utils/adt/numeric.c:8126 utils/adt/numeric.c:8199
+#: utils/adt/numeric.c:2589 utils/adt/numeric.c:5551 utils/adt/numeric.c:5996
+#: utils/adt/numeric.c:7700 utils/adt/numeric.c:8125 utils/adt/numeric.c:8239
+#: utils/adt/numeric.c:8312
 #, c-format
 msgid "value overflows numeric format"
 msgstr "el valor excede el formato numeric"
 
-#: utils/adt/numeric.c:2885
+#: utils/adt/numeric.c:2931
 #, c-format
 msgid "cannot convert NaN to integer"
 msgstr "no se puede convertir NaN a entero"
 
-#: utils/adt/numeric.c:2951
+#: utils/adt/numeric.c:2997
 #, c-format
 msgid "cannot convert NaN to bigint"
 msgstr "no se puede convertir NaN a bigint"
 
-#: utils/adt/numeric.c:2996
+#: utils/adt/numeric.c:3042
 #, c-format
 msgid "cannot convert NaN to smallint"
 msgstr "no se puede convertir NaN a smallint"
 
-#: utils/adt/numeric.c:5964
+#: utils/adt/numeric.c:6066
 #, c-format
 msgid "numeric field overflow"
 msgstr "desbordamiento de campo numeric"
 
-#: utils/adt/numeric.c:5965
+#: utils/adt/numeric.c:6067
 #, 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:6236 utils/adt/numeric.c:6262
-#, c-format
-msgid "invalid input syntax for type double precision: \"%s\""
-msgstr "la sintaxis de entrada no es válida para tipo double precision: «%s»"
-
-#: utils/adt/numutils.c:75
-#, c-format
-msgid "value \"%s\" is out of range for type integer"
-msgstr "el valor «%s» está fuera de rango para el tipo integer"
-
-#: utils/adt/numutils.c:81
-#, c-format
-msgid "value \"%s\" is out of range for type smallint"
-msgstr "el valor «%s» está fuera de rango para el tipo smallint"
-
-#: utils/adt/numutils.c:87
+#: utils/adt/numutils.c:89
 #, c-format
 msgid "value \"%s\" is out of range for 8-bit integer"
 msgstr "el valor «%s» está fuera de rango para un entero de 8 bits"
 
-#: utils/adt/oid.c:43 utils/adt/oid.c:57 utils/adt/oid.c:63 utils/adt/oid.c:84
-#, c-format
-msgid "invalid input syntax for type oid: \"%s\""
-msgstr "la sintaxis de entrada no es válida para el tipo oid: «%s»"
-
-#: utils/adt/oid.c:69 utils/adt/oid.c:107
-#, c-format
-msgid "value \"%s\" is out of range for type oid"
-msgstr "el valor «%s» está fuera de rango para el tipo oid"
-
-#: utils/adt/oid.c:287
+#: utils/adt/oid.c:290
 #, c-format
 msgid "invalid oidvector data"
 msgstr "datos de oidvector no válidos"
@@ -19726,208 +21351,132 @@ msgstr "el carácter pedido no es válido para el encoding: %d"
 msgid "null character not permitted"
 msgstr "el carácter nulo no está permitido"
 
-#: utils/adt/orderedsetaggs.c:425 utils/adt/orderedsetaggs.c:530
-#: utils/adt/orderedsetaggs.c:669
+#: utils/adt/orderedsetaggs.c:426 utils/adt/orderedsetaggs.c:531
+#: utils/adt/orderedsetaggs.c:670
 #, 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:917
+#: utils/adt/pg_locale.c:1034
 #, c-format
 msgid "Apply system library package updates."
-msgstr ""
+msgstr "Aplique actualizaciones de paquetes de bibliotecas del sistema."
 
-#: utils/adt/pg_locale.c:1122
+#: utils/adt/pg_locale.c:1239
 #, 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:1125
+#: utils/adt/pg_locale.c:1242
 #, 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:1212
+#: utils/adt/pg_locale.c:1339
 #, 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:1227
-#, c-format
-msgid "nondefault collations are not supported on this platform"
-msgstr "los ordenamientos (collation) distintos del ordenamiento por omisión no están soportados en esta plataforma"
-
-#: utils/adt/pg_locale.c:1398
-#, 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:1399
-#, 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:44 utils/adt/pg_lsn.c:49
-#, c-format
-msgid "invalid input syntax for type pg_lsn: \"%s\""
-msgstr "la sintaxis de entrada no es válida para tipo pg_lsn: «%s»"
-
-#: utils/adt/pg_upgrade_support.c:40
+#: utils/adt/pg_locale.c:1348
 #, fuzzy, c-format
-msgid "function can only be called when server is in binary upgrade mode"
-msgstr "debe ser superusuario para conectarse en modo de actualización binaria"
+msgid "collation provider LIBC is not supported on this platform"
+msgstr "LDAP sobre SSL no está soportado en esta plataforma."
 
-#: utils/adt/pgstatfuncs.c:571
+#: utils/adt/pg_locale.c:1360
 #, fuzzy, c-format
-#| msgid "invalid locale name: \"%s\""
-msgid "invalid command name: \"%s\""
-msgstr "nombre de configuración regional no válido: «%s»"
-
-#: utils/adt/pseudotypes.c:95
-#, c-format
-msgid "cannot accept a value of type any"
-msgstr "no se puede aceptar un valor de tipo any"
-
-#: utils/adt/pseudotypes.c:108
-#, c-format
-msgid "cannot display a value of type any"
-msgstr "no se puede desplegar un valor de tipo any"
-
-#: utils/adt/pseudotypes.c:122 utils/adt/pseudotypes.c:150
-#, c-format
-msgid "cannot accept a value of type anyarray"
-msgstr "no se puede aceptar un valor de tipo anyarray"
-
-#: utils/adt/pseudotypes.c:175
-#, c-format
-msgid "cannot accept a value of type anyenum"
-msgstr "no se puede aceptar un valor de tipo anyenum"
-
-#: utils/adt/pseudotypes.c:199
-#, c-format
-msgid "cannot accept a value of type anyrange"
-msgstr "no se puede aceptar un valor de tipo anyrange"
-
-#: utils/adt/pseudotypes.c:276
-#, c-format
-msgid "cannot accept a value of type trigger"
-msgstr "no se puede aceptar un valor de tipo trigger"
-
-#: utils/adt/pseudotypes.c:289
-#, c-format
-msgid "cannot display a value of type trigger"
-msgstr "no se puede desplegar un valor de tipo trigger"
-
-#: utils/adt/pseudotypes.c:303
-#, c-format
-msgid "cannot accept a value of type event_trigger"
-msgstr "no se puede aceptar un valor de tipo event_trigger"
-
-#: utils/adt/pseudotypes.c:316
-#, c-format
-msgid "cannot display a value of type event_trigger"
-msgstr "no se puede desplegar un valor de tipo event_trigger"
-
-#: utils/adt/pseudotypes.c:330
-#, c-format
-msgid "cannot accept a value of type language_handler"
-msgstr "no se puede aceptar un valor de tipo language_handler"
-
-#: utils/adt/pseudotypes.c:343
-#, c-format
-msgid "cannot display a value of type language_handler"
-msgstr "no se puede desplegar un valor de tipo language_handler"
-
-#: utils/adt/pseudotypes.c:357
-#, c-format
-msgid "cannot accept a value of type fdw_handler"
-msgstr "no se puede aceptar un valor de tipo fdw_handler"
+#| msgid "collations with different collate and ctype values are not supported on this platform"
+msgid "collations with different collate and ctype values are not supported by ICU"
+msgstr "los ordenamientos (collation) con valores collate y ctype diferentes no están soportados en esta plataforma"
 
-#: utils/adt/pseudotypes.c:370
-#, c-format
-msgid "cannot display a value of type fdw_handler"
-msgstr "no se puede desplegar un valor de tipo fdw_handler"
+#: utils/adt/pg_locale.c:1366 utils/adt/pg_locale.c:1448
+#, fuzzy, c-format
+msgid "could not open collator for locale \"%s\": %s"
+msgstr "no se pudo abrir el archivo de control «%s»: %m"
 
-#: utils/adt/pseudotypes.c:384
+#: utils/adt/pg_locale.c:1375
 #, fuzzy, c-format
-msgid "cannot accept a value of type index_am_handler"
-msgstr "no se puede aceptar un valor de tipo fdw_handler"
+msgid "ICU is not supported in this build"
+msgstr "SSL no está soportado en este servidor"
 
-#: utils/adt/pseudotypes.c:397
+#: utils/adt/pg_locale.c:1376
 #, fuzzy, c-format
-msgid "cannot display a value of type index_am_handler"
-msgstr "no se puede desplegar un valor de tipo fdw_handler"
+msgid "You need to rebuild PostgreSQL using --with-icu."
+msgstr "Necesita reconstruir PostgreSQL usando --with-libxml."
 
-#: utils/adt/pseudotypes.c:411
+#: utils/adt/pg_locale.c:1396
 #, fuzzy, c-format
-msgid "cannot accept a value of type tsm_handler"
-msgstr "no se puede aceptar un valor de tipo fdw_handler"
+msgid "collation \"%s\" has no actual version, but a version was specified"
+msgstr "la extensión «%s» no tiene ruta de actualización desde la versión «%s» hasta la versión «%s»"
 
-#: utils/adt/pseudotypes.c:424
+#: utils/adt/pg_locale.c:1403
 #, fuzzy, c-format
-msgid "cannot display a value of type tsm_handler"
-msgstr "no se puede desplegar un valor de tipo fdw_handler"
+msgid "collation \"%s\" has version mismatch"
+msgstr "biblioteca «%s» incompatible: versión no coincide"
 
-#: utils/adt/pseudotypes.c:438
+#: utils/adt/pg_locale.c:1405
 #, c-format
-msgid "cannot accept a value of type internal"
-msgstr "no se puede aceptar un valor de tipo internal"
+msgid "The collation in the database was created using version %s, but the operating system provides version %s."
+msgstr ""
 
-#: utils/adt/pseudotypes.c:451
+#: utils/adt/pg_locale.c:1408
 #, c-format
-msgid "cannot display a value of type internal"
-msgstr "no se puede desplegar un valor de tipo internal"
+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/pseudotypes.c:465
-#, c-format
-msgid "cannot accept a value of type opaque"
-msgstr "no se puede aceptar un valor de tipo opaque"
+#: utils/adt/pg_locale.c:1488
+#, fuzzy, c-format
+msgid "could not open ICU converter for encoding \"%s\": %s"
+msgstr "no se pudo abrir el archivo de control «%s»: %m"
 
-#: utils/adt/pseudotypes.c:478
-#, c-format
-msgid "cannot display a value of type opaque"
-msgstr "no se puede desplegar un valor de tipo opaque"
+#: utils/adt/pg_locale.c:1519 utils/adt/pg_locale.c:1528
+#, fuzzy, c-format
+msgid "ucnv_toUChars failed: %s"
+msgstr "pclose falló: %s"
+
+#: utils/adt/pg_locale.c:1557 utils/adt/pg_locale.c:1566
+#, fuzzy, c-format
+msgid "ucnv_fromUChars failed: %s"
+msgstr "pclose falló: %s"
 
-#: utils/adt/pseudotypes.c:492
+#: utils/adt/pg_locale.c:1739
 #, c-format
-msgid "cannot accept a value of type anyelement"
-msgstr "no se puede aceptar un valor de tipo anyelement"
+msgid "invalid multibyte character for locale"
+msgstr "el carácter multibyte no es válido para esta configuración regional"
 
-#: utils/adt/pseudotypes.c:505
+#: utils/adt/pg_locale.c:1740
 #, c-format
-msgid "cannot display a value of type anyelement"
-msgstr "no se puede desplegar un valor de tipo anyelement"
+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/pseudotypes.c:518
+#: utils/adt/pg_upgrade_support.c:28
 #, c-format
-msgid "cannot accept a value of type anynonarray"
-msgstr "no se puede aceptar un valor de tipo anynonarray"
+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/pseudotypes.c:531
+#: utils/adt/pgstatfuncs.c:473
 #, c-format
-msgid "cannot display a value of type anynonarray"
-msgstr "no se puede desplegar un valor de tipo anynonarray"
+msgid "invalid command name: \"%s\""
+msgstr "nombre de orden no válido: «%s»"
 
-#: utils/adt/pseudotypes.c:544
+#: utils/adt/pseudotypes.c:247
 #, 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:557
+#: utils/adt/pseudotypes.c:260
 #, c-format
 msgid "cannot display a value of a shell type"
 msgstr "no se puede desplegar un valor de un tipo inconcluso"
 
-#: utils/adt/pseudotypes.c:579 utils/adt/pseudotypes.c:604
-#: utils/adt/pseudotypes.c:632 utils/adt/pseudotypes.c:660
-#, fuzzy, c-format
-msgid "cannot accept a value of type %s"
-msgstr "no se puede aceptar un valor de tipo any"
+#: utils/adt/pseudotypes.c:350 utils/adt/pseudotypes.c:376
+#, c-format
+msgid "cannot output a value of type %s"
+msgstr "no se puede desplegar un valor de tipo %s"
 
-#: utils/adt/pseudotypes.c:647 utils/adt/pseudotypes.c:673
+#: utils/adt/pseudotypes.c:403
 #, fuzzy, c-format
-msgid "cannot output a value of type %s"
-msgstr "no se puede aceptar un valor de tipo any"
+msgid "cannot display a value of type %s"
+msgstr "no se puede desplegar un valor de tipo any"
 
 #: utils/adt/rangetypes.c:405
 #, c-format
@@ -19944,57 +21493,57 @@ msgstr "el resultado de la diferencia de rangos no sería contiguo"
 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:1543
+#: utils/adt/rangetypes.c:1533
 #, 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:1926 utils/adt/rangetypes.c:1939
-#: utils/adt/rangetypes.c:1953
+#: utils/adt/rangetypes.c:1916 utils/adt/rangetypes.c:1929
+#: utils/adt/rangetypes.c:1943
 #, c-format
 msgid "invalid range bound flags"
 msgstr "opciones de bordes de rango no válidas"
 
-#: utils/adt/rangetypes.c:1927 utils/adt/rangetypes.c:1940
-#: utils/adt/rangetypes.c:1954
+#: utils/adt/rangetypes.c:1917 utils/adt/rangetypes.c:1930
+#: utils/adt/rangetypes.c:1944
 #, c-format
 msgid "Valid values are \"[]\", \"[)\", \"(]\", and \"()\"."
 msgstr "Los valores aceptables son «[]», «[)», «(]» y «()»."
 
-#: utils/adt/rangetypes.c:2019 utils/adt/rangetypes.c:2036
-#: utils/adt/rangetypes.c:2049 utils/adt/rangetypes.c:2067
-#: utils/adt/rangetypes.c:2078 utils/adt/rangetypes.c:2122
-#: utils/adt/rangetypes.c:2130
+#: utils/adt/rangetypes.c:2009 utils/adt/rangetypes.c:2026
+#: utils/adt/rangetypes.c:2039 utils/adt/rangetypes.c:2057
+#: utils/adt/rangetypes.c:2068 utils/adt/rangetypes.c:2112
+#: utils/adt/rangetypes.c:2120
 #, c-format
 msgid "malformed range literal: \"%s\""
 msgstr "literal de rango mal formado: «%s»"
 
-#: utils/adt/rangetypes.c:2021
+#: utils/adt/rangetypes.c:2011
 #, c-format
 msgid "Junk after \"empty\" key word."
 msgstr "Basura a continuación de la palabra «empty»."
 
-#: utils/adt/rangetypes.c:2038
+#: utils/adt/rangetypes.c:2028
 #, c-format
 msgid "Missing left parenthesis or bracket."
 msgstr "Falta paréntesis o corchete izquierdo."
 
-#: utils/adt/rangetypes.c:2051
+#: utils/adt/rangetypes.c:2041
 #, c-format
 msgid "Missing comma after lower bound."
 msgstr "Coma faltante después del límite inferior."
 
-#: utils/adt/rangetypes.c:2069
+#: utils/adt/rangetypes.c:2059
 #, c-format
 msgid "Too many commas."
 msgstr "Demasiadas comas."
 
-#: utils/adt/rangetypes.c:2080
+#: utils/adt/rangetypes.c:2070
 #, c-format
 msgid "Junk after right parenthesis or bracket."
 msgstr "Basura después del paréntesis o corchete derecho."
 
-#: utils/adt/regexp.c:285 utils/adt/regexp.c:1288 utils/adt/varlena.c:3829
+#: utils/adt/regexp.c:285 utils/adt/regexp.c:1344 utils/adt/varlena.c:3963
 #, c-format
 msgid "regular expression failed: %s"
 msgstr "la expresión regular falló: %s"
@@ -20004,126 +21553,141 @@ msgstr "la expresión regular falló: %s"
 msgid "invalid regexp option: \"%c\""
 msgstr "la opción de expresión regular no es válida: «%c»"
 
-#: utils/adt/regexp.c:948
+#: utils/adt/regexp.c:862
+#, fuzzy, c-format
+msgid "regexp_match does not support the global option"
+msgstr "regex_split no soporta la opción «global»"
+
+#: utils/adt/regexp.c:863
 #, c-format
-msgid "regexp_split does not support the global option"
+msgid "Use the regexp_matches function instead."
+msgstr ""
+
+#: utils/adt/regexp.c:1163
+#, fuzzy, c-format
+msgid "regexp_split_to_table does not support the global option"
 msgstr "regex_split no soporta la opción «global»"
 
-#: utils/adt/regproc.c:128 utils/adt/regproc.c:148
+#: utils/adt/regexp.c:1219
+#, fuzzy, c-format
+msgid "regexp_split_to_array does not support the global option"
+msgstr "regex_split no soporta la opción «global»"
+
+#: utils/adt/regproc.c:106
 #, c-format
 msgid "more than one function named \"%s\""
 msgstr "existe más de una función llamada «%s»"
 
-#: utils/adt/regproc.c:587 utils/adt/regproc.c:607
+#: utils/adt/regproc.c:524
 #, c-format
 msgid "more than one operator named %s"
 msgstr "existe más de un operador llamado %s"
 
-#: utils/adt/regproc.c:779 utils/adt/regproc.c:820 utils/adt/regproc.c:2006
-#: utils/adt/ruleutils.c:8235 utils/adt/ruleutils.c:8401
+#: utils/adt/regproc.c:696 utils/adt/regproc.c:737 utils/adt/regproc.c:1865
+#: utils/adt/ruleutils.c:8884 utils/adt/ruleutils.c:9052
 #, c-format
 msgid "too many arguments"
 msgstr "demasiados argumentos"
 
-#: utils/adt/regproc.c:780 utils/adt/regproc.c:821
+#: utils/adt/regproc.c:697 utils/adt/regproc.c:738
 #, c-format
 msgid "Provide two argument types for operator."
 msgstr "Provea dos tipos de argumento para un operador."
 
-#: utils/adt/regproc.c:1594 utils/adt/regproc.c:1618 utils/adt/regproc.c:1715
-#: utils/adt/regproc.c:1739 utils/adt/regproc.c:1841 utils/adt/regproc.c:1846
-#: utils/adt/varlena.c:3084 utils/adt/varlena.c:3089
+#: utils/adt/regproc.c:1449 utils/adt/regproc.c:1473 utils/adt/regproc.c:1574
+#: utils/adt/regproc.c:1598 utils/adt/regproc.c:1700 utils/adt/regproc.c:1705
+#: utils/adt/varlena.c:3216 utils/adt/varlena.c:3221
 #, c-format
 msgid "invalid name syntax"
 msgstr "la sintaxis de nombre no es válida"
 
-#: utils/adt/regproc.c:1904
+#: utils/adt/regproc.c:1763
 #, c-format
 msgid "expected a left parenthesis"
 msgstr "se esperaba un paréntesis izquierdo"
 
-#: utils/adt/regproc.c:1920
+#: utils/adt/regproc.c:1779
 #, c-format
 msgid "expected a right parenthesis"
 msgstr "se esperaba un paréntesis derecho"
 
-#: utils/adt/regproc.c:1939
+#: utils/adt/regproc.c:1798
 #, c-format
 msgid "expected a type name"
 msgstr "se esperaba un nombre de tipo"
 
-#: utils/adt/regproc.c:1971
+#: utils/adt/regproc.c:1830
 #, c-format
 msgid "improper type name"
 msgstr "el nombre de tipo no es válido"
 
-#: utils/adt/ri_triggers.c:345 utils/adt/ri_triggers.c:2492
-#: utils/adt/ri_triggers.c:3317
+#: utils/adt/ri_triggers.c:340 utils/adt/ri_triggers.c:2487
+#: utils/adt/ri_triggers.c:3312
 #, 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:348 utils/adt/ri_triggers.c:2495
+#: utils/adt/ri_triggers.c:343 utils/adt/ri_triggers.c:2490
 #, 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:2734
+#: utils/adt/ri_triggers.c:2729
 #, 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:2740
+#: utils/adt/ri_triggers.c:2735
 #, 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:2746
+#: utils/adt/ri_triggers.c:2741
 #, 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:2769
+#: utils/adt/ri_triggers.c:2764
 #, 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:2771
+#: utils/adt/ri_triggers.c:2766
 #, 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:3227
+#: utils/adt/ri_triggers.c:3222
 #, 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:3231
+#: utils/adt/ri_triggers.c:3226
 #, 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:3321
+#: utils/adt/ri_triggers.c:3316
 #, 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:3324
+#: utils/adt/ri_triggers.c:3319
 #, 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:3330
+#: utils/adt/ri_triggers.c:3325
 #, 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:3335
+#: utils/adt/ri_triggers.c:3330
 #, 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:3338
+#: utils/adt/ri_triggers.c:3333
 #, c-format
 msgid "Key is still referenced from table \"%s\"."
 msgstr "La llave todavía es referida desde la tabla «%s»."
@@ -20186,158 +21750,151 @@ msgstr "no se pueden comparar los tipos de columnas disímiles %s y %s en la col
 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:4174
+#: utils/adt/ruleutils.c:4655
 #, c-format
 msgid "rule \"%s\" has unsupported event type %d"
 msgstr "la regla «%s» tiene el tipo de evento no soportado %d"
 
-#: utils/adt/selfuncs.c:5314
+#: utils/adt/selfuncs.c:5547
 #, 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/selfuncs.c:5417
+#: utils/adt/selfuncs.c:5649
 #, c-format
 msgid "regular-expression matching not supported on type bytea"
 msgstr "no está soportada la comparación con expresiones regulares en bytea"
 
-#: utils/adt/tid.c:71 utils/adt/tid.c:79 utils/adt/tid.c:87
-#, c-format
-msgid "invalid input syntax for type tid: \"%s\""
-msgstr "la sintaxis de entrada no es válida para tipo tid: «%s»"
-
-#: utils/adt/timestamp.c:99
+#: utils/adt/timestamp.c:107
 #, 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:105
+#: utils/adt/timestamp.c:113
 #, 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:170 utils/adt/timestamp.c:445
+#: utils/adt/timestamp.c:176 utils/adt/timestamp.c:416
 #, c-format
 msgid "timestamp out of range: \"%s\""
 msgstr "timestamp fuera de rango: «%s»"
 
-#: utils/adt/timestamp.c:188 utils/adt/timestamp.c:463
-#: utils/adt/timestamp.c:993
+#: utils/adt/timestamp.c:194 utils/adt/timestamp.c:434
+#: utils/adt/timestamp.c:941
 #, c-format
 msgid "date/time value \"%s\" is no longer supported"
 msgstr "el valor de date/time «%s» ya no está soportado"
 
-#: utils/adt/timestamp.c:258 utils/adt/timestamp.c:754
-#, c-format
-msgid "timestamp cannot be NaN"
-msgstr "el timestamp no puede ser NaN"
-
-#: utils/adt/timestamp.c:380
+#: utils/adt/timestamp.c:362
 #, 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:513
+#: utils/adt/timestamp.c:484
 #, c-format
 msgid "invalid input syntax for numeric time zone: \"%s\""
 msgstr "la sintaxis de entrada no es válida para el huso horario numérico: «%s»"
 
-#: utils/adt/timestamp.c:515
+#: utils/adt/timestamp.c:486
 #, 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:528
+#: utils/adt/timestamp.c:499
 #, c-format
 msgid "numeric time zone \"%s\" out of range"
 msgstr "el huso horario numérico «%s» está fuera de rango"
 
-#: utils/adt/timestamp.c:631 utils/adt/timestamp.c:641
-#: utils/adt/timestamp.c:653
+#: utils/adt/timestamp.c:601 utils/adt/timestamp.c:611
+#: utils/adt/timestamp.c:619
 #, 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:770 utils/adt/timestamp.c:776
-#: utils/adt/timestamp.c:791
-#, fuzzy, c-format
-#| msgid "timestamp out of range: \"%s\""
-msgid "timestamp out of range: \"%g\""
-msgstr "timestamp fuera de rango: «%s»"
+#: utils/adt/timestamp.c:720
+#, c-format
+msgid "timestamp cannot be NaN"
+msgstr "el timestamp no puede ser NaN"
 
-#: utils/adt/timestamp.c:987 utils/adt/timestamp.c:1558
-#: utils/adt/timestamp.c:2068 utils/adt/timestamp.c:3220
-#: utils/adt/timestamp.c:3225 utils/adt/timestamp.c:3230
-#: utils/adt/timestamp.c:3280 utils/adt/timestamp.c:3287
-#: utils/adt/timestamp.c:3294 utils/adt/timestamp.c:3314
-#: utils/adt/timestamp.c:3321 utils/adt/timestamp.c:3328
-#: utils/adt/timestamp.c:3358 utils/adt/timestamp.c:3366
-#: utils/adt/timestamp.c:3411 utils/adt/timestamp.c:3751
-#: utils/adt/timestamp.c:3880 utils/adt/timestamp.c:4271
+#: utils/adt/timestamp.c:738 utils/adt/timestamp.c:750
+#, c-format
+msgid "timestamp out of range: \"%g\""
+msgstr "timestamp fuera de rango: «%g»"
+
+#: utils/adt/timestamp.c:935 utils/adt/timestamp.c:1505
+#: utils/adt/timestamp.c:1918 utils/adt/timestamp.c:2994
+#: utils/adt/timestamp.c:2999 utils/adt/timestamp.c:3004
+#: utils/adt/timestamp.c:3054 utils/adt/timestamp.c:3061
+#: utils/adt/timestamp.c:3068 utils/adt/timestamp.c:3088
+#: utils/adt/timestamp.c:3095 utils/adt/timestamp.c:3102
+#: utils/adt/timestamp.c:3132 utils/adt/timestamp.c:3140
+#: utils/adt/timestamp.c:3184 utils/adt/timestamp.c:3507
+#: utils/adt/timestamp.c:3632 utils/adt/timestamp.c:4000
 #, c-format
 msgid "interval out of range"
 msgstr "interval fuera de rango"
 
-#: utils/adt/timestamp.c:1128 utils/adt/timestamp.c:1161
+#: utils/adt/timestamp.c:1068 utils/adt/timestamp.c:1101
 #, c-format
 msgid "invalid INTERVAL type modifier"
 msgstr "modificador de tipo INTERVAL no válido"
 
-#: utils/adt/timestamp.c:1144
+#: utils/adt/timestamp.c:1084
 #, 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:1150
+#: utils/adt/timestamp.c:1090
 #, 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:1502
+#: utils/adt/timestamp.c:1462
 #, 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:2797
+#: utils/adt/timestamp.c:2595
 #, c-format
 msgid "cannot subtract infinite timestamps"
 msgstr "no se pueden restar timestamps infinitos"
 
-#: utils/adt/timestamp.c:4006 utils/adt/timestamp.c:4531
-#: utils/adt/timestamp.c:4715 utils/adt/timestamp.c:4740
+#: utils/adt/timestamp.c:3751 utils/adt/timestamp.c:4260
+#: utils/adt/timestamp.c:4427 utils/adt/timestamp.c:4448
 #, c-format
 msgid "timestamp units \"%s\" not supported"
 msgstr "las unidades de timestamp «%s» no están soportadas"
 
-#: utils/adt/timestamp.c:4020 utils/adt/timestamp.c:4485
-#: utils/adt/timestamp.c:4750
+#: utils/adt/timestamp.c:3765 utils/adt/timestamp.c:4214
+#: utils/adt/timestamp.c:4458
 #, c-format
 msgid "timestamp units \"%s\" not recognized"
 msgstr "las unidades de timestamp «%s» no son reconocidas"
 
-#: utils/adt/timestamp.c:4160 utils/adt/timestamp.c:4526
-#: utils/adt/timestamp.c:4937 utils/adt/timestamp.c:4963
+#: utils/adt/timestamp.c:3897 utils/adt/timestamp.c:4255
+#: utils/adt/timestamp.c:4628 utils/adt/timestamp.c:4650
 #, c-format
 msgid "timestamp with time zone units \"%s\" not supported"
 msgstr "las unidades de timestamp with time zone «%s» no están soportadas"
 
-#: utils/adt/timestamp.c:4177 utils/adt/timestamp.c:4480
-#: utils/adt/timestamp.c:4972
+#: utils/adt/timestamp.c:3914 utils/adt/timestamp.c:4209
+#: utils/adt/timestamp.c:4659
 #, c-format
 msgid "timestamp with time zone units \"%s\" not recognized"
 msgstr "las unidades de timestamp with time zone «%s» no son reconocidas"
 
-#: utils/adt/timestamp.c:4258
+#: utils/adt/timestamp.c:3987
 #, c-format
 msgid "interval units \"%s\" not supported because months usually have fractional weeks"
 msgstr "las unidades de intervalo «%s» no están soportadas porque los meses normalmente tienen semanas fraccionales"
 
-#: utils/adt/timestamp.c:4264 utils/adt/timestamp.c:5078
+#: utils/adt/timestamp.c:3993 utils/adt/timestamp.c:4753
 #, c-format
 msgid "interval units \"%s\" not supported"
 msgstr "las unidades de interval «%s» no están soportadas"
 
-#: utils/adt/timestamp.c:4280 utils/adt/timestamp.c:5105
+#: utils/adt/timestamp.c:4009 utils/adt/timestamp.c:4776
 #, c-format
 msgid "interval units \"%s\" not recognized"
 msgstr "las unidades de interval «%s» no son reconocidas"
@@ -20362,7 +21919,7 @@ msgstr "suppress_redundant_updates_trigger: debe ser invocado «BEFORE UPDATE»"
 msgid "suppress_redundant_updates_trigger: must be called for each row"
 msgstr "suppress_redundant_updates_trigger: debe ser invocado «FOR EACH ROW»"
 
-#: utils/adt/tsgistidx.c:99
+#: utils/adt/tsgistidx.c:100
 #, c-format
 msgid "gtsvector_in not implemented"
 msgstr "gtsvector_in no está implementado"
@@ -20370,7 +21927,7 @@ msgstr "gtsvector_in no está implementado"
 #: utils/adt/tsquery.c:166
 #, c-format
 msgid "distance in phrase operator should not be greater than %d"
-msgstr ""
+msgstr "distancia en operador de frases no debe ser mayor que %d"
 
 #: utils/adt/tsquery.c:254 utils/adt/tsquery.c:513
 #: utils/adt/tsvector_parser.c:141
@@ -20398,110 +21955,113 @@ msgstr "el operando es muy largo en tsquery: «%s»"
 msgid "word is too long in tsquery: \"%s\""
 msgstr "palabra demasiado larga en tsquery: «%s»"
 
-#: utils/adt/tsquery.c:648
+#: utils/adt/tsquery.c:642
 #, 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:659 utils/adt/tsquery_util.c:347
+#: utils/adt/tsquery.c:653 utils/adt/tsquery_util.c:375
 #, c-format
 msgid "tsquery is too large"
 msgstr "el tsquery es demasiado grande"
 
-#: utils/adt/tsquery_cleanup.c:580
+#: utils/adt/tsquery_cleanup.c:407
 #, c-format
 msgid "text-search query contains only stop words or doesn't contain lexemes, ignored"
 msgstr "la consulta de búsqueda en texto contiene sólo stopwords o no contiene lexemas; ignorada"
 
-#: utils/adt/tsquery_op.c:122
+#: utils/adt/tsquery_op.c:123
 #, c-format
 msgid "distance in phrase operator should be non-negative and less than %d"
-msgstr ""
+msgstr "la distancia en el operador de frases debe ser no negativa y menor que %d"
 
-#: utils/adt/tsquery_rewrite.c:292
+#: utils/adt/tsquery_rewrite.c:321
 #, c-format
 msgid "ts_rewrite query must return two tsquery columns"
 msgstr "consulta ts_rewrite debe retornar dos columnas tsquery"
 
-#: utils/adt/tsrank.c:412
+#: utils/adt/tsrank.c:413
 #, c-format
 msgid "array of weight must be one-dimensional"
 msgstr "el array de pesos debe ser unidimensional"
 
-#: utils/adt/tsrank.c:417
+#: utils/adt/tsrank.c:418
 #, c-format
 msgid "array of weight is too short"
 msgstr "el array de pesos es muy corto"
 
-#: utils/adt/tsrank.c:422
+#: utils/adt/tsrank.c:423
 #, c-format
 msgid "array of weight must not contain nulls"
 msgstr "los arrays de pesos no deben contener valores nulos"
 
-#: utils/adt/tsrank.c:431 utils/adt/tsrank.c:862
+#: utils/adt/tsrank.c:432 utils/adt/tsrank.c:869
 #, c-format
 msgid "weight out of range"
 msgstr "el peso está fuera de rango"
 
-#: utils/adt/tsvector.c:213
+#: utils/adt/tsvector.c:214
 #, 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:220
+#: utils/adt/tsvector.c:221
 #, 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:317 utils/adt/tsvector_op.c:565
-#: utils/adt/tsvector_op.c:731
-#, fuzzy, c-format
-#| msgid "array must not contain nulls"
+#: utils/adt/tsvector_op.c:323 utils/adt/tsvector_op.c:610
+#: utils/adt/tsvector_op.c:778
+#, c-format
 msgid "lexeme array may not contain nulls"
-msgstr "el array no debe contener nulls"
+msgstr "el array de lexemas no debe contener nulls"
 
-#: utils/adt/tsvector_op.c:789
-#, fuzzy, c-format
-#| msgid "array must not contain nulls"
+#: utils/adt/tsvector_op.c:853
+#, c-format
 msgid "weight array may not contain nulls"
-msgstr "el array no debe contener nulls"
+msgstr "el array de pesos no debe contener nulls"
+
+#: utils/adt/tsvector_op.c:877
+#, c-format
+msgid "unrecognized weight: \"%c\""
+msgstr "no se reconoce el peso: «%c»"
 
-#: utils/adt/tsvector_op.c:1976
+#: utils/adt/tsvector_op.c:2314
 #, 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:2158
+#: utils/adt/tsvector_op.c:2496
 #, c-format
 msgid "tsvector column \"%s\" does not exist"
 msgstr "la columna tsvector «%s» no existe"
 
-#: utils/adt/tsvector_op.c:2164
+#: utils/adt/tsvector_op.c:2503
 #, c-format
 msgid "column \"%s\" is not of tsvector type"
 msgstr "la columna «%s» no es de tipo tsvector"
 
-#: utils/adt/tsvector_op.c:2176
+#: utils/adt/tsvector_op.c:2515
 #, c-format
 msgid "configuration column \"%s\" does not exist"
 msgstr "la columna de configuración «%s» no existe"
 
-#: utils/adt/tsvector_op.c:2182
+#: utils/adt/tsvector_op.c:2521
 #, c-format
 msgid "column \"%s\" is not of regconfig type"
 msgstr "la columna «%s» no es de tipo regconfig"
 
-#: utils/adt/tsvector_op.c:2189
+#: utils/adt/tsvector_op.c:2528
 #, 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:2202
+#: utils/adt/tsvector_op.c:2541
 #, 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:2227
+#: utils/adt/tsvector_op.c:2566
 #, c-format
 msgid "column \"%s\" is not of a character type"
 msgstr "la columna «%s» no es de un tipo textual"
@@ -20521,64 +22081,72 @@ msgstr "no hay carácter escapado: «%s»"
 msgid "wrong position info in tsvector: \"%s\""
 msgstr "información posicional incorrecta en tsvector: «%s»"
 
-#: utils/adt/txid.c:339
+#: utils/adt/txid.c:135
 #, fuzzy, c-format
-msgid "invalid input syntax for type txid_snapshot: \"%s\""
-msgstr "la sintaxis de entrada no es válida para tipo tid: «%s»"
+msgid "transaction ID "
+msgstr "transacción %u"
 
-#: utils/adt/txid.c:534
-#, fuzzy, c-format
+#: utils/adt/txid.c:624
+#, c-format
 msgid "invalid external txid_snapshot data"
-msgstr "valor externo «cidr» no válido"
+msgstr "valor externo txid_snapshot no válido"
 
-#: utils/adt/uuid.c:145
-#, c-format
-msgid "invalid input syntax for uuid: \"%s\""
-msgstr "la sintaxis de entrada no es válida para el tipo uuid: «%s»"
+#: utils/adt/txid.c:758 utils/adt/txid.c:779
+#, fuzzy
+msgid "in progress"
+msgstr "la recuperación está en proceso"
+
+#: utils/adt/txid.c:760
+msgid "committed"
+msgstr ""
+
+#: utils/adt/txid.c:762 utils/adt/txid.c:777
+msgid "aborted"
+msgstr ""
 
-#: utils/adt/varbit.c:57 utils/adt/varchar.c:50
+#: utils/adt/varbit.c:58 utils/adt/varchar.c:51
 #, 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:62 utils/adt/varchar.c:54
+#: utils/adt/varbit.c:63 utils/adt/varchar.c:55
 #, c-format
 msgid "length for type %s cannot exceed %d"
 msgstr "el largo del tipo %s no puede exceder %d"
 
-#: utils/adt/varbit.c:163 utils/adt/varbit.c:475 utils/adt/varbit.c:973
+#: utils/adt/varbit.c:164 utils/adt/varbit.c:476 utils/adt/varbit.c:973
 #, c-format
 msgid "bit string length exceeds the maximum allowed (%d)"
 msgstr "el tamaño de la cadena de bits excede el máximo permitido (%d)"
 
-#: utils/adt/varbit.c:177 utils/adt/varbit.c:320 utils/adt/varbit.c:377
+#: utils/adt/varbit.c:178 utils/adt/varbit.c:321 utils/adt/varbit.c:378
 #, c-format
 msgid "bit string length %d does not match type bit(%d)"
 msgstr "el largo de la cadena de bits %d no coincide con el tipo bit(%d)"
 
-#: utils/adt/varbit.c:199 utils/adt/varbit.c:511
+#: utils/adt/varbit.c:200 utils/adt/varbit.c:512
 #, c-format
 msgid "\"%c\" is not a valid binary digit"
 msgstr "«%c» no es un dígito binario válido"
 
-#: utils/adt/varbit.c:224 utils/adt/varbit.c:536
+#: utils/adt/varbit.c:225 utils/adt/varbit.c:537
 #, c-format
 msgid "\"%c\" is not a valid hexadecimal digit"
 msgstr "«%c» no es un dígito hexadecimal válido"
 
-#: utils/adt/varbit.c:311 utils/adt/varbit.c:627
+#: utils/adt/varbit.c:312 utils/adt/varbit.c:628
 #, c-format
 msgid "invalid length in external bit string"
 msgstr "el largo largo no es válido en cadena de bits externa"
 
-#: utils/adt/varbit.c:489 utils/adt/varbit.c:636 utils/adt/varbit.c:731
+#: utils/adt/varbit.c:490 utils/adt/varbit.c:637 utils/adt/varbit.c:731
 #, c-format
 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:1066 utils/adt/varbit.c:1168 utils/adt/varlena.c:842
-#: utils/adt/varlena.c:906 utils/adt/varlena.c:1050 utils/adt/varlena.c:2735
-#: utils/adt/varlena.c:2802
+#: utils/adt/varbit.c:1066 utils/adt/varbit.c:1168 utils/adt/varlena.c:841
+#: utils/adt/varlena.c:905 utils/adt/varlena.c:1049 utils/adt/varlena.c:2881
+#: utils/adt/varlena.c:2948
 #, c-format
 msgid "negative substring length not allowed"
 msgstr "no se permite un largo negativo de subcadena"
@@ -20598,96 +22166,98 @@ msgstr "no se puede hacer OR entre cadenas de bits de distintos tamaños"
 msgid "cannot XOR bit strings of different sizes"
 msgstr "no se puede hacer XOR entre cadenas de bits de distintos tamaños"
 
-#: utils/adt/varbit.c:1793 utils/adt/varbit.c:1851
+#: utils/adt/varbit.c:1803 utils/adt/varbit.c:1861
 #, c-format
 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:1802 utils/adt/varlena.c:3002
+#: utils/adt/varbit.c:1812 utils/adt/varlena.c:3140
 #, c-format
 msgid "new bit must be 0 or 1"
 msgstr "el nuevo bit debe ser 0 o 1"
 
-#: utils/adt/varchar.c:154 utils/adt/varchar.c:307
+#: utils/adt/varchar.c:155 utils/adt/varchar.c:308
 #, 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:469 utils/adt/varchar.c:623
+#: utils/adt/varchar.c:470 utils/adt/varchar.c:623
 #, 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/varlena.c:1420 utils/adt/varlena.c:1825
+#: utils/adt/varlena.c:1416 utils/adt/varlena.c:1865
 #, 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:1478 utils/adt/varlena.c:1491
+#: utils/adt/varlena.c:1473 utils/adt/varlena.c:1486
 #, 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/varlena.c:1506
+#: utils/adt/varlena.c:1501
 #, c-format
 msgid "could not compare Unicode strings: %m"
 msgstr "no se pudieron comparar las cadenas Unicode: %m"
 
-#: utils/adt/varlena.c:2880 utils/adt/varlena.c:2911 utils/adt/varlena.c:2947
-#: utils/adt/varlena.c:2990
+#: utils/adt/varlena.c:1556 utils/adt/varlena.c:2145
+#, fuzzy, c-format
+msgid "collation failed: %s"
+msgstr "pclose falló: %s"
+
+#: utils/adt/varlena.c:2363
+#, fuzzy, c-format
+msgid "sort key generation failed: %s"
+msgstr "la expresión regular falló: %s"
+
+#: utils/adt/varlena.c:3026 utils/adt/varlena.c:3057 utils/adt/varlena.c:3092
+#: utils/adt/varlena.c:3128
 #, 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:3925
+#: utils/adt/varlena.c:4059
 #, c-format
 msgid "field position must be greater than zero"
 msgstr "la posición del campo debe ser mayor que cero"
 
-#: utils/adt/varlena.c:4804
-#, fuzzy, c-format
-#| msgid "unterminated format specifier"
+#: utils/adt/varlena.c:4949
+#, c-format
 msgid "unterminated format() type specifier"
-msgstr "especificador de formato inconcluso"
+msgstr "especificador de tipo inconcluso en format()"
 
-#: utils/adt/varlena.c:4805 utils/adt/varlena.c:4939 utils/adt/varlena.c:5060
+#: utils/adt/varlena.c:4950 utils/adt/varlena.c:5084 utils/adt/varlena.c:5205
 #, c-format
 msgid "For a single \"%%\" use \"%%%%\"."
-msgstr ""
+msgstr "Para un «%%» solo, use «%%%%»."
 
-#: utils/adt/varlena.c:4937 utils/adt/varlena.c:5058
-#, fuzzy, c-format
-#| msgid "unrecognized conversion type specifier \"%c\""
+#: utils/adt/varlena.c:5082 utils/adt/varlena.c:5203
+#, c-format
 msgid "unrecognized format() type specifier \"%c\""
-msgstr "especificador de conversión de tipo no reconocido: «%c»"
-
-#: utils/adt/varlena.c:4950
-#, fuzzy, c-format
-#| msgid "too few arguments for format"
-msgid "too few arguments for format()"
-msgstr "muy pocos argumentos para el formato"
+msgstr "especificador de tipo no reconocido «%c» en format()"
 
-#: utils/adt/varlena.c:5007
+#: utils/adt/varlena.c:5095 utils/adt/varlena.c:5152
 #, c-format
-msgid "too few arguments for format"
-msgstr "muy pocos argumentos para el formato"
+msgid "too few arguments for format()"
+msgstr "muy pocos argumentos para format()"
 
-#: utils/adt/varlena.c:5102 utils/adt/varlena.c:5285
+#: utils/adt/varlena.c:5247 utils/adt/varlena.c:5430
 #, c-format
 msgid "number is out of range"
 msgstr "el número está fuera de rango"
 
-#: utils/adt/varlena.c:5166 utils/adt/varlena.c:5194
+#: utils/adt/varlena.c:5311 utils/adt/varlena.c:5339
 #, 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:5187
+#: utils/adt/varlena.c:5332
 #, 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:5232
+#: utils/adt/varlena.c:5377
 #, c-format
 msgid "null values cannot be formatted as an SQL identifier"
 msgstr "los valores nulos no pueden ser formateados como un identificador SQL"
@@ -20702,227 +22272,247 @@ msgstr "el argumento de ntile debe ser mayor que cero"
 msgid "argument of nth_value must be greater than zero"
 msgstr "el argumento de nth_value debe ser mayor que cero"
 
-#: utils/adt/xml.c:171
+#: utils/adt/xml.c:220
 #, c-format
 msgid "unsupported XML feature"
 msgstr "característica XML no soportada"
 
-#: utils/adt/xml.c:172
+#: utils/adt/xml.c:221
 #, 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:173
+#: utils/adt/xml.c:222
 #, c-format
 msgid "You need to rebuild PostgreSQL using --with-libxml."
 msgstr "Necesita reconstruir PostgreSQL usando --with-libxml."
 
-#: utils/adt/xml.c:192 utils/mb/mbutils.c:523
+#: utils/adt/xml.c:241 utils/mb/mbutils.c:523
 #, c-format
 msgid "invalid encoding name \"%s\""
 msgstr "nombre de codificación «%s» no válido"
 
-#: utils/adt/xml.c:435 utils/adt/xml.c:440
+#: utils/adt/xml.c:484 utils/adt/xml.c:489
 #, c-format
 msgid "invalid XML comment"
 msgstr "comentario XML no válido"
 
-#: utils/adt/xml.c:569
+#: utils/adt/xml.c:618
 #, c-format
 msgid "not an XML document"
 msgstr "no es un documento XML"
 
-#: utils/adt/xml.c:728 utils/adt/xml.c:751
+#: utils/adt/xml.c:777 utils/adt/xml.c:800
 #, c-format
 msgid "invalid XML processing instruction"
 msgstr "instrucción de procesamiento XML no válida"
 
-#: utils/adt/xml.c:729
+#: utils/adt/xml.c:778
 #, 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:752
+#: utils/adt/xml.c:801
 #, c-format
 msgid "XML processing instruction cannot contain \"?>\"."
 msgstr "la instrucción de procesamiento XML no puede contener «?>»."
 
-#: utils/adt/xml.c:831
+#: utils/adt/xml.c:880
 #, c-format
 msgid "xmlvalidate is not implemented"
 msgstr "xmlvalidate no está implementado"
 
-#: utils/adt/xml.c:910
+#: utils/adt/xml.c:959
 #, c-format
 msgid "could not initialize XML library"
 msgstr "no se pudo inicializar la biblioteca XML"
 
-#: utils/adt/xml.c:911
+#: utils/adt/xml.c:960
 #, c-format
 msgid "libxml2 has incompatible char type: sizeof(char)=%u, sizeof(xmlChar)=%u."
 msgstr "libxml2 tiene tipo char incompatible: sizeof(char)=%u, sizeof(xmlChar)=%u."
 
-#: utils/adt/xml.c:997
+#: utils/adt/xml.c:1046
 #, c-format
 msgid "could not set up XML error handler"
 msgstr "no se pudo instalar un gestor de errores XML"
 
-#: utils/adt/xml.c:998
+#: utils/adt/xml.c:1047
 #, 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:1737
+#: utils/adt/xml.c:1797
 msgid "Invalid character value."
 msgstr "Valor de carácter no válido."
 
-#: utils/adt/xml.c:1740
+#: utils/adt/xml.c:1800
 msgid "Space required."
 msgstr "Se requiere un espacio."
 
-#: utils/adt/xml.c:1743
+#: utils/adt/xml.c:1803
 msgid "standalone accepts only 'yes' or 'no'."
 msgstr "standalone acepta sólo 'yes' y 'no'."
 
-#: utils/adt/xml.c:1746
+#: utils/adt/xml.c:1806
 msgid "Malformed declaration: missing version."
 msgstr "Declaración mal formada: falta la versión."
 
-#: utils/adt/xml.c:1749
+#: utils/adt/xml.c:1809
 msgid "Missing encoding in text declaration."
 msgstr "Falta especificación de codificación en declaración de texto."
 
-#: utils/adt/xml.c:1752
+#: utils/adt/xml.c:1812
 msgid "Parsing XML declaration: '?>' expected."
 msgstr "Procesando declaración XML: se esperaba '?>'."
 
-#: utils/adt/xml.c:1755
+#: utils/adt/xml.c:1815
 #, c-format
 msgid "Unrecognized libxml error code: %d."
 msgstr "Código de error libxml no reconocido: %d."
 
-#: utils/adt/xml.c:2030
+#: utils/adt/xml.c:2090
 #, c-format
 msgid "XML does not support infinite date values."
 msgstr "XML no soporta valores infinitos de fecha."
 
-#: utils/adt/xml.c:2052 utils/adt/xml.c:2079
+#: utils/adt/xml.c:2112 utils/adt/xml.c:2139
 #, c-format
 msgid "XML does not support infinite timestamp values."
 msgstr "XML no soporta valores infinitos de timestamp."
 
-#: utils/adt/xml.c:2470
+#: utils/adt/xml.c:2551
 #, c-format
 msgid "invalid query"
 msgstr "consulta no válido"
 
-#: utils/adt/xml.c:3795
+#: utils/adt/xml.c:3870
 #, 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:3796
+#: utils/adt/xml.c:3871
 #, 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:3820
+#: utils/adt/xml.c:3895
 #, c-format
 msgid "empty XPath expression"
 msgstr "expresion XPath vacía"
 
-#: utils/adt/xml.c:3869
+#: utils/adt/xml.c:3939
 #, 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:3876
+#: utils/adt/xml.c:3946
 #, 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/cache/lsyscache.c:2580 utils/cache/lsyscache.c:2613
-#: utils/cache/lsyscache.c:2646 utils/cache/lsyscache.c:2679
+#: utils/adt/xml.c:4300
+#, fuzzy, c-format
+msgid "DEFAULT namespace is not supported"
+msgstr "la sintaxis LIMIT #,# no está soportada"
+
+#: utils/adt/xml.c:4329
+#, fuzzy, c-format
+msgid "row path filter must not be empty string"
+msgstr "El identificador en comillas no debe ser vacío."
+
+#: utils/adt/xml.c:4360
+#, fuzzy, c-format
+msgid "column path filter must not be empty string"
+msgstr "El identificador en comillas no debe ser vacío."
+
+#: utils/adt/xml.c:4542
+#, fuzzy, c-format
+msgid "more than one value returned by column XPath expression"
+msgstr "una subconsulta utilizada como expresión retornó más de un registro"
+
+#: utils/cache/lsyscache.c:2612 utils/cache/lsyscache.c:2645
+#: utils/cache/lsyscache.c:2678 utils/cache/lsyscache.c:2711
 #, c-format
 msgid "type %s is only a shell"
 msgstr "el tipo %s está inconcluso"
 
-#: utils/cache/lsyscache.c:2585
+#: utils/cache/lsyscache.c:2617
 #, 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:2618
+#: utils/cache/lsyscache.c:2650
 #, c-format
 msgid "no output function available for type %s"
 msgstr "no hay una función de salida para el tipo %s"
 
-#: utils/cache/plancache.c:745
+#: utils/cache/plancache.c:722
 #, 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:5135
+#: utils/cache/relcache.c:5791
 #, 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:5137
+#: utils/cache/relcache.c:5793
 #, c-format
 msgid "Continuing anyway, but there's something wrong."
 msgstr "Prosiguiendo de todas maneras, pero hay algo mal."
 
-#: utils/cache/relcache.c:5365
+#: utils/cache/relcache.c:6063
 #, c-format
 msgid "could not remove cache file \"%s\": %m"
 msgstr "no se pudo eliminar el archivo de cache «%s»: %m"
 
-#: utils/cache/relmapper.c:508
+#: utils/cache/relmapper.c:509
 #, c-format
 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:651 utils/cache/relmapper.c:751
+#: utils/cache/relmapper.c:652 utils/cache/relmapper.c:754
 #, c-format
 msgid "could not open relation mapping file \"%s\": %m"
 msgstr "no se pudo abrir el archivo de mapeo de relaciones «%s»: %m"
 
-#: utils/cache/relmapper.c:664
+#: utils/cache/relmapper.c:666
 #, c-format
 msgid "could not read relation mapping file \"%s\": %m"
 msgstr "no se pudo leer el archivo de mapeo de relaciones «%s»: %m"
 
-#: utils/cache/relmapper.c:674
+#: utils/cache/relmapper.c:677
 #, 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:684
+#: utils/cache/relmapper.c:687
 #, 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/relmapper.c:784
+#: utils/cache/relmapper.c:788
 #, c-format
 msgid "could not write to relation mapping file \"%s\": %m"
 msgstr "no se pudo escribir el archivo de mapeo de relaciones «%s»: %m"
 
-#: utils/cache/relmapper.c:797
+#: utils/cache/relmapper.c:803
 #, c-format
 msgid "could not fsync relation mapping file \"%s\": %m"
 msgstr "no se pudo sincronizar (fsync) el archivo de mapeo de relaciones «%s»: %m"
 
-#: utils/cache/relmapper.c:803
+#: utils/cache/relmapper.c:810
 #, c-format
 msgid "could not close relation mapping file \"%s\": %m"
 msgstr "no se pudo cerrar el archivo de mapeo de relaciones «%s»: %m"
 
-#: utils/cache/typcache.c:1211
+#: utils/cache/typcache.c:1223
 #, c-format
 msgid "type %s is not composite"
 msgstr "el tipo %s no es compuesto"
 
-#: utils/cache/typcache.c:1225
+#: utils/cache/typcache.c:1237
 #, c-format
 msgid "record type has not been registered"
 msgstr "el tipo record no ha sido registrado"
@@ -20942,542 +22532,550 @@ msgstr "TRAP: %s(«%s», Archivo: «%s», Línea: %d)\n"
 msgid "error occurred at %s:%d before error message processing is available\n"
 msgstr "ocurrió un error en %s:%d antes de que el procesamiento de mensajes de error esté disponible\n"
 
-#: utils/error/elog.c:1880
+#: utils/error/elog.c:1889
 #, 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:1893
+#: utils/error/elog.c:1902
 #, 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:2380 utils/error/elog.c:2397 utils/error/elog.c:2413
+#: utils/error/elog.c:2389 utils/error/elog.c:2406 utils/error/elog.c:2422
 msgid "[unknown]"
 msgstr "[desconocido]"
 
-#: utils/error/elog.c:2872 utils/error/elog.c:3171 utils/error/elog.c:3279
+#: utils/error/elog.c:2882 utils/error/elog.c:3185 utils/error/elog.c:3293
 msgid "missing error text"
 msgstr "falta un texto de mensaje de error"
 
-#: utils/error/elog.c:2875 utils/error/elog.c:2878 utils/error/elog.c:3282
-#: utils/error/elog.c:3285
+#: utils/error/elog.c:2885 utils/error/elog.c:2888 utils/error/elog.c:3296
+#: utils/error/elog.c:3299
 #, c-format
 msgid " at character %d"
 msgstr " en carácter %d"
 
-#: utils/error/elog.c:2888 utils/error/elog.c:2895
+#: utils/error/elog.c:2898 utils/error/elog.c:2905
 msgid "DETAIL:  "
 msgstr "DETALLE:  "
 
-#: utils/error/elog.c:2902
+#: utils/error/elog.c:2912
 msgid "HINT:  "
 msgstr "HINT:  "
 
-#: utils/error/elog.c:2909
+#: utils/error/elog.c:2919
 msgid "QUERY:  "
 msgstr "CONSULTA:  "
 
-#: utils/error/elog.c:2916
+#: utils/error/elog.c:2926
 msgid "CONTEXT:  "
 msgstr "CONTEXTO:  "
 
-#: utils/error/elog.c:2926
+#: utils/error/elog.c:2936
 #, c-format
 msgid "LOCATION:  %s, %s:%d\n"
 msgstr "UBICACIÓN:  %s, %s:%d\n"
 
-#: utils/error/elog.c:2933
+#: utils/error/elog.c:2943
 #, c-format
 msgid "LOCATION:  %s:%d\n"
 msgstr "UBICACIÓN:  %s:%d\n"
 
-#: utils/error/elog.c:2947
+#: utils/error/elog.c:2957
 msgid "STATEMENT:  "
 msgstr "SENTENCIA:  "
 
 #. translator: This string will be truncated at 47
 #. characters expanded.
-#: utils/error/elog.c:3400
+#: utils/error/elog.c:3414
 #, c-format
 msgid "operating system error %d"
 msgstr "error %d de sistema operativo"
 
-#: utils/error/elog.c:3595
+#: utils/error/elog.c:3612
 msgid "DEBUG"
 msgstr "DEBUG"
 
-#: utils/error/elog.c:3599
+#: utils/error/elog.c:3616
 msgid "LOG"
 msgstr "LOG"
 
-#: utils/error/elog.c:3602
+#: utils/error/elog.c:3619
 msgid "INFO"
 msgstr "INFO"
 
-#: utils/error/elog.c:3605
+#: utils/error/elog.c:3622
 msgid "NOTICE"
 msgstr "NOTICE"
 
-#: utils/error/elog.c:3608
+#: utils/error/elog.c:3625
 msgid "WARNING"
 msgstr "WARNING"
 
-#: utils/error/elog.c:3611
+#: utils/error/elog.c:3628
 msgid "ERROR"
 msgstr "ERROR"
 
-#: utils/error/elog.c:3614
+#: utils/error/elog.c:3631
 msgid "FATAL"
 msgstr "FATAL"
 
-#: utils/error/elog.c:3617
+#: utils/error/elog.c:3634
 msgid "PANIC"
 msgstr "PANIC"
 
-#: utils/fmgr/dfmgr.c:117
+#: utils/fmgr/dfmgr.c:121
 #, c-format
 msgid "could not find function \"%s\" in file \"%s\""
 msgstr "no se encuentra la función «%s» en el archivo «%s»"
 
-#: utils/fmgr/dfmgr.c:196 utils/fmgr/dfmgr.c:405 utils/fmgr/dfmgr.c:453
+#: utils/fmgr/dfmgr.c:201 utils/fmgr/dfmgr.c:418 utils/fmgr/dfmgr.c:466
 #, c-format
 msgid "could not access file \"%s\": %m"
 msgstr "no se pudo acceder al archivo «%s»: %m"
 
-#: utils/fmgr/dfmgr.c:234
+#: utils/fmgr/dfmgr.c:239
 #, c-format
 msgid "could not load library \"%s\": %s"
 msgstr "no se pudo cargar la biblioteca «%s»: %s"
 
-#: utils/fmgr/dfmgr.c:266
+#: utils/fmgr/dfmgr.c:271
 #, c-format
 msgid "incompatible library \"%s\": missing magic block"
 msgstr "biblioteca «%s» incompatible: no se encuentra el bloque mágico"
 
-#: utils/fmgr/dfmgr.c:268
+#: utils/fmgr/dfmgr.c:273
 #, c-format
 msgid "Extension libraries are required to use the PG_MODULE_MAGIC macro."
 msgstr "Se requiere que las bibliotecas de extensión usen la macro PG_MODULE_MAGIC."
 
-#: utils/fmgr/dfmgr.c:304
+#: utils/fmgr/dfmgr.c:319
 #, c-format
 msgid "incompatible library \"%s\": version mismatch"
 msgstr "biblioteca «%s» incompatible: versión no coincide"
 
-#: utils/fmgr/dfmgr.c:306
-#, c-format
-msgid "Server is version %d.%d, library is version %d.%d."
+#: utils/fmgr/dfmgr.c:321
+#, fuzzy, c-format
+msgid "Server is version %d, library is version %s."
 msgstr "Servidor tiene versión %d.%d, biblioteca es versión %d.%d."
 
-#: utils/fmgr/dfmgr.c:325
+#: utils/fmgr/dfmgr.c:338
 #, c-format
 msgid "Server has FUNC_MAX_ARGS = %d, library has %d."
 msgstr "El servidor tiene FUNC_MAX_ARGS = %d, la librería tiene %d"
 
-#: utils/fmgr/dfmgr.c:334
+#: utils/fmgr/dfmgr.c:347
 #, c-format
 msgid "Server has INDEX_MAX_KEYS = %d, library has %d."
 msgstr "El servidor tiene INDEX_MAX_KEYS = %d, la librería tiene %d"
 
-#: utils/fmgr/dfmgr.c:343
+#: utils/fmgr/dfmgr.c:356
 #, c-format
 msgid "Server has NAMEDATALEN = %d, library has %d."
 msgstr "El servidor tiene NAMEDATALEN = %d, la librería tiene %d"
 
-#: utils/fmgr/dfmgr.c:352
+#: utils/fmgr/dfmgr.c:365
 #, c-format
 msgid "Server has FLOAT4PASSBYVAL = %s, library has %s."
 msgstr "El servidor tiene FLOAT4PASSBYVAL = %s, la librería tiene %s"
 
-#: utils/fmgr/dfmgr.c:361
+#: utils/fmgr/dfmgr.c:374
 #, c-format
 msgid "Server has FLOAT8PASSBYVAL = %s, library has %s."
 msgstr "El servidor tiene FLOAT8PASSBYVAL = %s, la librería tiene %s"
 
-#: utils/fmgr/dfmgr.c:368
+#: utils/fmgr/dfmgr.c:381
 msgid "Magic block has unexpected length or padding difference."
 msgstr "El bloque mágico tiene un largo inesperado, o una diferencia de relleno."
 
-#: utils/fmgr/dfmgr.c:371
+#: utils/fmgr/dfmgr.c:384
 #, c-format
 msgid "incompatible library \"%s\": magic block mismatch"
 msgstr "biblioteca «%s» incompatible: bloque mágico no coincide"
 
-#: utils/fmgr/dfmgr.c:535
+#: utils/fmgr/dfmgr.c:548
 #, c-format
 msgid "access to library \"%s\" is not allowed"
 msgstr "no está permitido el acceso a la biblioteca «%s»"
 
-#: utils/fmgr/dfmgr.c:561
+#: utils/fmgr/dfmgr.c:574
 #, 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:601
+#: utils/fmgr/dfmgr.c:614
 #, 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:620
+#: utils/fmgr/dfmgr.c:633
 #, 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"
 
-#: utils/fmgr/fmgr.c:272
+#: utils/fmgr/fmgr.c:239
 #, c-format
 msgid "internal function \"%s\" is not in internal lookup table"
 msgstr "la función interna «%s» no está en la tabla interna de búsqueda"
 
-#: utils/fmgr/fmgr.c:479
+#: utils/fmgr/fmgr.c:399
+#, fuzzy, c-format
+msgid "could not find function information for function \"%s\""
+msgstr "no se encuentra la función «%s» en el archivo «%s»"
+
+#: utils/fmgr/fmgr.c:401
 #, c-format
-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»"
+msgid "SQL-callable functions need an accompanying PG_FUNCTION_INFO_V1(funcname)."
+msgstr ""
 
-#: utils/fmgr/fmgr.c:849 utils/fmgr/fmgr.c:2110
+#: utils/fmgr/fmgr.c:419
 #, c-format
-msgid "function %u has too many arguments (%d, maximum is %d)"
-msgstr "la función %u tiene demasiados argumentos (%d, el máximo es %d)"
+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:2531
+#: utils/fmgr/fmgr.c:2132
 #, 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:355
+#: utils/fmgr/funcapi.c:354
 #, 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:1342 utils/fmgr/funcapi.c:1373
+#: utils/fmgr/funcapi.c:1341 utils/fmgr/funcapi.c:1372
 #, c-format
 msgid "number of aliases does not match number of columns"
 msgstr "el número de aliases no calza con el número de columnas"
 
-#: utils/fmgr/funcapi.c:1367
+#: utils/fmgr/funcapi.c:1366
 #, c-format
 msgid "no column alias was provided"
 msgstr "no se entregó alias de columna"
 
-#: utils/fmgr/funcapi.c:1391
+#: utils/fmgr/funcapi.c:1390
 #, 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:121
+#: utils/init/miscinit.c:123
 #, c-format
 msgid "could not change directory to \"%s\": %m"
 msgstr "no se pudo cambiar al directorio «%s»: %m"
 
-#: utils/init/miscinit.c:449 utils/misc/guc.c:6012
+#: utils/init/miscinit.c:451 utils/misc/guc.c:6115
 #, 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:510
+#: utils/init/miscinit.c:512
 #, c-format
 msgid "role with OID %u does not exist"
 msgstr "no existe el rol con OID %u"
 
-#: utils/init/miscinit.c:540
+#: utils/init/miscinit.c:542
 #, c-format
 msgid "role \"%s\" is not permitted to log in"
 msgstr "al rol «%s» no se le permite conectarse"
 
-#: utils/init/miscinit.c:558
+#: utils/init/miscinit.c:560
 #, c-format
 msgid "too many connections for role \"%s\""
 msgstr "demasiadas conexiones para el rol «%s»"
 
-#: utils/init/miscinit.c:618
+#: utils/init/miscinit.c:620
 #, c-format
 msgid "permission denied to set session authorization"
 msgstr "se ha denegado el permiso para cambiar el usuario actual"
 
-#: utils/init/miscinit.c:701
+#: utils/init/miscinit.c:703
 #, c-format
 msgid "invalid role OID: %u"
 msgstr "el OID de rol no es válido: %u"
 
-#: utils/init/miscinit.c:755
+#: utils/init/miscinit.c:757
 #, c-format
 msgid "database system is shut down"
 msgstr "el sistema de bases de datos está apagado"
 
-#: utils/init/miscinit.c:842
+#: utils/init/miscinit.c:844
 #, 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:856
+#: utils/init/miscinit.c:858
 #, 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:862
+#: utils/init/miscinit.c:865
 #, 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:870
+#: utils/init/miscinit.c:874
 #, c-format
 msgid "lock file \"%s\" is empty"
 msgstr "el archivo de bloqueo «%s» está vacío"
 
-#: utils/init/miscinit.c:871
+#: utils/init/miscinit.c:875
 #, 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:918
+#: utils/init/miscinit.c:922
 #, c-format
 msgid "lock file \"%s\" already exists"
 msgstr "el archivo de bloqueo «%s» ya existe"
 
-#: utils/init/miscinit.c:922
+#: utils/init/miscinit.c:926
 #, c-format
 msgid "Is another postgres (PID %d) running in data directory \"%s\"?"
 msgstr "¿Hay otro postgres (PID %d) corriendo en el directorio de datos «%s»?"
 
-#: utils/init/miscinit.c:924
+#: utils/init/miscinit.c:928
 #, c-format
 msgid "Is another postmaster (PID %d) running in data directory \"%s\"?"
 msgstr "¿Hay otro postmaster (PID %d) corriendo en el directorio de datos «%s»?"
 
-#: utils/init/miscinit.c:927
+#: utils/init/miscinit.c:931
 #, 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:929
+#: utils/init/miscinit.c:933
 #, 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:965
+#: utils/init/miscinit.c:969
 #, 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"
 
-#: utils/init/miscinit.c:968
+#: utils/init/miscinit.c:972
 #, c-format
 msgid "If you're sure there are no old server processes still running, remove the shared memory block or just delete the file \"%s\"."
 msgstr "Si está seguro que no hay procesos de servidor antiguos aún en ejecución, elimine el bloque de memoria compartida, o simplemente borre el archivo «%s»."
 
-#: utils/init/miscinit.c:984
+#: utils/init/miscinit.c:988
 #, 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:986
+#: utils/init/miscinit.c:990
 #, 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:1022 utils/init/miscinit.c:1033
-#: utils/init/miscinit.c:1043
+#: utils/init/miscinit.c:1027 utils/init/miscinit.c:1041
+#: utils/init/miscinit.c:1052
 #, 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:1172 utils/init/miscinit.c:1301 utils/misc/guc.c:8806
+#: utils/init/miscinit.c:1184 utils/init/miscinit.c:1327 utils/misc/guc.c:8920
 #, c-format
 msgid "could not read from file \"%s\": %m"
 msgstr "no se pudo leer el archivo «%s»: %m"
 
-#: utils/init/miscinit.c:1291
-#, fuzzy, c-format
-#| msgid "could not open file \"%s\": %m"
+#: utils/init/miscinit.c:1315
+#, c-format
 msgid "could not open file \"%s\": %m; continuing anyway"
-msgstr "no se pudo abrir el archivo «%s»: %m"
+msgstr "no se pudo abrir el archivo «%s»: %m; continuando de todas formas"
 
-#: utils/init/miscinit.c:1314
-#, fuzzy, c-format
-#| msgid "archive file \"%s\" has wrong size: %lu instead of %lu"
+#: utils/init/miscinit.c:1340
+#, c-format
 msgid "lock file \"%s\" contains wrong PID: %ld instead of %ld"
-msgstr "el archivo «%s» tiene tamaño erróneo: %lu en lugar de %lu"
+msgstr "el archivo de bloqueo «%s» tiene un PID erróneo: %ld en lugar de %ld"
 
-#: utils/init/miscinit.c:1356 utils/init/miscinit.c:1369
+#: utils/init/miscinit.c:1379 utils/init/miscinit.c:1395
 #, c-format
 msgid "\"%s\" is not a valid data directory"
 msgstr "«%s» no es un directorio de datos válido"
 
-#: utils/init/miscinit.c:1358
+#: utils/init/miscinit.c:1381
 #, c-format
 msgid "File \"%s\" is missing."
 msgstr "Falta el archivo «%s»."
 
-#: utils/init/miscinit.c:1371
+#: utils/init/miscinit.c:1397
 #, c-format
 msgid "File \"%s\" does not contain valid data."
 msgstr "El archivo «%s» no contiene datos válidos."
 
-#: utils/init/miscinit.c:1373
+#: utils/init/miscinit.c:1399
 #, c-format
 msgid "You might need to initdb."
 msgstr "Puede ser necesario ejecutar initdb."
 
-#: utils/init/miscinit.c:1381
-#, c-format
-msgid "The data directory was initialized by PostgreSQL version %ld.%ld, which is not compatible with this version %s."
+#: utils/init/miscinit.c:1407
+#, fuzzy, 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 %ld.%ld, que no es compatible con esta versión %s."
 
-#: utils/init/miscinit.c:1452
+#: utils/init/miscinit.c:1474
 #, c-format
 msgid "loaded library \"%s\""
 msgstr "biblioteca «%s» cargada"
 
-#: utils/init/postinit.c:252
+#: utils/init/postinit.c:251
 #, c-format
 msgid "replication connection authorized: user=%s SSL enabled (protocol=%s, cipher=%s, compression=%s)"
 msgstr "conexión de replicación autorizada: usuario=%s SSL activo (protocolo=%s, cifrado=%s, compresión=%s)"
 
-#: utils/init/postinit.c:254 utils/init/postinit.c:268
+#: utils/init/postinit.c:253 utils/init/postinit.c:267
 msgid "off"
 msgstr "desactivado"
 
-#: utils/init/postinit.c:254 utils/init/postinit.c:268
+#: utils/init/postinit.c:253 utils/init/postinit.c:267
 msgid "on"
 msgstr "activado"
 
-#: utils/init/postinit.c:258
+#: utils/init/postinit.c:257
 #, c-format
 msgid "replication connection authorized: user=%s"
 msgstr "conexión de replicación autorizada: usuario=%s"
 
-#: utils/init/postinit.c:266
+#: utils/init/postinit.c:265
 #, c-format
 msgid "connection authorized: user=%s database=%s SSL enabled (protocol=%s, cipher=%s, compression=%s)"
 msgstr "conexión autorizada: usuario=%s database=%s SSL activo (protocolo=%s, cifrado=%s, compresión=%s)"
 
-#: utils/init/postinit.c:272
+#: utils/init/postinit.c:271
 #, c-format
 msgid "connection authorized: user=%s database=%s"
 msgstr "conexión autorizada: usuario=%s database=%s"
 
-#: utils/init/postinit.c:304
+#: utils/init/postinit.c:303
 #, c-format
 msgid "database \"%s\" has disappeared from pg_database"
 msgstr "la base de datos «%s» ha desaparecido de pg_database"
 
-#: utils/init/postinit.c:306
+#: utils/init/postinit.c:305
 #, c-format
 msgid "Database OID %u now seems to belong to \"%s\"."
 msgstr "Base de datos con OID %u ahora parece pertenecer a «%s»."
 
-#: utils/init/postinit.c:326
+#: utils/init/postinit.c:325
 #, c-format
 msgid "database \"%s\" is not currently accepting connections"
 msgstr "la base de datos «%s» no acepta conexiones"
 
-#: utils/init/postinit.c:339
+#: utils/init/postinit.c:338
 #, c-format
 msgid "permission denied for database \"%s\""
 msgstr "permiso denegado a la base de datos «%s»"
 
-#: utils/init/postinit.c:340
+#: utils/init/postinit.c:339
 #, c-format
 msgid "User does not have CONNECT privilege."
 msgstr "Usuario no tiene privilegios de conexión."
 
-#: utils/init/postinit.c:357
+#: utils/init/postinit.c:356
 #, c-format
 msgid "too many connections for database \"%s\""
 msgstr "demasiadas conexiones para la base de datos «%s»"
 
-#: utils/init/postinit.c:379 utils/init/postinit.c:386
+#: utils/init/postinit.c:378 utils/init/postinit.c:385
 #, 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:380
+#: utils/init/postinit.c:379
 #, 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:382 utils/init/postinit.c:389
+#: utils/init/postinit.c:381 utils/init/postinit.c:388
 #, 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:387
+#: utils/init/postinit.c:386
 #, c-format
 msgid "The database was initialized with LC_CTYPE \"%s\",  which is not recognized by setlocale()."
 msgstr "La base de datos fueron inicializada con LC_CTYPE «%s», el cual no es reconocido por setlocale()."
 
-#: utils/init/postinit.c:715
+#: utils/init/postinit.c:719
 #, 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:716
+#: utils/init/postinit.c:720
 #, c-format
 msgid "You should immediately run CREATE USER \"%s\" SUPERUSER;."
 msgstr "Debería ejecutar imediatamente CREATE USER \"%s\" SUPERUSER;."
 
-#: utils/init/postinit.c:752
+#: utils/init/postinit.c:756
 #, c-format
 msgid "new replication connections are not allowed during database shutdown"
 msgstr "nuevas conexiones de replicación no son permitidas durante el apagado de la base de datos"
 
-#: utils/init/postinit.c:756
+#: utils/init/postinit.c:760
 #, c-format
 msgid "must be superuser to connect during database shutdown"
 msgstr "debe ser superusuario para conectarse durante el apagado de la base de datos"
 
-#: utils/init/postinit.c:766
+#: utils/init/postinit.c:770
 #, 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:780
+#: utils/init/postinit.c:784
 #, c-format
 msgid "remaining connection slots are reserved for non-replication superuser connections"
 msgstr "las conexiones restantes están reservadas a superusuarios y no de replicación"
 
-#: utils/init/postinit.c:790
+#: utils/init/postinit.c:794
 #, c-format
 msgid "must be superuser or replication role to start walsender"
 msgstr "debe ser superusuario o rol de replicación para iniciar el walsender"
 
-#: utils/init/postinit.c:859
+#: utils/init/postinit.c:863
 #, c-format
 msgid "database %u does not exist"
 msgstr "no existe la base de datos %u"
 
-#: utils/init/postinit.c:945
+#: utils/init/postinit.c:952
 #, c-format
 msgid "It seems to have just been dropped or renamed."
 msgstr "Parece haber sido eliminada o renombrada."
 
-#: utils/init/postinit.c:963
+#: utils/init/postinit.c:970
 #, c-format
 msgid "The database subdirectory \"%s\" is missing."
 msgstr "Falta el subdirectorio de base de datos «%s»."
 
-#: utils/init/postinit.c:968
+#: utils/init/postinit.c:975
 #, c-format
 msgid "could not access directory \"%s\": %m"
 msgstr "no se pudo acceder al directorio «%s»: %m"
 
-#: utils/mb/conv.c:405 utils/mb/conv.c:591
+#: utils/mb/conv.c:488 utils/mb/conv.c:680
 #, c-format
 msgid "invalid encoding number: %d"
 msgstr "el número de codificación no es válido: %d"
 
-#: utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c:137
-#: utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c:169
+#: utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c:122
+#: utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c:154
 #, c-format
 msgid "unexpected encoding ID %d for ISO 8859 character sets"
 msgstr "ID de codificación %d inesperado para juegos de caracteres ISO 8859"
 
-#: utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c:127
-#: utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c:159
+#: utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c:103
+#: utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c:135
 #, c-format
 msgid "unexpected encoding ID %d for WIN character sets"
 msgstr "ID de codificación %d inesperado para juegos de caracteres WIN"
 
-#: utils/mb/encnames.c:496
+#: utils/mb/encnames.c:473
+#, fuzzy, c-format
+msgid "encoding \"%s\" not supported by ICU"
+msgstr "las unidades de interval «%s» no están soportadas"
+
+#: utils/mb/encnames.c:572
 #, c-format
 msgid "encoding name too long"
 msgstr "el nombre de codificación es demasiado largo"
@@ -21527,1530 +23125,1568 @@ msgstr "secuencia de bytes no válida para codificación «%s»: %s"
 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»"
 
-#: utils/misc/guc.c:548
+#: utils/misc/guc.c:570
 msgid "Ungrouped"
 msgstr "Sin Grupo"
 
-#: utils/misc/guc.c:550
+#: utils/misc/guc.c:572
 msgid "File Locations"
 msgstr "Ubicaciones de Archivos"
 
-#: utils/misc/guc.c:552
+#: utils/misc/guc.c:574
 msgid "Connections and Authentication"
 msgstr "Conexiones y Autentificación"
 
-#: utils/misc/guc.c:554
+#: utils/misc/guc.c:576
 msgid "Connections and Authentication / Connection Settings"
 msgstr "Conexiones y Autentificación / Parámetros de Conexión"
 
-#: utils/misc/guc.c:556
+#: utils/misc/guc.c:578
 msgid "Connections and Authentication / Security and Authentication"
 msgstr "Conexiones y Autentificación / Seguridad y Autentificación"
 
-#: utils/misc/guc.c:558
+#: utils/misc/guc.c:580
 msgid "Resource Usage"
 msgstr "Uso de Recursos"
 
-#: utils/misc/guc.c:560
+#: utils/misc/guc.c:582
 msgid "Resource Usage / Memory"
 msgstr "Uso de Recursos / Memoria"
 
-#: utils/misc/guc.c:562
+#: utils/misc/guc.c:584
 msgid "Resource Usage / Disk"
 msgstr "Uso de Recursos / Disco"
 
-#: utils/misc/guc.c:564
+#: utils/misc/guc.c:586
 msgid "Resource Usage / Kernel Resources"
 msgstr "Uso de Recursos / Recursos del Kernel"
 
-#: utils/misc/guc.c:566
+#: utils/misc/guc.c:588
 msgid "Resource Usage / Cost-Based Vacuum Delay"
 msgstr "Uso de Recursos / Retardo de Vacuum por Costos"
 
-#: utils/misc/guc.c:568
+#: utils/misc/guc.c:590
 msgid "Resource Usage / Background Writer"
 msgstr "Uso de Recursos / Escritor en Segundo Plano"
 
-#: utils/misc/guc.c:570
+#: utils/misc/guc.c:592
 msgid "Resource Usage / Asynchronous Behavior"
 msgstr "Uso de Recursos / Comportamiento Asíncrono"
 
-#: utils/misc/guc.c:572
+#: utils/misc/guc.c:594
 msgid "Write-Ahead Log"
 msgstr "Write-Ahead Log"
 
-#: utils/misc/guc.c:574
+#: utils/misc/guc.c:596
 msgid "Write-Ahead Log / Settings"
 msgstr "Write-Ahead Log / Configuraciones"
 
-#: utils/misc/guc.c:576
+#: utils/misc/guc.c:598
 msgid "Write-Ahead Log / Checkpoints"
 msgstr "Write-Ahead Log / Puntos de Control (Checkpoints)"
 
-#: utils/misc/guc.c:578
+#: utils/misc/guc.c:600
 msgid "Write-Ahead Log / Archiving"
 msgstr "Write-Ahead Log / Archivado"
 
-#: utils/misc/guc.c:580
+#: utils/misc/guc.c:602
 msgid "Replication"
 msgstr "Replicación"
 
-#: utils/misc/guc.c:582
+#: utils/misc/guc.c:604
 msgid "Replication / Sending Servers"
 msgstr "Replicación / Servidores de Envío"
 
-#: utils/misc/guc.c:584
+#: utils/misc/guc.c:606
 msgid "Replication / Master Server"
 msgstr "Replicación / Servidor Maestro"
 
-#: utils/misc/guc.c:586
+#: utils/misc/guc.c:608
 msgid "Replication / Standby Servers"
 msgstr "Replicación / Servidores Standby"
 
-#: utils/misc/guc.c:588
+#: utils/misc/guc.c:610
+#, fuzzy
+msgid "Replication / Subscribers"
+msgstr "Replicación / Servidores Standby"
+
+#: utils/misc/guc.c:612
 msgid "Query Tuning"
 msgstr "Afinamiento de Consultas"
 
-#: utils/misc/guc.c:590
+#: utils/misc/guc.c:614
 msgid "Query Tuning / Planner Method Configuration"
 msgstr "Afinamiento de Consultas / Configuración de Métodos del Planner"
 
-#: utils/misc/guc.c:592
+#: utils/misc/guc.c:616
 msgid "Query Tuning / Planner Cost Constants"
 msgstr "Afinamiento de Consultas / Constantes de Costo del Planner"
 
-#: utils/misc/guc.c:594
+#: utils/misc/guc.c:618
 msgid "Query Tuning / Genetic Query Optimizer"
 msgstr "Afinamiento de Consultas / Optimizador Genético de Consultas"
 
-#: utils/misc/guc.c:596
+#: utils/misc/guc.c:620
 msgid "Query Tuning / Other Planner Options"
 msgstr "Afinamiento de Consultas / Otras Opciones del Planner"
 
-#: utils/misc/guc.c:598
+#: utils/misc/guc.c:622
 msgid "Reporting and Logging"
 msgstr "Reporte y Registro"
 
-#: utils/misc/guc.c:600
+#: utils/misc/guc.c:624
 msgid "Reporting and Logging / Where to Log"
 msgstr "Reporte y Registro / Cuándo Registrar"
 
-#: utils/misc/guc.c:602
+#: utils/misc/guc.c:626
 msgid "Reporting and Logging / When to Log"
 msgstr "Reporte y Registro / Cuándo Registrar"
 
-#: utils/misc/guc.c:604
+#: utils/misc/guc.c:628
 msgid "Reporting and Logging / What to Log"
 msgstr "Reporte y Registro / Qué Registrar"
 
-#: utils/misc/guc.c:606
+#: utils/misc/guc.c:630
 msgid "Process Title"
-msgstr ""
+msgstr "Título de Proceso"
 
-#: utils/misc/guc.c:608
+#: utils/misc/guc.c:632
 msgid "Statistics"
 msgstr "Estadísticas"
 
-#: utils/misc/guc.c:610
+#: utils/misc/guc.c:634
 msgid "Statistics / Monitoring"
 msgstr "Estadísticas / Monitoreo"
 
-#: utils/misc/guc.c:612
+#: utils/misc/guc.c:636
 msgid "Statistics / Query and Index Statistics Collector"
 msgstr "Estadísticas / Recolector de Estadísticas de Consultas e Índices"
 
-#: utils/misc/guc.c:614
+#: utils/misc/guc.c:638
 msgid "Autovacuum"
 msgstr "Autovacuum"
 
-#: utils/misc/guc.c:616
+#: utils/misc/guc.c:640
 msgid "Client Connection Defaults"
 msgstr "Valores por Omisión de Conexiones"
 
-#: utils/misc/guc.c:618
+#: utils/misc/guc.c:642
 msgid "Client Connection Defaults / Statement Behavior"
 msgstr "Valores por Omisión de Conexiones / Comportamiento de Sentencias"
 
-#: utils/misc/guc.c:620
+#: utils/misc/guc.c:644
 msgid "Client Connection Defaults / Locale and Formatting"
 msgstr "Valores por Omisión de Conexiones / Configuraciones Regionales y Formateo"
 
-#: utils/misc/guc.c:622
+#: utils/misc/guc.c:646
 msgid "Client Connection Defaults / Shared Library Preloading"
 msgstr "Valores por Omisión de Conexiones / Precargado de Bibliotecas Compartidas"
 
-#: utils/misc/guc.c:624
+#: utils/misc/guc.c:648
 msgid "Client Connection Defaults / Other Defaults"
 msgstr "Valores por Omisión de Conexiones / Otros Valores"
 
-#: utils/misc/guc.c:626
+#: utils/misc/guc.c:650
 msgid "Lock Management"
 msgstr "Manejo de Bloqueos"
 
-#: utils/misc/guc.c:628
+#: utils/misc/guc.c:652
 msgid "Version and Platform Compatibility"
 msgstr "Compatibilidad de Versión y Plataforma"
 
-#: utils/misc/guc.c:630
+#: utils/misc/guc.c:654
 msgid "Version and Platform Compatibility / Previous PostgreSQL Versions"
 msgstr "Compatibilidad de Versión y Plataforma / Versiones Anteriores de PostgreSQL"
 
-#: utils/misc/guc.c:632
+#: utils/misc/guc.c:656
 msgid "Version and Platform Compatibility / Other Platforms and Clients"
 msgstr "Compatibilidad de Versión y Plataforma / Otras Plataformas y Clientes"
 
-#: utils/misc/guc.c:634
+#: utils/misc/guc.c:658
 msgid "Error Handling"
 msgstr "Gestión de Errores"
 
-#: utils/misc/guc.c:636
+#: utils/misc/guc.c:660
 msgid "Preset Options"
 msgstr "Opciones Predefinidas"
 
-#: utils/misc/guc.c:638
+#: utils/misc/guc.c:662
 msgid "Customized Options"
 msgstr "Opciones Personalizadas"
 
-#: utils/misc/guc.c:640
+#: utils/misc/guc.c:664
 msgid "Developer Options"
 msgstr "Opciones de Desarrollador"
 
-#: utils/misc/guc.c:697
+#: utils/misc/guc.c:721
 msgid "Valid units for this parameter are \"kB\", \"MB\", \"GB\", and \"TB\"."
 msgstr "Unidades válidas para este parámetro son «kB», «MB», «GB» y «TB»."
 
-#: utils/misc/guc.c:724
+#: utils/misc/guc.c:748
 msgid "Valid units for this parameter are \"ms\", \"s\", \"min\", \"h\", and \"d\"."
 msgstr "Unidades válidas para este parámetro son «ms», «s», «min», «h» y «d»."
 
-#: utils/misc/guc.c:783
+#: utils/misc/guc.c:807
 msgid "Enables the planner's use of sequential-scan plans."
 msgstr "Permitir el uso de planes de recorrido secuencial."
 
-#: utils/misc/guc.c:792
+#: utils/misc/guc.c:816
 msgid "Enables the planner's use of index-scan plans."
 msgstr "Permitir el uso de planes de recorrido de índice."
 
-#: utils/misc/guc.c:801
+#: utils/misc/guc.c:825
 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.c:810
+#: utils/misc/guc.c:834
 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.c:819
+#: utils/misc/guc.c:843
 msgid "Enables the planner's use of TID scan plans."
 msgstr "Permitir el uso de planes de recorrido por TID."
 
-#: utils/misc/guc.c:828
+#: utils/misc/guc.c:852
 msgid "Enables the planner's use of explicit sort steps."
 msgstr "Permitir el uso de pasos explícitos de ordenamiento."
 
-#: utils/misc/guc.c:837
+#: utils/misc/guc.c:861
 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.c:846
+#: utils/misc/guc.c:870
 msgid "Enables the planner's use of materialization."
 msgstr "Permitir el uso de materialización de planes."
 
-#: utils/misc/guc.c:855
+#: utils/misc/guc.c:879
 msgid "Enables the planner's use of nested-loop join plans."
 msgstr "Permitir el uso de planes «nested-loop join»."
 
-#: utils/misc/guc.c:864
+#: utils/misc/guc.c:888
 msgid "Enables the planner's use of merge join plans."
 msgstr "Permitir el uso de planes «merge join»."
 
-#: utils/misc/guc.c:873
+#: utils/misc/guc.c:897
 msgid "Enables the planner's use of hash join plans."
 msgstr "Permitir el uso de planes «hash join»."
 
-#: utils/misc/guc.c:882
-msgid "Enables use of foreign keys for estimating joins."
-msgstr ""
+#: utils/misc/guc.c:906
+#, fuzzy
+msgid "Enables the planner's use of gather merge plans."
+msgstr "Permitir el uso de planes «merge join»."
 
-#: utils/misc/guc.c:892
+#: utils/misc/guc.c:916
 msgid "Enables genetic query optimization."
 msgstr "Permitir el uso del optimizador genético de consultas."
 
-#: utils/misc/guc.c:893
+#: utils/misc/guc.c:917
 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.c:903
+#: utils/misc/guc.c:927
 msgid "Shows whether the current user is a superuser."
 msgstr "Indica si el usuario actual es superusuario."
 
-#: utils/misc/guc.c:913
+#: utils/misc/guc.c:937
 msgid "Enables advertising the server via Bonjour."
 msgstr "Permitir la publicación del servidor vía Bonjour."
 
-#: utils/misc/guc.c:922
+#: utils/misc/guc.c:946
 msgid "Collects transaction commit time."
-msgstr ""
+msgstr "Recolectar tiempo de compromiso de transacciones."
 
-#: utils/misc/guc.c:931
+#: utils/misc/guc.c:955
 msgid "Enables SSL connections."
 msgstr "Permitir conexiones SSL."
 
-#: utils/misc/guc.c:940
+#: utils/misc/guc.c:964
 msgid "Give priority to server ciphersuite order."
 msgstr "Da prioridad al orden de algoritmos de cifrado especificado por el servidor."
 
-#: utils/misc/guc.c:949
+#: utils/misc/guc.c:973
 msgid "Forces synchronization of updates to disk."
 msgstr "Forzar la sincronización de escrituras a disco."
 
-#: utils/misc/guc.c:950
+#: utils/misc/guc.c:974
 msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This insures 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.c:961
+#: utils/misc/guc.c:985
 msgid "Continues processing after a checksum failure."
 msgstr "Continuar procesando después de una falla de suma de verificación."
 
-#: utils/misc/guc.c:962
+#: utils/misc/guc.c:986
 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.c:976
+#: utils/misc/guc.c:1000
 msgid "Continues processing past damaged page headers."
 msgstr "Continuar procesando después de detectar encabezados de página dañados."
 
-#: utils/misc/guc.c:977
+#: utils/misc/guc.c:1001
 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.c:990
+#: utils/misc/guc.c:1014
 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."
 
-#: utils/misc/guc.c:991
+#: utils/misc/guc.c:1015
 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."
 
-#: utils/misc/guc.c:1004
+#: utils/misc/guc.c:1028
 msgid "Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modifications."
 msgstr "Escribir páginas completas a WAL cuando son modificadas después de un punto de control, incluso para modificaciones no críticas."
 
-#: utils/misc/guc.c:1014
+#: utils/misc/guc.c:1038
 msgid "Compresses full-page writes written in WAL file."
-msgstr ""
+msgstr "Comprimir las imágenes de páginas completas al escribirlas a WAL."
 
-#: utils/misc/guc.c:1024
+#: utils/misc/guc.c:1048
 msgid "Logs each checkpoint."
 msgstr "Registrar cada punto de control."
 
-#: utils/misc/guc.c:1033
+#: utils/misc/guc.c:1057
 msgid "Logs each successful connection."
 msgstr "Registrar cada conexión exitosa."
 
-#: utils/misc/guc.c:1042
+#: utils/misc/guc.c:1066
 msgid "Logs end of a session, including duration."
 msgstr "Registrar el fin de una sesión, incluyendo su duración."
 
-#: utils/misc/guc.c:1051
-#, fuzzy
+#: utils/misc/guc.c:1075
 msgid "Logs each replication command."
-msgstr "Registrar el plan de ejecución de cada consulta."
+msgstr "Registrar cada orden de replicación."
 
-#: utils/misc/guc.c:1060
-#, fuzzy
+#: utils/misc/guc.c:1084
 msgid "Shows whether the running server has assertion checks enabled."
-msgstr "Indica si el usuario actual es superusuario."
+msgstr "Indica si el servidor actual tiene activas las aseveraciones (asserts) activas."
 
-#: utils/misc/guc.c:1075
+#: utils/misc/guc.c:1099
 msgid "Terminate session on any error."
 msgstr "Terminar sesión ante cualquier error."
 
-#: utils/misc/guc.c:1084
+#: utils/misc/guc.c:1108
 msgid "Reinitialize server after backend crash."
 msgstr "Reinicializar el servidor después de una caída de un proceso servidor."
 
-#: utils/misc/guc.c:1094
+#: utils/misc/guc.c:1118
 msgid "Logs the duration of each completed SQL statement."
 msgstr "Registrar la duración de cada sentencia SQL ejecutada."
 
-#: utils/misc/guc.c:1103
+#: utils/misc/guc.c:1127
 msgid "Logs each query's parse tree."
 msgstr "Registrar cada arbol analizado de consulta "
 
-#: utils/misc/guc.c:1112
+#: utils/misc/guc.c:1136
 msgid "Logs each query's rewritten parse tree."
 msgstr "Registrar cada reescritura del arból analizado de consulta"
 
-#: utils/misc/guc.c:1121
+#: utils/misc/guc.c:1145
 msgid "Logs each query's execution plan."
 msgstr "Registrar el plan de ejecución de cada consulta."
 
-#: utils/misc/guc.c:1130
+#: utils/misc/guc.c:1154
 msgid "Indents parse and plan tree displays."
 msgstr "Indentar los árboles de parse y plan."
 
-#: utils/misc/guc.c:1139
+#: utils/misc/guc.c:1163
 msgid "Writes parser performance statistics to the server log."
 msgstr "Escribir estadísticas de parser al registro del servidor."
 
-#: utils/misc/guc.c:1148
+#: utils/misc/guc.c:1172
 msgid "Writes planner performance statistics to the server log."
 msgstr "Escribir estadísticas de planner al registro del servidor."
 
-#: utils/misc/guc.c:1157
+#: utils/misc/guc.c:1181
 msgid "Writes executor performance statistics to the server log."
 msgstr "Escribir estadísticas del executor al registro del servidor."
 
-#: utils/misc/guc.c:1166
+#: utils/misc/guc.c:1190
 msgid "Writes cumulative performance statistics to the server log."
 msgstr "Escribir estadísticas acumulativas al registro del servidor."
 
-#: utils/misc/guc.c:1176
+#: utils/misc/guc.c:1200
 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.c:1188
+#: utils/misc/guc.c:1212
 msgid "Collects information about executing commands."
 msgstr "Recolectar estadísticas sobre órdenes en ejecución."
 
-#: utils/misc/guc.c:1189
+#: utils/misc/guc.c:1213
 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.c:1199
+#: utils/misc/guc.c:1223
 msgid "Collects statistics on database activity."
 msgstr "Recolectar estadísticas de actividad de la base de datos."
 
-#: utils/misc/guc.c:1208
+#: utils/misc/guc.c:1232
 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.c:1218
+#: utils/misc/guc.c:1242
 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.c:1219
+#: utils/misc/guc.c:1243
 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.c:1228
+#: utils/misc/guc.c:1256
 msgid "Starts the autovacuum subprocess."
 msgstr "Iniciar el subproceso de autovacuum."
 
-#: utils/misc/guc.c:1238
+#: utils/misc/guc.c:1266
 msgid "Generates debugging output for LISTEN and NOTIFY."
 msgstr "Generar salida de depuración para LISTEN y NOTIFY."
 
-#: utils/misc/guc.c:1250
+#: utils/misc/guc.c:1278
 msgid "Emits information about lock usage."
 msgstr "Emitir información acerca del uso de locks."
 
-#: utils/misc/guc.c:1260
+#: utils/misc/guc.c:1288
 msgid "Emits information about user lock usage."
 msgstr "Emitir información acerca del uso de locks de usuario."
 
-#: utils/misc/guc.c:1270
+#: utils/misc/guc.c:1298
 msgid "Emits information about lightweight lock usage."
 msgstr "Emitir información acerca del uso de «lightweight locks»."
 
-#: utils/misc/guc.c:1280
+#: utils/misc/guc.c:1308
 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.c:1292
+#: utils/misc/guc.c:1320
 msgid "Logs long lock waits."
 msgstr "Registrar esperas largas de bloqueos."
 
-#: utils/misc/guc.c:1302
+#: utils/misc/guc.c:1330
 msgid "Logs the host name in the connection logs."
 msgstr "Registrar el nombre del host en la conexión."
 
-#: utils/misc/guc.c:1303
+#: utils/misc/guc.c:1331
 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.c:1314
-msgid "Causes subtables to be included by default in various commands."
-msgstr "Incluir, por omisión, subtablas en varias órdenes."
-
-#: utils/misc/guc.c:1323
-msgid "Encrypt passwords."
-msgstr "Cifrar contraseñas."
-
-#: utils/misc/guc.c:1324
-msgid "When a password is specified in CREATE USER or ALTER USER without writing either ENCRYPTED or UNENCRYPTED, this parameter determines whether the password is to be encrypted."
-msgstr "Cuando se entrega una contraseña en CREATE USER o ALTER USER sin especificar ENCRYPTED ni UNENCRYPTED, esta opción determina si la password deberá ser encriptada."
-
-#: utils/misc/guc.c:1334
+#: utils/misc/guc.c:1342
 msgid "Treats \"expr=NULL\" as \"expr IS NULL\"."
 msgstr "Tratar expr=NULL como expr IS NULL."
 
-#: utils/misc/guc.c:1335
+#: utils/misc/guc.c:1343
 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.c:1347
+#: utils/misc/guc.c:1355
 msgid "Enables per-database user names."
 msgstr "Activar el uso de nombre de usuario locales a cada base de datos."
 
-#: utils/misc/guc.c:1356
+#: utils/misc/guc.c:1364
 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.c:1365
+#: utils/misc/guc.c:1373
 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.c:1375
+#: utils/misc/guc.c:1383
 msgid "Sets the default deferrable status of new transactions."
 msgstr "Estado por omisión de postergable de nuevas transacciones."
 
-#: utils/misc/guc.c:1384
+#: utils/misc/guc.c:1392
 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.c:1394
+#: utils/misc/guc.c:1402
 msgid "Enable row security."
-msgstr ""
+msgstr "Activar seguridad de registros."
 
-#: utils/misc/guc.c:1395
+#: utils/misc/guc.c:1403
 msgid "When enabled, row security will be applied to all users."
-msgstr ""
+msgstr "Cuando está activada, la seguridad de registros se aplicará a todos los usuarios."
 
-#: utils/misc/guc.c:1403
+#: utils/misc/guc.c:1411
 msgid "Check function bodies during CREATE FUNCTION."
 msgstr "Verificar definición de funciones durante CREATE FUNCTION."
 
-#: utils/misc/guc.c:1412
+#: utils/misc/guc.c:1420
 msgid "Enable input of NULL elements in arrays."
 msgstr "Habilita el ingreso de elementos nulos en arrays."
 
-#: utils/misc/guc.c:1413
+#: utils/misc/guc.c:1421
 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.c:1423
+#: utils/misc/guc.c:1431
 msgid "Create new tables with OIDs by default."
 msgstr "Crea nuevas tablas con OIDs por omisión."
 
-#: utils/misc/guc.c:1432
+#: utils/misc/guc.c:1440
 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.c:1441
+#: utils/misc/guc.c:1449
 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.c:1452
+#: utils/misc/guc.c:1460
 msgid "Emit information about resource usage in sorting."
 msgstr "Emitir información acerca de uso de recursos durante los ordenamientos."
 
-#: utils/misc/guc.c:1466
+#: utils/misc/guc.c:1474
 msgid "Generate debugging output for synchronized scanning."
 msgstr "Generar salida de depuración para recorrido sincronizado."
 
-#: utils/misc/guc.c:1481
+#: utils/misc/guc.c:1489
 msgid "Enable bounded sorting using heap sort."
 msgstr "Activar ordenamiento acotado usando «heap sort»."
 
-#: utils/misc/guc.c:1494
+#: utils/misc/guc.c:1502
 msgid "Emit WAL-related debugging output."
 msgstr "Activar salida de depuración de WAL."
 
-#: utils/misc/guc.c:1506
+#: utils/misc/guc.c:1514
 msgid "Datetimes are integer based."
 msgstr "Las fechas y horas se basan en tipos enteros."
 
-#: utils/misc/guc.c:1521
+#: utils/misc/guc.c:1525
 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.c:1531
+#: utils/misc/guc.c:1535
 msgid "Warn about backslash escapes in ordinary string literals."
 msgstr "Avisa acerca de escapes de backslash en literales de cadena corrientes."
 
-#: utils/misc/guc.c:1541
+#: utils/misc/guc.c:1545
 msgid "Causes '...' strings to treat backslashes literally."
 msgstr "Provoca que las cadenas '...' traten las barras inclinadas inversas (\\) en forma literal."
 
-#: utils/misc/guc.c:1552
+#: utils/misc/guc.c:1556
 msgid "Enable synchronized sequential scans."
 msgstr "Permitir la sincronización de recorridos secuenciales."
 
-#: utils/misc/guc.c:1562
+#: utils/misc/guc.c:1566
 msgid "Allows connections and queries during recovery."
 msgstr "Permite conexiones y consultas durante la recuperación."
 
-#: utils/misc/guc.c:1572
+#: utils/misc/guc.c:1576
 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.c:1582
+#: utils/misc/guc.c:1586
 msgid "Allows modifications of the structure of system tables."
 msgstr "Permite modificaciones de la estructura de las tablas del sistema."
 
-#: utils/misc/guc.c:1593
+#: utils/misc/guc.c:1597
 msgid "Disables reading from system indexes."
 msgstr "Deshabilita lectura de índices del sistema."
 
-#: utils/misc/guc.c:1594
+#: utils/misc/guc.c:1598
 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.c:1605
+#: utils/misc/guc.c:1609
 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.c:1606
+#: utils/misc/guc.c:1610
 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.c:1616
+#: utils/misc/guc.c:1620
 msgid "Emit a warning for constructs that changed meaning since PostgreSQL 9.4."
-msgstr ""
+msgstr "Emitir una advertencia en constructos que cambiaron significado desde PostgreSQL 9.4."
 
-#: utils/misc/guc.c:1626
+#: utils/misc/guc.c:1630
 msgid "When generating SQL fragments, quote all identifiers."
 msgstr "Al generar fragmentos SQL, entrecomillar todos los identificadores."
 
-#: utils/misc/guc.c:1636
+#: utils/misc/guc.c:1640
 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.c:1647
+#: utils/misc/guc.c:1651
 msgid "Add sequence number to syslog messages to avoid duplicate suppression."
-msgstr ""
+msgstr "Agregar número de secuencia a mensajes syslog para evitar supresión de duplicados."
 
-#: utils/misc/guc.c:1657
+#: utils/misc/guc.c:1661
 msgid "Split messages sent to syslog by lines and to fit into 1024 bytes."
-msgstr ""
+msgstr "Dividir mensajes enviados a syslog en líneas y que quepan en 1024 bytes."
 
-#: utils/misc/guc.c:1676
-msgid "Forces a switch to the next xlog file if a new file has not been started within N seconds."
-msgstr "Fuerza el cambio al siguiente archivo xlog si un nuevo archivo no ha sido iniciado dentro de N segundos."
+#: utils/misc/guc.c:1680
+#, fuzzy
+msgid "Forces a switch to the next WAL file if a new file has not been started within N seconds."
+msgstr "Obliga al cambio al siguiente archivo xlog si un nuevo archivo no ha sido iniciado dentro de N segundos."
 
-#: utils/misc/guc.c:1687
+#: utils/misc/guc.c:1691
 msgid "Waits N seconds on connection startup after authentication."
 msgstr "Espera N segundos al inicio de la conexión después de la autentificación."
 
-#: utils/misc/guc.c:1688 utils/misc/guc.c:2211
+#: utils/misc/guc.c:1692 utils/misc/guc.c:2237
 msgid "This allows attaching a debugger to the process."
 msgstr "Esto permite adjuntar un depurador al proceso."
 
-#: utils/misc/guc.c:1697
+#: utils/misc/guc.c:1701
 msgid "Sets the default statistics target."
 msgstr "Definir el valor por omisión de toma de estadísticas."
 
-#: utils/misc/guc.c:1698
+#: utils/misc/guc.c:1702
 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.c:1707
+#: utils/misc/guc.c:1711
 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.c:1709
+#: utils/misc/guc.c:1713
 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.c:1719
+#: utils/misc/guc.c:1723
 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.c:1721
+#: utils/misc/guc.c:1725
 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.c:1731
+#: utils/misc/guc.c:1735
 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.c:1740
+#: utils/misc/guc.c:1744
 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.c:1749
+#: utils/misc/guc.c:1753
 msgid "GEQO: number of individuals in the population."
 msgstr "GEQO: número de individuos en una población."
 
-#: utils/misc/guc.c:1750 utils/misc/guc.c:1759
+#: utils/misc/guc.c:1754 utils/misc/guc.c:1763
 msgid "Zero selects a suitable default value."
 msgstr "Cero selecciona un valor por omisión razonable."
 
-#: utils/misc/guc.c:1758
+#: utils/misc/guc.c:1762
 msgid "GEQO: number of iterations of the algorithm."
 msgstr "GEQO: número de iteraciones del algoritmo."
 
-#: utils/misc/guc.c:1769
+#: utils/misc/guc.c:1773
 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.c:1780
+#: utils/misc/guc.c:1784
 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.c:1791
+#: utils/misc/guc.c:1795
 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.c:1802
+#: utils/misc/guc.c:1806
 msgid "Sets the maximum interval between WAL receiver status reports to the primary."
 msgstr "Define el intervalo máximo entre reportes de estado desde un proceso receptor de WAL hacia el primario."
 
-#: utils/misc/guc.c:1813
+#: utils/misc/guc.c:1817
 msgid "Sets the maximum wait time to receive data from the primary."
 msgstr "Define el máximo tiempo a esperar entre recepciones de datos desde el primario."
 
-#: utils/misc/guc.c:1824
+#: utils/misc/guc.c:1828
 msgid "Sets the maximum number of concurrent connections."
 msgstr "Número máximo de conexiones concurrentes."
 
-#: utils/misc/guc.c:1834
+#: utils/misc/guc.c:1838
 msgid "Sets the number of connection slots reserved for superusers."
 msgstr "Número de conexiones reservadas para superusuarios."
 
-#: utils/misc/guc.c:1848
+#: utils/misc/guc.c:1852
 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.c:1859
+#: utils/misc/guc.c:1863
 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.c:1870
+#: utils/misc/guc.c:1874
 msgid "Sets the TCP port the server listens on."
 msgstr "Puerto TCP en el cual escuchará el servidor."
 
-#: utils/misc/guc.c:1880
+#: utils/misc/guc.c:1884
 msgid "Sets the access permissions of the Unix-domain socket."
 msgstr "Privilegios de acceso al socket Unix."
 
-#: utils/misc/guc.c:1881
+#: utils/misc/guc.c:1885
 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.c:1895
+#: utils/misc/guc.c:1899
 msgid "Sets the file permissions for log files."
 msgstr "Define los privilegios para los archivos del registro del servidor."
 
-#: utils/misc/guc.c:1896
+#: utils/misc/guc.c:1900
 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.c:1909
+#: utils/misc/guc.c:1913
 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.c:1910
+#: utils/misc/guc.c:1914
 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.c:1922
+#: utils/misc/guc.c:1926
 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.c:1923
+#: utils/misc/guc.c:1927
 msgid "This includes operations such as VACUUM and CREATE INDEX."
 msgstr "Esto incluye operaciones como VACUUM y CREATE INDEX."
 
-#: utils/misc/guc.c:1933
-#, fuzzy
-#| msgid "Sets the maximum number of temporary buffers used by each session."
+#: utils/misc/guc.c:1937
 msgid "Sets the maximum number of tuples to be sorted using replacement selection."
-msgstr "Número de búfers de memoria temporal usados por cada sesión."
+msgstr "Define el máximo número de tuplas que se ordenarán usando selección con reemplazo."
 
-#: utils/misc/guc.c:1934
+#: utils/misc/guc.c:1938
 msgid "When more tuples than this are present, quicksort will be used."
-msgstr ""
+msgstr "Cuando más tuplas que esta cantidad esté presente, se usará quicksort."
 
-#: utils/misc/guc.c:1948
+#: utils/misc/guc.c:1952
 msgid "Sets the maximum stack depth, in kilobytes."
 msgstr "Establece el tamaño máximo del stack, en kilobytes."
 
-#: utils/misc/guc.c:1959
-msgid "Limits the total size of all temporary files used by each session."
-msgstr "Limita el tamaño total de todos los archivos temporales usados en cada sesión."
+#: utils/misc/guc.c:1963
+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.c:1960
+#: utils/misc/guc.c:1964
 msgid "-1 means no limit."
 msgstr "-1 significa sin límite."
 
-#: utils/misc/guc.c:1970
+#: utils/misc/guc.c:1974
 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.c:1980
+#: utils/misc/guc.c:1984
 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.c:1990
+#: utils/misc/guc.c:1994
 msgid "Vacuum cost for a page dirtied by vacuum."
 msgstr "Costo de Vacuum de una página ensuciada por vacuum."
 
-#: utils/misc/guc.c:2000
+#: utils/misc/guc.c:2004
 msgid "Vacuum cost amount available before napping."
 msgstr "Costo de Vacuum disponible antes de descansar."
 
-#: utils/misc/guc.c:2010
+#: utils/misc/guc.c:2014
 msgid "Vacuum cost delay in milliseconds."
 msgstr "Tiempo de descanso de vacuum en milisegundos."
 
-#: utils/misc/guc.c:2021
+#: utils/misc/guc.c:2025
 msgid "Vacuum cost delay in milliseconds, for autovacuum."
 msgstr "Tiempo de descanso de vacuum en milisegundos, para autovacuum."
 
-#: utils/misc/guc.c:2032
+#: utils/misc/guc.c:2036
 msgid "Vacuum cost amount available before napping, for autovacuum."
 msgstr "Costo de Vacuum disponible antes de descansar, para autovacuum."
 
-#: utils/misc/guc.c:2042
+#: utils/misc/guc.c:2046
 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.c:2055
+#: utils/misc/guc.c:2059
 msgid "Sets the maximum number of simultaneously prepared transactions."
 msgstr "Define la cantidad máxima de transacciones preparadas simultáneas."
 
-#: utils/misc/guc.c:2066
+#: utils/misc/guc.c:2070
 msgid "Sets the minimum OID of tables for tracking locks."
 msgstr "Define el OID mínimo para hacer seguimiento de locks."
 
-#: utils/misc/guc.c:2067
+#: utils/misc/guc.c:2071
 msgid "Is used to avoid output on system tables."
 msgstr "Se usa para evitar salida excesiva por tablas de sistema."
 
-#: utils/misc/guc.c:2076
+#: utils/misc/guc.c:2080
 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.c:2088
+#: utils/misc/guc.c:2092
 msgid "Sets the maximum allowed duration of any statement."
 msgstr "Define la duración máxima permitida de sentencias."
 
-#: utils/misc/guc.c:2089 utils/misc/guc.c:2100 utils/misc/guc.c:2111
+#: utils/misc/guc.c:2093 utils/misc/guc.c:2104 utils/misc/guc.c:2115
 msgid "A value of 0 turns off the timeout."
 msgstr "Un valor de 0 desactiva el máximo."
 
-#: utils/misc/guc.c:2099
+#: utils/misc/guc.c:2103
 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.c:2110
-#, fuzzy
-#| msgid "Sets the maximum allowed duration of any statement."
+#: utils/misc/guc.c:2114
 msgid "Sets the maximum allowed duration of any idling transaction."
-msgstr "Define la duración máxima permitida de sentencias."
+msgstr "Define la duración máxima permitida de transacciones inactivas."
 
-#: utils/misc/guc.c:2121
+#: utils/misc/guc.c:2125
 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.c:2131
+#: utils/misc/guc.c:2135
 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.c:2141
+#: utils/misc/guc.c:2145
 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.c:2151
+#: utils/misc/guc.c:2155
 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.c:2161
+#: utils/misc/guc.c:2165
 msgid "Number of transactions by which VACUUM and HOT cleanup should be deferred, if any."
 msgstr "Número de transacciones por las cuales VACUUM y la limpieza HOT deberían postergarse."
 
-#: utils/misc/guc.c:2174
+#: utils/misc/guc.c:2178
 msgid "Sets the maximum number of locks per transaction."
 msgstr "Cantidad máxima de candados (locks) por transacción."
 
-#: utils/misc/guc.c:2175
+#: utils/misc/guc.c:2179
 msgid "The shared lock table is sized on the assumption that at most max_locks_per_transaction * max_connections distinct objects will need to be locked at any one time."
 msgstr "El tamaño de la tabla compartida de candados se calcula usando la suposición de que a lo más max_locks_per_transaction * max_connections objetos necesitarán ser bloqueados simultáneamente."
 
-#: utils/misc/guc.c:2186
+#: utils/misc/guc.c:2190
 msgid "Sets the maximum number of predicate locks per transaction."
 msgstr "Cantidad máxima de candados (locks) de predicado por transacción."
 
-#: utils/misc/guc.c:2187
+#: utils/misc/guc.c:2191
 msgid "The shared predicate lock table is sized on the assumption that at most max_pred_locks_per_transaction * max_connections distinct objects will need to be locked at any one time."
 msgstr "El tamaño de la tabla compartida de candados se calcula usando la suposición de que a lo más max_pred_locks_per_transaction * max_connections objetos necesitarán ser bloqueados simultáneamente."
 
-#: utils/misc/guc.c:2198
+#: utils/misc/guc.c:2202
+#, fuzzy
+msgid "Sets the maximum number of predicate-locked pages and tuples per relation."
+msgstr "Cantidad máxima de candados (locks) de predicado por transacción."
+
+#: utils/misc/guc.c:2203
+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.c:2213
+#, fuzzy
+msgid "Sets the maximum number of predicate-locked tuples per page."
+msgstr "Cantidad máxima de candados (locks) de predicado por transacción."
+
+#: utils/misc/guc.c:2214
+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.c:2224
 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.c:2210
+#: utils/misc/guc.c:2236
 msgid "Waits N seconds on connection startup before authentication."
 msgstr "Espera N segundos al inicio de la conexión antes de la autentificación."
 
-#: utils/misc/guc.c:2221
+#: utils/misc/guc.c:2247
 msgid "Sets the number of WAL files held for standby servers."
 msgstr "Número de archivos WAL conservados para servidores standby."
 
-#: utils/misc/guc.c:2231
-#, fuzzy
+#: utils/misc/guc.c:2257
 msgid "Sets the minimum size to shrink the WAL to."
-msgstr "Define el tiempo máximo a esperar la replicación de WAL."
+msgstr "Define el tamaño mínimo al cual reducir el WAL."
 
-#: utils/misc/guc.c:2242
-#, fuzzy
+#: utils/misc/guc.c:2268
 msgid "Sets the WAL size that triggers a checkpoint."
-msgstr "Define el tiempo máximo entre puntos de control de WAL automáticos."
+msgstr "Define el tamaño de WAL que desencadena un checkpoint."
 
-#: utils/misc/guc.c:2253
+#: utils/misc/guc.c:2279
 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.c:2264
+#: utils/misc/guc.c:2290
 msgid "Enables warnings if checkpoint segments are filled more frequently than this."
 msgstr "Registrar si el llenado de segmentos de WAL es más frecuente que esto."
 
-#: utils/misc/guc.c:2266
+#: utils/misc/guc.c:2292
 msgid "Write a message to the server log if checkpoints caused by the filling of checkpoint segment files happens more frequently than this number of seconds. Zero turns off the warning."
 msgstr "Envía un mensaje a los registros del servidor si los punto de control causados por el llenado de archivos de segmento sucede con más frecuencia que este número de segundos. Un valor de 0 (cero) desactiva la opción."
 
-#: utils/misc/guc.c:2278 utils/misc/guc.c:2436 utils/misc/guc.c:2464
+#: utils/misc/guc.c:2304 utils/misc/guc.c:2461 utils/misc/guc.c:2488
 msgid "Number of pages after which previously performed writes are flushed to disk."
-msgstr ""
+msgstr "Número de páginas después del cual las escrituras previamente ejecutadas se sincronizan a disco."
 
-#: utils/misc/guc.c:2290
+#: utils/misc/guc.c:2315
 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.c:2301
+#: utils/misc/guc.c:2326
 msgid "Time between WAL flushes performed in the WAL writer."
-msgstr ""
+msgstr "Tiempo entre sincronizaciones de WAL ejecutadas por el proceso escritor de WAL."
 
-#: utils/misc/guc.c:2312
-msgid "Amount of WAL written out by WAL writer triggering a flush."
-msgstr ""
+#: utils/misc/guc.c:2337
+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.c:2324
+#: utils/misc/guc.c:2349
 msgid "Sets the maximum number of simultaneously running WAL sender processes."
 msgstr "Define la cantidad máxima de procesos «WAL sender» simultáneos."
 
-#: utils/misc/guc.c:2335
+#: utils/misc/guc.c:2360
 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.c:2345
+#: utils/misc/guc.c:2370
 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.c:2356
+#: utils/misc/guc.c:2381
 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.c:2368
+#: utils/misc/guc.c:2393
 msgid "Sets the minimum concurrent open transactions before performing commit_delay."
 msgstr "Mínimo de transacciones concurrentes para esperar commit_delay."
 
-#: utils/misc/guc.c:2379
+#: utils/misc/guc.c:2404
 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.c:2380
+#: utils/misc/guc.c:2405
 msgid "This affects real, double precision, and geometric data types. The parameter value is added to the standard number of digits (FLT_DIG or DBL_DIG as appropriate)."
 msgstr "Afecta los tipos real, double precision y geométricos. El valor del parámetro se agrega al número estándar de dígitos (FLT_DIG o DBL_DIG según corresponda)"
 
-#: utils/misc/guc.c:2391
+#: utils/misc/guc.c:2416
 msgid "Sets the minimum execution time above which statements will be logged."
 msgstr "Tiempo mínimo de ejecución a partir del cual se registran las consultas."
 
-#: utils/misc/guc.c:2393
+#: utils/misc/guc.c:2418
 msgid "Zero prints all queries. -1 turns this feature off."
 msgstr "Cero registra todas las consultas. -1 desactiva esta característica."
 
-#: utils/misc/guc.c:2403
+#: utils/misc/guc.c:2428
 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.c:2405
+#: utils/misc/guc.c:2430
 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.c:2415
+#: utils/misc/guc.c:2440
 msgid "Background writer sleep time between rounds."
 msgstr "Tiempo de descanso entre rondas del background writer"
 
-#: utils/misc/guc.c:2426
+#: utils/misc/guc.c:2451
 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.c:2450
+#: utils/misc/guc.c:2474
 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.c:2451
+#: utils/misc/guc.c:2475
 msgid "For RAID arrays, this should be approximately the number of drive spindles in the array."
 msgstr "Para arrays RAID, esto debería ser aproximadamente la cantidad de discos en el array."
 
-#: utils/misc/guc.c:2478
+#: utils/misc/guc.c:2501
 msgid "Maximum number of concurrent worker processes."
 msgstr "Número máximo de procesos trabajadores concurrentes."
 
-#: utils/misc/guc.c:2488
+#: utils/misc/guc.c:2513
+#, fuzzy
+msgid "Maximum number of logical replication worker processes."
+msgstr "Número máximo de procesos trabajadores concurrentes."
+
+#: utils/misc/guc.c:2525
+#, fuzzy
+msgid "Maximum number of table synchronization workers per subscription."
+msgstr "Número máximo de procesos trabajadores concurrentes."
+
+#: utils/misc/guc.c:2535
 msgid "Automatic log file rotation will occur after N minutes."
 msgstr "La rotación automática de archivos de log se efectuará después de N minutos."
 
-#: utils/misc/guc.c:2499
+#: utils/misc/guc.c:2546
 msgid "Automatic log file rotation will occur after N kilobytes."
 msgstr "La rotación automática de archivos de log se efectuará después de N kilobytes."
 
-#: utils/misc/guc.c:2510
+#: utils/misc/guc.c:2557
 msgid "Shows the maximum number of function arguments."
 msgstr "Muestra la cantidad máxima de argumentos de funciones."
 
-#: utils/misc/guc.c:2521
+#: utils/misc/guc.c:2568
 msgid "Shows the maximum number of index keys."
 msgstr "Muestra la cantidad máxima de claves de índices."
 
-#: utils/misc/guc.c:2532
+#: utils/misc/guc.c:2579
 msgid "Shows the maximum identifier length."
 msgstr "Muestra el largo máximo de identificadores."
 
-#: utils/misc/guc.c:2543
+#: utils/misc/guc.c:2590
 msgid "Shows the size of a disk block."
 msgstr "Muestra el tamaño de un bloque de disco."
 
-#: utils/misc/guc.c:2554
+#: utils/misc/guc.c:2601
 msgid "Shows the number of pages per disk file."
 msgstr "Muestra el número de páginas por archivo en disco."
 
-#: utils/misc/guc.c:2565
+#: utils/misc/guc.c:2612
 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.c:2576
+#: utils/misc/guc.c:2623
 msgid "Sets the time to wait before retrying to retrieve WAL after a failed attempt."
-msgstr ""
+msgstr "Define el tiempo a esperar antes de reintentar obtener WAL después de un intento fallido."
 
-#: utils/misc/guc.c:2588
+#: utils/misc/guc.c:2635
 msgid "Shows the number of pages per write ahead log segment."
 msgstr "Muestra el número de páginas por cada segmento de write-ahead log."
 
-#: utils/misc/guc.c:2601
+#: utils/misc/guc.c:2648
 msgid "Time to sleep between autovacuum runs."
 msgstr "Tiempo de descanso entre ejecuciones de autovacuum."
 
-#: utils/misc/guc.c:2611
+#: utils/misc/guc.c:2658
 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.c:2620
+#: utils/misc/guc.c:2667
 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.c:2630
+#: utils/misc/guc.c:2677
 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."
 
-#: utils/misc/guc.c:2641
+#: utils/misc/guc.c:2688
 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."
 
-#: utils/misc/guc.c:2651
+#: utils/misc/guc.c:2698
 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.c:2661
-#, fuzzy
-#| msgid "Sets the maximum number of predicate locks per transaction."
+#: utils/misc/guc.c:2708
 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.c:2718
+#, fuzzy
+msgid "Sets the maximum number of parallel workers than can be active at one time."
 msgstr "Cantidad máxima de candados (locks) de predicado por transacción."
 
-#: utils/misc/guc.c:2671
+#: utils/misc/guc.c:2728
 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.c:2682
+#: utils/misc/guc.c:2739
 msgid "Time before a snapshot is too old to read pages changed after the snapshot was taken."
-msgstr ""
+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.c:2683
-#, fuzzy
-#| msgid "A value of 0 uses the system default."
+#: utils/misc/guc.c:2740
 msgid "A value of -1 disables this feature."
-msgstr "Un valor 0 usa el valor por omisión del sistema."
+msgstr "El valor -1 desactiva esta característica."
 
-#: utils/misc/guc.c:2693
+#: utils/misc/guc.c:2750
 msgid "Time between issuing TCP keepalives."
 msgstr "Tiempo entre cada emisión de TCP keepalive."
 
-#: utils/misc/guc.c:2694 utils/misc/guc.c:2705
+#: utils/misc/guc.c:2751 utils/misc/guc.c:2762
 msgid "A value of 0 uses the system default."
 msgstr "Un valor 0 usa el valor por omisión del sistema."
 
-#: utils/misc/guc.c:2704
+#: utils/misc/guc.c:2761
 msgid "Time between TCP keepalive retransmits."
 msgstr "Tiempo entre retransmisiones TCP keepalive."
 
-#: utils/misc/guc.c:2715
+#: utils/misc/guc.c:2772
 msgid "SSL renegotiation is no longer supported; this can only be 0."
-msgstr ""
+msgstr "La renegociación SSL ya no está soportada; esto sólo puede ser 0."
 
-#: utils/misc/guc.c:2726
+#: utils/misc/guc.c:2783
 msgid "Maximum number of TCP keepalive retransmits."
 msgstr "Cantidad máxima de retransmisiones TCP keepalive."
 
-#: utils/misc/guc.c:2727
+#: utils/misc/guc.c:2784
 msgid "This controls the number of consecutive keepalive retransmits that can be lost before a connection is considered dead. A value of 0 uses the system default."
 msgstr "Esto controla el número de retransmisiones consecutivas de keepalive que pueden ser perdidas antes que la conexión sea considerada muerta.  Un valor 0 usa el valor por omisión del sistema."
 
-#: utils/misc/guc.c:2738
+#: utils/misc/guc.c:2795
 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.c:2749
+#: utils/misc/guc.c:2806
 msgid "Sets the planner's assumption about the size of the disk cache."
 msgstr "Define la suposición del tamaño del cache de disco."
 
-#: utils/misc/guc.c:2750
+#: utils/misc/guc.c:2807
 msgid "That is, the portion of the kernel's disk cache that will be used for PostgreSQL data files. This is measured in disk pages, which are normally 8 kB each."
 msgstr "Esto es, la porción del cache de disco que será usado para archivos de datos de PostgreSQL. Esto se mide en cantidad de páginas, que normalmente son de 8 kB cada una."
 
-#: utils/misc/guc.c:2763
+#: utils/misc/guc.c:2819
+#, fuzzy
+msgid "Sets the minimum amount of table data for a parallel scan."
+msgstr "Tamaño mínimo de relaciones para considerarlas en recorridos en paralelo."
+
+#: utils/misc/guc.c:2820
+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.c:2830
+#, fuzzy
+msgid "Sets the minimum amount of index data for a parallel scan."
+msgstr "Tamaño mínimo de relaciones para considerarlas en recorridos en paralelo."
+
+#: utils/misc/guc.c:2831
+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.c:2842
 msgid "Shows the server version as an integer."
 msgstr "Muestra la versión del servidor como un número entero."
 
-#: utils/misc/guc.c:2774
+#: utils/misc/guc.c:2853
 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.c:2775
+#: utils/misc/guc.c:2854
 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.c:2785
+#: utils/misc/guc.c:2864
 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.c:2800
-#, fuzzy
+#: utils/misc/guc.c:2879
 msgid "Sets the maximum size of the pending list for GIN index."
-msgstr "Define el tiempo máximo a esperar la replicación de WAL."
+msgstr "Define el tamaño máximo de la lista de pendientes de un índice GIN."
 
-#: utils/misc/guc.c:2820
+#: utils/misc/guc.c:2899
 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.c:2830
+#: utils/misc/guc.c:2909
 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.c:2840
+#: utils/misc/guc.c:2919
 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.c:2850
+#: utils/misc/guc.c:2929
 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.c:2860