Translation updates
authorAlvaro Herrera <[email protected]>
Mon, 10 Jul 2017 15:51:32 +0000 (11:51 -0400)
committerAlvaro Herrera <[email protected]>
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: [email protected]\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 <[email protected]>\n"
 "Language-Team: PgSQL Español <[email protected]>\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 <[email protected]>."
-msgstr "Por favor reporte esto a <[email protected]>."
-
-#: ../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 <[email protected]>\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"
 "