Translation updates
authorPeter Eisentraut
Mon, 5 May 2025 10:04:49 +0000 (12:04 +0200)
committerPeter Eisentraut
Mon, 5 May 2025 10:04:49 +0000 (12:04 +0200)
Source-Git-URL: https://git.postgresql.org/git/pgtranslation/messages.git
Source-Git-Hash: f90ee4803c30491e5c49996b973b8a30de47bfb2

226 files changed:
src/backend/po/es.po
src/backend/po/ja.po
src/backend/po/ka.po
src/backend/po/ko.po
src/backend/po/ru.po
src/backend/po/sv.po
src/backend/po/uk.po
src/bin/initdb/po/de.po
src/bin/initdb/po/es.po
src/bin/initdb/po/fr.po
src/bin/initdb/po/ja.po
src/bin/initdb/po/ka.po
src/bin/initdb/po/ko.po
src/bin/initdb/po/pt_BR.po
src/bin/initdb/po/ru.po
src/bin/initdb/po/sv.po
src/bin/initdb/po/uk.po
src/bin/initdb/po/zh_CN.po
src/bin/pg_amcheck/po/de.po
src/bin/pg_amcheck/po/es.po
src/bin/pg_amcheck/po/fr.po
src/bin/pg_amcheck/po/ja.po
src/bin/pg_amcheck/po/ka.po
src/bin/pg_amcheck/po/ko.po
src/bin/pg_amcheck/po/ru.po
src/bin/pg_amcheck/po/sv.po
src/bin/pg_amcheck/po/uk.po
src/bin/pg_archivecleanup/po/de.po
src/bin/pg_archivecleanup/po/es.po
src/bin/pg_archivecleanup/po/fr.po
src/bin/pg_archivecleanup/po/ja.po
src/bin/pg_archivecleanup/po/ka.po
src/bin/pg_archivecleanup/po/ko.po
src/bin/pg_archivecleanup/po/ru.po
src/bin/pg_archivecleanup/po/sv.po
src/bin/pg_archivecleanup/po/uk.po
src/bin/pg_archivecleanup/po/zh_CN.po
src/bin/pg_basebackup/po/de.po
src/bin/pg_basebackup/po/es.po
src/bin/pg_basebackup/po/fr.po
src/bin/pg_basebackup/po/ja.po
src/bin/pg_basebackup/po/ka.po
src/bin/pg_basebackup/po/ko.po
src/bin/pg_basebackup/po/ru.po
src/bin/pg_basebackup/po/sv.po
src/bin/pg_basebackup/po/uk.po
src/bin/pg_checksums/po/de.po
src/bin/pg_checksums/po/es.po
src/bin/pg_checksums/po/fr.po
src/bin/pg_checksums/po/ja.po
src/bin/pg_checksums/po/ka.po
src/bin/pg_checksums/po/ko.po
src/bin/pg_checksums/po/ru.po
src/bin/pg_checksums/po/sv.po
src/bin/pg_checksums/po/uk.po
src/bin/pg_combinebackup/po/LINGUAS
src/bin/pg_combinebackup/po/de.po
src/bin/pg_combinebackup/po/es.po [new file with mode: 0644]
src/bin/pg_combinebackup/po/fr.po [new file with mode: 0644]
src/bin/pg_combinebackup/po/ja.po
src/bin/pg_combinebackup/po/ka.po
src/bin/pg_combinebackup/po/ko.po [new file with mode: 0644]
src/bin/pg_combinebackup/po/ru.po [new file with mode: 0644]
src/bin/pg_combinebackup/po/sv.po [new file with mode: 0644]
src/bin/pg_combinebackup/po/uk.po [new file with mode: 0644]
src/bin/pg_config/po/es.po
src/bin/pg_config/po/fr.po
src/bin/pg_config/po/ka.po
src/bin/pg_config/po/ko.po
src/bin/pg_config/po/ru.po
src/bin/pg_config/po/sv.po
src/bin/pg_config/po/uk.po
src/bin/pg_config/po/zh_CN.po
src/bin/pg_controldata/po/es.po
src/bin/pg_controldata/po/fr.po
src/bin/pg_controldata/po/ja.po
src/bin/pg_controldata/po/ka.po
src/bin/pg_controldata/po/ko.po
src/bin/pg_controldata/po/ru.po
src/bin/pg_controldata/po/sv.po
src/bin/pg_controldata/po/uk.po
src/bin/pg_controldata/po/zh_TW.po
src/bin/pg_ctl/po/de.po
src/bin/pg_ctl/po/es.po
src/bin/pg_ctl/po/fr.po
src/bin/pg_ctl/po/ja.po
src/bin/pg_ctl/po/ka.po
src/bin/pg_ctl/po/ko.po
src/bin/pg_ctl/po/ru.po
src/bin/pg_ctl/po/sv.po
src/bin/pg_ctl/po/uk.po
src/bin/pg_dump/po/de.po
src/bin/pg_dump/po/es.po
src/bin/pg_dump/po/fr.po
src/bin/pg_dump/po/ja.po
src/bin/pg_dump/po/ka.po
src/bin/pg_dump/po/ko.po
src/bin/pg_dump/po/ru.po
src/bin/pg_dump/po/sv.po
src/bin/pg_dump/po/uk.po
src/bin/pg_resetwal/po/es.po
src/bin/pg_resetwal/po/fr.po
src/bin/pg_resetwal/po/ja.po
src/bin/pg_resetwal/po/ka.po
src/bin/pg_resetwal/po/ko.po
src/bin/pg_resetwal/po/ru.po
src/bin/pg_resetwal/po/sv.po
src/bin/pg_resetwal/po/uk.po
src/bin/pg_rewind/po/de.po
src/bin/pg_rewind/po/es.po
src/bin/pg_rewind/po/fr.po
src/bin/pg_rewind/po/ja.po
src/bin/pg_rewind/po/ka.po
src/bin/pg_rewind/po/ko.po
src/bin/pg_rewind/po/ru.po
src/bin/pg_rewind/po/sv.po
src/bin/pg_rewind/po/uk.po
src/bin/pg_test_fsync/po/es.po
src/bin/pg_test_fsync/po/fr.po
src/bin/pg_test_fsync/po/ka.po
src/bin/pg_test_fsync/po/ko.po
src/bin/pg_test_fsync/po/ru.po
src/bin/pg_test_fsync/po/sv.po
src/bin/pg_test_fsync/po/uk.po
src/bin/pg_test_timing/po/es.po
src/bin/pg_test_timing/po/fr.po
src/bin/pg_test_timing/po/ka.po
src/bin/pg_test_timing/po/ko.po
src/bin/pg_test_timing/po/ru.po
src/bin/pg_test_timing/po/sv.po
src/bin/pg_test_timing/po/uk.po
src/bin/pg_upgrade/po/de.po
src/bin/pg_upgrade/po/es.po
src/bin/pg_upgrade/po/fr.po
src/bin/pg_upgrade/po/ja.po
src/bin/pg_upgrade/po/ka.po
src/bin/pg_upgrade/po/ko.po
src/bin/pg_upgrade/po/ru.po
src/bin/pg_upgrade/po/sv.po
src/bin/pg_upgrade/po/uk.po
src/bin/pg_verifybackup/po/de.po
src/bin/pg_verifybackup/po/ja.po
src/bin/pg_verifybackup/po/ka.po
src/bin/pg_waldump/po/de.po
src/bin/pg_waldump/po/es.po
src/bin/pg_waldump/po/fr.po
src/bin/pg_waldump/po/ka.po
src/bin/pg_waldump/po/ko.po
src/bin/pg_waldump/po/ru.po
src/bin/pg_waldump/po/sv.po
src/bin/pg_waldump/po/uk.po
src/bin/pg_walsummary/po/LINGUAS
src/bin/pg_walsummary/po/es.po [new file with mode: 0644]
src/bin/pg_walsummary/po/fr.po [new file with mode: 0644]
src/bin/pg_walsummary/po/ka.po
src/bin/pg_walsummary/po/ko.po [new file with mode: 0644]
src/bin/pg_walsummary/po/ru.po [new file with mode: 0644]
src/bin/pg_walsummary/po/sv.po [new file with mode: 0644]
src/bin/pg_walsummary/po/uk.po [new file with mode: 0644]
src/bin/psql/po/cs.po
src/bin/psql/po/de.po
src/bin/psql/po/el.po
src/bin/psql/po/es.po
src/bin/psql/po/fr.po
src/bin/psql/po/it.po
src/bin/psql/po/ja.po
src/bin/psql/po/ko.po
src/bin/psql/po/ru.po
src/bin/psql/po/sv.po
src/bin/psql/po/uk.po
src/bin/scripts/po/de.po
src/bin/scripts/po/es.po
src/bin/scripts/po/fr.po
src/bin/scripts/po/ja.po
src/bin/scripts/po/ka.po
src/bin/scripts/po/ko.po
src/bin/scripts/po/pt_BR.po
src/bin/scripts/po/ru.po
src/bin/scripts/po/sv.po
src/bin/scripts/po/uk.po
src/bin/scripts/po/zh_CN.po
src/interfaces/ecpg/ecpglib/po/es.po
src/interfaces/ecpg/ecpglib/po/fr.po
src/interfaces/ecpg/ecpglib/po/ru.po
src/interfaces/ecpg/ecpglib/po/sv.po
src/interfaces/ecpg/ecpglib/po/uk.po
src/interfaces/ecpg/preproc/po/de.po
src/interfaces/ecpg/preproc/po/es.po
src/interfaces/ecpg/preproc/po/fr.po
src/interfaces/ecpg/preproc/po/ja.po
src/interfaces/ecpg/preproc/po/ka.po
src/interfaces/ecpg/preproc/po/ko.po
src/interfaces/ecpg/preproc/po/ru.po
src/interfaces/ecpg/preproc/po/sv.po
src/interfaces/ecpg/preproc/po/uk.po
src/interfaces/libpq/po/de.po
src/interfaces/libpq/po/ja.po
src/interfaces/libpq/po/ka.po
src/pl/plperl/po/es.po
src/pl/plperl/po/fr.po
src/pl/plperl/po/ko.po
src/pl/plperl/po/ru.po
src/pl/plperl/po/sv.po
src/pl/plperl/po/uk.po
src/pl/plpgsql/src/po/es.po
src/pl/plpgsql/src/po/fr.po
src/pl/plpgsql/src/po/ko.po
src/pl/plpgsql/src/po/ru.po
src/pl/plpgsql/src/po/sv.po
src/pl/plpgsql/src/po/uk.po
src/pl/plpython/po/es.po
src/pl/plpython/po/fr.po
src/pl/plpython/po/ru.po
src/pl/plpython/po/sv.po
src/pl/plpython/po/uk.po
src/pl/plpython/po/zh_CN.po
src/pl/tcl/po/de.po
src/pl/tcl/po/es.po
src/pl/tcl/po/fr.po
src/pl/tcl/po/ja.po
src/pl/tcl/po/ka.po
src/pl/tcl/po/ko.po
src/pl/tcl/po/ru.po
src/pl/tcl/po/sv.po
src/pl/tcl/po/uk.po
src/pl/tcl/po/zh_CN.po

index 0d6dead79e0387ac0ba2618f14a9d0b2e7897a30..e2593b522719ad39c1cbabde128b272fa59df9df 100644 (file)
@@ -12,6 +12,7 @@
 # Glosario:
 #
 # character                carácter
+# checkpoint               checkpoint
 # checksum             suma de verificación
 # cluster (de la orden cluster)        reordenar
 # command              orden
@@ -23,8 +24,8 @@
 # lexeme               lexema
 # locale               configuración regional
 # to lock              bloquear
-# lock (sustantivo)            candado
-# to obtain a lock         bloquear un candado
+# lock (sustantivo)            “lock”
+# to obtain a lock         bloquear un “lock”
 # malformed                mal formado
 # mapping              mapeo
 # operator class           clase de operadores
@@ -42,7 +43,8 @@
 # rule                 regla de reescritura
 # schema               esquema
 # to skip              ignorar
-# trigger              disparador
+# trigger              “trigger”
+# wait event               “wait event”
 # window function          función de ventana deslizante
 #
 # FIXME varios:
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: PostgreSQL server 15\n"
+"Project-Id-Version: PostgreSQL server 17\n"
 "Report-Msgid-Bugs-To: [email protected]\n"
-"POT-Creation-Date: 2023-05-22 07:10+0000\n"
-"PO-Revision-Date: 2024-05-21 13:39+0200\n"
+"POT-Creation-Date: 2025-02-16 19:41+0000\n"
+"PO-Revision-Date: 2025-02-17 15:18+0100\n"
 "Last-Translator: Carlos Chapi \n"
 "Language-Team: PgSQL-es-Ayuda \n"
 "Language: es\n"
@@ -73,6 +75,11 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: BlackCAT 1.1\n"
 
+#: ../common/binaryheap.c:121 ../common/binaryheap.c:159
+#, c-format
+msgid "out of binary heap slots"
+msgstr "se acabaron los slots de “binary heap”"
+
 #: ../common/compression.c:132 ../common/compression.c:141
 #: ../common/compression.c:150
 #, c-format
@@ -99,8 +106,7 @@ msgid "value for compression option \"%s\" must be an integer"
 msgstr "el valor para la opción de compresión «%s» debe ser un entero"
 
 #: ../common/compression.c:331
-#, fuzzy, c-format
-#| msgid "value for compression option \"%s\" must be a boolean"
+#, c-format
 msgid "value for compression option \"%s\" must be a Boolean value"
 msgstr "el valor para la opción de compresión «%s» debe ser un booleano"
 
@@ -131,64 +137,66 @@ msgstr "el algoritmo de compresión «%s» no acepta modo de larga distancia"
 msgid "not recorded"
 msgstr "no registrado"
 
-#: ../common/controldata_utils.c:69 ../common/controldata_utils.c:73
-#: commands/copyfrom.c:1669 commands/extension.c:3456 utils/adt/genfile.c:123
+#: ../common/controldata_utils.c:93 ../common/controldata_utils.c:97
+#: commands/copyfrom.c:1739 commands/extension.c:3538 utils/adt/genfile.c:123
+#: utils/time/snapmgr.c:1430
 #, c-format
 msgid "could not open file \"%s\" for reading: %m"
 msgstr "no se pudo abrir archivo «%s» para lectura: %m"
 
-#: ../common/controldata_utils.c:84 ../common/controldata_utils.c:86
+#: ../common/controldata_utils.c:108 ../common/controldata_utils.c:110
 #: access/transam/timeline.c:143 access/transam/timeline.c:362
-#: access/transam/twophase.c:1346 access/transam/xlog.c:3193
-#: access/transam/xlog.c:3996 access/transam/xlogrecovery.c:1199
-#: access/transam/xlogrecovery.c:1291 access/transam/xlogrecovery.c:1328
-#: access/transam/xlogrecovery.c:1388 backup/basebackup.c:1842
-#: commands/extension.c:3466 libpq/hba.c:791 replication/logical/origin.c:745
-#: replication/logical/origin.c:781 replication/logical/reorderbuffer.c:5050
-#: replication/logical/snapbuild.c:2027 replication/slot.c:1946
-#: replication/slot.c:1987 replication/walsender.c:643
+#: access/transam/twophase.c:1353 access/transam/xlog.c:3477
+#: access/transam/xlog.c:4341 access/transam/xlogrecovery.c:1238
+#: access/transam/xlogrecovery.c:1336 access/transam/xlogrecovery.c:1373
+#: access/transam/xlogrecovery.c:1440 backup/basebackup.c:2123
+#: backup/walsummary.c:283 commands/extension.c:3548 libpq/hba.c:764
+#: replication/logical/origin.c:745 replication/logical/origin.c:781
+#: replication/logical/reorderbuffer.c:5113
+#: replication/logical/snapbuild.c:2052 replication/slot.c:2236
+#: replication/slot.c:2277 replication/walsender.c:655
 #: storage/file/buffile.c:470 storage/file/copydir.c:185
-#: utils/adt/genfile.c:197 utils/adt/misc.c:984 utils/cache/relmapper.c:827
+#: utils/adt/genfile.c:197 utils/adt/misc.c:1028 utils/cache/relmapper.c:829
 #, c-format
 msgid "could not read file \"%s\": %m"
 msgstr "no se pudo leer el archivo «%s»: %m"
 
-#: ../common/controldata_utils.c:92 ../common/controldata_utils.c:95
-#: access/transam/xlog.c:3198 access/transam/xlog.c:4001
-#: backup/basebackup.c:1846 replication/logical/origin.c:750
-#: replication/logical/origin.c:789 replication/logical/snapbuild.c:2032
-#: replication/slot.c:1950 replication/slot.c:1991 replication/walsender.c:648
-#: utils/cache/relmapper.c:831
+#: ../common/controldata_utils.c:116 ../common/controldata_utils.c:119
+#: access/transam/xlog.c:3482 access/transam/xlog.c:4346
+#: replication/logical/origin.c:750 replication/logical/origin.c:789
+#: replication/logical/snapbuild.c:2057 replication/slot.c:2240
+#: replication/slot.c:2281 replication/walsender.c:660
+#: utils/cache/relmapper.c:833
 #, c-format
 msgid "could not read file \"%s\": read %d of %zu"
 msgstr "no se pudo leer el archivo «%s»: leídos %d de %zu"
 
-#: ../common/controldata_utils.c:104 ../common/controldata_utils.c:108
-#: ../common/controldata_utils.c:233 ../common/controldata_utils.c:236
-#: access/heap/rewriteheap.c:1175 access/heap/rewriteheap.c:1280
+#: ../common/controldata_utils.c:128 ../common/controldata_utils.c:132
+#: ../common/controldata_utils.c:277 ../common/controldata_utils.c:280
+#: access/heap/rewriteheap.c:1141 access/heap/rewriteheap.c:1246
 #: access/transam/timeline.c:392 access/transam/timeline.c:438
-#: access/transam/timeline.c:512 access/transam/twophase.c:1358
-#: access/transam/twophase.c:1770 access/transam/xlog.c:3039
-#: access/transam/xlog.c:3233 access/transam/xlog.c:3238
-#: access/transam/xlog.c:3374 access/transam/xlog.c:3966
-#: access/transam/xlog.c:4885 commands/copyfrom.c:1729 commands/copyto.c:332
+#: access/transam/timeline.c:512 access/transam/twophase.c:1365
+#: access/transam/twophase.c:1784 access/transam/xlog.c:3323
+#: access/transam/xlog.c:3517 access/transam/xlog.c:3522
+#: access/transam/xlog.c:3658 access/transam/xlog.c:4311
+#: access/transam/xlog.c:5246 commands/copyfrom.c:1799 commands/copyto.c:325
 #: libpq/be-fsstubs.c:470 libpq/be-fsstubs.c:540
 #: replication/logical/origin.c:683 replication/logical/origin.c:822
-#: replication/logical/reorderbuffer.c:5102
-#: replication/logical/snapbuild.c:1798 replication/logical/snapbuild.c:1922
-#: replication/slot.c:1837 replication/slot.c:1998 replication/walsender.c:658
-#: storage/file/copydir.c:208 storage/file/copydir.c:213 storage/file/fd.c:739
-#: storage/file/fd.c:3650 storage/file/fd.c:3756 utils/cache/relmapper.c:839
-#: utils/cache/relmapper.c:945
+#: replication/logical/reorderbuffer.c:5165
+#: replication/logical/snapbuild.c:1819 replication/logical/snapbuild.c:1943
+#: replication/slot.c:2126 replication/slot.c:2288 replication/walsender.c:670
+#: storage/file/copydir.c:208 storage/file/copydir.c:213 storage/file/fd.c:828
+#: storage/file/fd.c:3753 storage/file/fd.c:3859 utils/cache/relmapper.c:841
+#: utils/cache/relmapper.c:956
 #, c-format
 msgid "could not close file \"%s\": %m"
 msgstr "no se pudo cerrar el archivo «%s»: %m"
 
-#: ../common/controldata_utils.c:124
+#: ../common/controldata_utils.c:168
 msgid "byte ordering mismatch"
 msgstr "discordancia en orden de bytes"
 
-#: ../common/controldata_utils.c:126
+#: ../common/controldata_utils.c:170
 #, c-format
 msgid ""
 "possible byte ordering mismatch\n"
@@ -202,141 +210,157 @@ msgstr ""
 "serían erróneos, y la instalación de PostgreSQL sería incompatible con este\n"
 "directorio de datos."
 
-#: ../common/controldata_utils.c:181 ../common/controldata_utils.c:186
-#: ../common/file_utils.c:228 ../common/file_utils.c:287
-#: ../common/file_utils.c:361 access/heap/rewriteheap.c:1263
-#: access/transam/timeline.c:111 access/transam/timeline.c:251
-#: access/transam/timeline.c:348 access/transam/twophase.c:1302
-#: access/transam/xlog.c:2946 access/transam/xlog.c:3109
-#: access/transam/xlog.c:3148 access/transam/xlog.c:3341
-#: access/transam/xlog.c:3986 access/transam/xlogrecovery.c:4179
-#: access/transam/xlogrecovery.c:4282 access/transam/xlogutils.c:838
-#: backup/basebackup.c:538 backup/basebackup.c:1512 libpq/hba.c:651
-#: postmaster/syslogger.c:1560 replication/logical/origin.c:735
-#: replication/logical/reorderbuffer.c:3706
-#: replication/logical/reorderbuffer.c:4257
-#: replication/logical/reorderbuffer.c:5030
-#: replication/logical/snapbuild.c:1753 replication/logical/snapbuild.c:1863
-#: replication/slot.c:1918 replication/walsender.c:616
-#: replication/walsender.c:2731 storage/file/copydir.c:151
-#: storage/file/fd.c:714 storage/file/fd.c:3407 storage/file/fd.c:3637
-#: storage/file/fd.c:3727 storage/smgr/md.c:660 utils/cache/relmapper.c:816
-#: utils/cache/relmapper.c:924 utils/error/elog.c:2082
-#: utils/init/miscinit.c:1530 utils/init/miscinit.c:1664
-#: utils/init/miscinit.c:1741 utils/misc/guc.c:4600 utils/misc/guc.c:4650
+#: ../common/controldata_utils.c:225 ../common/controldata_utils.c:230
+#: ../common/file_utils.c:70 ../common/file_utils.c:347
+#: ../common/file_utils.c:406 ../common/file_utils.c:480
+#: access/heap/rewriteheap.c:1229 access/transam/timeline.c:111
+#: access/transam/timeline.c:251 access/transam/timeline.c:348
+#: access/transam/twophase.c:1309 access/transam/xlog.c:3230
+#: access/transam/xlog.c:3393 access/transam/xlog.c:3432
+#: access/transam/xlog.c:3625 access/transam/xlog.c:4331
+#: access/transam/xlogrecovery.c:4264 access/transam/xlogrecovery.c:4367
+#: access/transam/xlogutils.c:836 backup/basebackup.c:547
+#: backup/basebackup.c:1598 backup/walsummary.c:220 libpq/hba.c:624
+#: postmaster/syslogger.c:1511 replication/logical/origin.c:735
+#: replication/logical/reorderbuffer.c:3766
+#: replication/logical/reorderbuffer.c:4320
+#: replication/logical/reorderbuffer.c:5093
+#: replication/logical/snapbuild.c:1774 replication/logical/snapbuild.c:1884
+#: replication/slot.c:2208 replication/walsender.c:628
+#: replication/walsender.c:3051 storage/file/copydir.c:151
+#: storage/file/fd.c:803 storage/file/fd.c:3510 storage/file/fd.c:3740
+#: storage/file/fd.c:3830 storage/smgr/md.c:661 utils/cache/relmapper.c:818
+#: utils/cache/relmapper.c:935 utils/error/elog.c:2124
+#: utils/init/miscinit.c:1580 utils/init/miscinit.c:1714
+#: utils/init/miscinit.c:1791 utils/misc/guc.c:4777 utils/misc/guc.c:4827
 #, c-format
 msgid "could not open file \"%s\": %m"
 msgstr "no se pudo abrir el archivo «%s»: %m"
 
-#: ../common/controldata_utils.c:202 ../common/controldata_utils.c:205
-#: access/transam/twophase.c:1743 access/transam/twophase.c:1752
-#: access/transam/xlog.c:8751 access/transam/xlogfuncs.c:708
-#: backup/basebackup_server.c:175 backup/basebackup_server.c:268
-#: postmaster/postmaster.c:5570 postmaster/syslogger.c:1571
-#: postmaster/syslogger.c:1584 postmaster/syslogger.c:1597
-#: utils/cache/relmapper.c:936
+#: ../common/controldata_utils.c:246 ../common/controldata_utils.c:249
+#: access/transam/twophase.c:1757 access/transam/twophase.c:1766
+#: access/transam/xlog.c:9280 access/transam/xlogfuncs.c:698
+#: backup/basebackup_server.c:173 backup/basebackup_server.c:266
+#: backup/walsummary.c:304 postmaster/postmaster.c:4127
+#: postmaster/syslogger.c:1522 postmaster/syslogger.c:1535
+#: postmaster/syslogger.c:1548 utils/cache/relmapper.c:947
 #, c-format
 msgid "could not write file \"%s\": %m"
 msgstr "no se pudo escribir el archivo «%s»: %m"
 
-#: ../common/controldata_utils.c:219 ../common/controldata_utils.c:224
-#: ../common/file_utils.c:299 ../common/file_utils.c:369
-#: access/heap/rewriteheap.c:959 access/heap/rewriteheap.c:1169
-#: access/heap/rewriteheap.c:1274 access/transam/timeline.c:432
-#: access/transam/timeline.c:506 access/transam/twophase.c:1764
-#: access/transam/xlog.c:3032 access/transam/xlog.c:3227
-#: access/transam/xlog.c:3959 access/transam/xlog.c:8141
-#: access/transam/xlog.c:8186 backup/basebackup_server.c:209
-#: replication/logical/snapbuild.c:1791 replication/slot.c:1823
-#: replication/slot.c:1928 storage/file/fd.c:731 storage/file/fd.c:3748
-#: storage/smgr/md.c:1132 storage/smgr/md.c:1177 storage/sync/sync.c:453
-#: utils/misc/guc.c:4370
+#: ../common/controldata_utils.c:263 ../common/controldata_utils.c:268
+#: ../common/file_utils.c:418 ../common/file_utils.c:488
+#: access/heap/rewriteheap.c:925 access/heap/rewriteheap.c:1135
+#: access/heap/rewriteheap.c:1240 access/transam/timeline.c:432
+#: access/transam/timeline.c:506 access/transam/twophase.c:1778
+#: access/transam/xlog.c:3316 access/transam/xlog.c:3511
+#: access/transam/xlog.c:4304 access/transam/xlog.c:8655
+#: access/transam/xlog.c:8700 backup/basebackup_server.c:207
+#: commands/dbcommands.c:514 replication/logical/snapbuild.c:1812
+#: replication/slot.c:2112 replication/slot.c:2218 storage/file/fd.c:820
+#: storage/file/fd.c:3851 storage/smgr/md.c:1331 storage/smgr/md.c:1376
+#: storage/sync/sync.c:446 utils/misc/guc.c:4530
 #, c-format
 msgid "could not fsync file \"%s\": %m"
 msgstr "no se pudo sincronizar (fsync) archivo «%s»: %m"
 
-#: ../common/cryptohash.c:261 ../common/cryptohash_openssl.c:133
-#: ../common/cryptohash_openssl.c:332 ../common/exec.c:550 ../common/exec.c:595
-#: ../common/exec.c:687 ../common/hmac.c:309 ../common/hmac.c:325
-#: ../common/hmac_openssl.c:132 ../common/hmac_openssl.c:327
-#: ../common/md5_common.c:155 ../common/psprintf.c:143
-#: ../common/scram-common.c:258 ../common/stringinfo.c:305 ../port/path.c:751
-#: ../port/path.c:789 ../port/path.c:806 access/transam/twophase.c:1411
-#: access/transam/xlogrecovery.c:589 lib/dshash.c:253 libpq/auth.c:1345
-#: libpq/auth.c:1389 libpq/auth.c:1946 libpq/be-secure-gssapi.c:524
-#: postmaster/bgworker.c:352 postmaster/bgworker.c:934
-#: postmaster/postmaster.c:2534 postmaster/postmaster.c:4127
-#: postmaster/postmaster.c:5495 postmaster/postmaster.c:5866
-#: replication/libpqwalreceiver/libpqwalreceiver.c:308
-#: replication/logical/logical.c:208 replication/walsender.c:686
-#: storage/buffer/localbuf.c:601 storage/file/fd.c:823 storage/file/fd.c:1354
-#: storage/file/fd.c:1515 storage/file/fd.c:2428 storage/ipc/procarray.c:1449
-#: storage/ipc/procarray.c:2232 storage/ipc/procarray.c:2239
-#: storage/ipc/procarray.c:2738 storage/ipc/procarray.c:3374
-#: utils/adt/formatting.c:1690 utils/adt/formatting.c:1812
-#: utils/adt/formatting.c:1935 utils/adt/pg_locale.c:469
-#: utils/adt/pg_locale.c:633 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:514
-#: utils/hash/dynahash.c:614 utils/hash/dynahash.c:1111 utils/mb/mbutils.c:402
-#: utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 utils/mb/mbutils.c:842
-#: utils/misc/guc.c:640 utils/misc/guc.c:665 utils/misc/guc.c:1053
-#: utils/misc/guc.c:4348 utils/misc/tzparser.c:476 utils/mmgr/aset.c:445
-#: utils/mmgr/dsa.c:713 utils/mmgr/dsa.c:735 utils/mmgr/dsa.c:816
-#: utils/mmgr/generation.c:205 utils/mmgr/mcxt.c:1046 utils/mmgr/mcxt.c:1082
-#: utils/mmgr/mcxt.c:1120 utils/mmgr/mcxt.c:1158 utils/mmgr/mcxt.c:1246
-#: utils/mmgr/mcxt.c:1277 utils/mmgr/mcxt.c:1313 utils/mmgr/mcxt.c:1502
-#: utils/mmgr/mcxt.c:1547 utils/mmgr/mcxt.c:1604 utils/mmgr/slab.c:366
+#: ../common/cryptohash.c:261 ../common/cryptohash_openssl.c:158
+#: ../common/cryptohash_openssl.c:356 ../common/exec.c:562 ../common/exec.c:607
+#: ../common/exec.c:699 ../common/hmac.c:309 ../common/hmac.c:325
+#: ../common/hmac_openssl.c:160 ../common/hmac_openssl.c:357
+#: ../common/md5_common.c:156 ../common/parse_manifest.c:157
+#: ../common/parse_manifest.c:852 ../common/psprintf.c:143
+#: ../common/scram-common.c:268 ../common/stringinfo.c:314 ../port/path.c:828
+#: ../port/path.c:865 ../port/path.c:882 access/transam/twophase.c:1418
+#: access/transam/xlogrecovery.c:564 lib/dshash.c:253 libpq/auth.c:1352
+#: libpq/auth.c:1396 libpq/auth.c:1953 libpq/be-secure-gssapi.c:524
+#: postmaster/bgworker.c:355 postmaster/bgworker.c:945
+#: postmaster/postmaster.c:3560 postmaster/postmaster.c:4021
+#: postmaster/postmaster.c:4383 postmaster/walsummarizer.c:935
+#: replication/libpqwalreceiver/libpqwalreceiver.c:387
+#: replication/logical/logical.c:210 replication/walsender.c:835
+#: storage/buffer/localbuf.c:606 storage/file/fd.c:912 storage/file/fd.c:1443
+#: storage/file/fd.c:1604 storage/file/fd.c:2531 storage/ipc/procarray.c:1465
+#: storage/ipc/procarray.c:2219 storage/ipc/procarray.c:2226
+#: storage/ipc/procarray.c:2731 storage/ipc/procarray.c:3435
+#: utils/adt/formatting.c:1725 utils/adt/formatting.c:1873
+#: utils/adt/formatting.c:2075 utils/adt/pg_locale.c:532
+#: utils/adt/pg_locale.c:696 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:516
+#: utils/hash/dynahash.c:616 utils/hash/dynahash.c:1099 utils/mb/mbutils.c:401
+#: utils/mb/mbutils.c:429 utils/mb/mbutils.c:814 utils/mb/mbutils.c:841
+#: utils/misc/guc.c:649 utils/misc/guc.c:674 utils/misc/guc.c:1062
+#: utils/misc/guc.c:4508 utils/misc/tzparser.c:477 utils/mmgr/aset.c:451
+#: utils/mmgr/bump.c:183 utils/mmgr/dsa.c:707 utils/mmgr/dsa.c:729
+#: utils/mmgr/dsa.c:810 utils/mmgr/generation.c:215 utils/mmgr/mcxt.c:1154
+#: utils/mmgr/slab.c:370
 #, c-format
 msgid "out of memory"
 msgstr "memoria agotada"
 
 #: ../common/cryptohash.c:266 ../common/cryptohash.c:272
-#: ../common/cryptohash_openssl.c:344 ../common/cryptohash_openssl.c:352
-#: ../common/hmac.c:321 ../common/hmac.c:329 ../common/hmac_openssl.c:339
-#: ../common/hmac_openssl.c:347
+#: ../common/cryptohash_openssl.c:368 ../common/cryptohash_openssl.c:376
+#: ../common/hmac.c:321 ../common/hmac.c:329 ../common/hmac_openssl.c:369
+#: ../common/hmac_openssl.c:377
 msgid "success"
 msgstr "éxito"
 
-#: ../common/cryptohash.c:268 ../common/cryptohash_openssl.c:346
-#: ../common/hmac_openssl.c:341
+#: ../common/cryptohash.c:268 ../common/cryptohash_openssl.c:370
+#: ../common/hmac_openssl.c:371
 msgid "destination buffer too small"
 msgstr "el búfer de destino es demasiado pequeño"
 
-#: ../common/cryptohash_openssl.c:348 ../common/hmac_openssl.c:343
+#: ../common/cryptohash_openssl.c:372 ../common/hmac_openssl.c:373
 msgid "OpenSSL failure"
 msgstr "falla de openSSL"
 
-#: ../common/exec.c:172
+#: ../common/exec.c:174
 #, c-format
 msgid "invalid binary \"%s\": %m"
 msgstr "binario «%s» no válido: %m"
 
-#: ../common/exec.c:215
+#: ../common/exec.c:217
 #, c-format
 msgid "could not read binary \"%s\": %m"
 msgstr "no se pudo leer el binario «%s»: %m"
 
-#: ../common/exec.c:223
+#: ../common/exec.c:225
 #, c-format
 msgid "could not find a \"%s\" to execute"
 msgstr "no se pudo encontrar un «%s» para ejecutar"
 
-#: ../common/exec.c:250
+#: ../common/exec.c:252
 #, c-format
 msgid "could not resolve path \"%s\" to absolute form: %m"
 msgstr "no se pudo resolver la ruta «%s» a forma absoluta: %m"
 
-#: ../common/exec.c:412 libpq/pqcomm.c:728 storage/ipc/latch.c:1128
-#: storage/ipc/latch.c:1308 storage/ipc/latch.c:1541 storage/ipc/latch.c:1703
-#: storage/ipc/latch.c:1829
+#: ../common/exec.c:382 commands/collationcmds.c:876 commands/copyfrom.c:1723
+#: commands/copyto.c:654 libpq/be-secure-common.c:59
+#, c-format
+msgid "could not execute command \"%s\": %m"
+msgstr "no se pudo ejecutar la orden «%s»: %m"
+
+#: ../common/exec.c:394 libpq/be-secure-common.c:71
+#, c-format
+msgid "could not read from command \"%s\": %m"
+msgstr "no se pudo leer desde la orden «%s»: %m"
+
+#: ../common/exec.c:397
+#, c-format
+msgid "no data was returned by command \"%s\""
+msgstr "la orden «%s» no retornó datos"
+
+#: ../common/exec.c:424 libpq/pqcomm.c:192 storage/ipc/latch.c:1169
+#: storage/ipc/latch.c:1349 storage/ipc/latch.c:1589 storage/ipc/latch.c:1751
+#: storage/ipc/latch.c:1877
 #, c-format
 msgid "%s() failed: %m"
 msgstr "%s() falló: %m"
 
 #: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75
 #: ../common/fe_memutils.c:98 ../common/fe_memutils.c:161
-#: ../common/psprintf.c:145 ../port/path.c:753 ../port/path.c:791
-#: ../port/path.c:808 utils/misc/ps_status.c:168 utils/misc/ps_status.c:176
-#: utils/misc/ps_status.c:203 utils/misc/ps_status.c:211
+#: ../common/psprintf.c:145 ../port/path.c:830 ../port/path.c:867
+#: ../port/path.c:884 utils/misc/ps_status.c:193 utils/misc/ps_status.c:201
+#: utils/misc/ps_status.c:228 utils/misc/ps_status.c:236
 #, c-format
 msgid "out of memory\n"
 msgstr "memoria agotada\n"
@@ -346,39 +370,51 @@ msgstr "memoria agotada\n"
 msgid "cannot duplicate null pointer (internal error)\n"
 msgstr "no se puede duplicar un puntero nulo (error interno)\n"
 
-#: ../common/file_utils.c:87 ../common/file_utils.c:447
-#: ../common/file_utils.c:451 access/transam/twophase.c:1314
-#: access/transam/xlogarchive.c:112 access/transam/xlogarchive.c:229
-#: backup/basebackup.c:346 backup/basebackup.c:544 backup/basebackup.c:615
-#: commands/copyfrom.c:1679 commands/copyto.c:702 commands/extension.c:3445
-#: commands/tablespace.c:810 commands/tablespace.c:899 postmaster/pgarch.c:590
-#: replication/logical/snapbuild.c:1649 storage/file/fd.c:1879
-#: storage/file/fd.c:1965 storage/file/fd.c:3461 utils/adt/dbsize.c:106
-#: utils/adt/dbsize.c:258 utils/adt/dbsize.c:338 utils/adt/genfile.c:483
-#: utils/adt/genfile.c:658 utils/adt/misc.c:340
+#: ../common/file_utils.c:76 storage/file/fd.c:3516
+#, c-format
+msgid "could not synchronize file system for file \"%s\": %m"
+msgstr "no se pudo sincronizar el sistema de archivos para el archivo «%s»: %m"
+
+#: ../common/file_utils.c:120 ../common/file_utils.c:566
+#: ../common/file_utils.c:570 access/transam/twophase.c:1321
+#: access/transam/xlogarchive.c:111 access/transam/xlogarchive.c:235
+#: backup/basebackup.c:355 backup/basebackup.c:553 backup/basebackup.c:624
+#: backup/walsummary.c:247 backup/walsummary.c:254 commands/copyfrom.c:1749
+#: commands/copyto.c:700 commands/extension.c:3527 commands/tablespace.c:804
+#: commands/tablespace.c:893 postmaster/pgarch.c:680
+#: replication/logical/snapbuild.c:1670 replication/logical/snapbuild.c:2173
+#: storage/file/fd.c:1968 storage/file/fd.c:2054 storage/file/fd.c:3564
+#: utils/adt/dbsize.c:105 utils/adt/dbsize.c:257 utils/adt/dbsize.c:337
+#: utils/adt/genfile.c:437 utils/adt/genfile.c:612 utils/adt/misc.c:340
 #, c-format
 msgid "could not stat file \"%s\": %m"
 msgstr "no se pudo hacer stat al archivo «%s»: %m"
 
-#: ../common/file_utils.c:162 ../common/pgfnames.c:48 ../common/rmtree.c:63
-#: commands/tablespace.c:734 commands/tablespace.c:744
-#: postmaster/postmaster.c:1561 storage/file/fd.c:2830
-#: storage/file/reinit.c:126 utils/adt/misc.c:256 utils/misc/tzparser.c:338
+#: ../common/file_utils.c:130 ../common/file_utils.c:227
+#, c-format
+msgid "this build does not support sync method \"%s\""
+msgstr "esta instalación no soporta el método de sync «%s»"
+
+#: ../common/file_utils.c:151 ../common/file_utils.c:281
+#: ../common/pgfnames.c:48 ../common/rmtree.c:63 commands/tablespace.c:728
+#: commands/tablespace.c:738 postmaster/postmaster.c:1470
+#: storage/file/fd.c:2933 storage/file/reinit.c:126 utils/adt/misc.c:256
+#: utils/misc/tzparser.c:339
 #, c-format
 msgid "could not open directory \"%s\": %m"
 msgstr "no se pudo abrir el directorio «%s»: %m"
 
-#: ../common/file_utils.c:196 ../common/pgfnames.c:69 ../common/rmtree.c:104
-#: storage/file/fd.c:2842
+#: ../common/file_utils.c:169 ../common/file_utils.c:315
+#: ../common/pgfnames.c:69 ../common/rmtree.c:106 storage/file/fd.c:2945
 #, c-format
 msgid "could not read directory \"%s\": %m"
 msgstr "no se pudo leer el directorio «%s»: %m"
 
-#: ../common/file_utils.c:379 access/transam/xlogarchive.c:383
-#: postmaster/pgarch.c:746 postmaster/syslogger.c:1608
-#: replication/logical/snapbuild.c:1810 replication/slot.c:723
-#: replication/slot.c:1709 replication/slot.c:1851 storage/file/fd.c:749
-#: utils/time/snapmgr.c:1284
+#: ../common/file_utils.c:498 access/transam/xlogarchive.c:389
+#: postmaster/pgarch.c:834 postmaster/syslogger.c:1559
+#: replication/logical/snapbuild.c:1831 replication/slot.c:936
+#: replication/slot.c:1998 replication/slot.c:2140 storage/file/fd.c:838
+#: utils/time/snapmgr.c:1255
 #, c-format
 msgid "could not rename file \"%s\" to \"%s\": %m"
 msgstr "no se pudo renombrar el archivo de «%s» a «%s»: %m"
@@ -387,90 +423,102 @@ msgstr "no se pudo renombrar el archivo de «%s» a «%s»: %m"
 msgid "internal error"
 msgstr "error interno"
 
-#: ../common/jsonapi.c:1144
+#: ../common/jsonapi.c:2121
+msgid "Recursive descent parser cannot use incremental lexer."
+msgstr "El parser recursivo descendiente no puede usar el lexer incremental."
+
+#: ../common/jsonapi.c:2123
+msgid "Incremental parser requires incremental lexer."
+msgstr "El parser incremental requiere el lexer incremental."
+
+#: ../common/jsonapi.c:2125
+msgid "JSON nested too deep, maximum permitted depth is 6400."
+msgstr "JSON anidado demasiado profundamente, profundidad máxima es 6400."
+
+#: ../common/jsonapi.c:2127
 #, c-format
-msgid "Escape sequence \"\\%s\" is invalid."
-msgstr "La secuencia de escape «%s» no es válida."
+msgid "Escape sequence \"\\%.*s\" is invalid."
+msgstr "La secuencia de escape «\\%.*s» no es válida."
 
-#: ../common/jsonapi.c:1147
+#: ../common/jsonapi.c:2131
 #, c-format
 msgid "Character with value 0x%02x must be escaped."
 msgstr "Los caracteres con valor 0x%02x deben ser escapados."
 
-#: ../common/jsonapi.c:1150
+#: ../common/jsonapi.c:2135
 #, c-format
-msgid "Expected end of input, but found \"%s\"."
-msgstr "Se esperaba el fin de la entrada, se encontró «%s»."
+msgid "Expected end of input, but found \"%.*s\"."
+msgstr "Se esperaba el fin de la entrada, se encontró «%.*s»."
 
-#: ../common/jsonapi.c:1153
+#: ../common/jsonapi.c:2138
 #, c-format
-msgid "Expected array element or \"]\", but found \"%s\"."
-msgstr "Se esperaba un elemento de array o «]», se encontró «%s»."
+msgid "Expected array element or \"]\", but found \"%.*s\"."
+msgstr "Se esperaba un elemento de array o «]», se encontró «%.*s»."
 
-#: ../common/jsonapi.c:1156
+#: ../common/jsonapi.c:2141
 #, c-format
-msgid "Expected \",\" or \"]\", but found \"%s\"."
-msgstr "Se esperaba «,» o «]», se encontró «%s»."
+msgid "Expected \",\" or \"]\", but found \"%.*s\"."
+msgstr "Se esperaba «,» o «]», se encontró «%.*s»."
 
-#: ../common/jsonapi.c:1159
+#: ../common/jsonapi.c:2144
 #, c-format
-msgid "Expected \":\", but found \"%s\"."
-msgstr "Se esperaba «:», se encontró «%s»."
+msgid "Expected \":\", but found \"%.*s\"."
+msgstr "Se esperaba «:», se encontró «%.*s»."
 
-#: ../common/jsonapi.c:1162
+#: ../common/jsonapi.c:2147
 #, c-format
-msgid "Expected JSON value, but found \"%s\"."
-msgstr "Se esperaba un valor JSON, se encontró «%s»."
+msgid "Expected JSON value, but found \"%.*s\"."
+msgstr "Se esperaba un valor JSON, se encontró «%.*s»."
 
-#: ../common/jsonapi.c:1165
+#: ../common/jsonapi.c:2150
 msgid "The input string ended unexpectedly."
 msgstr "La cadena de entrada terminó inesperadamente."
 
-#: ../common/jsonapi.c:1167
+#: ../common/jsonapi.c:2152
 #, c-format
-msgid "Expected string or \"}\", but found \"%s\"."
-msgstr "Se esperaba una cadena o «}», se encontró «%s»."
+msgid "Expected string or \"}\", but found \"%.*s\"."
+msgstr "Se esperaba una cadena o «}», se encontró «%.*s»."
 
-#: ../common/jsonapi.c:1170
+#: ../common/jsonapi.c:2155
 #, c-format
-msgid "Expected \",\" or \"}\", but found \"%s\"."
-msgstr "Se esperaba «,» o «}», se encontró «%s»."
+msgid "Expected \",\" or \"}\", but found \"%.*s\"."
+msgstr "Se esperaba «,» o «}», se encontró «%.*s»."
 
-#: ../common/jsonapi.c:1173
+#: ../common/jsonapi.c:2158
 #, c-format
-msgid "Expected string, but found \"%s\"."
-msgstr "Se esperaba una cadena, se encontró «%s»."
+msgid "Expected string, but found \"%.*s\"."
+msgstr "Se esperaba una cadena, se encontró «%.*s»."
 
-#: ../common/jsonapi.c:1176
+#: ../common/jsonapi.c:2161
 #, c-format
-msgid "Token \"%s\" is invalid."
-msgstr "El elemento «%s» no es válido."
+msgid "Token \"%.*s\" is invalid."
+msgstr "El elemento «%.*s» no es válido."
 
-#: ../common/jsonapi.c:1179 jsonpath_scan.l:597
+#: ../common/jsonapi.c:2164 jsonpath_scan.l:608
 #, c-format
 msgid "\\u0000 cannot be converted to text."
 msgstr "\\u0000 no puede ser convertido a text."
 
-#: ../common/jsonapi.c:1181
+#: ../common/jsonapi.c:2166
 msgid "\"\\u\" must be followed by four hexadecimal digits."
 msgstr "«\\u» debe ser seguido por cuatro dígitos hexadecimales."
 
-#: ../common/jsonapi.c:1184
+#: ../common/jsonapi.c:2169
 msgid "Unicode escape values cannot be used for code point values above 007F when the encoding is not UTF8."
 msgstr "Los valores de escape Unicode no se pueden utilizar para valores de código superiores a 007F cuando la codificación no es UTF8."
 
-#: ../common/jsonapi.c:1187
+#: ../common/jsonapi.c:2178
 #, c-format
 msgid "Unicode escape value could not be translated to the server's encoding %s."
 msgstr "El valor de escape Unicode no pudo ser traducido a la codificación del servidor %s."
 
-#: ../common/jsonapi.c:1190 jsonpath_scan.l:630
+#: ../common/jsonapi.c:2185 jsonpath_scan.l:641
 #, c-format
 msgid "Unicode high surrogate must not follow a high surrogate."
 msgstr "Un «high-surrogate» Unicode no puede venir después de un «high-surrogate»."
 
-#: ../common/jsonapi.c:1192 jsonpath_scan.l:641 jsonpath_scan.l:651
-#: jsonpath_scan.l:702
+#: ../common/jsonapi.c:2187 jsonpath_scan.l:652 jsonpath_scan.l:662
+#: jsonpath_scan.l:713
 #, c-format
 msgid "Unicode low surrogate must follow a high surrogate."
 msgstr "Un «low-surrogate» Unicode debe seguir a un «high-surrogate»."
@@ -495,11 +543,168 @@ msgstr "detalle: "
 msgid "hint: "
 msgstr "consejo: "
 
+#: ../common/parse_manifest.c:159 ../common/parse_manifest.c:854
+#, c-format
+msgid "could not initialize checksum of manifest"
+msgstr "no se pudo inicializar la suma de verificación del manifiesto"
+
+#: ../common/parse_manifest.c:203 ../common/parse_manifest.c:260
+msgid "manifest ended unexpectedly"
+msgstr "el manifiesto terminó inesperadamente"
+
+#: ../common/parse_manifest.c:209 ../common/parse_manifest.c:861
+#, c-format
+msgid "could not update checksum of manifest"
+msgstr "no se pudo actualizar la suma de verificación del manifiesto"
+
+#: ../common/parse_manifest.c:301
+msgid "unexpected object start"
+msgstr "inicio de objeto inesperado"
+
+#: ../common/parse_manifest.c:336
+msgid "unexpected object end"
+msgstr "fin de objeto inesperado"
+
+#: ../common/parse_manifest.c:365
+msgid "unexpected array start"
+msgstr "inicio de array inesperado"
+
+#: ../common/parse_manifest.c:390
+msgid "unexpected array end"
+msgstr "fin de array inesperado"
+
+#: ../common/parse_manifest.c:417
+msgid "expected version indicator"
+msgstr "se esperaba indicador de versión"
+
+#: ../common/parse_manifest.c:453
+msgid "unrecognized top-level field"
+msgstr "campo de nivel superior no reconocido"
+
+#: ../common/parse_manifest.c:472
+msgid "unexpected file field"
+msgstr "campo de archivo inesperado"
+
+#: ../common/parse_manifest.c:486
+msgid "unexpected WAL range field"
+msgstr "campo de rango de WAL inesperado"
+
+#: ../common/parse_manifest.c:492
+msgid "unexpected object field"
+msgstr "campo de objeto inesperado"
+
+#: ../common/parse_manifest.c:582
+msgid "unexpected scalar"
+msgstr "escalar inesperado"
+
+#: ../common/parse_manifest.c:608
+msgid "manifest version not an integer"
+msgstr "la versión de manifiesto no es un número entero"
+
+#: ../common/parse_manifest.c:612
+msgid "unexpected manifest version"
+msgstr "versión de manifiesto inesperada"
+
+#: ../common/parse_manifest.c:636
+msgid "system identifier in manifest not an integer"
+msgstr "el identificador de sistema en el manifiesto no es un número entero"
+
+#: ../common/parse_manifest.c:661
+msgid "missing path name"
+msgstr "ruta de archivo faltante"
+
+#: ../common/parse_manifest.c:664
+msgid "both path name and encoded path name"
+msgstr "hay ambos ruta de archivo (path name) y ruta codificada (encoded path name)"
+
+#: ../common/parse_manifest.c:666
+msgid "missing size"
+msgstr "tamaño faltante"
+
+#: ../common/parse_manifest.c:669
+msgid "checksum without algorithm"
+msgstr "suma de comprobación sin algoritmo"
+
+#: ../common/parse_manifest.c:683
+msgid "could not decode file name"
+msgstr "no se pudo decodificar el nombre del archivo"
+
+#: ../common/parse_manifest.c:693
+msgid "file size is not an integer"
+msgstr "el tamaño del archivo no es un número entero"
+
+#: ../common/parse_manifest.c:699 backup/basebackup.c:870
+#, c-format
+msgid "unrecognized checksum algorithm: \"%s\""
+msgstr "algoritmo de suma de comprobación no reconocido: \"%s\""
+
+#: ../common/parse_manifest.c:718
+#, c-format
+msgid "invalid checksum for file \"%s\": \"%s\""
+msgstr "suma de comprobación no válida para el archivo \"%s\": \"%s\""
+
+#: ../common/parse_manifest.c:761
+msgid "missing timeline"
+msgstr "falta el timeline"
+
+#: ../common/parse_manifest.c:763
+msgid "missing start LSN"
+msgstr "falta el LSN de inicio"
+
+#: ../common/parse_manifest.c:765
+msgid "missing end LSN"
+msgstr "falta el LSN de término"
+
+#: ../common/parse_manifest.c:771
+msgid "timeline is not an integer"
+msgstr "el timeline no es un número entero"
+
+#: ../common/parse_manifest.c:774
+msgid "could not parse start LSN"
+msgstr "no se pudo interpretar el LSN de inicio"
+
+#: ../common/parse_manifest.c:777
+msgid "could not parse end LSN"
+msgstr "no se pudo interpretar el LSN de término"
+
+#: ../common/parse_manifest.c:842
+msgid "expected at least 2 lines"
+msgstr "esperado al menos 2 líneas"
+
+#: ../common/parse_manifest.c:845
+msgid "last line not newline-terminated"
+msgstr "última línea no termina en nueva línea"
+
+#: ../common/parse_manifest.c:864
+#, c-format
+msgid "could not finalize checksum of manifest"
+msgstr "no se pudo finalizar la suma de verificación del manifiesto"
+
+#: ../common/parse_manifest.c:868
+#, c-format
+msgid "manifest has no checksum"
+msgstr "el manifiesto no tiene suma de comprobación"
+
+#: ../common/parse_manifest.c:872
+#, c-format
+msgid "invalid manifest checksum: \"%s\""
+msgstr "suma de comprobación de manifiesto no válida: \"%s\""
+
+#: ../common/parse_manifest.c:876
+#, c-format
+msgid "manifest checksum mismatch"
+msgstr "discordancia en la suma de comprobación del manifiesto"
+
+#: ../common/parse_manifest.c:891
+#, c-format
+msgid "could not parse backup manifest: %s"
+msgstr "no se pudo analizar el manifiesto de la copia de seguridad: %s"
+
 #: ../common/percentrepl.c:79 ../common/percentrepl.c:85
 #: ../common/percentrepl.c:118 ../common/percentrepl.c:124
-#: postmaster/postmaster.c:2208 utils/misc/guc.c:3118 utils/misc/guc.c:3154
-#: utils/misc/guc.c:3224 utils/misc/guc.c:4547 utils/misc/guc.c:6721
-#: utils/misc/guc.c:6762
+#: tcop/backend_startup.c:741 utils/misc/guc.c:3167 utils/misc/guc.c:3208
+#: utils/misc/guc.c:3283 utils/misc/guc.c:4712 utils/misc/guc.c:6931
+#: utils/misc/guc.c:6972
 #, c-format
 msgid "invalid value for parameter \"%s\": \"%s\""
 msgstr "valor no válido para el parámetro «%s»: «%s»"
@@ -510,10 +715,9 @@ msgid "String ends unexpectedly after escape character \"%%\"."
 msgstr "La cadena termina inesperadamente luego del carácter de escape: «%%»"
 
 #: ../common/percentrepl.c:119 ../common/percentrepl.c:125
-#, fuzzy, c-format
-#| msgid "String contains unexpected escape sequence \"%c\"."
+#, c-format
 msgid "String contains unexpected placeholder \"%%%c\"."
-msgstr "La cadena contiene la secuencia de escape inesperada «%c»."
+msgstr "La cadena contiene la secuencia de reemplazo inesperada «%c»."
 
 #: ../common/pgfnames.c:74
 #, c-format
@@ -560,45 +764,45 @@ msgstr "no se pudo re-ejecutar con el token restringido: código de error %lu"
 msgid "could not get exit code from subprocess: error code %lu"
 msgstr "no se pudo obtener el código de salida del subproceso»: código de error %lu"
 
-#: ../common/rmtree.c:95 access/heap/rewriteheap.c:1248
-#: access/transam/twophase.c:1703 access/transam/xlogarchive.c:120
-#: access/transam/xlogarchive.c:393 postmaster/postmaster.c:1143
-#: postmaster/syslogger.c:1537 replication/logical/origin.c:591
-#: replication/logical/reorderbuffer.c:4526
-#: replication/logical/snapbuild.c:1691 replication/logical/snapbuild.c:2121
-#: replication/slot.c:1902 storage/file/fd.c:789 storage/file/fd.c:3275
-#: storage/file/fd.c:3337 storage/file/reinit.c:262 storage/ipc/dsm.c:316
-#: storage/smgr/md.c:380 storage/smgr/md.c:439 storage/sync/sync.c:250
-#: utils/time/snapmgr.c:1608
+#: ../common/rmtree.c:97 access/heap/rewriteheap.c:1214
+#: access/transam/twophase.c:1717 access/transam/xlogarchive.c:119
+#: access/transam/xlogarchive.c:399 postmaster/postmaster.c:1048
+#: postmaster/syslogger.c:1488 replication/logical/origin.c:591
+#: replication/logical/reorderbuffer.c:4589
+#: replication/logical/snapbuild.c:1712 replication/logical/snapbuild.c:2146
+#: replication/slot.c:2192 storage/file/fd.c:878 storage/file/fd.c:3378
+#: storage/file/fd.c:3440 storage/file/reinit.c:261 storage/ipc/dsm.c:343
+#: storage/smgr/md.c:381 storage/smgr/md.c:440 storage/sync/sync.c:243
+#: utils/time/snapmgr.c:1591
 #, c-format
 msgid "could not remove file \"%s\": %m"
 msgstr "no se pudo eliminar el archivo «%s»: %m"
 
-#: ../common/rmtree.c:122 commands/tablespace.c:773 commands/tablespace.c:786
-#: commands/tablespace.c:821 commands/tablespace.c:911 storage/file/fd.c:3267
-#: storage/file/fd.c:3676
+#: ../common/rmtree.c:124 commands/tablespace.c:767 commands/tablespace.c:780
+#: commands/tablespace.c:815 commands/tablespace.c:905 storage/file/fd.c:3370
+#: storage/file/fd.c:3779
 #, c-format
 msgid "could not remove directory \"%s\": %m"
 msgstr "no se pudo eliminar el directorio «%s»: %m"
 
-#: ../common/scram-common.c:271
+#: ../common/scram-common.c:281
 msgid "could not encode salt"
 msgstr "no se pudo codificar la sal"
 
-#: ../common/scram-common.c:287
+#: ../common/scram-common.c:297
 msgid "could not encode stored key"
 msgstr "no se pudo codificar la llave almacenada"
 
-#: ../common/scram-common.c:304
+#: ../common/scram-common.c:314
 msgid "could not encode server key"
 msgstr "no se pudo codificar la llave del servidor"
 
-#: ../common/stringinfo.c:306
+#: ../common/stringinfo.c:315
 #, c-format
 msgid "Cannot enlarge string buffer containing %d bytes by %d more bytes."
 msgstr "No se puede agrandar el búfer de cadena que ya tiene %d bytes en %d bytes adicionales."
 
-#: ../common/stringinfo.c:310
+#: ../common/stringinfo.c:319
 #, c-format
 msgid ""
 "out of memory\n"
@@ -614,7 +818,7 @@ msgstr ""
 msgid "could not look up effective user ID %ld: %s"
 msgstr "no se pudo encontrar el ID de usuario efectivo %ld: %s"
 
-#: ../common/username.c:45 libpq/auth.c:1881
+#: ../common/username.c:45 libpq/auth.c:1888
 msgid "user does not exist"
 msgstr "usuario no existe"
 
@@ -706,22 +910,22 @@ msgstr "Reintentando durante 30 segundos."
 msgid "You might have antivirus, backup, or similar software interfering with the database system."
 msgstr "Es posible que tenga antivirus, sistema de respaldos, o software similar interfiriendo con el sistema de bases de datos."
 
-#: ../port/path.c:775
+#: ../port/path.c:852
 #, c-format
-msgid "could not get current working directory: %s\n"
-msgstr "no se pudo obtener el directorio de trabajo actual: %s\n"
+msgid "could not get current working directory: %m\n"
+msgstr "no se pudo obtener el directorio de trabajo actual: %m\n"
 
 #: ../port/strerror.c:72
 #, c-format
 msgid "operating system error %d"
 msgstr "error %d de sistema operativo"
 
-#: ../port/thread.c:50 ../port/thread.c:86
+#: ../port/user.c:43 ../port/user.c:79
 #, c-format
 msgid "could not look up local user ID %d: %s"
 msgstr "no se pudo buscar el usuario local de ID %d: %s"
 
-#: ../port/thread.c:55 ../port/thread.c:91
+#: ../port/user.c:48 ../port/user.c:84
 #, c-format
 msgid "local user with ID %d does not exist"
 msgstr "no existe un usuario local con ID %d"
@@ -741,115 +945,104 @@ msgstr "no se pudo obtener el SID del grupo PowerUsers: código de error %lu\n"
 msgid "could not check access token membership: error code %lu\n"
 msgstr "no se pudo verificar el token de proceso: código de error %lu\n"
 
-#: access/brin/brin.c:216
+#: access/brin/brin.c:405
 #, c-format
 msgid "request for BRIN range summarization for index \"%s\" page %u was not recorded"
 msgstr "petición para sumarización BRIN de rango para el índice «%s» página %u no fue registrada"
 
-#: access/brin/brin.c:1036 access/brin/brin.c:1137 access/gin/ginfast.c:1035
-#: access/transam/xlogfuncs.c:189 access/transam/xlogfuncs.c:214
-#: access/transam/xlogfuncs.c:247 access/transam/xlogfuncs.c:286
-#: access/transam/xlogfuncs.c:307 access/transam/xlogfuncs.c:328
-#: access/transam/xlogfuncs.c:398 access/transam/xlogfuncs.c:456
+#: access/brin/brin.c:1385 access/brin/brin.c:1493 access/gin/ginfast.c:1040
+#: access/transam/xlogfuncs.c:183 access/transam/xlogfuncs.c:208
+#: access/transam/xlogfuncs.c:241 access/transam/xlogfuncs.c:280
+#: access/transam/xlogfuncs.c:301 access/transam/xlogfuncs.c:322
+#: access/transam/xlogfuncs.c:388 access/transam/xlogfuncs.c:446
 #, c-format
 msgid "recovery is in progress"
 msgstr "la recuperación está en proceso"
 
-#: access/brin/brin.c:1037 access/brin/brin.c:1138
+#: access/brin/brin.c:1386 access/brin/brin.c:1494
 #, c-format
 msgid "BRIN control functions cannot be executed during recovery."
 msgstr "Las funciones de control de BRIN no pueden ejecutarse durante la recuperación."
 
-#: access/brin/brin.c:1042 access/brin/brin.c:1143
+#: access/brin/brin.c:1391 access/brin/brin.c:1499
 #, c-format
 msgid "block number out of range: %lld"
 msgstr "número de bloque fuera de rango: %lld"
 
-#: access/brin/brin.c:1086 access/brin/brin.c:1169
+#: access/brin/brin.c:1436 access/brin/brin.c:1525
 #, c-format
 msgid "\"%s\" is not a BRIN index"
 msgstr "«%s» no es un índice BRIN"
 
-#: access/brin/brin.c:1102 access/brin/brin.c:1185
+#: access/brin/brin.c:1452 access/brin/brin.c:1541
 #, c-format
 msgid "could not open parent table of index \"%s\""
 msgstr "no se pudo abrir la tabla padre del índice «%s»"
 
-#: access/brin/brin_bloom.c:750 access/brin/brin_bloom.c:792
-#: access/brin/brin_minmax_multi.c:3011 access/brin/brin_minmax_multi.c:3148
-#: statistics/dependencies.c:663 statistics/dependencies.c:716
-#: statistics/mcv.c:1484 statistics/mcv.c:1515 statistics/mvdistinct.c:344
-#: statistics/mvdistinct.c:397 utils/adt/pseudotypes.c:43
-#: utils/adt/pseudotypes.c:77 utils/adt/tsgistidx.c:93
+#: access/brin/brin.c:1461 access/brin/brin.c:1557 access/gin/ginfast.c:1085
+#: parser/parse_utilcmd.c:2277
 #, c-format
-msgid "cannot accept a value of type %s"
-msgstr "no se puede aceptar un valor de tipo %s"
+msgid "index \"%s\" is not valid"
+msgstr "el índice «%s» no es válido"
 
-#: access/brin/brin_minmax_multi.c:2171 access/brin/brin_minmax_multi.c:2178
-#: access/brin/brin_minmax_multi.c:2185 utils/adt/timestamp.c:941
-#: utils/adt/timestamp.c:1518 utils/adt/timestamp.c:2708
-#: utils/adt/timestamp.c:2778 utils/adt/timestamp.c:2795
-#: utils/adt/timestamp.c:2848 utils/adt/timestamp.c:2887
-#: utils/adt/timestamp.c:3184 utils/adt/timestamp.c:3189
-#: utils/adt/timestamp.c:3194 utils/adt/timestamp.c:3244
-#: utils/adt/timestamp.c:3251 utils/adt/timestamp.c:3258
-#: utils/adt/timestamp.c:3278 utils/adt/timestamp.c:3285
-#: utils/adt/timestamp.c:3292 utils/adt/timestamp.c:3322
-#: utils/adt/timestamp.c:3330 utils/adt/timestamp.c:3374
-#: utils/adt/timestamp.c:3796 utils/adt/timestamp.c:3920
-#: utils/adt/timestamp.c:4440
+#: access/brin/brin_bloom.c:783 access/brin/brin_bloom.c:825
+#: access/brin/brin_minmax_multi.c:2993 access/brin/brin_minmax_multi.c:3130
+#: statistics/dependencies.c:661 statistics/dependencies.c:714
+#: statistics/mcv.c:1480 statistics/mcv.c:1511 statistics/mvdistinct.c:343
+#: statistics/mvdistinct.c:396 utils/adt/pseudotypes.c:40
+#: utils/adt/pseudotypes.c:74 utils/adt/tsgistidx.c:94
 #, c-format
-msgid "interval out of range"
-msgstr "interval fuera de rango"
+msgid "cannot accept a value of type %s"
+msgstr "no se puede aceptar un valor de tipo %s"
 
-#: access/brin/brin_pageops.c:76 access/brin/brin_pageops.c:362
-#: access/brin/brin_pageops.c:852 access/gin/ginentrypage.c:110
-#: access/gist/gist.c:1442 access/spgist/spgdoinsert.c:2002
-#: access/spgist/spgdoinsert.c:2279
+#: access/brin/brin_pageops.c:75 access/brin/brin_pageops.c:361
+#: access/brin/brin_pageops.c:851 access/gin/ginentrypage.c:109
+#: access/gist/gist.c:1463 access/spgist/spgdoinsert.c:2001
+#: access/spgist/spgdoinsert.c:2278
 #, c-format
 msgid "index row size %zu exceeds maximum %zu for index \"%s\""
 msgstr "el tamaño de fila de índice %zu excede el máximo %zu para el índice «%s»"
 
-#: access/brin/brin_revmap.c:393 access/brin/brin_revmap.c:399
+#: access/brin/brin_revmap.c:383 access/brin/brin_revmap.c:389
 #, c-format
 msgid "corrupted BRIN index: inconsistent range map"
 msgstr "índice BRIN corrompido: mapa de rango inconsistente"
 
-#: access/brin/brin_revmap.c:593
+#: access/brin/brin_revmap.c:583
 #, c-format
 msgid "unexpected page type 0x%04X in BRIN index \"%s\" block %u"
 msgstr "tipo de página 0x%04X inesperado en el índice BRIN «%s» bloque %u"
 
-#: access/brin/brin_validate.c:118 access/gin/ginvalidate.c:151
-#: access/gist/gistvalidate.c:153 access/hash/hashvalidate.c:139
+#: access/brin/brin_validate.c:118 access/gin/ginvalidate.c:149
+#: access/gist/gistvalidate.c:152 access/hash/hashvalidate.c:139
 #: access/nbtree/nbtvalidate.c:120 access/spgist/spgvalidate.c:189
 #, c-format
 msgid "operator family \"%s\" of access method %s contains function %s with invalid support number %d"
 msgstr "familia de operadores «%s» de método de acceso %s contiene la función %s con número de soporte %d no válido"
 
-#: access/brin/brin_validate.c:134 access/gin/ginvalidate.c:163
-#: access/gist/gistvalidate.c:165 access/hash/hashvalidate.c:118
+#: access/brin/brin_validate.c:134 access/gin/ginvalidate.c:161
+#: access/gist/gistvalidate.c:164 access/hash/hashvalidate.c:118
 #: access/nbtree/nbtvalidate.c:132 access/spgist/spgvalidate.c:201
 #, c-format
 msgid "operator family \"%s\" of access method %s contains function %s with wrong signature for support number %d"
 msgstr "familia de operadores «%s» de método de acceso %s contiene la función %s con signatura incorrecta para el número de soporte %d"
 
-#: access/brin/brin_validate.c:156 access/gin/ginvalidate.c:182
-#: access/gist/gistvalidate.c:185 access/hash/hashvalidate.c:160
+#: access/brin/brin_validate.c:156 access/gin/ginvalidate.c:180
+#: access/gist/gistvalidate.c:184 access/hash/hashvalidate.c:160
 #: access/nbtree/nbtvalidate.c:152 access/spgist/spgvalidate.c:221
 #, c-format
 msgid "operator family \"%s\" of access method %s contains operator %s with invalid strategy number %d"
 msgstr "familia de operadores «%s» de método de acceso %s contiene el operador %s con número de estrategia %d no válido"
 
-#: access/brin/brin_validate.c:185 access/gin/ginvalidate.c:195
+#: access/brin/brin_validate.c:185 access/gin/ginvalidate.c:193
 #: access/hash/hashvalidate.c:173 access/nbtree/nbtvalidate.c:165
 #: access/spgist/spgvalidate.c:237
 #, c-format
 msgid "operator family \"%s\" of access method %s contains invalid ORDER BY specification for operator %s"
 msgstr "familia de operadores «%s» de método de acceso %s contiene especificación ORDER BY no válida para el operador %s"
 
-#: access/brin/brin_validate.c:198 access/gin/ginvalidate.c:208
-#: access/gist/gistvalidate.c:233 access/hash/hashvalidate.c:186
+#: access/brin/brin_validate.c:198 access/gin/ginvalidate.c:206
+#: access/gist/gistvalidate.c:232 access/hash/hashvalidate.c:186
 #: access/nbtree/nbtvalidate.c:178 access/spgist/spgvalidate.c:253
 #, c-format
 msgid "operator family \"%s\" of access method %s contains operator %s with wrong signature"
@@ -872,38 +1065,38 @@ msgstr "la(s) función/funciones de soporte para los tipos %3$s y %4$s faltan de
 msgid "operator class \"%s\" of access method %s is missing operator(s)"
 msgstr "faltan operadores de la clase de operadores «%s» del método de acceso %s"
 
-#: access/brin/brin_validate.c:270 access/gin/ginvalidate.c:250
-#: access/gist/gistvalidate.c:274
+#: access/brin/brin_validate.c:270 access/gin/ginvalidate.c:248
+#: access/gist/gistvalidate.c:273
 #, c-format
 msgid "operator class \"%s\" of access method %s is missing support function %d"
 msgstr "falta la función de soporte %3$d de la clase de operadores «%1$s» del método de acceso %2$s"
 
-#: access/common/attmap.c:122
+#: access/common/attmap.c:121
 #, c-format
 msgid "Returned type %s does not match expected type %s in column %d."
 msgstr "El tipo retornado %s no coincide con el tipo de registro esperado %s en la columna %d."
 
-#: access/common/attmap.c:150
+#: access/common/attmap.c:149
 #, c-format
 msgid "Number of returned columns (%d) does not match expected column count (%d)."
 msgstr "La cantidad de columnas retornadas (%d) no coincide con la cantidad esperada de columnas (%d)."
 
-#: access/common/attmap.c:234 access/common/attmap.c:246
+#: access/common/attmap.c:233 access/common/attmap.c:245
 #, c-format
 msgid "could not convert row type"
 msgstr "no se pudo convertir el tipo de registro"
 
-#: access/common/attmap.c:235
+#: access/common/attmap.c:234
 #, c-format
 msgid "Attribute \"%s\" of type %s does not match corresponding attribute of type %s."
 msgstr "El atributo «%s» de tipo %s no coincide con el atributo correspondiente de tipo %s."
 
-#: access/common/attmap.c:247
+#: access/common/attmap.c:246
 #, c-format
 msgid "Attribute \"%s\" of type %s does not exist in type %s."
 msgstr "El atributo «%s» de tipo %s no existe en el tipo %s."
 
-#: access/common/heaptuple.c:1036 access/common/heaptuple.c:1371
+#: access/common/heaptuple.c:1132 access/common/heaptuple.c:1467
 #, c-format
 msgid "number of columns (%d) exceeds limit (%d)"
 msgstr "el número de columnas (%d) excede el límite (%d)"
@@ -913,124 +1106,110 @@ msgstr "el número de columnas (%d) excede el límite (%d)"
 msgid "number of index columns (%d) exceeds limit (%d)"
 msgstr "el número de columnas del índice (%d) excede el límite (%d)"
 
-#: access/common/indextuple.c:209 access/spgist/spgutils.c:950
+#: access/common/indextuple.c:209 access/spgist/spgutils.c:970
 #, c-format
 msgid "index row requires %zu bytes, maximum size is %zu"
 msgstr "fila de índice requiere %zu bytes, tamaño máximo es %zu"
 
-#: access/common/printtup.c:292 tcop/fastpath.c:107 tcop/fastpath.c:454
-#: tcop/postgres.c:1944
+#: access/common/printtup.c:292 commands/explain.c:5376 tcop/fastpath.c:107
+#: tcop/fastpath.c:454 tcop/postgres.c:1956
 #, c-format
 msgid "unsupported format code: %d"
 msgstr "código de formato no soportado: %d"
 
-#: access/common/reloptions.c:521 access/common/reloptions.c:532
+#: access/common/reloptions.c:519 access/common/reloptions.c:530
 msgid "Valid values are \"on\", \"off\", and \"auto\"."
 msgstr "Los valores aceptables son «on», «off» y «auto»."
 
-#: access/common/reloptions.c:543
+#: access/common/reloptions.c:541
 msgid "Valid values are \"local\" and \"cascaded\"."
 msgstr "Los valores aceptables son «local» y «cascaded»."
 
-#: access/common/reloptions.c:691
+#: access/common/reloptions.c:689
 #, c-format
 msgid "user-defined relation parameter types limit exceeded"
 msgstr "el límite de tipos de parámetros de relación definidos por el usuario ha sido excedido"
 
-#: access/common/reloptions.c:1233
+#: access/common/reloptions.c:1231
 #, c-format
 msgid "RESET must not include values for parameters"
 msgstr "RESET no debe incluir valores de parámetros"
 
-#: access/common/reloptions.c:1265
+#: access/common/reloptions.c:1263
 #, c-format
 msgid "unrecognized parameter namespace \"%s\""
 msgstr "espacio de nombre de parámetro «%s» no reconocido"
 
-#: access/common/reloptions.c:1302 commands/variable.c:1167
+#: access/common/reloptions.c:1300 commands/variable.c:1214
 #, c-format
 msgid "tables declared WITH OIDS are not supported"
 msgstr "las tablas declaradas WITH OIDS no están soportadas"
 
-#: access/common/reloptions.c:1470
+#: access/common/reloptions.c:1468
 #, c-format
 msgid "unrecognized parameter \"%s\""
 msgstr "parámetro «%s» no reconocido"
 
-#: access/common/reloptions.c:1582
+#: access/common/reloptions.c:1580
 #, c-format
 msgid "parameter \"%s\" specified more than once"
 msgstr "el parámetro «%s» fue especificado más de una vez"
 
-#: access/common/reloptions.c:1598
+#: access/common/reloptions.c:1596
 #, c-format
 msgid "invalid value for boolean option \"%s\": %s"
 msgstr "valor no válido para la opción booleana «%s»: «%s»"
 
-#: access/common/reloptions.c:1610
+#: access/common/reloptions.c:1608
 #, c-format
 msgid "invalid value for integer option \"%s\": %s"
 msgstr "valor no válido para la opción entera «%s»: «%s»"
 
-#: access/common/reloptions.c:1616 access/common/reloptions.c:1636
+#: access/common/reloptions.c:1614 access/common/reloptions.c:1634
 #, c-format
 msgid "value %s out of bounds for option \"%s\""
 msgstr "el valor %s está fuera del rango de la opción «%s»"
 
-#: access/common/reloptions.c:1618
+#: access/common/reloptions.c:1616
 #, c-format
 msgid "Valid values are between \"%d\" and \"%d\"."
 msgstr "Los valores aceptables están entre «%d» y «%d»."
 
-#: access/common/reloptions.c:1630
+#: access/common/reloptions.c:1628
 #, c-format
 msgid "invalid value for floating point option \"%s\": %s"
 msgstr "valor no válido para la opción de coma flotante «%s»: «%s»"
 
-#: access/common/reloptions.c:1638
+#: access/common/reloptions.c:1636
 #, c-format
 msgid "Valid values are between \"%f\" and \"%f\"."
 msgstr "Valores aceptables están entre «%f» y «%f»."
 
-#: access/common/reloptions.c:1660
+#: access/common/reloptions.c:1658
 #, c-format
 msgid "invalid value for enum option \"%s\": %s"
 msgstr "valor no válido para la opción enum «%s»: %s"
 
-#: access/common/reloptions.c:1991
-#, fuzzy, c-format
-#| msgid "cannot truncate only a partitioned table"
+#: access/common/reloptions.c:1989
+#, c-format
 msgid "cannot specify storage parameters for a partitioned table"
-msgstr "no se puede truncar ONLY una tabla particionada"
+msgstr "no se puede especificar parámetros de almacenamiento para una tabla particionada"
 
-#: access/common/reloptions.c:1992
+#: access/common/reloptions.c:1990
 #, c-format
-msgid "Specify storage parameters for its leaf partitions, instead."
-msgstr ""
+msgid "Specify storage parameters for its leaf partitions instead."
+msgstr "Especifique parámetros de almacenamiento para sus particiones hijas en su lugar."
 
-#: access/common/toast_compression.c:33
+#: access/common/toast_compression.c:31
 #, c-format
 msgid "compression method lz4 not supported"
 msgstr "el método de compresión lz4 no está soportado"
 
-#: access/common/toast_compression.c:34
+#: access/common/toast_compression.c:32
 #, c-format
 msgid "This functionality requires the server to be built with lz4 support."
 msgstr "Esta funcionalidad requiere que el servidor haya sido construido con soporte lz4."
 
-#: access/common/tupdesc.c:837 commands/tablecmds.c:6953
-#: commands/tablecmds.c:12973
-#, fuzzy, c-format
-#| msgid "mismatched array dimensions"
-msgid "too many array dimensions"
-msgstr "las dimensiones de array no coinciden"
-
-#: access/common/tupdesc.c:842 parser/parse_clause.c:772
-#: parser/parse_relation.c:1912
-#, c-format
-msgid "column \"%s\" cannot be declared SETOF"
-msgstr "la columna «%s» no puede ser declarada SETOF"
-
 #: access/gin/ginbulk.c:44
 #, c-format
 msgid "posting list is too long"
@@ -1038,20 +1217,20 @@ msgstr "la «posting list» es demasiado larga"
 
 #: access/gin/ginbulk.c:45
 #, c-format
-msgid "Reduce maintenance_work_mem."
-msgstr "Reduzca maintenance_work_mem."
+msgid "Reduce \"maintenance_work_mem\"."
+msgstr "Reduzca «maintenance_work_mem»."
 
-#: access/gin/ginfast.c:1036
+#: access/gin/ginfast.c:1041
 #, c-format
 msgid "GIN pending list cannot be cleaned up during recovery."
 msgstr "La lista de pendientes GIN no puede limpiarse durante la recuperación."
 
-#: access/gin/ginfast.c:1043
+#: access/gin/ginfast.c:1048
 #, c-format
 msgid "\"%s\" is not a GIN index"
 msgstr "«%s» no es un índice GIN"
 
-#: access/gin/ginfast.c:1054
+#: access/gin/ginfast.c:1059
 #, c-format
 msgid "cannot access temporary indexes of other sessions"
 msgstr "no se pueden acceder índices temporales de otras sesiones"
@@ -1071,50 +1250,50 @@ msgstr "los índices GIN antiguos no soportan recorridos del índice completo ni
 msgid "To fix this, do REINDEX INDEX \"%s\"."
 msgstr "Para corregir esto, ejecute REINDEX INDEX \"%s\"."
 
-#: access/gin/ginutil.c:146 executor/execExpr.c:2169
-#: utils/adt/arrayfuncs.c:3996 utils/adt/arrayfuncs.c:6683
-#: utils/adt/rowtypes.c:984
+#: access/gin/ginutil.c:147 executor/execExpr.c:2200
+#: utils/adt/arrayfuncs.c:4016 utils/adt/arrayfuncs.c:6712
+#: utils/adt/rowtypes.c:974
 #, c-format
 msgid "could not identify a comparison function for type %s"
 msgstr "no se pudo identificar una función de comparación para el tipo %s"
 
-#: access/gin/ginvalidate.c:92 access/gist/gistvalidate.c:93
+#: access/gin/ginvalidate.c:90 access/gist/gistvalidate.c:92
 #: access/hash/hashvalidate.c:102 access/spgist/spgvalidate.c:102
 #, c-format
 msgid "operator family \"%s\" of access method %s contains support function %s with different left and right input types"
 msgstr "la familia de operadores «%s» del método de acceso %s contiene el procedimiento de soporte %s registrado entre tipos distintos"
 
-#: access/gin/ginvalidate.c:260
+#: access/gin/ginvalidate.c:258
 #, c-format
 msgid "operator class \"%s\" of access method %s is missing support function %d or %d"
 msgstr "falta la función de soporte %3$d o %4$d de la clase de operadores «%1$s» del método de accesso %2$s"
 
-#: access/gin/ginvalidate.c:333 access/gist/gistvalidate.c:350
+#: access/gin/ginvalidate.c:331 access/gist/gistvalidate.c:349
 #: access/spgist/spgvalidate.c:387
 #, c-format
 msgid "support function number %d is invalid for access method %s"
 msgstr "el número de función de soporte %d no es válido para el método de acceso %s"
 
-#: access/gist/gist.c:759 access/gist/gistvacuum.c:426
+#: access/gist/gist.c:760 access/gist/gistvacuum.c:426
 #, c-format
 msgid "index \"%s\" contains an inner tuple marked as invalid"
 msgstr "el índice «%s» contiene una tupla interna marcada como no válida"
 
-#: access/gist/gist.c:761 access/gist/gistvacuum.c:428
+#: access/gist/gist.c:762 access/gist/gistvacuum.c:428
 #, c-format
 msgid "This is caused by an incomplete page split at crash recovery before upgrading to PostgreSQL 9.1."
 msgstr "Esto es causado por una división de página incompleta durante una recuperación antes de actualizar a PostgreSQL 9.1."
 
-#: access/gist/gist.c:762 access/gist/gistutil.c:801 access/gist/gistutil.c:812
-#: access/gist/gistvacuum.c:429 access/hash/hashutil.c:227
-#: access/hash/hashutil.c:238 access/hash/hashutil.c:250
-#: access/hash/hashutil.c:271 access/nbtree/nbtpage.c:809
-#: access/nbtree/nbtpage.c:820
+#: access/gist/gist.c:763 access/gist/gistutil.c:800 access/gist/gistutil.c:811
+#: access/gist/gistvacuum.c:429 access/hash/hashutil.c:226
+#: access/hash/hashutil.c:237 access/hash/hashutil.c:249
+#: access/hash/hashutil.c:270 access/nbtree/nbtpage.c:813
+#: access/nbtree/nbtpage.c:824
 #, c-format
 msgid "Please REINDEX it."
 msgstr "Por favor aplíquele REINDEX."
 
-#: access/gist/gist.c:1176
+#: access/gist/gist.c:1196
 #, c-format
 msgid "fixing incomplete split in index \"%s\", block %u"
 msgstr "arreglando división incompleta en el índice «%s», bloque %u"
@@ -1129,52 +1308,52 @@ msgstr "el método picksplit para la columna %d del índice «%s» falló"
 msgid "The index is not optimal. To optimize it, contact a developer, or try to use the column as the second one in the CREATE INDEX command."
 msgstr "El índice no es óptimo.  Para optimizarlo, contacte un desarrollador o trate de usar la columna en segunda posición en la orden CREATE INDEX."
 
-#: access/gist/gistutil.c:798 access/hash/hashutil.c:224
-#: access/nbtree/nbtpage.c:806
+#: access/gist/gistutil.c:797 access/hash/hashutil.c:223
+#: access/nbtree/nbtpage.c:810
 #, c-format
 msgid "index \"%s\" contains unexpected zero page at block %u"
 msgstr "índice «%s» contiene páginas vacías no esperadas en el bloque %u"
 
-#: access/gist/gistutil.c:809 access/hash/hashutil.c:235
-#: access/hash/hashutil.c:247 access/nbtree/nbtpage.c:817
+#: access/gist/gistutil.c:808 access/hash/hashutil.c:234
+#: access/hash/hashutil.c:246 access/nbtree/nbtpage.c:821
 #, c-format
 msgid "index \"%s\" contains corrupted page at block %u"
 msgstr "el índice «%s» contiene una página corrupta en el bloque %u"
 
-#: access/gist/gistvalidate.c:203
+#: access/gist/gistvalidate.c:202
 #, c-format
 msgid "operator family \"%s\" of access method %s contains unsupported ORDER BY specification for operator %s"
 msgstr "la familia de operadores «%s» del método de acceso %s contiene una especificación ORDER BY no soportada para el operador %s"
 
-#: access/gist/gistvalidate.c:214
+#: access/gist/gistvalidate.c:213
 #, c-format
 msgid "operator family \"%s\" of access method %s contains incorrect ORDER BY opfamily specification for operator %s"
 msgstr "la familia de operadores «%s» del método de acceso %s contiene una especificación de familia en ORDER BY incorrecta para el operador %s"
 
-#: access/hash/hashfunc.c:279 access/hash/hashfunc.c:333
-#: utils/adt/varchar.c:1009 utils/adt/varchar.c:1064
+#: access/hash/hashfunc.c:277 access/hash/hashfunc.c:333
+#: utils/adt/varchar.c:1008 utils/adt/varchar.c:1065
 #, c-format
 msgid "could not determine which collation to use for string hashing"
 msgstr "no se pudo determinar qué ordenamiento usar para el hashing de cadenas"
 
-#: access/hash/hashfunc.c:280 access/hash/hashfunc.c:334 catalog/heap.c:668
-#: catalog/heap.c:674 commands/createas.c:206 commands/createas.c:515
-#: commands/indexcmds.c:2023 commands/tablecmds.c:17490 commands/view.c:86
-#: regex/regc_pg_locale.c:243 utils/adt/formatting.c:1648
-#: utils/adt/formatting.c:1770 utils/adt/formatting.c:1893 utils/adt/like.c:191
-#: utils/adt/like_support.c:1025 utils/adt/varchar.c:739
-#: utils/adt/varchar.c:1010 utils/adt/varchar.c:1065 utils/adt/varlena.c:1518
+#: access/hash/hashfunc.c:278 access/hash/hashfunc.c:334 catalog/heap.c:672
+#: catalog/heap.c:678 commands/createas.c:201 commands/createas.c:508
+#: commands/indexcmds.c:2021 commands/tablecmds.c:18178 commands/view.c:81
+#: regex/regc_pg_locale.c:245 utils/adt/formatting.c:1653
+#: utils/adt/formatting.c:1801 utils/adt/formatting.c:1991 utils/adt/like.c:189
+#: utils/adt/like_support.c:1024 utils/adt/varchar.c:738
+#: utils/adt/varchar.c:1009 utils/adt/varchar.c:1066 utils/adt/varlena.c:1521
 #, c-format
 msgid "Use the COLLATE clause to set the collation explicitly."
 msgstr "Use la cláusula COLLATE para establecer el ordenamiento explícitamente."
 
-#: access/hash/hashinsert.c:86
+#: access/hash/hashinsert.c:84
 #, c-format
 msgid "index row size %zu exceeds hash maximum %zu"
 msgstr "el tamaño de fila de índice %zu excede el máximo para hash %zu"
 
-#: access/hash/hashinsert.c:88 access/spgist/spgdoinsert.c:2006
-#: access/spgist/spgdoinsert.c:2283 access/spgist/spgutils.c:1011
+#: access/hash/hashinsert.c:86 access/spgist/spgdoinsert.c:2005
+#: access/spgist/spgdoinsert.c:2282 access/spgist/spgutils.c:1031
 #, c-format
 msgid "Values larger than a buffer page cannot be indexed."
 msgstr "Valores mayores a una página del buffer no pueden ser indexados."
@@ -1189,17 +1368,17 @@ msgstr "número no válido de bloque de «overflow» %u"
 msgid "out of overflow pages in hash index \"%s\""
 msgstr "se agotaron las páginas de desbordamiento en el índice hash «%s»"
 
-#: access/hash/hashsearch.c:315
+#: access/hash/hashsearch.c:311
 #, c-format
 msgid "hash indexes do not support whole-index scans"
 msgstr "los índices hash no soportan recorridos del índice completo"
 
-#: access/hash/hashutil.c:263
+#: access/hash/hashutil.c:262
 #, c-format
 msgid "index \"%s\" is not a hash index"
 msgstr "el índice «%s» no es un índice hash"
 
-#: access/hash/hashutil.c:269
+#: access/hash/hashutil.c:268
 #, c-format
 msgid "index \"%s\" has wrong hash version"
 msgstr "el índice «%s» tiene una versión de hash incorrecta"
@@ -1214,229 +1393,235 @@ msgstr "la familia de operadores «%s» del método de acceso %s no tiene funci
 msgid "operator family \"%s\" of access method %s is missing cross-type operator(s)"
 msgstr "faltan operadores entre tipos en la familia de operadores «%s» del método de acceso %s"
 
-#: access/heap/heapam.c:2026
+#: access/heap/heapam.c:2206
 #, c-format
 msgid "cannot insert tuples in a parallel worker"
 msgstr "no se pueden insertar tuplas en un ayudante paralelo"
 
-#: access/heap/heapam.c:2545
+#: access/heap/heapam.c:2725
 #, c-format
 msgid "cannot delete tuples during a parallel operation"
 msgstr "no se pueden eliminar tuplas durante una operación paralela"
 
-#: access/heap/heapam.c:2592
+#: access/heap/heapam.c:2772
 #, c-format
 msgid "attempted to delete invisible tuple"
 msgstr "se intentó eliminar una tupla invisible"
 
-#: access/heap/heapam.c:3035 access/heap/heapam.c:5902
+#: access/heap/heapam.c:3220 access/heap/heapam.c:6501 access/index/genam.c:818
 #, c-format
 msgid "cannot update tuples during a parallel operation"
 msgstr "no se pueden actualizar tuplas durante una operación paralela"
 
-#: access/heap/heapam.c:3163
+#: access/heap/heapam.c:3397
 #, c-format
 msgid "attempted to update invisible tuple"
 msgstr "se intentó actualizar una tupla invisible"
 
-#: access/heap/heapam.c:4550 access/heap/heapam.c:4588
-#: access/heap/heapam.c:4853 access/heap/heapam_handler.c:467
+#: access/heap/heapam.c:4908 access/heap/heapam.c:4946
+#: access/heap/heapam.c:5211 access/heap/heapam_handler.c:468
 #, c-format
 msgid "could not obtain lock on row in relation \"%s\""
-msgstr "no se pudo bloquear un candado en la fila de la relación «%s»"
+msgstr "no se pudo bloquear un “lock” en la fila de la relación «%s»"
+
+#: access/heap/heapam.c:6314 commands/trigger.c:3340
+#: executor/nodeModifyTable.c:2376 executor/nodeModifyTable.c:2467
+#, c-format
+msgid "tuple to be updated was already modified by an operation triggered by the current command"
+msgstr "el registro a ser actualizado ya fue modificado por una operación disparada por la orden actual"
 
-#: access/heap/heapam_handler.c:412
+#: access/heap/heapam_handler.c:413
 #, c-format
 msgid "tuple to be locked was already moved to another partition due to concurrent update"
 msgstr "el registro a ser bloqueado ya fue movido a otra partición por un update concurrente"
 
-#: access/heap/hio.c:517 access/heap/rewriteheap.c:659
+#: access/heap/hio.c:535 access/heap/rewriteheap.c:640
 #, c-format
 msgid "row is too big: size %zu, maximum size %zu"
 msgstr "fila es demasiado grande: tamaño %zu, tamaño máximo %zu"
 
-#: access/heap/rewriteheap.c:919
+#: access/heap/rewriteheap.c:885
 #, c-format
 msgid "could not write to file \"%s\", wrote %d of %d: %m"
 msgstr "no se pudo escribir al archivo «%s», se escribió %d de %d: %m"
 
-#: access/heap/rewriteheap.c:1011 access/heap/rewriteheap.c:1128
+#: access/heap/rewriteheap.c:977 access/heap/rewriteheap.c:1094
 #: access/transam/timeline.c:329 access/transam/timeline.c:481
-#: access/transam/xlog.c:2971 access/transam/xlog.c:3162
-#: access/transam/xlog.c:3938 access/transam/xlog.c:8740
-#: access/transam/xlogfuncs.c:702 backup/basebackup_server.c:151
-#: backup/basebackup_server.c:244 commands/dbcommands.c:518
-#: postmaster/postmaster.c:4554 postmaster/postmaster.c:5557
-#: replication/logical/origin.c:603 replication/slot.c:1770
-#: storage/file/copydir.c:157 storage/smgr/md.c:232 utils/time/snapmgr.c:1263
+#: access/transam/xlog.c:3255 access/transam/xlog.c:3446
+#: access/transam/xlog.c:4283 access/transam/xlog.c:9269
+#: access/transam/xlogfuncs.c:692 backup/basebackup_server.c:149
+#: backup/basebackup_server.c:242 commands/dbcommands.c:494
+#: postmaster/launch_backend.c:340 postmaster/postmaster.c:4114
+#: postmaster/walsummarizer.c:1212 replication/logical/origin.c:603
+#: replication/slot.c:2059 storage/file/copydir.c:157 storage/smgr/md.c:230
+#: utils/time/snapmgr.c:1234
 #, c-format
 msgid "could not create file \"%s\": %m"
 msgstr "no se pudo crear archivo «%s»: %m"
 
-#: access/heap/rewriteheap.c:1138
+#: access/heap/rewriteheap.c:1104
 #, c-format
 msgid "could not truncate file \"%s\" to %u: %m"
 msgstr "no se pudo truncar el archivo «%s» a %u: %m"
 
-#: access/heap/rewriteheap.c:1156 access/transam/timeline.c:384
+#: access/heap/rewriteheap.c:1122 access/transam/timeline.c:384
 #: access/transam/timeline.c:424 access/transam/timeline.c:498
-#: access/transam/xlog.c:3021 access/transam/xlog.c:3218
-#: access/transam/xlog.c:3950 commands/dbcommands.c:530
-#: postmaster/postmaster.c:4564 postmaster/postmaster.c:4574
+#: access/transam/xlog.c:3305 access/transam/xlog.c:3502
+#: access/transam/xlog.c:4295 commands/dbcommands.c:506
+#: postmaster/launch_backend.c:351 postmaster/launch_backend.c:363
 #: replication/logical/origin.c:615 replication/logical/origin.c:657
-#: replication/logical/origin.c:676 replication/logical/snapbuild.c:1767
-#: replication/slot.c:1805 storage/file/buffile.c:545
-#: storage/file/copydir.c:197 utils/init/miscinit.c:1605
-#: utils/init/miscinit.c:1616 utils/init/miscinit.c:1624 utils/misc/guc.c:4331
-#: utils/misc/guc.c:4362 utils/misc/guc.c:5490 utils/misc/guc.c:5508
-#: utils/time/snapmgr.c:1268 utils/time/snapmgr.c:1275
+#: replication/logical/origin.c:676 replication/logical/snapbuild.c:1788
+#: replication/slot.c:2094 storage/file/buffile.c:545
+#: storage/file/copydir.c:197 utils/init/miscinit.c:1655
+#: utils/init/miscinit.c:1666 utils/init/miscinit.c:1674 utils/misc/guc.c:4491
+#: utils/misc/guc.c:4522 utils/misc/guc.c:5675 utils/misc/guc.c:5693
+#: utils/time/snapmgr.c:1239 utils/time/snapmgr.c:1246
 #, c-format
 msgid "could not write to file \"%s\": %m"
 msgstr "no se pudo escribir a archivo «%s»: %m"
 
-#: access/heap/vacuumlazy.c:482
+#: access/heap/vacuumlazy.c:473
 #, c-format
 msgid "aggressively vacuuming \"%s.%s.%s\""
 msgstr "haciendo vacuum agresivamente a «%s.%s.%s»"
 
-#: access/heap/vacuumlazy.c:487
+#: access/heap/vacuumlazy.c:478
 #, c-format
 msgid "vacuuming \"%s.%s.%s\""
 msgstr "haciendo vacuum a «%s.%s.%s»"
 
-#: access/heap/vacuumlazy.c:635
+#: access/heap/vacuumlazy.c:626
 #, c-format
 msgid "finished vacuuming \"%s.%s.%s\": index scans: %d\n"
 msgstr "se terminó el vacuum de «%s.%s.%s»: recorridos de índice: %d\n"
 
-#: access/heap/vacuumlazy.c:646
+#: access/heap/vacuumlazy.c:637
 #, c-format
 msgid "automatic aggressive vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n"
 msgstr "vacuum agresivo automático para prevenir wraparound de la tabla «%s.%s.%s»: recorridos de índice: %d\n"
 
-#: access/heap/vacuumlazy.c:648
+#: access/heap/vacuumlazy.c:639
 #, c-format
 msgid "automatic vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n"
 msgstr "vacuum automático para prevenir wraparound de la tabla «%s.%s.%s»: recorridos de índice: %d\n"
 
-#: access/heap/vacuumlazy.c:653
+#: access/heap/vacuumlazy.c:644
 #, c-format
 msgid "automatic aggressive vacuum of table \"%s.%s.%s\": index scans: %d\n"
 msgstr "vacuum agresivo automático de la tabla «%s.%s.%s»: recorridos de índice: %d\n"
 
-#: access/heap/vacuumlazy.c:655
+#: access/heap/vacuumlazy.c:646
 #, c-format
 msgid "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n"
 msgstr "vacuum automático de la tabla «%s.%s.%s»: recorridos de índice: %d\n"
 
-#: access/heap/vacuumlazy.c:662
+#: access/heap/vacuumlazy.c:653
 #, c-format
 msgid "pages: %u removed, %u remain, %u scanned (%.2f%% of total)\n"
 msgstr "páginas: %u eliminadas, %u quedan, %u recorridas (%.2f%% del total)\n"
 
-#: access/heap/vacuumlazy.c:669
+#: access/heap/vacuumlazy.c:660
 #, c-format
 msgid "tuples: %lld removed, %lld remain, %lld are dead but not yet removable\n"
 msgstr "tuplas: %lld eliminadas, %lld permanecen, %lld están muertas pero aún no se pueden quitar\n"
 
-#: access/heap/vacuumlazy.c:675
+#: access/heap/vacuumlazy.c:666
 #, c-format
 msgid "tuples missed: %lld dead from %u pages not removed due to cleanup lock contention\n"
 msgstr "tuplas faltantes: %lld muertas en %u páginas no eliminadas debido a contención del lock de limpieza\n"
 
-#: access/heap/vacuumlazy.c:681
+#: access/heap/vacuumlazy.c:672
 #, c-format
 msgid "removable cutoff: %u, which was %d XIDs old when operation ended\n"
-msgstr ""
+msgstr "punto de corte de eliminación: %u, que era %d XIDs de antiguo cuando la operación terminó\n"
 
-#: access/heap/vacuumlazy.c:688
+#: access/heap/vacuumlazy.c:679
 #, c-format
 msgid "new relfrozenxid: %u, which is %d XIDs ahead of previous value\n"
 msgstr "nuevo relfrozenxid: %u, que está %d XIDs más adelante del valor anterior\n"
 
-#: access/heap/vacuumlazy.c:696
+#: access/heap/vacuumlazy.c:687
 #, c-format
 msgid "new relminmxid: %u, which is %d MXIDs ahead of previous value\n"
 msgstr "nuevo relminmxid: %u, que está %d MXIDs más adelante del valor anterior\n"
 
-#: access/heap/vacuumlazy.c:699
-#, fuzzy, c-format
-#| msgid "%u pages from table (%.2f%% of total) had %lld dead item identifiers removed\n"
+#: access/heap/vacuumlazy.c:690
+#, c-format
 msgid "frozen: %u pages from table (%.2f%% of total) had %lld tuples frozen\n"
-msgstr "en %u páginas de la tabla (%.2f%% del total) se eliminaron %lld identificadores de elementos muertos\n"
+msgstr "congelado: %u páginas de la tabla (%.2f%% del total) tuvieron %lld tuplas congeladas\n"
 
-#: access/heap/vacuumlazy.c:707
+#: access/heap/vacuumlazy.c:698
 msgid "index scan not needed: "
 msgstr "recorrido de índice no necesario: "
 
-#: access/heap/vacuumlazy.c:709
+#: access/heap/vacuumlazy.c:700
 msgid "index scan needed: "
 msgstr "recorrido de índice necesario: "
 
-#: access/heap/vacuumlazy.c:711
+#: access/heap/vacuumlazy.c:702
 #, c-format
 msgid "%u pages from table (%.2f%% of total) had %lld dead item identifiers removed\n"
 msgstr "en %u páginas de la tabla (%.2f%% del total) se eliminaron %lld identificadores de elementos muertos\n"
 
-#: access/heap/vacuumlazy.c:716
+#: access/heap/vacuumlazy.c:707
 msgid "index scan bypassed: "
 msgstr "recorrido de índice pasado por alto: "
 
-#: access/heap/vacuumlazy.c:718
+#: access/heap/vacuumlazy.c:709
 msgid "index scan bypassed by failsafe: "
 msgstr "recorrido de índice pasado por alto debido a modo failsafe: "
 
-#: access/heap/vacuumlazy.c:720
+#: access/heap/vacuumlazy.c:711
 #, c-format
 msgid "%u pages from table (%.2f%% of total) have %lld dead item identifiers\n"
 msgstr "%u páginas de la tabla (%.2f%% del total) tienen %lld identificadores de elementos muertos\n"
 
-#: access/heap/vacuumlazy.c:735
+#: access/heap/vacuumlazy.c:726
 #, c-format
 msgid "index \"%s\": pages: %u in total, %u newly deleted, %u currently deleted, %u reusable\n"
 msgstr "índice «%s»: páginas: %u en total, %u recientemente eliminadas, %u eliminadas hasta ahora, %u reusables\n"
 
-#: access/heap/vacuumlazy.c:747 commands/analyze.c:795
+#: access/heap/vacuumlazy.c:738 commands/analyze.c:794
 #, c-format
 msgid "I/O timings: read: %.3f ms, write: %.3f ms\n"
 msgstr "tiempos de E/S: lectura: %.3f ms, escritura: %.3f ms\n"
 
-#: access/heap/vacuumlazy.c:757 commands/analyze.c:798
+#: access/heap/vacuumlazy.c:748 commands/analyze.c:797
 #, c-format
 msgid "avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n"
 msgstr "tasa lectura promedio: %.3f MB/s, tasa escritura promedio: %.3f MB/s\n"
 
-#: access/heap/vacuumlazy.c:760 commands/analyze.c:800
+#: access/heap/vacuumlazy.c:751 commands/analyze.c:799
 #, c-format
 msgid "buffer usage: %lld hits, %lld misses, %lld dirtied\n"
 msgstr "uso de búfers: %lld aciertos, %lld fallos, %lld ensuciados\n"
 
-#: access/heap/vacuumlazy.c:765
+#: access/heap/vacuumlazy.c:756
 #, c-format
 msgid "WAL usage: %lld records, %lld full page images, %llu bytes\n"
 msgstr "uso de WAL: %lld registros, %lld imágenes de página completa, %llu bytes\n"
 
-#: access/heap/vacuumlazy.c:769 commands/analyze.c:804
+#: access/heap/vacuumlazy.c:760 commands/analyze.c:803
 #, c-format
 msgid "system usage: %s"
 msgstr "uso de sistema: %s"
 
-#: access/heap/vacuumlazy.c:2482
+#: access/heap/vacuumlazy.c:2170
 #, c-format
 msgid "table \"%s\": removed %lld dead item identifiers in %u pages"
 msgstr "tabla «%s»: se eliminaron %lld identificadores de elementos muertos en %u páginas"
 
-#: access/heap/vacuumlazy.c:2642
+#: access/heap/vacuumlazy.c:2324
 #, c-format
 msgid "bypassing nonessential maintenance of table \"%s.%s.%s\" as a failsafe after %d index scans"
 msgstr "pasando por alto el mantenimiento no esencial de la tabla «%s.%s.%s» como mecanismo de seguridad (failsafe) luego de %d recorridos de índice"
 
-#: access/heap/vacuumlazy.c:2645
+#: access/heap/vacuumlazy.c:2327
 #, c-format
 msgid "The table's relfrozenxid or relminmxid is too far in the past."
 msgstr "El relfrozenxid o el relminmxid de la tabla es demasiado antiguo."
 
-#: access/heap/vacuumlazy.c:2646
+#: access/heap/vacuumlazy.c:2328
 #, c-format
 msgid ""
 "Consider increasing configuration parameter \"maintenance_work_mem\" or \"autovacuum_work_mem\".\n"
@@ -1445,67 +1630,67 @@ msgstr ""
 "Considere incrementar el parámetro de configuración «maintenance_work_mem» o «autovacuum_work_mem».\n"
 "Es probable que también deba considerar otras formas para que VACUUM pueda mantener el paso de la asignación de IDs de transacción."
 
-#: access/heap/vacuumlazy.c:2891
+#: access/heap/vacuumlazy.c:2590
 #, c-format
 msgid "\"%s\": stopping truncate due to conflicting lock request"
-msgstr "«%s»: suspendiendo el truncado debido a una petición de candado en conflicto"
+msgstr "«%s»: suspendiendo el truncado debido a una petición de “lock” en conflicto"
 
-#: access/heap/vacuumlazy.c:2961
+#: access/heap/vacuumlazy.c:2660
 #, c-format
 msgid "table \"%s\": truncated %u to %u pages"
 msgstr "tabla «%s»: truncadas %u a %u páginas"
 
-#: access/heap/vacuumlazy.c:3023
+#: access/heap/vacuumlazy.c:2722
 #, c-format
 msgid "table \"%s\": suspending truncate due to conflicting lock request"
 msgstr "tabla «%s»: suspendiendo el truncado debido a una petición de bloqueo en conflicto"
 
-#: access/heap/vacuumlazy.c:3183
+#: access/heap/vacuumlazy.c:2841
 #, c-format
 msgid "disabling parallel option of vacuum on \"%s\" --- cannot vacuum temporary tables in parallel"
 msgstr "desactivando el comportamiento paralelo de vacuum en «%s» --- no se puede hacer vacuum de tablas temporales en paralelo"
 
-#: access/heap/vacuumlazy.c:3399
+#: access/heap/vacuumlazy.c:3108
 #, c-format
 msgid "while scanning block %u offset %u of relation \"%s.%s\""
 msgstr "recorriendo el bloque %u posición %u de la relación «%s.%s»"
 
-#: access/heap/vacuumlazy.c:3402
+#: access/heap/vacuumlazy.c:3111
 #, c-format
 msgid "while scanning block %u of relation \"%s.%s\""
 msgstr "recorriendo el bloque %u de la relación «%s.%s»"
 
-#: access/heap/vacuumlazy.c:3406
+#: access/heap/vacuumlazy.c:3115
 #, c-format
 msgid "while scanning relation \"%s.%s\""
 msgstr "recorriendo la relación «%s.%s»"
 
-#: access/heap/vacuumlazy.c:3414
+#: access/heap/vacuumlazy.c:3123
 #, c-format
 msgid "while vacuuming block %u offset %u of relation \"%s.%s\""
 msgstr "haciendo «vacuum» al bloque %u posición %u de la relación «%s.%s»"
 
-#: access/heap/vacuumlazy.c:3417
+#: access/heap/vacuumlazy.c:3126
 #, c-format
 msgid "while vacuuming block %u of relation \"%s.%s\""
 msgstr "haciendo «vacuum» al bloque %u de la relación «%s.%s»"
 
-#: access/heap/vacuumlazy.c:3421
+#: access/heap/vacuumlazy.c:3130
 #, c-format
 msgid "while vacuuming relation \"%s.%s\""
 msgstr "mientras se hacía «vacuum» a la relación «%s.%s»"
 
-#: access/heap/vacuumlazy.c:3426 commands/vacuumparallel.c:1074
+#: access/heap/vacuumlazy.c:3135 commands/vacuumparallel.c:1112
 #, c-format
 msgid "while vacuuming index \"%s\" of relation \"%s.%s\""
 msgstr "mientras se hacía «vacuum» al índice «%s» de la relación «%s.%s»"
 
-#: access/heap/vacuumlazy.c:3431 commands/vacuumparallel.c:1080
+#: access/heap/vacuumlazy.c:3140 commands/vacuumparallel.c:1118
 #, c-format
 msgid "while cleaning up index \"%s\" of relation \"%s.%s\""
 msgstr "mientras se limpiaba el índice «%s» de la relación «%s.%s»"
 
-#: access/heap/vacuumlazy.c:3437
+#: access/heap/vacuumlazy.c:3146
 #, c-format
 msgid "while truncating relation \"%s.%s\" to %u blocks"
 msgstr "error mientras se truncaba la relación «%s.%s» a %u bloques"
@@ -1520,19 +1705,24 @@ msgstr "el método de acceso «%s» no es de tipo %s"
 msgid "index access method \"%s\" does not have a handler"
 msgstr "el método de acceso «%s» no tiene manejador"
 
-#: access/index/genam.c:490
+#: access/index/genam.c:489
 #, c-format
 msgid "transaction aborted during system catalog scan"
 msgstr "transacción abortada durante recorrido de catálogos de sistema"
 
-#: access/index/indexam.c:142 catalog/objectaddress.c:1394
-#: commands/indexcmds.c:2852 commands/tablecmds.c:272 commands/tablecmds.c:296
-#: commands/tablecmds.c:17191 commands/tablecmds.c:18959
+#: access/index/genam.c:657 access/index/indexam.c:82
+#, c-format
+msgid "cannot access index \"%s\" while it is being reindexed"
+msgstr "no se puede acceder el índice «%s» mientras está siendo reindexado"
+
+#: access/index/indexam.c:203 catalog/objectaddress.c:1356
+#: commands/indexcmds.c:2851 commands/tablecmds.c:281 commands/tablecmds.c:305
+#: commands/tablecmds.c:17873 commands/tablecmds.c:19762
 #, c-format
 msgid "\"%s\" is not an index"
 msgstr "«%s» no es un índice"
 
-#: access/index/indexam.c:979
+#: access/index/indexam.c:1028
 #, c-format
 msgid "operator class %s has no options"
 msgstr "clase de operadores «%s» no tiene opciones"
@@ -1552,38 +1742,38 @@ msgstr "Ya existe la llave %s."
 msgid "This may be because of a non-immutable index expression."
 msgstr "Esto puede deberse a una expresión de índice no inmutable."
 
-#: access/nbtree/nbtpage.c:158 access/nbtree/nbtpage.c:607
-#: parser/parse_utilcmd.c:2317
+#: access/nbtree/nbtpage.c:157 access/nbtree/nbtpage.c:611
+#: parser/parse_utilcmd.c:2323
 #, c-format
 msgid "index \"%s\" is not a btree"
 msgstr "el índice «%s» no es un btree"
 
-#: access/nbtree/nbtpage.c:165 access/nbtree/nbtpage.c:614
+#: access/nbtree/nbtpage.c:164 access/nbtree/nbtpage.c:618
 #, c-format
 msgid "version mismatch in index \"%s\": file version %d, current version %d, minimal supported version %d"
 msgstr "discordancia de versión en índice «%s»: versión de archivo %d, versión de código %d, mínima versión soportada %d"
 
-#: access/nbtree/nbtpage.c:1862
+#: access/nbtree/nbtpage.c:1861
 #, c-format
 msgid "index \"%s\" contains a half-dead internal page"
 msgstr "el índice «%s» contiene una página interna parcialmente muerta"
 
-#: access/nbtree/nbtpage.c:1864
+#: access/nbtree/nbtpage.c:1863
 #, c-format
 msgid "This can be caused by an interrupted VACUUM in version 9.3 or older, before upgrade. Please REINDEX it."
 msgstr "Esto puede ser causado por la interrupción de un VACUUM en la versión 9.3 o anteriores, antes de actualizar. Ejecute REINDEX por favor."
 
-#: access/nbtree/nbtutils.c:2663
+#: access/nbtree/nbtutils.c:5108
 #, c-format
 msgid "index row size %zu exceeds btree version %u maximum %zu for index \"%s\""
 msgstr "el tamaño de fila de índice %1$zu excede el máximo %3$zu para btree versión %2$u para el índice «%4$s»"
 
-#: access/nbtree/nbtutils.c:2669
+#: access/nbtree/nbtutils.c:5114
 #, c-format
 msgid "Index row references tuple (%u,%u) in relation \"%s\"."
 msgstr "La tupla de índice hace referencia a la tupla (%u,%u) en la relación «%s»."
 
-#: access/nbtree/nbtutils.c:2673
+#: access/nbtree/nbtutils.c:5118
 #, c-format
 msgid ""
 "Values larger than 1/3 of a buffer page cannot be indexed.\n"
@@ -1597,12 +1787,18 @@ msgstr ""
 msgid "operator family \"%s\" of access method %s is missing support function for types %s and %s"
 msgstr "falta una función de soporte para los tipos %3$s y %4$s en la familia de operadores «%1$s» del método de acceso %2$s"
 
+#: access/sequence/sequence.c:75 access/table/table.c:145
+#: optimizer/util/plancat.c:144
+#, c-format
+msgid "cannot open relation \"%s\""
+msgstr "no se puede abrir la relación «%s»"
+
 #: access/spgist/spgutils.c:245
 #, c-format
 msgid "compress method must be defined when leaf type is different from input type"
 msgstr "método «compress» debe estar definido cuando el tipo hoja es distinto del tipo de entrada"
 
-#: access/spgist/spgutils.c:1008
+#: access/spgist/spgutils.c:1028
 #, c-format
 msgid "SP-GiST inner tuple size %zu exceeds maximum %zu"
 msgstr "el tamaño de tupla interna SP-GiST %zu excede el máximo %zu"
@@ -1617,69 +1813,64 @@ msgstr "el tipo de dato hoja SP-GiST %s no coincide con el tipo declarado %s"
 msgid "operator family \"%s\" of access method %s is missing support function %d for type %s"
 msgstr "falta la función de soporte %3$d para el tipo %4$s de la clase de operadores «%1$s» del método de accesso %2$s"
 
-#: access/table/table.c:145 optimizer/util/plancat.c:145
-#, fuzzy, c-format
-#| msgid "cannot change relation \"%s\""
-msgid "cannot open relation \"%s\""
-msgstr "no se puede cambiar la relación «%s»"
-
-#: access/table/tableam.c:265
+#: access/table/tableam.c:255
 #, c-format
 msgid "tid (%u, %u) is not valid for relation \"%s\""
 msgstr "el tid (%u, %u) no es válido para la relación «%s»"
 
-#: access/table/tableamapi.c:116
+#: access/table/tableamapi.c:109
 #, c-format
-msgid "%s cannot be empty."
-msgstr "%s no puede ser vacío."
+msgid "\"%s\" cannot be empty."
+msgstr "«%s» no puede ser vacío."
 
-#: access/table/tableamapi.c:123 access/transam/xlogrecovery.c:4774
+#: access/table/tableamapi.c:116 access/transam/xlogrecovery.c:4859
 #, c-format
-msgid "%s is too long (maximum %d characters)."
-msgstr "%s es demasiado largo (máximo %d caracteres)."
+msgid "\"%s\" is too long (maximum %d characters)."
+msgstr "«%s» es demasiado largo (máximo %d caracteres)."
 
-#: access/table/tableamapi.c:146
+#: access/table/tableamapi.c:139
 #, c-format
 msgid "table access method \"%s\" does not exist"
 msgstr "no existe el método de acceso de tabla «%s»"
 
-#: access/table/tableamapi.c:151
+#: access/table/tableamapi.c:144
 #, c-format
 msgid "Table access method \"%s\" does not exist."
 msgstr "No existe el método de acceso de tabla «%s»."
 
-#: access/tablesample/bernoulli.c:148 access/tablesample/system.c:152
+#: access/tablesample/bernoulli.c:148 access/tablesample/system.c:151
 #, c-format
 msgid "sample percentage must be between 0 and 100"
 msgstr "el porcentaje de muestreo debe estar entre 0 y 100"
 
-#: access/transam/commit_ts.c:279
+#: access/transam/commit_ts.c:287
 #, c-format
 msgid "cannot retrieve commit timestamp for transaction %u"
 msgstr "no se puede obtener el timestamp de compromiso de la transacción %u"
 
-#: access/transam/commit_ts.c:377
+#: access/transam/commit_ts.c:385
 #, c-format
 msgid "could not get commit timestamp data"
 msgstr "no se pudo obtener datos de compromiso de transacción"
 
-#: access/transam/commit_ts.c:379
+#: access/transam/commit_ts.c:387
 #, c-format
 msgid "Make sure the configuration parameter \"%s\" is set on the primary server."
 msgstr "Asegúrese que el parámetro de configuración «%s» esté definido en el servidor primario."
 
-#: access/transam/commit_ts.c:381
+#: access/transam/commit_ts.c:389
 #, c-format
 msgid "Make sure the configuration parameter \"%s\" is set."
 msgstr "Asegúrese que el parámetro de configuración «%s» esté definido."
 
-#: access/transam/multixact.c:1023
+#: access/transam/multixact.c:1091
 #, c-format
-msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database \"%s\""
-msgstr "la base de datos no está aceptando órdenes que generen nuevos MultiXactIds para evitar pérdida de datos debido al reciclaje de transacciones en la base de datos «%s»"
+msgid "database is not accepting commands that assign new MultiXactIds to avoid wraparound data loss in database \"%s\""
+msgstr "la base de datos no está aceptando órdenes que asignen nuevos MultiXactIds para evitar pérdida de datos debido al “wraparound” en la base de datos «%s»"
 
-#: access/transam/multixact.c:1025 access/transam/multixact.c:1032
-#: access/transam/multixact.c:1056 access/transam/multixact.c:1065
+#: access/transam/multixact.c:1093 access/transam/multixact.c:1100
+#: access/transam/multixact.c:1124 access/transam/multixact.c:1133
+#: access/transam/varsup.c:158 access/transam/varsup.c:165
 #, c-format
 msgid ""
 "Execute a database-wide VACUUM in that database.\n"
@@ -1688,247 +1879,250 @@ msgstr ""
 "Ejecute VACUUM de la base completa en esa base de datos.\n"
 "Puede que además necesite comprometer o abortar transacciones preparadas antiguas, o eliminar slots de replicación añejos."
 
-#: access/transam/multixact.c:1030
+#: access/transam/multixact.c:1098
 #, c-format
-msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database with OID %u"
-msgstr "la base de datos no está aceptando órdenes que generen nuevos MultiXactIds para evitar pérdida de datos debido al problema del reciclaje de transacciones en la base con OID %u"
+msgid "database is not accepting commands that assign new MultiXactIds to avoid wraparound data loss in database with OID %u"
+msgstr "la base de datos no está aceptando órdenes que asignen nuevos MultiXactIds para evitar pérdida de datos debido al “wraparound” en la base con OID %u"
 
-#: access/transam/multixact.c:1051 access/transam/multixact.c:2333
+#: access/transam/multixact.c:1119 access/transam/multixact.c:2474
 #, c-format
 msgid "database \"%s\" must be vacuumed before %u more MultiXactId is used"
 msgid_plural "database \"%s\" must be vacuumed before %u more MultiXactIds are used"
 msgstr[0] "base de datos «%s» debe ser limpiada antes de que %u más MultiXactId sea usado"
 msgstr[1] "base de datos «%s» debe ser limpiada dentro de que %u más MultiXactIds sean usados"
 
-#: access/transam/multixact.c:1060 access/transam/multixact.c:2342
+#: access/transam/multixact.c:1128 access/transam/multixact.c:2483
 #, c-format
 msgid "database with OID %u must be vacuumed before %u more MultiXactId is used"
 msgid_plural "database with OID %u must be vacuumed before %u more MultiXactIds are used"
 msgstr[0] "base de datos con OID %u debe ser limpiada antes de que %u más MultiXactId sea usado"
 msgstr[1] "base de datos con OID %u debe ser limpiada antes de que %u más MultiXactIds sean usados"
 
-#: access/transam/multixact.c:1121
+#: access/transam/multixact.c:1189
 #, c-format
 msgid "multixact \"members\" limit exceeded"
 msgstr "límite de miembros de multixact alcanzado"
 
-#: access/transam/multixact.c:1122
+#: access/transam/multixact.c:1190
 #, c-format
 msgid "This command would create a multixact with %u members, but the remaining space is only enough for %u member."
 msgid_plural "This command would create a multixact with %u members, but the remaining space is only enough for %u members."
 msgstr[0] "Esta orden crearía un multixact con %u miembros, pero el espacio que queda sólo sirve para %u miembro."
 msgstr[1] "Esta orden crearía un multixact con %u miembros, pero el espacio que queda sólo sirve para %u miembros."
 
-#: access/transam/multixact.c:1127
+#: access/transam/multixact.c:1195
 #, c-format
-msgid "Execute a database-wide VACUUM in database with OID %u with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings."
-msgstr "Ejecute un VACUUM de la base completa en la base de datos con OID %u con vacuum_multixact_freeze_min_age y vacuum_multixact_freeze_table_age reducidos."
+msgid "Execute a database-wide VACUUM in database with OID %u with reduced \"vacuum_multixact_freeze_min_age\" and \"vacuum_multixact_freeze_table_age\" settings."
+msgstr "Ejecute un VACUUM de la base completa en la base de datos con OID %u con «vacuum_multixact_freeze_min_age» y «vacuum_multixact_freeze_table_age» reducidos."
 
-#: access/transam/multixact.c:1158
+#: access/transam/multixact.c:1226
 #, c-format
 msgid "database with OID %u must be vacuumed before %d more multixact member is used"
 msgid_plural "database with OID %u must be vacuumed before %d more multixact members are used"
 msgstr[0] "base de datos con OID %u debe ser limpiada antes de que %d miembro más de multixact sea usado"
 msgstr[1] "base de datos con OID %u debe ser limpiada antes de que %d más miembros de multixact sean usados"
 
-#: access/transam/multixact.c:1163
+#: access/transam/multixact.c:1231
 #, c-format
-msgid "Execute a database-wide VACUUM in that database with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings."
-msgstr "Ejecute un VACUUM de la base completa en esa base de datos con vacuum_multixact_freeze_min_age y vacuum_multixact_freeze_table_age reducidos."
+msgid "Execute a database-wide VACUUM in that database with reduced \"vacuum_multixact_freeze_min_age\" and \"vacuum_multixact_freeze_table_age\" settings."
+msgstr "Ejecute un VACUUM de la base completa en esa base de datos con «vacuum_multixact_freeze_min_age» y «vacuum_multixact_freeze_table_age» reducidos."
 
-#: access/transam/multixact.c:1302
+#: access/transam/multixact.c:1371
 #, c-format
 msgid "MultiXactId %u does no longer exist -- apparent wraparound"
-msgstr "el MultiXactId %u ya no existe -- aparente problema por reciclaje"
+msgstr "el MultiXactId %u ya no existe -- “wraparound” aparente"
 
-#: access/transam/multixact.c:1308
+#: access/transam/multixact.c:1377
 #, c-format
 msgid "MultiXactId %u has not been created yet -- apparent wraparound"
-msgstr "el MultiXactId %u no se ha creado aún -- aparente problema por reciclaje"
+msgstr "el MultiXactId %u no se ha creado aún -- “wraparound” aparente"
 
-#: access/transam/multixact.c:2338 access/transam/multixact.c:2347
-#: access/transam/varsup.c:151 access/transam/varsup.c:158
-#: access/transam/varsup.c:466 access/transam/varsup.c:473
+#: access/transam/multixact.c:2479 access/transam/multixact.c:2488
 #, c-format
 msgid ""
-"To avoid a database shutdown, execute a database-wide VACUUM in that database.\n"
+"To avoid MultiXactId assignment failures, execute a database-wide VACUUM in that database.\n"
 "You might also need to commit or roll back old prepared transactions, or drop stale replication slots."
 msgstr ""
-"Para evitar que la base de datos se desactive, ejecute VACUUM en esa base de datos.\n"
+"Para evitar fallos de asignación de MultiXactId, ejecute VACUUM en esa base de datos.\n"
 "Puede que además necesite comprometer o abortar transacciones preparadas antiguas, o eliminar slots de replicación añejos."
 
-#: access/transam/multixact.c:2622
+#: access/transam/multixact.c:2767
 #, c-format
 msgid "MultiXact member wraparound protections are disabled because oldest checkpointed MultiXact %u does not exist on disk"
-msgstr "las protecciones de reciclaje de miembros de multixact están inhabilitadas porque el multixact más antiguo %u en checkpoint no existe en disco"
+msgstr "las protecciones de “wraparound” de multixact están inhabilitadas porque el multixact más antiguo %u en checkpoint no existe en disco"
 
-#: access/transam/multixact.c:2644
+#: access/transam/multixact.c:2789
 #, c-format
 msgid "MultiXact member wraparound protections are now enabled"
-msgstr "las protecciones de reciclaje de miembros de multixact están habilitadas"
+msgstr "las protecciones de “wraparound” de miembros de multixact están habilitadas"
 
-#: access/transam/multixact.c:3027
+#: access/transam/multixact.c:3180
 #, c-format
 msgid "oldest MultiXact %u not found, earliest MultiXact %u, skipping truncation"
 msgstr "multixact más antiguo %u no encontrado, multixact más antiguo es %u, omitiendo el truncado"
 
-#: access/transam/multixact.c:3045
+#: access/transam/multixact.c:3198
 #, c-format
 msgid "cannot truncate up to MultiXact %u because it does not exist on disk, skipping truncation"
 msgstr "no se puede truncar hasta el MultiXact %u porque no existe en disco, omitiendo el truncado"
 
-#: access/transam/multixact.c:3359
+#: access/transam/multixact.c:3517
 #, c-format
 msgid "invalid MultiXactId: %u"
 msgstr "el MultiXactId no es válido: %u"
 
-#: access/transam/parallel.c:729 access/transam/parallel.c:848
+#: access/transam/parallel.c:748 access/transam/parallel.c:867
 #, c-format
 msgid "parallel worker failed to initialize"
 msgstr "el ayudante paralelo no pudo iniciar"
 
-#: access/transam/parallel.c:730 access/transam/parallel.c:849
+#: access/transam/parallel.c:749 access/transam/parallel.c:868
 #, c-format
 msgid "More details may be available in the server log."
 msgstr "Puede haber más detalles disponibles en el log del servidor."
 
-#: access/transam/parallel.c:910
+#: access/transam/parallel.c:929
 #, c-format
 msgid "postmaster exited during a parallel transaction"
 msgstr "postmaster terminó durante una transacción paralela"
 
-#: access/transam/parallel.c:1097
+#: access/transam/parallel.c:1116
 #, c-format
 msgid "lost connection to parallel worker"
 msgstr "se ha perdido la conexión al ayudante paralelo"
 
-#: access/transam/parallel.c:1163 access/transam/parallel.c:1165
+#: access/transam/parallel.c:1172 access/transam/parallel.c:1174
 msgid "parallel worker"
 msgstr "ayudante paralelo"
 
-#: access/transam/parallel.c:1319
+#: access/transam/parallel.c:1344 replication/logical/applyparallelworker.c:890
 #, c-format
 msgid "could not map dynamic shared memory segment"
 msgstr "no se pudo mapear el segmento de memoria compartida dinámica"
 
-#: access/transam/parallel.c:1324
+#: access/transam/parallel.c:1349 replication/logical/applyparallelworker.c:896
 #, c-format
 msgid "invalid magic number in dynamic shared memory segment"
 msgstr "número mágico no válido en segmento de memoria compartida dinámica"
 
-#: access/transam/rmgr.c:84
+#: access/transam/rmgr.c:93
 #, c-format
 msgid "resource manager with ID %d not registered"
 msgstr "el gestor de recursos con ID %d no está registrado"
 
-#: access/transam/rmgr.c:85
+#: access/transam/rmgr.c:94
 #, c-format
-msgid "Include the extension module that implements this resource manager in shared_preload_libraries."
-msgstr "Incluya el módulo de extensión que implementa este gestor de recursos en shared_preload_libraries."
+msgid "Include the extension module that implements this resource manager in \"shared_preload_libraries\"."
+msgstr "Incluya el módulo de extensión que implementa este gestor de recursos en «shared_preload_libraries»."
 
-#: access/transam/rmgr.c:101
+#: access/transam/rmgr.c:110
 #, c-format
 msgid "custom resource manager name is invalid"
 msgstr "el nombre de gestor de recursos personalizado no es válido"
 
-#: access/transam/rmgr.c:102
+#: access/transam/rmgr.c:111
 #, c-format
 msgid "Provide a non-empty name for the custom resource manager."
 msgstr "Provea un nombre no vacío para el gestor de recursos personalizado."
 
-#: access/transam/rmgr.c:105
+#: access/transam/rmgr.c:114
 #, c-format
 msgid "custom resource manager ID %d is out of range"
 msgstr "el ID %d de gestor de recursos está fuera de rango"
 
-#: access/transam/rmgr.c:106
+#: access/transam/rmgr.c:115
 #, c-format
 msgid "Provide a custom resource manager ID between %d and %d."
 msgstr "Provea un ID de gestor de recursos personalizado entre %d y %d."
 
-#: access/transam/rmgr.c:111 access/transam/rmgr.c:116
-#: access/transam/rmgr.c:128
+#: access/transam/rmgr.c:120 access/transam/rmgr.c:125
+#: access/transam/rmgr.c:137
 #, c-format
 msgid "failed to register custom resource manager \"%s\" with ID %d"
 msgstr "no se pudo registrar un gestor de recursos personalizado «%s» con ID %d"
 
-#: access/transam/rmgr.c:112
+#: access/transam/rmgr.c:121
 #, c-format
-msgid "Custom resource manager must be registered while initializing modules in shared_preload_libraries."
-msgstr "El gestor de recursos personalizado debe ser registrado en shared_preload_libraries."
+msgid "Custom resource manager must be registered while initializing modules in \"shared_preload_libraries\"."
+msgstr "El gestor de recursos personalizado debe ser registrado en «shared_preload_libraries» al inicializar módulos."
 
-#: access/transam/rmgr.c:117
+#: access/transam/rmgr.c:126
 #, c-format
 msgid "Custom resource manager \"%s\" already registered with the same ID."
 msgstr "El gestor de recursos «%s» ya está registrado con el mismo ID."
 
-#: access/transam/rmgr.c:129
+#: access/transam/rmgr.c:138
 #, c-format
 msgid "Existing resource manager with ID %d has the same name."
 msgstr "El gestor de recursos con ID %d tiene el mismo nombre."
 
-#: access/transam/rmgr.c:135
+#: access/transam/rmgr.c:144
 #, c-format
 msgid "registered custom resource manager \"%s\" with ID %d"
 msgstr "se registró el gestor de recursos «%s» con ID %d"
 
-#: access/transam/slru.c:714
+#: access/transam/slru.c:361
+#, c-format
+msgid "\"%s\" must be a multiple of %d"
+msgstr "«%s» debe ser múltiple de %d"
+
+#: access/transam/slru.c:830
 #, c-format
 msgid "file \"%s\" doesn't exist, reading as zeroes"
 msgstr "el archivo «%s» no existe, leyendo como ceros"
 
-#: access/transam/slru.c:946 access/transam/slru.c:952
-#: access/transam/slru.c:960 access/transam/slru.c:965
-#: access/transam/slru.c:972 access/transam/slru.c:977
-#: access/transam/slru.c:984 access/transam/slru.c:991
+#: access/transam/slru.c:1059 access/transam/slru.c:1065
+#: access/transam/slru.c:1073 access/transam/slru.c:1078
+#: access/transam/slru.c:1085 access/transam/slru.c:1090
+#: access/transam/slru.c:1097 access/transam/slru.c:1104
 #, c-format
 msgid "could not access status of transaction %u"
 msgstr "no se pudo encontrar el estado de la transacción %u"
 
-#: access/transam/slru.c:947
+#: access/transam/slru.c:1060
 #, c-format
 msgid "Could not open file \"%s\": %m."
 msgstr "No se pudo abrir el archivo «%s»: %m."
 
-#: access/transam/slru.c:953
+#: access/transam/slru.c:1066
 #, c-format
 msgid "Could not seek in file \"%s\" to offset %d: %m."
 msgstr "No se pudo posicionar (seek) en el archivo «%s» a la posición %d: %m."
 
-#: access/transam/slru.c:961
+#: access/transam/slru.c:1074
 #, c-format
 msgid "Could not read from file \"%s\" at offset %d: %m."
 msgstr "No se pudo leer desde el archivo «%s» en la posición %d: %m."
 
-#: access/transam/slru.c:966
+#: access/transam/slru.c:1079
 #, c-format
 msgid "Could not read from file \"%s\" at offset %d: read too few bytes."
 msgstr "No se pudo leer desde el archivo «%s» en la posición %d: se leyeron muy pocos bytes."
 
-#: access/transam/slru.c:973
+#: access/transam/slru.c:1086
 #, c-format
 msgid "Could not write to file \"%s\" at offset %d: %m."
 msgstr "No se pudo escribir al archivo «%s» en la posición %d: %m."
 
-#: access/transam/slru.c:978
+#: access/transam/slru.c:1091
 #, c-format
 msgid "Could not write to file \"%s\" at offset %d: wrote too few bytes."
 msgstr "No se pudo escribir al archivo «%s» en la posición %d: se escribieron muy pocos bytes."
 
-#: access/transam/slru.c:985
+#: access/transam/slru.c:1098
 #, c-format
 msgid "Could not fsync file \"%s\": %m."
 msgstr "No se pudo sincronizar (fsync) archivo «%s»: %m."
 
-#: access/transam/slru.c:992
+#: access/transam/slru.c:1105
 #, c-format
 msgid "Could not close file \"%s\": %m."
 msgstr "No se pudo cerrar el archivo «%s»: %m."
 
-#: access/transam/slru.c:1253
+#: access/transam/slru.c:1431
 #, c-format
 msgid "could not truncate directory \"%s\": apparent wraparound"
-msgstr "no se pudo truncar el directorio «%s»: aparente problema por reciclaje de transacciones"
+msgstr "no se pudo truncar el directorio «%s»: “wraparound” aparente"
 
 #: access/transam/timeline.c:163 access/transam/timeline.c:168
 #, c-format
@@ -1970,773 +2164,824 @@ msgstr "IDs de timeline deben ser menores que el ID de timeline del hijo."
 msgid "requested timeline %u is not in this server's history"
 msgstr "el timeline %u solicitado no está en la historia de este servidor"
 
-#: access/transam/twophase.c:385
+#: access/transam/twophase.c:368
 #, c-format
 msgid "transaction identifier \"%s\" is too long"
 msgstr "identificador de transacción «%s» es demasiado largo"
 
-#: access/transam/twophase.c:392
+#: access/transam/twophase.c:375
 #, c-format
 msgid "prepared transactions are disabled"
 msgstr "las transacciones preparadas están deshabilitadas"
 
-#: access/transam/twophase.c:393
+#: access/transam/twophase.c:376
 #, c-format
-msgid "Set max_prepared_transactions to a nonzero value."
-msgstr "Defina max_prepared_transactions a un valor distinto de cero."
+msgid "Set \"max_prepared_transactions\" to a nonzero value."
+msgstr "Defina «max_prepared_transactions» a un valor distinto de cero."
 
-#: access/transam/twophase.c:412
+#: access/transam/twophase.c:395
 #, c-format
 msgid "transaction identifier \"%s\" is already in use"
 msgstr "identificador de transacción «%s» ya está siendo utilizado"
 
-#: access/transam/twophase.c:421 access/transam/twophase.c:2484
+#: access/transam/twophase.c:404 access/transam/twophase.c:2531
 #, c-format
 msgid "maximum number of prepared transactions reached"
 msgstr "se alcanzó el número máximo de transacciones preparadas"
 
-#: access/transam/twophase.c:422 access/transam/twophase.c:2485
+#: access/transam/twophase.c:405 access/transam/twophase.c:2532
 #, c-format
-msgid "Increase max_prepared_transactions (currently %d)."
-msgstr "Incremente max_prepared_transactions (actualmente es %d)."
+msgid "Increase \"max_prepared_transactions\" (currently %d)."
+msgstr "Incremente «max_prepared_transactions» (actualmente es %d)."
 
-#: access/transam/twophase.c:598
+#: access/transam/twophase.c:580
 #, c-format
 msgid "prepared transaction with identifier \"%s\" is busy"
 msgstr "transacción preparada con identificador «%s» está ocupada"
 
-#: access/transam/twophase.c:604
+#: access/transam/twophase.c:586
 #, c-format
 msgid "permission denied to finish prepared transaction"
 msgstr "se ha denegado el permiso para finalizar la transacción preparada"
 
-#: access/transam/twophase.c:605
+#: access/transam/twophase.c:587
 #, c-format
 msgid "Must be superuser or the user that prepared the transaction."
 msgstr "Debe ser superusuario o el usuario que preparó la transacción."
 
-#: access/transam/twophase.c:616
+#: access/transam/twophase.c:598
 #, c-format
 msgid "prepared transaction belongs to another database"
 msgstr "la transacción preparada pertenece a otra base de datos"
 
-#: access/transam/twophase.c:617
+#: access/transam/twophase.c:599
 #, c-format
 msgid "Connect to the database where the transaction was prepared to finish it."
 msgstr "Conéctese a la base de datos donde la transacción fue preparada para terminarla."
 
-#: access/transam/twophase.c:632
+#: access/transam/twophase.c:614
 #, c-format
 msgid "prepared transaction with identifier \"%s\" does not exist"
 msgstr "transacción preparada con identificador «%s» no existe"
 
-#: access/transam/twophase.c:1167
+#: access/transam/twophase.c:1174
 #, c-format
 msgid "two-phase state file maximum length exceeded"
 msgstr "el largo máximo del archivo de estado de dos fases fue excedido"
 
-#: access/transam/twophase.c:1322
+#: access/transam/twophase.c:1329
 #, c-format
 msgid "incorrect size of file \"%s\": %lld byte"
 msgid_plural "incorrect size of file \"%s\": %lld bytes"
 msgstr[0] "tamaño incorrecto de archivo «%s»: %lld byte"
 msgstr[1] "tamaño incorrecto de archivo «%s»: %lld bytes"
 
-#: access/transam/twophase.c:1331
+#: access/transam/twophase.c:1338
 #, c-format
 msgid "incorrect alignment of CRC offset for file \"%s\""
 msgstr "alineamiento incorrecto del offset del CRC para el archivo «%s»"
 
-#: access/transam/twophase.c:1349
+#: access/transam/twophase.c:1356
 #, c-format
 msgid "could not read file \"%s\": read %d of %lld"
 msgstr "no se pudo leer el archivo «%s»: leídos %d de %lld"
 
-#: access/transam/twophase.c:1364
+#: access/transam/twophase.c:1371
 #, c-format
 msgid "invalid magic number stored in file \"%s\""
 msgstr "número mágico no válido almacenado en archivo «%s»"
 
-#: access/transam/twophase.c:1370
+#: access/transam/twophase.c:1377
 #, c-format
 msgid "invalid size stored in file \"%s\""
 msgstr "tamaño no válido en archivo «%s»"
 
-#: access/transam/twophase.c:1382
+#: access/transam/twophase.c:1389
 #, c-format
 msgid "calculated CRC checksum does not match value stored in file \"%s\""
 msgstr "la suma de verificación calculada no coincide con el valor almacenado en el archivo «%s»"
 
-#: access/transam/twophase.c:1412 access/transam/xlogrecovery.c:590
-#: replication/logical/logical.c:209 replication/walsender.c:687
+#: access/transam/twophase.c:1419 access/transam/xlogrecovery.c:565
+#: postmaster/walsummarizer.c:936 replication/logical/logical.c:211
+#: replication/walsender.c:836
 #, c-format
 msgid "Failed while allocating a WAL reading processor."
 msgstr "Falló mientras se emplazaba un procesador de lectura de WAL."
 
-#: access/transam/twophase.c:1422
+#: access/transam/twophase.c:1429
 #, c-format
 msgid "could not read two-phase state from WAL at %X/%X: %s"
 msgstr "no se pudo leer el archivo de estado de dos fases desde WAL en %X/%X: %s"
 
-#: access/transam/twophase.c:1427
+#: access/transam/twophase.c:1434
 #, c-format
 msgid "could not read two-phase state from WAL at %X/%X"
 msgstr "no se pudo leer el archivo de estado de dos fases desde WAL en %X/%X"
 
-#: access/transam/twophase.c:1435
+#: access/transam/twophase.c:1442
 #, c-format
 msgid "expected two-phase state data is not present in WAL at %X/%X"
 msgstr "los datos de estado de dos fases esperados no están presentes en WAL en %X/%X"
 
-#: access/transam/twophase.c:1731
+#: access/transam/twophase.c:1745
 #, c-format
 msgid "could not recreate file \"%s\": %m"
 msgstr "no se pudo recrear archivo «%s»: %m"
 
-#: access/transam/twophase.c:1858
+#: access/transam/twophase.c:1872
 #, c-format
 msgid "%u two-phase state file was written for a long-running prepared transaction"
 msgid_plural "%u two-phase state files were written for long-running prepared transactions"
 msgstr[0] "%u archivo de estado de dos fases fue escrito para transacción de larga duración"
 msgstr[1] "%u archivos de estado de dos fases fueron escritos para transacciones de larga duración"
 
-#: access/transam/twophase.c:2092
+#: access/transam/twophase.c:2107
 #, c-format
 msgid "recovering prepared transaction %u from shared memory"
 msgstr "recuperando transacción preparada %u desde memoria compartida"
 
-#: access/transam/twophase.c:2185
+#: access/transam/twophase.c:2200
 #, c-format
 msgid "removing stale two-phase state file for transaction %u"
 msgstr "eliminando archivo obsoleto de estado de dos fases para transacción %u"
 
-#: access/transam/twophase.c:2192
+#: access/transam/twophase.c:2207
 #, c-format
 msgid "removing stale two-phase state from memory for transaction %u"
 msgstr "eliminando de memoria estado de dos fases obsoleto para transacción %u"
 
-#: access/transam/twophase.c:2205
+#: access/transam/twophase.c:2220
 #, c-format
 msgid "removing future two-phase state file for transaction %u"
 msgstr "eliminando archivo futuro de estado de dos fases para transacción %u"
 
-#: access/transam/twophase.c:2212
+#: access/transam/twophase.c:2227
 #, c-format
 msgid "removing future two-phase state from memory for transaction %u"
 msgstr "eliminando estado de dos fases futuro de memoria para transacción %u"
 
-#: access/transam/twophase.c:2237
+#: access/transam/twophase.c:2252
 #, c-format
 msgid "corrupted two-phase state file for transaction %u"
 msgstr "archivo de estado de dos fases corrupto para transacción %u"
 
-#: access/transam/twophase.c:2242
+#: access/transam/twophase.c:2257
 #, c-format
 msgid "corrupted two-phase state in memory for transaction %u"
 msgstr "estado de dos fases en memoria corrupto para transacción %u"
 
-#: access/transam/varsup.c:129
+#: access/transam/twophase.c:2514
 #, c-format
-msgid "database is not accepting commands to avoid wraparound data loss in database \"%s\""
-msgstr "la base de datos no está aceptando órdenes para evitar pérdida de datos debido al problema del reciclaje de transacciones en la base de datos «%s»"
+msgid "could not recover two-phase state file for transaction %u"
+msgstr "no se pudo recuperar el archivo de estado de dos fases para la transacción %u"
 
-#: access/transam/varsup.c:131 access/transam/varsup.c:138
+#: access/transam/twophase.c:2516
 #, c-format
-msgid ""
-"Stop the postmaster and vacuum that database in single-user mode.\n"
-"You might also need to commit or roll back old prepared transactions, or drop stale replication slots."
-msgstr ""
-"Detenga el postmaster y ejecute VACUUM de la base completa en esa base de datos.\n"
-"Puede que además necesite comprometer o abortar transacciones preparadas antiguas, o eliminar slots de replicación añejos."
+msgid "Two-phase state file has been found in WAL record %X/%X, but this transaction has already been restored from disk."
+msgstr "El archivo de estado en dos fases ha sido encontrado en el registro de WAL %X/%X, pero esta transacción ya ha sido restaurada desde disco."
+
+#: access/transam/twophase.c:2524 storage/file/fd.c:514 utils/fmgr/dfmgr.c:209
+#, c-format
+msgid "could not access file \"%s\": %m"
+msgstr "no se pudo acceder al archivo «%s»: %m"
+
+#: access/transam/varsup.c:156
+#, c-format
+msgid "database is not accepting commands that assign new transaction IDs to avoid wraparound data loss in database \"%s\""
+msgstr "la base de datos no está aceptando órdenes que asignen nuevos IDs de transacción para evitar pérdida de datos debido al “wraparound” en la base de datos «%s»"
 
-#: access/transam/varsup.c:136
+#: access/transam/varsup.c:163
 #, c-format
-msgid "database is not accepting commands to avoid wraparound data loss in database with OID %u"
-msgstr "la base de datos no está aceptando órdenes para evitar pérdida de datos debido al problema del reciclaje de transacciones en la base con OID %u"
+msgid "database is not accepting commands that assign new transaction IDs to avoid wraparound data loss in database with OID %u"
+msgstr "la base de datos no está aceptando órdenes que generen nuevos IDs de transacción para evitar pérdida de datos debido al “wraparound” en la base con OID %u"
 
-#: access/transam/varsup.c:148 access/transam/varsup.c:463
+#: access/transam/varsup.c:175 access/transam/varsup.c:490
 #, c-format
 msgid "database \"%s\" must be vacuumed within %u transactions"
 msgstr "base de datos «%s» debe ser limpiada dentro de %u transacciones"
 
-#: access/transam/varsup.c:155 access/transam/varsup.c:470
+#: access/transam/varsup.c:178
+#, c-format
+msgid ""
+"To avoid transaction ID assignment failures, execute a database-wide VACUUM in that database.\n"
+"You might also need to commit or roll back old prepared transactions, or drop stale replication slots."
+msgstr ""
+"Para evitar fallas de asignación de IDs de transacción, ejecute VACUUM en esa base de datos.\n"
+"Puede que además necesite comprometer o abortar transacciones preparadas antiguas, o eliminar slots de replicación añejos."
+
+#: access/transam/varsup.c:182 access/transam/varsup.c:497
 #, c-format
 msgid "database with OID %u must be vacuumed within %u transactions"
 msgstr "base de datos con OID %u debe ser limpiada dentro de %u transacciones"
 
-#: access/transam/xact.c:1102
+#: access/transam/varsup.c:185 access/transam/varsup.c:493
+#: access/transam/varsup.c:500
+#, c-format
+msgid ""
+"To avoid XID assignment failures, execute a database-wide VACUUM in that database.\n"
+"You might also need to commit or roll back old prepared transactions, or drop stale replication slots."
+msgstr ""
+"Para evitar que la base de datos se desactive, ejecute VACUUM en esa base de datos.\n"
+"Puede que además necesite comprometer o abortar transacciones preparadas antiguas, o eliminar slots de replicación añejos."
+
+#: access/transam/xact.c:649
+#, c-format
+msgid "cannot assign transaction IDs during a parallel operation"
+msgstr "no se puede asignar IDs de transacción durante una operación paralela"
+
+#: access/transam/xact.c:840
+#, c-format
+msgid "cannot modify data in a parallel worker"
+msgstr "no se pueden modificar datos en un proceso ayudante paralelo"
+
+#: access/transam/xact.c:1115
+#, c-format
+msgid "cannot start commands during a parallel operation"
+msgstr "no se puede iniciar órdenes durante una operación paralela"
+
+#: access/transam/xact.c:1123
 #, c-format
 msgid "cannot have more than 2^32-2 commands in a transaction"
 msgstr "no se pueden tener más de 2^32-2 órdenes en una transacción"
 
-#: access/transam/xact.c:1643
+#: access/transam/xact.c:1664
 #, c-format
 msgid "maximum number of committed subtransactions (%d) exceeded"
 msgstr "se superó el número máximo de subtransacciones comprometidas (%d)"
 
-#: access/transam/xact.c:2513
+#: access/transam/xact.c:2561
 #, c-format
 msgid "cannot PREPARE a transaction that has operated on temporary objects"
 msgstr "no se puede hacer PREPARE de una transacción que ha operado en objetos temporales"
 
-#: access/transam/xact.c:2523
+#: access/transam/xact.c:2571
 #, c-format
 msgid "cannot PREPARE a transaction that has exported snapshots"
 msgstr "no se puede hacer PREPARE de una transacción que ha exportado snapshots"
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:3489
+#: access/transam/xact.c:3593
 #, c-format
 msgid "%s cannot run inside a transaction block"
 msgstr "%s no puede ser ejecutado dentro de un bloque de transacción"
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:3499
+#: access/transam/xact.c:3603
 #, c-format
 msgid "%s cannot run inside a subtransaction"
 msgstr "%s no puede ser ejecutado dentro de una subtransacción"
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:3509
-#, fuzzy, c-format
-#| msgid "%s cannot be executed from a function"
+#: access/transam/xact.c:3613
+#, c-format
 msgid "%s cannot be executed within a pipeline"
-msgstr "%s no puede ser ejecutado desde una función"
+msgstr "%s no puede ser ejecutado en un “pipeline”"
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:3519
+#: access/transam/xact.c:3623
 #, c-format
 msgid "%s cannot be executed from a function"
 msgstr "%s no puede ser ejecutado desde una función"
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:3590 access/transam/xact.c:3915
-#: access/transam/xact.c:3994 access/transam/xact.c:4117
-#: access/transam/xact.c:4268 access/transam/xact.c:4337
-#: access/transam/xact.c:4448
+#: access/transam/xact.c:3694 access/transam/xact.c:4019
+#: access/transam/xact.c:4098 access/transam/xact.c:4221
+#: access/transam/xact.c:4372 access/transam/xact.c:4441
+#: access/transam/xact.c:4552
 #, c-format
 msgid "%s can only be used in transaction blocks"
 msgstr "la orden %s sólo puede ser usada en bloques de transacción"
 
-#: access/transam/xact.c:3801
+#: access/transam/xact.c:3905
 #, c-format
 msgid "there is already a transaction in progress"
 msgstr "ya hay una transacción en curso"
 
-#: access/transam/xact.c:3920 access/transam/xact.c:3999
-#: access/transam/xact.c:4122
+#: access/transam/xact.c:4024 access/transam/xact.c:4103
+#: access/transam/xact.c:4226
 #, c-format
 msgid "there is no transaction in progress"
 msgstr "no hay una transacción en curso"
 
-#: access/transam/xact.c:4010
+#: access/transam/xact.c:4114
 #, c-format
 msgid "cannot commit during a parallel operation"
 msgstr "no se puede comprometer una transacción durante una operación paralela"
 
-#: access/transam/xact.c:4133
+#: access/transam/xact.c:4237
 #, c-format
 msgid "cannot abort during a parallel operation"
 msgstr "no se puede abortar durante una operación paralela"
 
-#: access/transam/xact.c:4232
+#: access/transam/xact.c:4336
 #, c-format
 msgid "cannot define savepoints during a parallel operation"
 msgstr "no se pueden definir savepoints durante una operación paralela"
 
-#: access/transam/xact.c:4319
+#: access/transam/xact.c:4423
 #, c-format
 msgid "cannot release savepoints during a parallel operation"
 msgstr "no se pueden liberar savepoints durante una operación paralela"
 
-#: access/transam/xact.c:4329 access/transam/xact.c:4380
-#: access/transam/xact.c:4440 access/transam/xact.c:4489
+#: access/transam/xact.c:4433 access/transam/xact.c:4484
+#: access/transam/xact.c:4544 access/transam/xact.c:4593
 #, c-format
 msgid "savepoint \"%s\" does not exist"
 msgstr "no existe el «savepoint» «%s»"
 
-#: access/transam/xact.c:4386 access/transam/xact.c:4495
+#: access/transam/xact.c:4490 access/transam/xact.c:4599
 #, c-format
 msgid "savepoint \"%s\" does not exist within current savepoint level"
 msgstr "el «savepoint» «%s» no existe dentro del nivel de savepoint actual"
 
-#: access/transam/xact.c:4428
+#: access/transam/xact.c:4532
 #, c-format
 msgid "cannot rollback to savepoints during a parallel operation"
 msgstr "no se puede hacer rollback a un savepoint durante una operación paralela"
 
-#: access/transam/xact.c:4556
-#, c-format
-msgid "cannot start subtransactions during a parallel operation"
-msgstr "no se pueden iniciar subtransacciones durante una operación paralela"
-
-#: access/transam/xact.c:4624
-#, c-format
-msgid "cannot commit subtransactions during a parallel operation"
-msgstr "no se pueden comprometer subtransacciones durante una operación paralela"
-
-#: access/transam/xact.c:5270
+#: access/transam/xact.c:5376
 #, c-format
 msgid "cannot have more than 2^32-1 subtransactions in a transaction"
 msgstr "no se pueden tener más de 2^32-1 subtransacciones en una transacción"
 
-#: access/transam/xlog.c:1466
+#: access/transam/xlog.c:1542
 #, c-format
 msgid "request to flush past end of generated WAL; request %X/%X, current position %X/%X"
 msgstr "petición para sincronizar (flush) más allá del final del WAL generado; petición %X/%X, posición actual %X/%X"
 
+#: access/transam/xlog.c:1769
+#, c-format
+msgid "cannot read past end of generated WAL: requested %X/%X, current position %X/%X"
+msgstr "no se puede ler más allá del final del WAL generado; petición %X/%X, posición actual %X/%X"
+
+#: access/transam/xlog.c:2210 access/transam/xlog.c:4501
+#, c-format
+msgid "The WAL segment size must be a power of two between 1 MB and 1 GB."
+msgstr "El tamaño de segmento de WAL debe ser una potencia de dos entre 1 MB y 1 GB."
+
 #: access/transam/xlog.c:2228
 #, c-format
-msgid "could not write to log file %s at offset %u, length %zu: %m"
-msgstr "no se pudo escribir archivo de registro %s en la posición %u, largo %zu: %m"
+msgid "\"%s\" must be set to -1 during binary upgrade mode."
+msgstr "«%s» debe ser establecido a -1 durante el modo de actualización binaria."
+
+#: access/transam/xlog.c:2477
+#, c-format
+msgid "could not write to log file \"%s\" at offset %u, length %zu: %m"
+msgstr "no se pudo escribir archivo de registro «%s» en la posición %u, largo %zu: %m"
 
-#: access/transam/xlog.c:3455 access/transam/xlogutils.c:833
-#: replication/walsender.c:2725
+#: access/transam/xlog.c:3739 access/transam/xlogutils.c:831
+#: replication/walsender.c:3045
 #, c-format
 msgid "requested WAL segment %s has already been removed"
 msgstr "el segmento de WAL solicitado %s ya ha sido eliminado"
 
-#: access/transam/xlog.c:3739
+#: access/transam/xlog.c:4061
 #, c-format
 msgid "could not rename file \"%s\": %m"
 msgstr "no se pudo renombrar el archivo «%s»: %m"
 
-#: access/transam/xlog.c:3781 access/transam/xlog.c:3791
+#: access/transam/xlog.c:4104 access/transam/xlog.c:4115
+#: access/transam/xlog.c:4136
 #, c-format
 msgid "required WAL directory \"%s\" does not exist"
 msgstr "no existe el directorio WAL «%s»"
 
-#: access/transam/xlog.c:3797
+#: access/transam/xlog.c:4121 access/transam/xlog.c:4142
 #, c-format
 msgid "creating missing WAL directory \"%s\""
 msgstr "creando el directorio WAL faltante «%s»"
 
-#: access/transam/xlog.c:3800 commands/dbcommands.c:3095
+#: access/transam/xlog.c:4125 access/transam/xlog.c:4145
+#: commands/dbcommands.c:3262
 #, c-format
 msgid "could not create missing directory \"%s\": %m"
 msgstr "no se pudo crear el directorio faltante «%s»: %m"
 
-#: access/transam/xlog.c:3867
+#: access/transam/xlog.c:4212
 #, c-format
 msgid "could not generate secret authorization token"
 msgstr "no se pudo generar un token de autorización secreto"
 
-#: access/transam/xlog.c:4017 access/transam/xlog.c:4026
-#: access/transam/xlog.c:4050 access/transam/xlog.c:4057
-#: access/transam/xlog.c:4064 access/transam/xlog.c:4069
-#: access/transam/xlog.c:4076 access/transam/xlog.c:4083
-#: access/transam/xlog.c:4090 access/transam/xlog.c:4097
-#: access/transam/xlog.c:4104 access/transam/xlog.c:4111
-#: access/transam/xlog.c:4120 access/transam/xlog.c:4127
-#: utils/init/miscinit.c:1762
+#: access/transam/xlog.c:4363 access/transam/xlog.c:4373
+#: access/transam/xlog.c:4399 access/transam/xlog.c:4407
+#: access/transam/xlog.c:4415 access/transam/xlog.c:4421
+#: access/transam/xlog.c:4429 access/transam/xlog.c:4437
+#: access/transam/xlog.c:4445 access/transam/xlog.c:4453
+#: access/transam/xlog.c:4461 access/transam/xlog.c:4469
+#: access/transam/xlog.c:4479 access/transam/xlog.c:4487
+#: utils/init/miscinit.c:1812
 #, c-format
 msgid "database files are incompatible with server"
 msgstr "los archivos de base de datos son incompatibles con el servidor"
 
-#: access/transam/xlog.c:4018
+#: access/transam/xlog.c:4364
 #, c-format
 msgid "The database cluster was initialized with PG_CONTROL_VERSION %d (0x%08x), but the server was compiled with PG_CONTROL_VERSION %d (0x%08x)."
 msgstr "Los archivos de base de datos fueron inicializados con PG_CONTROL_VERSION %d (0x%08x), pero el servidor fue compilado con PG_CONTROL_VERSION %d (0x%08x)."
 
-#: access/transam/xlog.c:4022
+#: access/transam/xlog.c:4368
 #, c-format
 msgid "This could be a problem of mismatched byte ordering.  It looks like you need to initdb."
 msgstr "Este puede ser un problema de discordancia en el orden de bytes. Parece que necesitará ejecutar initdb."
 
-#: access/transam/xlog.c:4027
+#: access/transam/xlog.c:4374
 #, c-format
 msgid "The database cluster was initialized with PG_CONTROL_VERSION %d, but the server was compiled with PG_CONTROL_VERSION %d."
 msgstr "Los archivos de base de datos fueron inicializados con PG_CONTROL_VERSION %d, pero el servidor fue compilado con PG_CONTROL_VERSION %d."
 
-#: access/transam/xlog.c:4030 access/transam/xlog.c:4054
-#: access/transam/xlog.c:4061 access/transam/xlog.c:4066
+#: access/transam/xlog.c:4377 access/transam/xlog.c:4403
+#: access/transam/xlog.c:4411 access/transam/xlog.c:4417
 #, c-format
 msgid "It looks like you need to initdb."
 msgstr "Parece que necesita ejecutar initdb."
 
-#: access/transam/xlog.c:4041
+#: access/transam/xlog.c:4389
 #, c-format
 msgid "incorrect checksum in control file"
 msgstr "la suma de verificación es incorrecta en el archivo de control"
 
-#: access/transam/xlog.c:4051
+#: access/transam/xlog.c:4400
 #, c-format
 msgid "The database cluster was initialized with CATALOG_VERSION_NO %d, but the server was compiled with CATALOG_VERSION_NO %d."
 msgstr "Los archivos de base de datos fueron inicializados con CATALOG_VERSION_NO %d, pero el servidor fue compilado con CATALOG_VERSION_NO %d."
 
-#: access/transam/xlog.c:4058
+#: access/transam/xlog.c:4408
 #, c-format
 msgid "The database cluster was initialized with MAXALIGN %d, but the server was compiled with MAXALIGN %d."
 msgstr "Los archivos de la base de datos fueron inicializados con MAXALIGN %d, pero el servidor fue compilado con MAXALIGN %d."
 
-#: access/transam/xlog.c:4065
+#: access/transam/xlog.c:4416
 #, c-format
 msgid "The database cluster appears to use a different floating-point number format than the server executable."
 msgstr "Los archivos de la base de datos parecen usar un formato de número de coma flotante distinto al del ejecutable del servidor."
 
-#: access/transam/xlog.c:4070
+#: access/transam/xlog.c:4422
 #, c-format
 msgid "The database cluster was initialized with BLCKSZ %d, but the server was compiled with BLCKSZ %d."
 msgstr "Los archivos de base de datos fueron inicializados con BLCKSZ %d, pero el servidor fue compilado con BLCKSZ %d."
 
-#: access/transam/xlog.c:4073 access/transam/xlog.c:4080
-#: access/transam/xlog.c:4087 access/transam/xlog.c:4094
-#: access/transam/xlog.c:4101 access/transam/xlog.c:4108
-#: access/transam/xlog.c:4115 access/transam/xlog.c:4123
-#: access/transam/xlog.c:4130
+#: access/transam/xlog.c:4425 access/transam/xlog.c:4433
+#: access/transam/xlog.c:4441 access/transam/xlog.c:4449
+#: access/transam/xlog.c:4457 access/transam/xlog.c:4465
+#: access/transam/xlog.c:4473 access/transam/xlog.c:4482
+#: access/transam/xlog.c:4490
 #, c-format
 msgid "It looks like you need to recompile or initdb."
 msgstr "Parece que necesita recompilar o ejecutar initdb."
 
-#: access/transam/xlog.c:4077
+#: access/transam/xlog.c:4430
 #, c-format
 msgid "The database cluster was initialized with RELSEG_SIZE %d, but the server was compiled with RELSEG_SIZE %d."
 msgstr "Los archivos de la base de datos fueron inicializados con RELSEG_SIZE %d, pero el servidor fue compilado con RELSEG_SIZE %d."
 
-#: access/transam/xlog.c:4084
+#: access/transam/xlog.c:4438
 #, c-format
 msgid "The database cluster was initialized with XLOG_BLCKSZ %d, but the server was compiled with XLOG_BLCKSZ %d."
 msgstr "Los archivos de base de datos fueron inicializados con XLOG_BLCKSZ %d, pero el servidor fue compilado con XLOG_BLCKSZ %d."
 
-#: access/transam/xlog.c:4091
+#: access/transam/xlog.c:4446
 #, c-format
 msgid "The database cluster was initialized with NAMEDATALEN %d, but the server was compiled with NAMEDATALEN %d."
 msgstr "Los archivos de la base de datos fueron inicializados con NAMEDATALEN %d, pero el servidor fue compilado con NAMEDATALEN %d."
 
-#: access/transam/xlog.c:4098
+#: access/transam/xlog.c:4454
 #, c-format
 msgid "The database cluster was initialized with INDEX_MAX_KEYS %d, but the server was compiled with INDEX_MAX_KEYS %d."
 msgstr "Los archivos de la base de datos fueron inicializados con INDEX_MAX_KEYS %d, pero el servidor fue compilado con INDEX_MAX_KEYS %d."
 
-#: access/transam/xlog.c:4105
+#: access/transam/xlog.c:4462
 #, c-format
 msgid "The database cluster was initialized with TOAST_MAX_CHUNK_SIZE %d, but the server was compiled with TOAST_MAX_CHUNK_SIZE %d."
 msgstr "Los archivos de la base de datos fueron inicializados con TOAST_MAX_CHUNK_SIZE %d, pero el servidor fue compilado con TOAST_MAX_CHUNK_SIZE %d."
 
-#: access/transam/xlog.c:4112
+#: access/transam/xlog.c:4470
 #, c-format
 msgid "The database cluster was initialized with LOBLKSIZE %d, but the server was compiled with LOBLKSIZE %d."
 msgstr "Los archivos de base de datos fueron inicializados con LOBLKSIZE %d, pero el servidor fue compilado con LOBLKSIZE %d."
 
-#: access/transam/xlog.c:4121
+#: access/transam/xlog.c:4480
 #, c-format
 msgid "The database cluster was initialized without USE_FLOAT8_BYVAL but the server was compiled with USE_FLOAT8_BYVAL."
 msgstr "Los archivos de base de datos fueron inicializados sin USE_FLOAT8_BYVAL, pero el servidor fue compilado con USE_FLOAT8_BYVAL."
 
-#: access/transam/xlog.c:4128
+#: access/transam/xlog.c:4488
 #, c-format
 msgid "The database cluster was initialized with USE_FLOAT8_BYVAL but the server was compiled without USE_FLOAT8_BYVAL."
 msgstr "Los archivos de base de datos fueron inicializados con USE_FLOAT8_BYVAL, pero el servidor fue compilado sin USE_FLOAT8_BYVAL."
 
-#: access/transam/xlog.c:4137
+#: access/transam/xlog.c:4497
 #, c-format
-msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d byte"
-msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d bytes"
-msgstr[0] "El tamaño del segmento de WAL debe ser una potencia de dos entre 1 MB y 1 GB, pero el archivo de control especifica %d byte"
-msgstr[1] "El tamaño del segmento de WAL debe ser una potencia de dos entre 1 MB y 1 GB, pero el archivo de control especifica %d bytes"
+msgid "invalid WAL segment size in control file (%d byte)"
+msgid_plural "invalid WAL segment size in control file (%d bytes)"
+msgstr[0] "tamaño de segmento de WAL no válido (%d byte) en archivo de control"
+msgstr[1] "tamaño de segmento de WAL no válido (%d bytes) en archivo de control"
 
-#: access/transam/xlog.c:4149
+#: access/transam/xlog.c:4510
 #, c-format
 msgid "\"min_wal_size\" must be at least twice \"wal_segment_size\""
 msgstr "«min_wal_size» debe ser al menos el doble de «wal_segment_size»"
 
-#: access/transam/xlog.c:4153
+#: access/transam/xlog.c:4514
 #, c-format
 msgid "\"max_wal_size\" must be at least twice \"wal_segment_size\""
 msgstr "«max_wal_size» debe ser al menos el doble de «wal_segment_size»"
 
-#: access/transam/xlog.c:4308 catalog/namespace.c:4335
-#: commands/tablespace.c:1216 commands/user.c:2536 commands/variable.c:72
-#: utils/error/elog.c:2205
+#: access/transam/xlog.c:4662 catalog/namespace.c:4696
+#: commands/tablespace.c:1210 commands/user.c:2529 commands/variable.c:72
+#: replication/slot.c:2429 tcop/postgres.c:3715 utils/error/elog.c:2247
 #, c-format
 msgid "List syntax is invalid."
 msgstr "La sintaxis de lista no es válida."
 
-#: access/transam/xlog.c:4354 commands/user.c:2552 commands/variable.c:173
-#: utils/error/elog.c:2231
+#: access/transam/xlog.c:4708 commands/user.c:2545 commands/variable.c:173
+#: tcop/postgres.c:3731 utils/error/elog.c:2273
 #, c-format
 msgid "Unrecognized key word: \"%s\"."
 msgstr "Palabra clave no reconocida: «%s»."
 
-#: access/transam/xlog.c:4768
+#: access/transam/xlog.c:5129
 #, c-format
 msgid "could not write bootstrap write-ahead log file: %m"
 msgstr "no se pudo escribir el archivo WAL de boostrap: %m"
 
-#: access/transam/xlog.c:4776
+#: access/transam/xlog.c:5137
 #, c-format
 msgid "could not fsync bootstrap write-ahead log file: %m"
 msgstr "no se pudo sincronizar (fsync) el archivo de WAL de bootstrap: %m"
 
-#: access/transam/xlog.c:4782
+#: access/transam/xlog.c:5143
 #, c-format
 msgid "could not close bootstrap write-ahead log file: %m"
 msgstr "no se pudo cerrar el archivo WAL de bootstrap: %m"
 
-#: access/transam/xlog.c:4999
+#: access/transam/xlog.c:5368
 #, c-format
-msgid "WAL was generated with wal_level=minimal, cannot continue recovering"
-msgstr "el WAL fue generado con wal_level=minimal, no se puede continuar con la recuperación"
+msgid "WAL was generated with \"wal_level=minimal\", cannot continue recovering"
+msgstr "el WAL fue generado con «wal_level=minimal», no se puede continuar con la recuperación"
 
-#: access/transam/xlog.c:5000
+#: access/transam/xlog.c:5369
 #, c-format
-msgid "This happens if you temporarily set wal_level=minimal on the server."
-msgstr "Esto sucede si temporalmente define wal_level=minimal en el servidor."
+msgid "This happens if you temporarily set \"wal_level=minimal\" on the server."
+msgstr "Esto sucede si temporalmente define «wal_level=minimal» en el servidor."
 
-#: access/transam/xlog.c:5001
+#: access/transam/xlog.c:5370
 #, c-format
-msgid "Use a backup taken after setting wal_level to higher than minimal."
-msgstr "Utilice un respaldo tomado después de establecer wal_level a un valor superior a minimal."
+msgid "Use a backup taken after setting \"wal_level\" to higher than \"minimal\"."
+msgstr "Utilice un respaldo tomado después de establecer «wal_level» a un valor superior a «minimal»."
 
-#: access/transam/xlog.c:5065
+#: access/transam/xlog.c:5435
 #, c-format
 msgid "control file contains invalid checkpoint location"
-msgstr "el archivo de control contiene una ubicación no válida de punto de control"
+msgstr "el archivo de control contiene una ubicación no válida de checkpoint"
 
-#: access/transam/xlog.c:5076
+#: access/transam/xlog.c:5446
 #, c-format
 msgid "database system was shut down at %s"
 msgstr "el sistema de bases de datos fue apagado en %s"
 
-#: access/transam/xlog.c:5082
+#: access/transam/xlog.c:5452
 #, c-format
 msgid "database system was shut down in recovery at %s"
 msgstr "el sistema de bases de datos fue apagado durante la recuperación en %s"
 
-#: access/transam/xlog.c:5088
+#: access/transam/xlog.c:5458
 #, c-format
 msgid "database system shutdown was interrupted; last known up at %s"
 msgstr "el apagado del sistema de datos fue interrumpido; última vez registrada en funcionamiento en %s"
 
-#: access/transam/xlog.c:5094
+#: access/transam/xlog.c:5464
 #, c-format
 msgid "database system was interrupted while in recovery at %s"
 msgstr "el sistema de bases de datos fue interrumpido durante la recuperación en %s"
 
-#: access/transam/xlog.c:5096
+#: access/transam/xlog.c:5466
 #, c-format
 msgid "This probably means that some data is corrupted and you will have to use the last backup for recovery."
 msgstr "Esto probablemente significa que algunos datos están corruptos y tendrá que usar el respaldo más reciente para la recuperación."
 
-#: access/transam/xlog.c:5102
+#: access/transam/xlog.c:5472
 #, c-format
 msgid "database system was interrupted while in recovery at log time %s"
 msgstr "el sistema de bases de datos fue interrumpido durante la recuperación en el instante de registro %s"
 
-#: access/transam/xlog.c:5104
+#: access/transam/xlog.c:5474
 #, c-format
 msgid "If this has occurred more than once some data might be corrupted and you might need to choose an earlier recovery target."
 msgstr "Si esto ha ocurrido más de una vez, algunos datos podrían estar corruptos y podría ser necesario escoger un punto de recuperación anterior."
 
-#: access/transam/xlog.c:5110
+#: access/transam/xlog.c:5480
 #, c-format
 msgid "database system was interrupted; last known up at %s"
 msgstr "el sistema de bases de datos fue interrumpido; última vez en funcionamiento en %s"
 
-#: access/transam/xlog.c:5116
+#: access/transam/xlog.c:5487
 #, c-format
 msgid "control file contains invalid database cluster state"
 msgstr "el archivo de control contiene un estado no válido del clúster"
 
-#: access/transam/xlog.c:5500
+#: access/transam/xlog.c:5875
 #, c-format
 msgid "WAL ends before end of online backup"
 msgstr "WAL termina antes del fin del respaldo en línea"
 
-#: access/transam/xlog.c:5501
+#: access/transam/xlog.c:5876
 #, c-format
 msgid "All WAL generated while online backup was taken must be available at recovery."
 msgstr "Todo el WAL generado durante el respaldo en línea debe estar disponible durante la recuperación."
 
-#: access/transam/xlog.c:5504
+#: access/transam/xlog.c:5880
 #, c-format
 msgid "WAL ends before consistent recovery point"
 msgstr "WAL termina antes del punto de recuperación consistente"
 
-#: access/transam/xlog.c:5550
+#: access/transam/xlog.c:5926
 #, c-format
 msgid "selected new timeline ID: %u"
 msgstr "seleccionado nuevo ID de timeline: %u"
 
-#: access/transam/xlog.c:5583
+#: access/transam/xlog.c:5959
 #, c-format
 msgid "archive recovery complete"
 msgstr "recuperación completa"
 
-#: access/transam/xlog.c:6185
+#: access/transam/xlog.c:6612
 #, c-format
 msgid "shutting down"
 msgstr "apagando"
 
 #. translator: the placeholders show checkpoint options
-#: access/transam/xlog.c:6224
+#: access/transam/xlog.c:6651
 #, c-format
 msgid "restartpoint starting:%s%s%s%s%s%s%s%s"
 msgstr "empezando restartpoint:%s%s%s%s%s%s%s%s"
 
 #. translator: the placeholders show checkpoint options
-#: access/transam/xlog.c:6236
+#: access/transam/xlog.c:6663
 #, c-format
 msgid "checkpoint starting:%s%s%s%s%s%s%s%s"
 msgstr "empezando checkpoint:%s%s%s%s%s%s%s%s"
 
-#: access/transam/xlog.c:6301
+#: access/transam/xlog.c:6728
 #, c-format
 msgid "restartpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X"
-msgstr ""
+msgstr "restartpoint completo: escritos %d búfers (%.1f%%); %d archivos WAL añadidos, %d eliminados, %d reciclados; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; archivos sincronizados=%d, más largo=%ld.%03d s, promedio=%ld.%03d s; distancia=%d kB, estimación=%d kB; lsn=%X/%X, lsn de redo=%X/%X"
 
-#: access/transam/xlog.c:6324
+#: access/transam/xlog.c:6751
 #, c-format
 msgid "checkpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X"
-msgstr ""
+msgstr "checkpoint completo: escritos %d búfers (%.1f%%); %d archivos WAL añadidos, %d eliminados, %d reciclados; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; archivos sincronizados=%d, más largo=%ld.%03d s, promedio=%ld.%03d s; distancia=%d kB, estimación=%d kB; lsn=%X/%X, lsn de redo=%X/%X"
 
-#: access/transam/xlog.c:6762
+#: access/transam/xlog.c:7233
 #, c-format
 msgid "concurrent write-ahead log activity while database system is shutting down"
 msgstr "hay actividad de WAL mientras el sistema se está apagando"
 
-#: access/transam/xlog.c:7323
+#: access/transam/xlog.c:7818
 #, c-format
 msgid "recovery restart point at %X/%X"
 msgstr "restartpoint de recuperación en %X/%X"
 
-#: access/transam/xlog.c:7325
+#: access/transam/xlog.c:7820
 #, c-format
 msgid "Last completed transaction was at log time %s."
 msgstr "Última transacción completada al tiempo de registro %s."
 
-#: access/transam/xlog.c:7573
+#: access/transam/xlog.c:8082
 #, c-format
 msgid "restore point \"%s\" created at %X/%X"
 msgstr "punto de recuperación «%s» creado en %X/%X"
 
-#: access/transam/xlog.c:7780
+#: access/transam/xlog.c:8289
 #, c-format
 msgid "online backup was canceled, recovery cannot continue"
 msgstr "el respaldo en línea fue cancelado, la recuperación no puede continuar"
 
-#: access/transam/xlog.c:7837
+#: access/transam/xlog.c:8347
 #, c-format
 msgid "unexpected timeline ID %u (should be %u) in shutdown checkpoint record"
 msgstr "ID de timeline %u inesperado (debería ser %u) en el registro de checkpoint de detención"
 
-#: access/transam/xlog.c:7895
+#: access/transam/xlog.c:8405
 #, c-format
 msgid "unexpected timeline ID %u (should be %u) in online checkpoint record"
 msgstr "ID de timeline %u inesperado (debería ser %u) en el registro de checkpoint «online»"
 
-#: access/transam/xlog.c:7924
+#: access/transam/xlog.c:8434
 #, c-format
 msgid "unexpected timeline ID %u (should be %u) in end-of-recovery record"
 msgstr "ID de timeline %u inesperado (debería ser %u) en el registro de fin-de-recuperación"
 
-#: access/transam/xlog.c:8191
+#: access/transam/xlog.c:8705
 #, c-format
 msgid "could not fsync write-through file \"%s\": %m"
 msgstr "no se pudo sincronizar (fsync write-through) el archivo «%s»: %m"
 
-#: access/transam/xlog.c:8196
+#: access/transam/xlog.c:8710
 #, c-format
 msgid "could not fdatasync file \"%s\": %m"
 msgstr "no se pudo sincronizar (fdatasync) archivo «%s»: %m"
 
-#: access/transam/xlog.c:8281 access/transam/xlog.c:8604
+#: access/transam/xlog.c:8797 access/transam/xlog.c:9133
 #, c-format
 msgid "WAL level not sufficient for making an online backup"
 msgstr "el nivel de WAL no es suficiente para hacer un respaldo en línea"
 
-#: access/transam/xlog.c:8282 access/transam/xlog.c:8605
-#: access/transam/xlogfuncs.c:254
+#: access/transam/xlog.c:8798 access/transam/xlogfuncs.c:248
 #, c-format
-msgid "wal_level must be set to \"replica\" or \"logical\" at server start."
-msgstr "wal_level debe ser definido a «replica» o «logical» al inicio del servidor."
+msgid "\"wal_level\" must be set to \"replica\" or \"logical\" at server start."
+msgstr "«wal_level» debe ser definido a «replica» o «logical» al inicio del servidor."
 
-#: access/transam/xlog.c:8287
+#: access/transam/xlog.c:8803
 #, c-format
 msgid "backup label too long (max %d bytes)"
 msgstr "la etiqueta de respaldo es demasiado larga (máximo %d bytes)"
 
-#: access/transam/xlog.c:8408
+#: access/transam/xlog.c:8924
 #, c-format
-msgid "WAL generated with full_page_writes=off was replayed since last restartpoint"
-msgstr "el WAL generado con full_page_writes=off fue restaurado desde el último restartpoint"
+msgid "WAL generated with \"full_page_writes=off\" was replayed since last restartpoint"
+msgstr "el WAL generado con «full_page_writes=off» fue restaurado desde el último restartpoint"
 
-#: access/transam/xlog.c:8410 access/transam/xlog.c:8693
+#: access/transam/xlog.c:8926 access/transam/xlog.c:9222
 #, c-format
-msgid "This means that the backup being taken on the standby is corrupt and should not be used. Enable full_page_writes and run CHECKPOINT on the primary, and then try an online backup again."
-msgstr "Esto significa que el respaldo que estaba siendo tomado en el standby está corrupto y no debería usarse. Active full_page_writes y ejecute CHECKPOINT en el primario, luego trate de ejecutar un respaldo en línea nuevamente."
+msgid "This means that the backup being taken on the standby is corrupt and should not be used. Enable \"full_page_writes\" and run CHECKPOINT on the primary, and then try an online backup again."
+msgstr "Esto significa que el respaldo que estaba siendo tomado en el standby está corrupto y no debería usarse. Active «full_page_writes» y ejecute CHECKPOINT en el primario, luego trate de ejecutar un respaldo en línea nuevamente."
 
-#: access/transam/xlog.c:8477 backup/basebackup.c:1351 utils/adt/misc.c:354
+#: access/transam/xlog.c:9006 backup/basebackup.c:1417 utils/adt/misc.c:354
 #, c-format
 msgid "could not read symbolic link \"%s\": %m"
 msgstr "no se pudo leer el enlace simbólico «%s»: %m"
 
-#: access/transam/xlog.c:8484 backup/basebackup.c:1356 utils/adt/misc.c:359
+#: access/transam/xlog.c:9013 backup/basebackup.c:1422 utils/adt/misc.c:359
 #, c-format
 msgid "symbolic link \"%s\" target is too long"
 msgstr "la ruta «%s» del enlace simbólico es demasiado larga"
 
-#: access/transam/xlog.c:8643 backup/basebackup.c:1217
+#: access/transam/xlog.c:9134
+#, c-format
+msgid "wal_level must be set to \"replica\" or \"logical\" at server start."
+msgstr "wal_level debe ser definido a «replica» o «logical» al inicio del servidor."
+
+#: access/transam/xlog.c:9172 backup/basebackup.c:1281
 #, c-format
 msgid "the standby was promoted during online backup"
 msgstr "el standby fue promovido durante el respaldo en línea"
 
-#: access/transam/xlog.c:8644 backup/basebackup.c:1218
+#: access/transam/xlog.c:9173 backup/basebackup.c:1282
 #, c-format
 msgid "This means that the backup being taken is corrupt and should not be used. Try taking another online backup."
 msgstr "Esto significa que el respaldo que se estaba tomando está corrupto y no debería ser usado. Trate de ejecutar un nuevo respaldo en línea."
 
-#: access/transam/xlog.c:8691
+#: access/transam/xlog.c:9220
 #, c-format
-msgid "WAL generated with full_page_writes=off was replayed during online backup"
-msgstr "el WAL generado con full_page_writes=off fue restaurado durante el respaldo en línea"
+msgid "WAL generated with \"full_page_writes=off\" was replayed during online backup"
+msgstr "el WAL generado con «full_page_writes=off» fue restaurado durante el respaldo en línea"
 
-#: access/transam/xlog.c:8807
+#: access/transam/xlog.c:9336
 #, c-format
 msgid "base backup done, waiting for required WAL segments to be archived"
 msgstr "respaldo base completo, esperando que se archiven los segmentos WAL requeridos"
 
-#: access/transam/xlog.c:8821
+#: access/transam/xlog.c:9350
 #, c-format
 msgid "still waiting for all required WAL segments to be archived (%d seconds elapsed)"
 msgstr "todavía en espera de que todos los segmentos WAL requeridos sean archivados (han pasado %d segundos)"
 
-#: access/transam/xlog.c:8823
+#: access/transam/xlog.c:9352
 #, c-format
-msgid "Check that your archive_command is executing properly.  You can safely cancel this backup, but the database backup will not be usable without all the WAL segments."
-msgstr "Verifique que su archive_command se esté ejecutando con normalidad.  Puede cancelar este respaldo con confianza, pero el respaldo de la base de datos no será utilizable a menos que disponga de todos los segmentos de WAL."
+msgid "Check that your \"archive_command\" is executing properly.  You can safely cancel this backup, but the database backup will not be usable without all the WAL segments."
+msgstr "Verifique que su «archive_command» se esté ejecutando con normalidad.  Puede cancelar este respaldo con confianza, pero el respaldo de la base de datos no será utilizable a menos que disponga de todos los segmentos de WAL."
 
-#: access/transam/xlog.c:8830
+#: access/transam/xlog.c:9359
 #, c-format
 msgid "all required WAL segments have been archived"
 msgstr "todos los segmentos de WAL requeridos han sido archivados"
 
-#: access/transam/xlog.c:8834
+#: access/transam/xlog.c:9363
 #, c-format
 msgid "WAL archiving is not enabled; you must ensure that all required WAL segments are copied through other means to complete the backup"
 msgstr "el archivado de WAL no está activo; debe asegurarse que todos los segmentos WAL requeridos se copian por algún otro mecanismo para completar el respaldo"
 
-#: access/transam/xlog.c:8873
+#: access/transam/xlog.c:9402
 #, c-format
 msgid "aborting backup due to backend exiting before pg_backup_stop was called"
 msgstr "abortando el backup porque el proceso servidor terminó antes de que pg_backup_stop fuera invocada"
 
-#: access/transam/xlogarchive.c:207
+#: access/transam/xlogarchive.c:213
 #, c-format
 msgid "archive file \"%s\" has wrong size: %lld instead of %lld"
 msgstr "el archivo «%s» tiene tamaño erróneo: %lld en lugar de %lld"
 
-#: access/transam/xlogarchive.c:216
+#: access/transam/xlogarchive.c:222
 #, c-format
 msgid "restored log file \"%s\" from archive"
 msgstr "se ha restaurado el archivo «%s» desde el área de archivado"
 
-#: access/transam/xlogarchive.c:230
+#: access/transam/xlogarchive.c:236
 #, c-format
-msgid "restore_command returned a zero exit status, but stat() failed."
-msgstr "restore_command retornó un estado de salida cero, pero stat() falló."
+msgid "\"restore_command\" returned a zero exit status, but stat() failed."
+msgstr "«restore_command» retornó un estado de salida cero, pero stat() falló."
 
-#: access/transam/xlogarchive.c:262
+#: access/transam/xlogarchive.c:268
 #, c-format
 msgid "could not restore file \"%s\" from archive: %s"
 msgstr "no se pudo recuperar el archivo «%s»: %s"
@@ -2744,1028 +2989,1097 @@ msgstr "no se pudo recuperar el archivo «%s»: %s"
 #. translator: First %s represents a postgresql.conf parameter name like
 #. "recovery_end_command", the 2nd is the value of that parameter, the
 #. third an already translated error message.
-#: access/transam/xlogarchive.c:340
+#: access/transam/xlogarchive.c:346
 #, c-format
 msgid "%s \"%s\": %s"
 msgstr "%s «%s»: %s"
 
-#: access/transam/xlogarchive.c:450 access/transam/xlogarchive.c:530
+#: access/transam/xlogarchive.c:456 access/transam/xlogarchive.c:536
 #, c-format
 msgid "could not create archive status file \"%s\": %m"
 msgstr "no se pudo crear el archivo de estado «%s»: %m"
 
-#: access/transam/xlogarchive.c:458 access/transam/xlogarchive.c:538
+#: access/transam/xlogarchive.c:464 access/transam/xlogarchive.c:544
 #, c-format
 msgid "could not write archive status file \"%s\": %m"
 msgstr "no se pudo escribir el archivo de estado «%s»: %m"
 
-#: access/transam/xlogfuncs.c:75 backup/basebackup.c:973
+#: access/transam/xlogfuncs.c:69 backup/basebackup.c:997
 #, c-format
 msgid "a backup is already in progress in this session"
 msgstr "ya hay un respaldo en curso en esta sesión"
 
-#: access/transam/xlogfuncs.c:146
+#: access/transam/xlogfuncs.c:140
 #, c-format
 msgid "backup is not in progress"
 msgstr "no hay respaldo en curso"
 
-#: access/transam/xlogfuncs.c:147
+#: access/transam/xlogfuncs.c:141
 #, c-format
 msgid "Did you call pg_backup_start()?"
 msgstr "¿Invocó pg_backup_start()?"
 
-#: access/transam/xlogfuncs.c:190 access/transam/xlogfuncs.c:248
-#: access/transam/xlogfuncs.c:287 access/transam/xlogfuncs.c:308
-#: access/transam/xlogfuncs.c:329
+#: access/transam/xlogfuncs.c:184 access/transam/xlogfuncs.c:242
+#: access/transam/xlogfuncs.c:281 access/transam/xlogfuncs.c:302
+#: access/transam/xlogfuncs.c:323
 #, c-format
 msgid "WAL control functions cannot be executed during recovery."
 msgstr "Las funciones de control de WAL no pueden ejecutarse durante la recuperación."
 
-#: access/transam/xlogfuncs.c:215 access/transam/xlogfuncs.c:399
-#: access/transam/xlogfuncs.c:457
+#: access/transam/xlogfuncs.c:209 access/transam/xlogfuncs.c:389
+#: access/transam/xlogfuncs.c:447
 #, c-format
 msgid "%s cannot be executed during recovery."
 msgstr "No se puede ejecutar %s durante la recuperación."
 
-# FIXME see logical.c:81
-#: access/transam/xlogfuncs.c:221
-#, fuzzy, c-format
-#| msgid "replication slots can only be used if wal_level >= replica"
-msgid "pg_log_standby_snapshot() can only be used if wal_level >= replica"
-msgstr "los slots de replicación sólo pueden usarse si wal_level >= replica"
+#: access/transam/xlogfuncs.c:215
+#, c-format
+msgid "pg_log_standby_snapshot() can only be used if \"wal_level\" >= \"replica\""
+msgstr "pg_log_standby_snapshot() sólo puede usarse si «wal_level» >= «replica»"
 
-#: access/transam/xlogfuncs.c:253
+#: access/transam/xlogfuncs.c:247
 #, c-format
 msgid "WAL level not sufficient for creating a restore point"
 msgstr "el nivel de WAL no es suficiente para crear un punto de recuperación"
 
-#: access/transam/xlogfuncs.c:261
+#: access/transam/xlogfuncs.c:255
 #, c-format
 msgid "value too long for restore point (maximum %d characters)"
 msgstr "el valor es demasiado largo para un punto de recuperación (máximo %d caracteres)"
 
-#: access/transam/xlogfuncs.c:496
-#, fuzzy, c-format
-#| msgid "invalid locale name \"%s\""
+#: access/transam/xlogfuncs.c:486
+#, c-format
 msgid "invalid WAL file name \"%s\""
-msgstr "nombre de configuración regional «%s» no es válido"
+msgstr "nombre de archivo WAL «%s» no válido"
 
-#: access/transam/xlogfuncs.c:532 access/transam/xlogfuncs.c:562
-#: access/transam/xlogfuncs.c:586 access/transam/xlogfuncs.c:609
-#: access/transam/xlogfuncs.c:689
+#: access/transam/xlogfuncs.c:522 access/transam/xlogfuncs.c:552
+#: access/transam/xlogfuncs.c:576 access/transam/xlogfuncs.c:599
+#: access/transam/xlogfuncs.c:679
 #, c-format
 msgid "recovery is not in progress"
 msgstr "la recuperación no está en proceso"
 
-#: access/transam/xlogfuncs.c:533 access/transam/xlogfuncs.c:563
-#: access/transam/xlogfuncs.c:587 access/transam/xlogfuncs.c:610
-#: access/transam/xlogfuncs.c:690
+#: access/transam/xlogfuncs.c:523 access/transam/xlogfuncs.c:553
+#: access/transam/xlogfuncs.c:577 access/transam/xlogfuncs.c:600
+#: access/transam/xlogfuncs.c:680
 #, c-format
 msgid "Recovery control functions can only be executed during recovery."
 msgstr "Las funciones de control de recuperación sólo pueden ejecutarse durante la recuperación."
 
-#: access/transam/xlogfuncs.c:538 access/transam/xlogfuncs.c:568
+#: access/transam/xlogfuncs.c:528 access/transam/xlogfuncs.c:558
 #, c-format
 msgid "standby promotion is ongoing"
 msgstr "la promoción del standby está en curso"
 
-#: access/transam/xlogfuncs.c:539 access/transam/xlogfuncs.c:569
+#: access/transam/xlogfuncs.c:529 access/transam/xlogfuncs.c:559
 #, c-format
 msgid "%s cannot be executed after promotion is triggered."
 msgstr "%s no puede ser ejecutado después que una promoción es solicitada."
 
-#: access/transam/xlogfuncs.c:695
+#: access/transam/xlogfuncs.c:685
 #, c-format
 msgid "\"wait_seconds\" must not be negative or zero"
 msgstr "«wait_seconds» no puede ser negativo o cero"
 
-#: access/transam/xlogfuncs.c:715 storage/ipc/signalfuncs.c:260
+#: access/transam/xlogfuncs.c:707 storage/ipc/signalfuncs.c:265
 #, c-format
 msgid "failed to send signal to postmaster: %m"
 msgstr "no se pudo enviar señal a postmaster: %m"
 
-#: access/transam/xlogfuncs.c:751
+#: access/transam/xlogfuncs.c:739 libpq/be-secure.c:237 libpq/be-secure.c:346
+#, c-format
+msgid "terminating connection due to unexpected postmaster exit"
+msgstr "terminando la conexión debido al término inesperado de postmaster"
+
+#: access/transam/xlogfuncs.c:740
+#, c-format
+msgid "while waiting on promotion"
+msgstr "mientras se esperaba la promoción"
+
+#: access/transam/xlogfuncs.c:744
 #, c-format
 msgid "server did not promote within %d second"
 msgid_plural "server did not promote within %d seconds"
 msgstr[0] "el servidor no se promovió en %d segundo"
 msgstr[1] "el servidor no se promovió en %d segundos"
 
-#: access/transam/xlogprefetcher.c:1092
+#: access/transam/xlogprefetcher.c:1088
 #, c-format
-msgid "recovery_prefetch is not supported on platforms that lack posix_fadvise()."
-msgstr "recovery_prefetch no está soportado en plataformas que no tienen posix_fadvise()."
+msgid "\"recovery_prefetch\" is not supported on platforms that lack posix_fadvise()."
+msgstr "«recovery_prefetch» no está soportado en plataformas que no tienen posix_fadvise()."
 
-#: access/transam/xlogreader.c:626
+#: access/transam/xlogreader.c:619
 #, c-format
 msgid "invalid record offset at %X/%X: expected at least %u, got %u"
 msgstr "desplazamiento de registro no válido en %X/%X: se esperaba al menos %u, se obtuvo %u"
 
-#: access/transam/xlogreader.c:635
+#: access/transam/xlogreader.c:628
 #, c-format
 msgid "contrecord is requested by %X/%X"
 msgstr "contrecord solicitado por %X/%X"
 
-#: access/transam/xlogreader.c:676 access/transam/xlogreader.c:1123
+#: access/transam/xlogreader.c:669 access/transam/xlogreader.c:1134
 #, c-format
 msgid "invalid record length at %X/%X: expected at least %u, got %u"
 msgstr "largo de registro no válido en %X/%X: se esperaba al menos %u, se obtuvo %u"
 
-#: access/transam/xlogreader.c:705
-#, c-format
-msgid "out of memory while trying to decode a record of length %u"
-msgstr "memoria agotada mientras se intentaba decodificar un registro de largo %u"
-
-#: access/transam/xlogreader.c:727
-#, c-format
-msgid "record length %u at %X/%X too long"
-msgstr "largo de registro %u en %X/%X demasiado largo"
-
-#: access/transam/xlogreader.c:776
+#: access/transam/xlogreader.c:758
 #, c-format
 msgid "there is no contrecord flag at %X/%X"
 msgstr "no hay bandera de contrecord en %X/%X"
 
-#: access/transam/xlogreader.c:789
+#: access/transam/xlogreader.c:771
 #, c-format
 msgid "invalid contrecord length %u (expected %lld) at %X/%X"
 msgstr "largo de contrecord %u no válido (se esperaba %lld) en %X/%X"
 
-#: access/transam/xlogreader.c:924
-#, c-format
-msgid "missing contrecord at %X/%X"
-msgstr "falta un contrecord en %X/%X"
-
-#: access/transam/xlogreader.c:1131
+#: access/transam/xlogreader.c:1142
 #, c-format
 msgid "invalid resource manager ID %u at %X/%X"
 msgstr "ID de gestor de recursos %u no válido en %X/%X"
 
-#: access/transam/xlogreader.c:1144 access/transam/xlogreader.c:1160
+#: access/transam/xlogreader.c:1155 access/transam/xlogreader.c:1171
 #, c-format
 msgid "record with incorrect prev-link %X/%X at %X/%X"
 msgstr "registro con prev-link %X/%X incorrecto en %X/%X"
 
-#: access/transam/xlogreader.c:1196
+#: access/transam/xlogreader.c:1209
 #, c-format
 msgid "incorrect resource manager data checksum in record at %X/%X"
 msgstr "suma de verificación de los datos del gestor de recursos incorrecta en el registro en %X/%X"
 
-#: access/transam/xlogreader.c:1230
+#: access/transam/xlogreader.c:1243
 #, c-format
 msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u"
 msgstr "número mágico %04X no válido en segmento WAL %s, LSN %X/%X, posición %u"
 
-#: access/transam/xlogreader.c:1245 access/transam/xlogreader.c:1287
+#: access/transam/xlogreader.c:1258 access/transam/xlogreader.c:1300
 #, c-format
 msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u"
 msgstr "info bits %04X no válidos en segment WAL %s, LSN %X/%X, posición %u"
 
-#: access/transam/xlogreader.c:1261
+#: access/transam/xlogreader.c:1274
 #, c-format
 msgid "WAL file is from different database system: WAL file database system identifier is %llu, pg_control database system identifier is %llu"
 msgstr "archivo WAL es de un sistema de bases de datos distinto: identificador de sistema en archivo WAL es %llu, identificador en pg_control es %llu"
 
-#: access/transam/xlogreader.c:1269
+#: access/transam/xlogreader.c:1282
 #, c-format
 msgid "WAL file is from different database system: incorrect segment size in page header"
 msgstr "archivo WAL es de un sistema de bases de datos distinto: tamaño de segmento incorrecto en cabecera de paǵina"
 
-#: access/transam/xlogreader.c:1275
+#: access/transam/xlogreader.c:1288
 #, c-format
 msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header"
 msgstr "archivo WAL es de un sistema de bases de datos distinto: XLOG_BLCKSZ incorrecto en cabecera de paǵina"
 
-#: access/transam/xlogreader.c:1307
+#: access/transam/xlogreader.c:1320
 #, c-format
 msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u"
 msgstr "pageaddr %X/%X inesperado en segmento WAL %s, LSN %X/%X, posición %u"
 
-#: access/transam/xlogreader.c:1333
+#: access/transam/xlogreader.c:1346
 #, c-format
 msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u"
 msgstr "ID de timeline %u fuera de secuencia (después de %u) en segmento WAL %s, LSN %X/%X, posición %u"
 
-#: access/transam/xlogreader.c:1739
+#: access/transam/xlogreader.c:1749
 #, c-format
 msgid "out-of-order block_id %u at %X/%X"
 msgstr "block_id %u fuera de orden en %X/%X"
 
-#: access/transam/xlogreader.c:1763
+#: access/transam/xlogreader.c:1773
 #, c-format
 msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X"
 msgstr "BKPBLOCK_HAS_DATA está definido, pero no hay datos en %X/%X"
 
-#: access/transam/xlogreader.c:1770
+#: access/transam/xlogreader.c:1780
 #, c-format
 msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X"
 msgstr "BKPBLOCK_HAS_DATA no está definido, pero el largo de los datos es %u en %X/%X"
 
-#: access/transam/xlogreader.c:1806
+#: access/transam/xlogreader.c:1816
 #, c-format
 msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X"
 msgstr "BKPIMAGE_HAS_HOLE está definido, pero posición del agujero es %u largo %u largo de imagen %u en %X/%X"
 
-#: access/transam/xlogreader.c:1822
+#: access/transam/xlogreader.c:1832
 #, c-format
 msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X"
 msgstr "BKPIMAGE_HAS_HOLE no está definido, pero posición del agujero es %u largo %u en %X/%X"
 
-#: access/transam/xlogreader.c:1836
+#: access/transam/xlogreader.c:1846
 #, c-format
 msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X"
 msgstr "BKPIMAGE_COMPRESSED definido, pero largo de imagen de bloque es %u en %X/%X"
 
-#: access/transam/xlogreader.c:1851
+#: access/transam/xlogreader.c:1861
 #, c-format
 msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X"
 msgstr "ni BKPIMAGE_HAS_HOLE ni BKPIMAGE_COMPRESSED están definidos, pero el largo de imagen de bloque es %u en %X/%X"
 
-#: access/transam/xlogreader.c:1867
+#: access/transam/xlogreader.c:1877
 #, c-format
 msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X"
 msgstr "BKPBLOCK_SAME_REL está definido, pero no hay «rel» anterior en %X/%X "
 
-#: access/transam/xlogreader.c:1879
+#: access/transam/xlogreader.c:1889
 #, c-format
 msgid "invalid block_id %u at %X/%X"
 msgstr "block_id %u no válido en %X/%X"
 
-#: access/transam/xlogreader.c:1946
+#: access/transam/xlogreader.c:1956
 #, c-format
 msgid "record with invalid length at %X/%X"
 msgstr "registro con largo no válido en %X/%X"
 
-#: access/transam/xlogreader.c:1972
+#: access/transam/xlogreader.c:1982
 #, c-format
 msgid "could not locate backup block with ID %d in WAL record"
 msgstr "no se pudo localizar un bloque de respaldo con ID %d en el registro WAL"
 
-#: access/transam/xlogreader.c:2056
+#: access/transam/xlogreader.c:2066
 #, c-format
 msgid "could not restore image at %X/%X with invalid block %d specified"
 msgstr "no se pudo restaurar la imagen en %X/%X con bloque especifica %d no válido"
 
-#: access/transam/xlogreader.c:2063
+#: access/transam/xlogreader.c:2073
 #, c-format
 msgid "could not restore image at %X/%X with invalid state, block %d"
 msgstr "no se pudo restaurar la imagen en %X/%X con estado no válido, bloque %d"
 
-#: access/transam/xlogreader.c:2090 access/transam/xlogreader.c:2107
+#: access/transam/xlogreader.c:2100 access/transam/xlogreader.c:2117
 #, c-format
 msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d"
 msgstr "no se pudo restaurar la imagen en %X/%X comprimida con %s que no está soportado por esta instalación, bloque %d"
 
-#: access/transam/xlogreader.c:2116
+#: access/transam/xlogreader.c:2126
 #, c-format
 msgid "could not restore image at %X/%X compressed with unknown method, block %d"
 msgstr "no se pudo restaurar la imagen en %X/%X comprimida con un método desconocido, bloque %d"
 
-#: access/transam/xlogreader.c:2124
+#: access/transam/xlogreader.c:2134
 #, c-format
 msgid "could not decompress image at %X/%X, block %d"
 msgstr "no se pudo descomprimir la imagen en %X/%X, bloque %d"
 
-#: access/transam/xlogrecovery.c:547
-#, c-format
-msgid "entering standby mode"
-msgstr "entrando al modo standby"
-
-#: access/transam/xlogrecovery.c:550
-#, c-format
-msgid "starting point-in-time recovery to XID %u"
-msgstr "comenzando el proceso de recuperación hasta el XID %u"
-
-#: access/transam/xlogrecovery.c:554
-#, c-format
-msgid "starting point-in-time recovery to %s"
-msgstr "comenzando el proceso de recuperación hasta %s"
-
-#: access/transam/xlogrecovery.c:558
-#, c-format
-msgid "starting point-in-time recovery to \"%s\""
-msgstr "comenzando el proceso de recuperación hasta «%s»"
-
-#: access/transam/xlogrecovery.c:562
-#, c-format
-msgid "starting point-in-time recovery to WAL location (LSN) \"%X/%X\""
-msgstr "comenzando el proceso de recuperación punto-en-el-tiempo a la ubicación (LSN) de WAL «%X/%X»"
-
-#: access/transam/xlogrecovery.c:566
-#, c-format
-msgid "starting point-in-time recovery to earliest consistent point"
-msgstr "comenzando recuperación a un punto en el tiempo hasta alcanzar un estado consistente"
-
-#: access/transam/xlogrecovery.c:569
+#: access/transam/xlogrecovery.c:617
 #, c-format
-msgid "starting archive recovery"
-msgstr "comenzando proceso de recuperación"
+msgid "starting backup recovery with redo LSN %X/%X, checkpoint LSN %X/%X, on timeline ID %u"
+msgstr "iniciando recuperación de backup con LSN de redo %X/%X, LSN de checkpoint %X/%X, en timeline %u"
 
-#: access/transam/xlogrecovery.c:653
+#: access/transam/xlogrecovery.c:649
 #, c-format
-msgid "could not find redo location referenced by checkpoint record"
-msgstr "no se pudo encontrar la ubicación de redo referida por el registro de punto de control"
+msgid "could not find redo location %X/%X referenced by checkpoint record at %X/%X"
+msgstr "no se pudo encontrar la ubicación de redo %X/%X referida por el registro de checkpoint en %X/%X"
 
 # Purposefully deviate from quoting convention here, since argument is a shell command.
-#: access/transam/xlogrecovery.c:654 access/transam/xlogrecovery.c:664
+#: access/transam/xlogrecovery.c:651 access/transam/xlogrecovery.c:662
 #, c-format
 msgid ""
-"If you are restoring from a backup, touch \"%s/recovery.signal\" and add required recovery options.\n"
+"If you are restoring from a backup, touch \"%s/recovery.signal\" or \"%s/standby.signal\" and add required recovery options.\n"
 "If you are not restoring from a backup, try removing the file \"%s/backup_label\".\n"
 "Be careful: removing \"%s/backup_label\" will result in a corrupt cluster if restoring from a backup."
 msgstr ""
-"Si está restaurando de un respaldo, ejecute «touch \"%s.recovery.signal\"» y agregue las opciones de restauración necesarias.\n"
+"Si está restaurando de un respaldo, ejecute «touch \"%s/recovery.signal\"» o «%s/standby.signal» y agregue las opciones de restauración necesarias.\n"
 "Si no está restaurando de un respaldo, intente eliminar el archivo \"%s/backup_label\".\n"
 "Tenga cuidado: eliminar \"%s/backup_label\" resultará en un clúster corrupto si está restaurando de un respaldo."
 
-#: access/transam/xlogrecovery.c:663
+#: access/transam/xlogrecovery.c:660
 #, c-format
-msgid "could not locate required checkpoint record"
-msgstr "no se pudo localizar el registro del punto de control requerido"
+msgid "could not locate required checkpoint record at %X/%X"
+msgstr "no se pudo localizar el registro de checkpoint requerido en %X/%X"
 
-#: access/transam/xlogrecovery.c:692 commands/tablespace.c:670
+#: access/transam/xlogrecovery.c:690 commands/tablespace.c:664
 #, c-format
 msgid "could not create symbolic link \"%s\": %m"
 msgstr "no se pudo crear el enlace simbólico «%s»: %m"
 
-#: access/transam/xlogrecovery.c:724 access/transam/xlogrecovery.c:730
+#: access/transam/xlogrecovery.c:723 access/transam/xlogrecovery.c:729
 #, c-format
 msgid "ignoring file \"%s\" because no file \"%s\" exists"
 msgstr "ignorando el archivo «%s» porque no existe un archivo «%s»"
 
-#: access/transam/xlogrecovery.c:726
+#: access/transam/xlogrecovery.c:725
 #, c-format
 msgid "File \"%s\" was renamed to \"%s\"."
 msgstr "El archivo «%s» fue renombrado a «%s»."
 
-#: access/transam/xlogrecovery.c:732
+#: access/transam/xlogrecovery.c:731
 #, c-format
 msgid "Could not rename file \"%s\" to \"%s\": %m."
 msgstr "No se pudo renombrar el archivo de «%s» a «%s»: %m."
 
-#: access/transam/xlogrecovery.c:786
+#: access/transam/xlogrecovery.c:770
+#, c-format
+msgid "restarting backup recovery with redo LSN %X/%X"
+msgstr "reiniciando recuperación del backup con LSN de redo «%X/%X»"
+
+#: access/transam/xlogrecovery.c:795
+#, c-format
+msgid "could not locate a valid checkpoint record at %X/%X"
+msgstr "no se pudo localizar un registro de válido en %X/%X"
+
+#: access/transam/xlogrecovery.c:806
+#, c-format
+msgid "entering standby mode"
+msgstr "entrando al modo standby"
+
+#: access/transam/xlogrecovery.c:809
+#, c-format
+msgid "starting point-in-time recovery to XID %u"
+msgstr "comenzando el proceso de recuperación hasta el XID %u"
+
+#: access/transam/xlogrecovery.c:813
 #, c-format
-msgid "could not locate a valid checkpoint record"
-msgstr "no se pudo localizar un registro de punto de control válido"
+msgid "starting point-in-time recovery to %s"
+msgstr "comenzando el proceso de recuperación hasta %s"
+
+#: access/transam/xlogrecovery.c:817
+#, c-format
+msgid "starting point-in-time recovery to \"%s\""
+msgstr "comenzando el proceso de recuperación hasta «%s»"
+
+#: access/transam/xlogrecovery.c:821
+#, c-format
+msgid "starting point-in-time recovery to WAL location (LSN) \"%X/%X\""
+msgstr "comenzando el proceso de recuperación punto-en-el-tiempo a la ubicación (LSN) de WAL «%X/%X»"
+
+#: access/transam/xlogrecovery.c:825
+#, c-format
+msgid "starting point-in-time recovery to earliest consistent point"
+msgstr "comenzando recuperación a un punto en el tiempo hasta alcanzar un estado consistente"
+
+#: access/transam/xlogrecovery.c:828
+#, c-format
+msgid "starting archive recovery"
+msgstr "comenzando proceso de recuperación"
 
-#: access/transam/xlogrecovery.c:810
+#: access/transam/xlogrecovery.c:849
 #, c-format
 msgid "requested timeline %u is not a child of this server's history"
 msgstr "el timeline solicitado %u no es un hijo de la historia de este servidor"
 
-#: access/transam/xlogrecovery.c:812
+#: access/transam/xlogrecovery.c:851
 #, c-format
 msgid "Latest checkpoint is at %X/%X on timeline %u, but in the history of the requested timeline, the server forked off from that timeline at %X/%X."
-msgstr "El punto de control más reciente está en %X/%X en el timeline %u, pero en la historia del timeline solicitado, el servidor se desvió desde ese timeline en %X/%X."
+msgstr "El checkpoint más reciente está en %X/%X en el timeline %u, pero en la historia del timeline solicitado, el servidor se desvió desde ese timeline en %X/%X."
 
-#: access/transam/xlogrecovery.c:826
+#: access/transam/xlogrecovery.c:865
 #, c-format
 msgid "requested timeline %u does not contain minimum recovery point %X/%X on timeline %u"
 msgstr "el timeline solicitado %u no contiene el punto mínimo de recuperación %X/%X en el timeline %u"
 
-#: access/transam/xlogrecovery.c:854
+#: access/transam/xlogrecovery.c:893
 #, c-format
 msgid "invalid next transaction ID"
 msgstr "el siguiente ID de transacción no es válido"
 
-#: access/transam/xlogrecovery.c:859
+#: access/transam/xlogrecovery.c:898
 #, c-format
 msgid "invalid redo in checkpoint record"
-msgstr "redo no es válido en el registro de punto de control"
+msgstr "redo no es válido en el registro de checkpoint"
 
-#: access/transam/xlogrecovery.c:870
+#: access/transam/xlogrecovery.c:909
 #, c-format
 msgid "invalid redo record in shutdown checkpoint"
-msgstr "registro redo no es válido en el punto de control de apagado"
+msgstr "registro redo no es válido en el checkpoint de apagado"
 
-#: access/transam/xlogrecovery.c:899
+#: access/transam/xlogrecovery.c:938
 #, c-format
 msgid "database system was not properly shut down; automatic recovery in progress"
 msgstr "el sistema de bases de datos no fue apagado apropiadamente; se está efectuando la recuperación automática"
 
-#: access/transam/xlogrecovery.c:903
+#: access/transam/xlogrecovery.c:942
 #, c-format
 msgid "crash recovery starts in timeline %u and has target timeline %u"
 msgstr "la recuperación comienza en el timeline %u y tiene un timeline de destino %u"
 
-#: access/transam/xlogrecovery.c:946
+#: access/transam/xlogrecovery.c:985
 #, c-format
 msgid "backup_label contains data inconsistent with control file"
 msgstr "backup_label contiene datos inconsistentes con el archivo de control"
 
-#: access/transam/xlogrecovery.c:947
+#: access/transam/xlogrecovery.c:986
 #, c-format
 msgid "This means that the backup is corrupted and you will have to use another backup for recovery."
 msgstr "Esto significa que el respaldo está corrupto y deberá usar otro respaldo para la recuperación."
 
-#: access/transam/xlogrecovery.c:1001
+#: access/transam/xlogrecovery.c:1040
 #, c-format
 msgid "using recovery command file \"%s\" is not supported"
 msgstr "el uso del archivo de configuración de recuperación «%s» no está soportado"
 
-#: access/transam/xlogrecovery.c:1066
+#: access/transam/xlogrecovery.c:1105
 #, c-format
 msgid "standby mode is not supported by single-user servers"
 msgstr "el modo standby no está soportado en el modo mono-usuario"
 
-#: access/transam/xlogrecovery.c:1083
+#: access/transam/xlogrecovery.c:1122
 #, c-format
-msgid "specified neither primary_conninfo nor restore_command"
-msgstr "no se especifica primary_conninfo ni restore_command"
+msgid "specified neither \"primary_conninfo\" nor \"restore_command\""
+msgstr "no se especifica «primary_conninfo» ni «restore_command»"
 
-#: access/transam/xlogrecovery.c:1084
+#: access/transam/xlogrecovery.c:1123
 #, c-format
 msgid "The database server will regularly poll the pg_wal subdirectory to check for files placed there."
 msgstr "El servidor de bases de datos monitoreará el subdirectorio pg_wal con regularidad en búsqueda de archivos almacenados ahí."
 
-#: access/transam/xlogrecovery.c:1092
+#: access/transam/xlogrecovery.c:1131
 #, c-format
-msgid "must specify restore_command when standby mode is not enabled"
-msgstr "debe especificarse restore_command cuando el modo standby no está activo"
+msgid "must specify \"restore_command\" when standby mode is not enabled"
+msgstr "debe especificarse «restore_command» cuando el modo standby no está activo"
 
-#: access/transam/xlogrecovery.c:1130
+#: access/transam/xlogrecovery.c:1169
 #, c-format
 msgid "recovery target timeline %u does not exist"
 msgstr "no existe el timeline %u especificado como destino de recuperación"
 
-#: access/transam/xlogrecovery.c:1213 access/transam/xlogrecovery.c:1220
-#: access/transam/xlogrecovery.c:1279 access/transam/xlogrecovery.c:1359
-#: access/transam/xlogrecovery.c:1383
+#: access/transam/xlogrecovery.c:1252 access/transam/xlogrecovery.c:1259
+#: access/transam/xlogrecovery.c:1318 access/transam/xlogrecovery.c:1406
+#: access/transam/xlogrecovery.c:1415 access/transam/xlogrecovery.c:1435
 #, c-format
 msgid "invalid data in file \"%s\""
 msgstr "datos no válidos en archivo «%s»"
 
-#: access/transam/xlogrecovery.c:1280
+#: access/transam/xlogrecovery.c:1319
 #, c-format
 msgid "Timeline ID parsed is %u, but expected %u."
 msgstr "El ID de timeline interpretado es %u, pero se esperaba %u."
 
-#: access/transam/xlogrecovery.c:1662
+#: access/transam/xlogrecovery.c:1330
+#, c-format
+msgid "this is an incremental backup, not a data directory"
+msgstr "esto es un backup incremental, no un directorio de datos"
+
+#: access/transam/xlogrecovery.c:1331
+#, c-format
+msgid "Use pg_combinebackup to reconstruct a valid data directory."
+msgstr "Use pg_combinebackup para reconstruir un directorio de datos válido."
+
+#: access/transam/xlogrecovery.c:1717
+#, c-format
+msgid "unexpected record type found at redo point %X/%X"
+msgstr "se encontró registro de tipo inesperada en el punto de redo %X/%X"
+
+#: access/transam/xlogrecovery.c:1740
 #, c-format
 msgid "redo starts at %X/%X"
 msgstr "redo comienza en %X/%X"
 
-#: access/transam/xlogrecovery.c:1675
+#: access/transam/xlogrecovery.c:1753
 #, c-format
 msgid "redo in progress, elapsed time: %ld.%02d s, current LSN: %X/%X"
 msgstr "redo en progreso, tiempo transcurrido: %ld.%02d s, LSN actual: %X/%X"
 
-#: access/transam/xlogrecovery.c:1767
+#: access/transam/xlogrecovery.c:1843
 #, c-format
 msgid "requested recovery stop point is before consistent recovery point"
 msgstr "el punto de detención de recuperación pedido es antes del punto de recuperación consistente"
 
-#: access/transam/xlogrecovery.c:1799
+#: access/transam/xlogrecovery.c:1875
 #, c-format
 msgid "redo done at %X/%X system usage: %s"
 msgstr "redo listo en %X/%X utilización del sistema: %s"
 
-#: access/transam/xlogrecovery.c:1805
+#: access/transam/xlogrecovery.c:1881
 #, c-format
 msgid "last completed transaction was at log time %s"
 msgstr "última transacción completada al tiempo de registro %s"
 
-#: access/transam/xlogrecovery.c:1814
+#: access/transam/xlogrecovery.c:1890
 #, c-format
 msgid "redo is not required"
 msgstr "no se requiere redo"
 
-#: access/transam/xlogrecovery.c:1825
+#: access/transam/xlogrecovery.c:1901
 #, c-format
 msgid "recovery ended before configured recovery target was reached"
 msgstr "la recuperación terminó antes de alcanzar el punto configurado como destino de recuperación"
 
-#: access/transam/xlogrecovery.c:2019
+#: access/transam/xlogrecovery.c:2095
 #, c-format
 msgid "successfully skipped missing contrecord at %X/%X, overwritten at %s"
 msgstr "se omitió con éxito contrecord no encontrado en %X/%X, sobrescrito en %s"
 
-#: access/transam/xlogrecovery.c:2086
+#: access/transam/xlogrecovery.c:2162
 #, c-format
 msgid "unexpected directory entry \"%s\" found in %s"
 msgstr "entrada de directorio inesperada «%s» fue encontrada en %s"
 
-#: access/transam/xlogrecovery.c:2088
+#: access/transam/xlogrecovery.c:2164
 #, c-format
 msgid "All directory entries in pg_tblspc/ should be symbolic links."
 msgstr "Todas las entradas de directorio en pg_tblspc deberían ser enlaces simbólicos"
 
-#: access/transam/xlogrecovery.c:2089
+#: access/transam/xlogrecovery.c:2165
 #, c-format
-msgid "Remove those directories, or set allow_in_place_tablespaces to ON transiently to let recovery complete."
-msgstr "Elimine esos directorios, o defina allow_in_place_tablespaces a ON transitoriamente para permitir que la recuperación pueda completarse."
+msgid "Remove those directories, or set \"allow_in_place_tablespaces\" to ON transiently to let recovery complete."
+msgstr "Elimine esos directorios, o defina «allow_in_place_tablespaces» a ON transitoriamente para permitir que la recuperación pueda completarse."
 
-#: access/transam/xlogrecovery.c:2163
+#: access/transam/xlogrecovery.c:2217
+#, c-format
+msgid "completed backup recovery with redo LSN %X/%X and end LSN %X/%X"
+msgstr "se completó la recuperación de backup con LSN de redo %X/%X y LSN de término %X/%X"
+
+#: access/transam/xlogrecovery.c:2247
 #, c-format
 msgid "consistent recovery state reached at %X/%X"
 msgstr "el estado de recuperación consistente fue alcanzado en %X/%X"
 
 #. translator: %s is a WAL record description
-#: access/transam/xlogrecovery.c:2201
+#: access/transam/xlogrecovery.c:2285
 #, c-format
 msgid "WAL redo at %X/%X for %s"
 msgstr "redo WAL en %X/%X para %s"
 
-#: access/transam/xlogrecovery.c:2299
+#: access/transam/xlogrecovery.c:2383
 #, c-format
 msgid "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint record"
-msgstr "ID de timeline previo %u inesperado (timeline actual %u) en el registro de punto de control"
+msgstr "ID de timeline previo %u inesperado (timeline actual %u) en el registro de checkpoint"
 
-#: access/transam/xlogrecovery.c:2308
+#: access/transam/xlogrecovery.c:2392
 #, c-format
 msgid "unexpected timeline ID %u (after %u) in checkpoint record"
-msgstr "ID de timeline %u inesperado (después de %u) en el registro de punto de control"
+msgstr "ID de timeline %u inesperado (después de %u) en el registro de checkpoint"
 
-#: access/transam/xlogrecovery.c:2324
+#: access/transam/xlogrecovery.c:2408
 #, c-format
 msgid "unexpected timeline ID %u in checkpoint record, before reaching minimum recovery point %X/%X on timeline %u"
 msgstr "timeline ID %u inesperado en registro de checkpoint, antes de alcanzar el punto mínimo de recuperación %X/%X en el timeline %u"
 
-#: access/transam/xlogrecovery.c:2508 access/transam/xlogrecovery.c:2784
+#: access/transam/xlogrecovery.c:2592 access/transam/xlogrecovery.c:2868
 #, c-format
 msgid "recovery stopping after reaching consistency"
 msgstr "deteniendo recuperación al alcanzar un estado consistente"
 
-#: access/transam/xlogrecovery.c:2529
+#: access/transam/xlogrecovery.c:2613
 #, c-format
 msgid "recovery stopping before WAL location (LSN) \"%X/%X\""
 msgstr "deteniendo recuperación antes de la ubicación (LSN) de WAL «%X/%X»"
 
-#: access/transam/xlogrecovery.c:2619
+#: access/transam/xlogrecovery.c:2703
 #, c-format
 msgid "recovery stopping before commit of transaction %u, time %s"
 msgstr "deteniendo recuperación antes de comprometer la transacción %u, hora %s"
 
-#: access/transam/xlogrecovery.c:2626
+#: access/transam/xlogrecovery.c:2710
 #, c-format
 msgid "recovery stopping before abort of transaction %u, time %s"
 msgstr "deteniendo recuperación antes de abortar la transacción %u, hora %s"
 
-#: access/transam/xlogrecovery.c:2679
+#: access/transam/xlogrecovery.c:2763
 #, c-format
 msgid "recovery stopping at restore point \"%s\", time %s"
 msgstr "deteniendo recuperación en el punto de recuperación «%s», hora %s"
 
-#: access/transam/xlogrecovery.c:2697
+#: access/transam/xlogrecovery.c:2781
 #, c-format
 msgid "recovery stopping after WAL location (LSN) \"%X/%X\""
 msgstr "deteniendo recuperación después de la ubicación (LSN) de WAL «%X/%X»"
 
-#: access/transam/xlogrecovery.c:2764
+#: access/transam/xlogrecovery.c:2848
 #, c-format
 msgid "recovery stopping after commit of transaction %u, time %s"
 msgstr "deteniendo recuperación de comprometer la transacción %u, hora %s"
 
-#: access/transam/xlogrecovery.c:2772
+#: access/transam/xlogrecovery.c:2856
 #, c-format
 msgid "recovery stopping after abort of transaction %u, time %s"
 msgstr "deteniendo recuperación después de abortar la transacción %u, hora %s"
 
-#: access/transam/xlogrecovery.c:2853
+#: access/transam/xlogrecovery.c:2937
 #, c-format
 msgid "pausing at the end of recovery"
 msgstr "pausando al final de la recuperación"
 
-#: access/transam/xlogrecovery.c:2854
+#: access/transam/xlogrecovery.c:2938
 #, c-format
 msgid "Execute pg_wal_replay_resume() to promote."
 msgstr "Ejecute pg_wal_replay_resume() para promover."
 
-#: access/transam/xlogrecovery.c:2857 access/transam/xlogrecovery.c:4594
+#: access/transam/xlogrecovery.c:2941 access/transam/xlogrecovery.c:4679
 #, c-format
 msgid "recovery has paused"
 msgstr "la recuperación está en pausa"
 
-#: access/transam/xlogrecovery.c:2858
+#: access/transam/xlogrecovery.c:2942
 #, c-format
 msgid "Execute pg_wal_replay_resume() to continue."
 msgstr "Ejecute pg_wal_replay_resume() para continuar."
 
-#: access/transam/xlogrecovery.c:3121
-#, fuzzy, c-format
-#| msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u"
+#: access/transam/xlogrecovery.c:3205
+#, c-format
 msgid "unexpected timeline ID %u in WAL segment %s, LSN %X/%X, offset %u"
-msgstr "pageaddr %X/%X inesperado en segmento WAL %s, LSN %X/%X, posición %u"
+msgstr "ID de timeline %u inesperado en segmento WAL %s, LSN %X/%X, posición %u"
 
-#: access/transam/xlogrecovery.c:3329
-#, fuzzy, c-format
-#| msgid "could not read from file %s, offset %d: %m"
+#: access/transam/xlogrecovery.c:3413
+#, c-format
 msgid "could not read from WAL segment %s, LSN %X/%X, offset %u: %m"
-msgstr "no se pudo leer desde el archivo «%s» en la posición %d: %m"
+msgstr "no se pudo leer desde el segmento de WAL %s, LSN %X/%X, posición %u: %m"
 
-#: access/transam/xlogrecovery.c:3336
-#, fuzzy, c-format
-#| msgid "could not read from file %s, offset %d: read %d of %d"
+#: access/transam/xlogrecovery.c:3420
+#, c-format
 msgid "could not read from WAL segment %s, LSN %X/%X, offset %u: read %d of %zu"
-msgstr "no se pudo leer del archivo %s, posición %d: leídos %d de %d"
+msgstr "no se pudo leer del segmento de WAL %s, LSN %X/%X, posición %u: leídos %d de %zu"
 
-#: access/transam/xlogrecovery.c:3976
-#, fuzzy, c-format
-#| msgid "invalid checkpoint record"
+#: access/transam/xlogrecovery.c:4061
+#, c-format
 msgid "invalid checkpoint location"
-msgstr "el registro del punto de control no es válido"
+msgstr "ubicación de checkpoint no válida"
 
-#: access/transam/xlogrecovery.c:3986
+#: access/transam/xlogrecovery.c:4071
 #, c-format
 msgid "invalid checkpoint record"
-msgstr "el registro del punto de control no es válido"
+msgstr "el registro del checkpoint no es válido"
 
-#: access/transam/xlogrecovery.c:3992
+#: access/transam/xlogrecovery.c:4077
 #, c-format
 msgid "invalid resource manager ID in checkpoint record"
-msgstr "el ID de gestor de recursos en el registro del punto de control no es válido"
+msgstr "el ID de gestor de recursos en el registro del checkpoint no es válido"
 
-#: access/transam/xlogrecovery.c:4000
+#: access/transam/xlogrecovery.c:4085
 #, c-format
 msgid "invalid xl_info in checkpoint record"
-msgstr "xl_info en el registro del punto de control no es válido"
+msgstr "xl_info en el registro del checkpoint no es válido"
 
-#: access/transam/xlogrecovery.c:4006
+#: access/transam/xlogrecovery.c:4091
 #, c-format
 msgid "invalid length of checkpoint record"
-msgstr "la longitud del registro de punto de control no es válida"
+msgstr "la longitud del registro de checkpoint no es válida"
 
-#: access/transam/xlogrecovery.c:4060
+#: access/transam/xlogrecovery.c:4145
 #, c-format
 msgid "new timeline %u is not a child of database system timeline %u"
 msgstr "el nuevo timeline %u especificado no es hijo del timeline de sistema %u"
 
-#: access/transam/xlogrecovery.c:4074
+#: access/transam/xlogrecovery.c:4159
 #, c-format
 msgid "new timeline %u forked off current database system timeline %u before current recovery point %X/%X"
 msgstr "el nuevo timeline %u bifurcó del timeline del sistema actual %u antes del punto re recuperación actual %X/%X"
 
-#: access/transam/xlogrecovery.c:4093
+#: access/transam/xlogrecovery.c:4178
 #, c-format
 msgid "new target timeline is %u"
 msgstr "el nuevo timeline destino es %u"
 
-#: access/transam/xlogrecovery.c:4296
+#: access/transam/xlogrecovery.c:4381
 #, c-format
 msgid "WAL receiver process shutdown requested"
 msgstr "se recibió una petición de apagado para el proceso receptor de wal"
 
-#: access/transam/xlogrecovery.c:4356
+#: access/transam/xlogrecovery.c:4441
 #, c-format
 msgid "received promote request"
 msgstr "se recibió petición de promoción"
 
-#: access/transam/xlogrecovery.c:4585
+#: access/transam/xlogrecovery.c:4670
 #, c-format
 msgid "hot standby is not possible because of insufficient parameter settings"
 msgstr "hot standby no es posible porque la configuración de parámetros no es suficiente"
 
-#: access/transam/xlogrecovery.c:4586 access/transam/xlogrecovery.c:4613
-#: access/transam/xlogrecovery.c:4643
+#: access/transam/xlogrecovery.c:4671 access/transam/xlogrecovery.c:4698
+#: access/transam/xlogrecovery.c:4728
 #, c-format
 msgid "%s = %d is a lower setting than on the primary server, where its value was %d."
 msgstr "%s = %d es una configuración menor que en el servidor primario, donde su valor era %d."
 
-#: access/transam/xlogrecovery.c:4595
+#: access/transam/xlogrecovery.c:4680
 #, c-format
 msgid "If recovery is unpaused, the server will shut down."
 msgstr "Si se continúa con la recuperación, el servidor se apagará."
 
-#: access/transam/xlogrecovery.c:4596
+#: access/transam/xlogrecovery.c:4681
 #, c-format
 msgid "You can then restart the server after making the necessary configuration changes."
 msgstr "Luego puede reiniciar el servidor después de hacer los cambios necesarios en la configuración."
 
-#: access/transam/xlogrecovery.c:4607
+#: access/transam/xlogrecovery.c:4692
 #, c-format
 msgid "promotion is not possible because of insufficient parameter settings"
 msgstr "la promoción no es posible porque la configuración de parámetros no es suficiente"
 
-#: access/transam/xlogrecovery.c:4617
+#: access/transam/xlogrecovery.c:4702
 #, c-format
 msgid "Restart the server after making the necessary configuration changes."
 msgstr "Reinicie el servidor luego de hacer los cambios necesarios en la configuración."
 
-#: access/transam/xlogrecovery.c:4641
+#: access/transam/xlogrecovery.c:4726
 #, c-format
 msgid "recovery aborted because of insufficient parameter settings"
 msgstr "se abortó la recuperación porque la configuración de parámetros no es suficiente"
 
-#: access/transam/xlogrecovery.c:4647
+#: access/transam/xlogrecovery.c:4732
 #, c-format
 msgid "You can restart the server after making the necessary configuration changes."
 msgstr "Puede reiniciar el servidor luego de hacer los cambios necesarios en la configuración."
 
-#: access/transam/xlogrecovery.c:4689
+#: access/transam/xlogrecovery.c:4774
 #, c-format
 msgid "multiple recovery targets specified"
 msgstr "múltiples valores de destino de recuperación especificados"
 
-#: access/transam/xlogrecovery.c:4690
+#: access/transam/xlogrecovery.c:4775
 #, c-format
-msgid "At most one of recovery_target, recovery_target_lsn, recovery_target_name, recovery_target_time, recovery_target_xid may be set."
-msgstr "A lo más uno de recovery_target, recovery_target_lsn, recovery_target_name, recovery_target_time, recovery_target_xid puede estar definido."
+msgid "At most one of \"recovery_target\", \"recovery_target_lsn\", \"recovery_target_name\", \"recovery_target_time\", \"recovery_target_xid\" may be set."
+msgstr "A lo más uno de «recovery_target», «recovery_target_lsn», «recovery_target_name», «recovery_target_time», «recovery_target_xid» puede estar definido."
 
-#: access/transam/xlogrecovery.c:4701
+#: access/transam/xlogrecovery.c:4786
 #, c-format
 msgid "The only allowed value is \"immediate\"."
 msgstr "El único valor permitido es «immediate»."
 
-#: access/transam/xlogrecovery.c:4853 utils/adt/timestamp.c:186
-#: utils/adt/timestamp.c:439
+#: access/transam/xlogrecovery.c:4938 utils/adt/timestamp.c:202
+#: utils/adt/timestamp.c:455
 #, c-format
 msgid "timestamp out of range: \"%s\""
 msgstr "timestamp fuera de rango: «%s»"
 
-#: access/transam/xlogrecovery.c:4898
+#: access/transam/xlogrecovery.c:4983
 #, c-format
-msgid "recovery_target_timeline is not a valid number."
-msgstr "recovery_target_timeline no es un número válido."
+msgid "\"recovery_target_timeline\" is not a valid number."
+msgstr "«recovery_target_timeline» no es un número válido."
 
-#: access/transam/xlogutils.c:1039
-#, fuzzy, c-format
-#| msgid "could not read from file %s, offset %d: %m"
+#: access/transam/xlogutils.c:1032
+#, c-format
 msgid "could not read from WAL segment %s, offset %d: %m"
-msgstr "no se pudo leer desde el archivo «%s» en la posición %d: %m"
+msgstr "no se pudo leer desde el segmento de WAL %s, posición %d: %m"
 
-#: access/transam/xlogutils.c:1046
-#, fuzzy, c-format
-#| msgid "could not read from file %s, offset %d: read %d of %d"
+#: access/transam/xlogutils.c:1039
+#, c-format
 msgid "could not read from WAL segment %s, offset %d: read %d of %d"
-msgstr "no se pudo leer del archivo %s, posición %d: leídos %d de %d"
+msgstr "no se pudo leer del segmento de WAL %s, posición %d: leídos %d de %d"
 
-#: archive/shell_archive.c:96
+#: archive/shell_archive.c:98
 #, c-format
 msgid "archive command failed with exit code %d"
 msgstr "la orden de archivado falló con código de retorno %d"
 
-#: archive/shell_archive.c:98 archive/shell_archive.c:108
-#: archive/shell_archive.c:114 archive/shell_archive.c:123
+#: archive/shell_archive.c:100 archive/shell_archive.c:110
+#: archive/shell_archive.c:116 archive/shell_archive.c:125
 #, c-format
 msgid "The failed archive command was: %s"
 msgstr "La orden fallida era: «%s»"
 
-#: archive/shell_archive.c:105
+#: archive/shell_archive.c:107
 #, c-format
 msgid "archive command was terminated by exception 0x%X"
 msgstr "la orden de archivado fue terminada por una excepción 0x%X"
 
-#: archive/shell_archive.c:107 postmaster/postmaster.c:3675
+#: archive/shell_archive.c:109 postmaster/postmaster.c:3095
 #, c-format
 msgid "See C include file \"ntstatus.h\" for a description of the hexadecimal value."
 msgstr "Vea el archivo «ntstatus.h» para una descripción del valor hexadecimal."
 
-#: archive/shell_archive.c:112
+#: archive/shell_archive.c:114
 #, c-format
 msgid "archive command was terminated by signal %d: %s"
 msgstr "la orden de archivado fue terminada por una señal %d: %s"
 
-#: archive/shell_archive.c:121
+#: archive/shell_archive.c:123
 #, c-format
 msgid "archive command exited with unrecognized status %d"
 msgstr "la orden de archivado fue terminada con código %d no reconocido"
 
-#: backup/backup_manifest.c:253
+#: backup/backup_manifest.c:254
 #, c-format
 msgid "expected end timeline %u but found timeline %u"
 msgstr "se esperaba el timeline de término %u pero se encontró el timeline %u"
 
-#: backup/backup_manifest.c:277
+#: backup/backup_manifest.c:278
 #, c-format
 msgid "expected start timeline %u but found timeline %u"
 msgstr "se esperaba el timeline de inicio %u pero se encontró el timeline %u"
 
-#: backup/backup_manifest.c:304
+#: backup/backup_manifest.c:305
 #, c-format
 msgid "start timeline %u not found in history of timeline %u"
 msgstr "el timeline de inicio %u no fue encontrado en la historia del timeline %u"
 
-#: backup/backup_manifest.c:355
+#: backup/backup_manifest.c:356
 #, c-format
 msgid "could not rewind temporary file"
 msgstr "no se puede rebobinar el archivo temporal"
 
-#: backup/basebackup.c:470
+#: backup/basebackup.c:479
 #, c-format
 msgid "could not find any WAL files"
 msgstr "no se pudo encontrar ningún archivo de WAL"
 
-#: backup/basebackup.c:485 backup/basebackup.c:500 backup/basebackup.c:509
+#: backup/basebackup.c:494 backup/basebackup.c:509 backup/basebackup.c:518
 #, c-format
 msgid "could not find WAL file \"%s\""
 msgstr "no se pudo encontrar archivo de WAL «%s»"
 
-#: backup/basebackup.c:551 backup/basebackup.c:576
+#: backup/basebackup.c:560 backup/basebackup.c:585
 #, c-format
 msgid "unexpected WAL file size \"%s\""
 msgstr "tamaño del archivo WAL «%s» inesperado"
 
-#: backup/basebackup.c:646
+#: backup/basebackup.c:656
 #, c-format
 msgid "%lld total checksum verification failure"
 msgid_plural "%lld total checksum verification failures"
 msgstr[0] "%lld falla de verificación de suma de comprobación en total"
 msgstr[1] "%lld fallas de verificación de suma de comprobación en total"
 
-#: backup/basebackup.c:653
+#: backup/basebackup.c:663
 #, c-format
 msgid "checksum verification failure during base backup"
 msgstr "falla en verificación de checksums durante respaldo base"
 
-#: backup/basebackup.c:722 backup/basebackup.c:731 backup/basebackup.c:742
-#: backup/basebackup.c:759 backup/basebackup.c:768 backup/basebackup.c:779
-#: backup/basebackup.c:796 backup/basebackup.c:805 backup/basebackup.c:817
-#: backup/basebackup.c:841 backup/basebackup.c:855 backup/basebackup.c:866
-#: backup/basebackup.c:877 backup/basebackup.c:890
+#: backup/basebackup.c:733 backup/basebackup.c:742 backup/basebackup.c:753
+#: backup/basebackup.c:770 backup/basebackup.c:779 backup/basebackup.c:788
+#: backup/basebackup.c:803 backup/basebackup.c:820 backup/basebackup.c:829
+#: backup/basebackup.c:841 backup/basebackup.c:865 backup/basebackup.c:879
+#: backup/basebackup.c:890 backup/basebackup.c:901 backup/basebackup.c:914
 #, c-format
 msgid "duplicate option \"%s\""
 msgstr "nombre de opción «%s» duplicada"
 
-#: backup/basebackup.c:750
-#, fuzzy, c-format
-#| msgid "unrecognized object type \"%s\""
+#: backup/basebackup.c:761
+#, c-format
 msgid "unrecognized checkpoint type: \"%s\""
-msgstr "tipo de objeto «%s» no reconocido"
+msgstr "tipo de checkpoint no reconocido: «%s»"
+
+#: backup/basebackup.c:793
+#, c-format
+msgid "incremental backups cannot be taken unless WAL summarization is enabled"
+msgstr "los backups incrementales no pueden tomarse a menos que la sumarización de WAL esté activada"
 
-#: backup/basebackup.c:785
+#: backup/basebackup.c:809
 #, c-format
 msgid "%d is outside the valid range for parameter \"%s\" (%d .. %d)"
 msgstr "%d está fuera del rango aceptable para el parámetro «%s» (%d .. %d)"
 
-#: backup/basebackup.c:830
+#: backup/basebackup.c:854
 #, c-format
 msgid "unrecognized manifest option: \"%s\""
 msgstr "opción de manifiesto «%s» no reconocida"
 
-#: backup/basebackup.c:846
-#, c-format
-msgid "unrecognized checksum algorithm: \"%s\""
-msgstr "algoritmo de suma de comprobación no reconocido: \"%s\""
-
-#: backup/basebackup.c:881
+#: backup/basebackup.c:905
 #, c-format
 msgid "unrecognized compression algorithm: \"%s\""
 msgstr "algoritmo de compresión no reconocido: «%s»"
 
-#: backup/basebackup.c:897
-#, fuzzy, c-format
-#| msgid "unrecognized column option \"%s\""
+#: backup/basebackup.c:921
+#, c-format
 msgid "unrecognized base backup option: \"%s\""
-msgstr "opción de columna «%s» no reconocida"
+msgstr "opción de respaldo base no reconocida: «%s»"
 
-#: backup/basebackup.c:908
+#: backup/basebackup.c:932
 #, c-format
 msgid "manifest checksums require a backup manifest"
 msgstr "la suma de comprobación del manifiesto requiere un manifiesto de la copia de seguridad"
 
-#: backup/basebackup.c:917
-#, fuzzy, c-format
-#| msgid "--no-slot cannot be used with slot name"
+#: backup/basebackup.c:941
+#, c-format
 msgid "target detail cannot be used without target"
-msgstr "no se puede usar --no-slot junto con nombre de slot"
+msgstr "no se puede usar “target detail” sin un destino"
 
-#: backup/basebackup.c:926 backup/basebackup_target.c:218
-#, fuzzy, c-format
-#| msgid "operator class \"%s\" does not accept data type %s"
+#: backup/basebackup.c:950 backup/basebackup_target.c:218
+#, c-format
 msgid "target \"%s\" does not accept a target detail"
-msgstr "la clase de operadores «%s» no acepta el tipo de datos %s"
+msgstr "el destino «%s» no acepta “target details”"
 
-#: backup/basebackup.c:937
-#, fuzzy, c-format
-#| msgid "%s cannot be specified unless locale provider \"%s\" is chosen"
+#: backup/basebackup.c:961
+#, c-format
 msgid "compression detail cannot be specified unless compression is enabled"
-msgstr "%s no puede especificarse a menos que el proveedor de locale «%s» sea escogido"
+msgstr "el detalle de compresión no puede especificarse a menos que la compresión esté activada"
 
-#: backup/basebackup.c:950
+#: backup/basebackup.c:974
 #, c-format
 msgid "invalid compression specification: %s"
 msgstr "especificación de compresión no válida: %s"
 
-#: backup/basebackup.c:1116 backup/basebackup.c:1294
+#: backup/basebackup.c:1024
+#, c-format
+msgid "must UPLOAD_MANIFEST before performing an incremental BASE_BACKUP"
+msgstr "debe ejecutar UPLOAD_MANIFEST antes de lanzar un BASE_BACKUP incremental"
+
+#: backup/basebackup.c:1157 backup/basebackup.c:1358
 #, c-format
 msgid "could not stat file or directory \"%s\": %m"
 msgstr "no se pudo hacer stat al archivo o directorio «%s»: %m"
 
-#: backup/basebackup.c:1430
+#: backup/basebackup.c:1544
 #, c-format
 msgid "skipping special file \"%s\""
 msgstr "omitiendo el archivo especial «%s»"
 
-#: backup/basebackup.c:1542
-#, c-format
-msgid "invalid segment number %d in file \"%s\""
-msgstr "número de segmento %d no válido en archivo «%s»"
-
-#: backup/basebackup.c:1574
+#: backup/basebackup.c:1751
 #, c-format
 msgid "could not verify checksum in file \"%s\", block %u: read buffer size %d and page size %d differ"
 msgstr "no se pudo verificar el checksum en el archivo «%s», bloque %u: el tamaño de búfer de lectura %d y el tamaño de página %d difieren"
 
-#: backup/basebackup.c:1658
+#: backup/basebackup.c:1813
+#, c-format
+msgid "file \"%s\" has a total of %d checksum verification failure"
+msgid_plural "file \"%s\" has a total of %d checksum verification failures"
+msgstr[0] "el archivo «%s» tiene un total de %d falla de verificación de checksum"
+msgstr[1] "el archivo «%s» tiene un total de %d fallas de verificación de checksums"
+
+#: backup/basebackup.c:1917
 #, c-format
 msgid "checksum verification failed in file \"%s\", block %u: calculated %X but expected %X"
 msgstr "verificación de checksums falló en archivo «%s», bloque %u: calculado %X pero se esperaba %X"
 
-#: backup/basebackup.c:1665
+#: backup/basebackup.c:1924
 #, c-format
 msgid "further checksum verification failures in file \"%s\" will not be reported"
 msgstr "subsiguientes fallas de verificación de checksums en el archivo «%s» no se reportarán"
 
-#: backup/basebackup.c:1721
-#, c-format
-msgid "file \"%s\" has a total of %d checksum verification failure"
-msgid_plural "file \"%s\" has a total of %d checksum verification failures"
-msgstr[0] "el archivo «%s» tiene un total de %d falla de verificación de checksum"
-msgstr[1] "el archivo «%s» tiene un total de %d fallas de verificación de checksums"
-
-#: backup/basebackup.c:1767
+#: backup/basebackup.c:2048
 #, c-format
 msgid "file name too long for tar format: \"%s\""
 msgstr "nombre de archivo demasiado largo para el formato tar: «%s»"
 
-#: backup/basebackup.c:1772
+#: backup/basebackup.c:2053
 #, c-format
 msgid "symbolic link target too long for tar format: file name \"%s\", target \"%s\""
 msgstr "destino de enlace simbólico demasiado largo para el formato tar: nombre de archivo «%s», destino «%s»"
 
+#: backup/basebackup.c:2127
+#, c-format
+msgid "could not read file \"%s\": read %zd of %zu"
+msgstr "no se pudo leer el archivo «%s»: leídos %zd de %zu"
+
 #: backup/basebackup_gzip.c:67
-#, fuzzy, c-format
-#| msgid "Bonjour is not supported by this build"
+#, c-format
 msgid "gzip compression is not supported by this build"
-msgstr "Bonjour no está soportado en este servidor"
+msgstr "la compresión gzip no está soportada en este servidor"
 
 #: backup/basebackup_gzip.c:143
 #, c-format
 msgid "could not initialize compression library"
 msgstr "no se pudo inicializar la biblioteca de compresión"
 
+#: backup/basebackup_incremental.c:294
+#, c-format
+msgid "manifest contains no required WAL ranges"
+msgstr "el manifiesto no contiene ningún rango WAL requerido"
+
+#: backup/basebackup_incremental.c:349
+#, c-format
+msgid "timeline %u found in manifest, but not in this server's history"
+msgstr "el timeline %u fue encontrado en el manifiesto, pero no en la historia de este servidor"
+
+#: backup/basebackup_incremental.c:414
+#, c-format
+msgid "manifest requires WAL from initial timeline %u starting at %X/%X, but that timeline begins at %X/%X"
+msgstr "el manifiesto requiere WAL en el timeline inicial %u desde %X/%X, pero ese timeline inicia en %X/%X"
+
+#: backup/basebackup_incremental.c:424
+#, c-format
+msgid "manifest requires WAL from continuation timeline %u starting at %X/%X, but that timeline begins at %X/%X"
+msgstr "el manifiesto requiere WAL del timeline de continuación %u desde %X/%X, pero ese timeline empieza en %X/%X"
+
+#: backup/basebackup_incremental.c:435
+#, c-format
+msgid "manifest requires WAL from final timeline %u ending at %X/%X, but this backup starts at %X/%X"
+msgstr "el manifiesto requiere WAL del timeline final %u terminado en %X/%X, pero este backup empieza en %X/%X"
+
+#: backup/basebackup_incremental.c:439
+#, c-format
+msgid "This can happen for incremental backups on a standby if there was little activity since the previous backup."
+msgstr "Esto puede pasar para backups incrementales en un standby si hubo insuficiente actividad desde el backup anterior."
+
+#: backup/basebackup_incremental.c:446
+#, c-format
+msgid "manifest requires WAL from non-final timeline %u ending at %X/%X, but this server switched timelines at %X/%X"
+msgstr "el manifiesto requiere WAL del timeline no-final %u terminando en %X/%X, pero este servidor cambió de timelines en %X/%X"
+
+#: backup/basebackup_incremental.c:527
+#, c-format
+msgid "WAL summaries are required on timeline %u from %X/%X to %X/%X, but no summaries for that timeline and LSN range exist"
+msgstr "se requieren sumarizaciones de WAL en el timeline %u desde %X/%X hasta %X/%X, pero no existen sumarizaciones para ese timeline y rango de LSN"
+
+#: backup/basebackup_incremental.c:534
+#, c-format
+msgid "WAL summaries are required on timeline %u from %X/%X to %X/%X, but the summaries for that timeline and LSN range are incomplete"
+msgstr "se requieren sumarizaciones de WAL en el timeline %u desde %X/%X hasta %X/%X, pero las sumarizaciones en ese timeline y rango de LSN están incompletos"
+
+#: backup/basebackup_incremental.c:538
+#, c-format
+msgid "The first unsummarized LSN in this range is %X/%X."
+msgstr "El primer LSN sin sumarización en este rango es %X/%X."
+
+#: backup/basebackup_incremental.c:938
+#, c-format
+msgid "backup manifest version 1 does not support incremental backup"
+msgstr "el manifiesto de backup versión 1 no soporta backups incrementales"
+
+#: backup/basebackup_incremental.c:956
+#, c-format
+msgid "system identifier in backup manifest is %llu, but database system identifier is %llu"
+msgstr "el identificador de sistema en el manifiesto de backup es %llu, pero el identificador en el sistema es %llu"
+
 #: backup/basebackup_lz4.c:67
-#, fuzzy, c-format
-#| msgid "Bonjour is not supported by this build"
+#, c-format
 msgid "lz4 compression is not supported by this build"
-msgstr "Bonjour no está soportado en este servidor"
+msgstr "la compresión lz4 no está soportada en este servidor"
 
-#: backup/basebackup_server.c:75
-#, fuzzy, c-format
-#| msgid "permission denied to create role"
+#: backup/basebackup_server.c:73
+#, c-format
 msgid "permission denied to create backup stored on server"
-msgstr "se ha denegado el permiso para crear el rol"
+msgstr "se ha denegado el permiso para crear un respaldo almacenado en el servidor"
 
-#: backup/basebackup_server.c:76
+#: backup/basebackup_server.c:74
 #, c-format
 msgid "Only roles with privileges of the \"%s\" role may create a backup stored on the server."
-msgstr ""
+msgstr "Sólo los roles con privilegio del rol «%s» pueden crear un respaldo almacenado en el servidor."
 
-#: backup/basebackup_server.c:91
-#, fuzzy, c-format
-#| msgid "relative path not allowed for COPY to file"
+#: backup/basebackup_server.c:89
+#, c-format
 msgid "relative path not allowed for backup stored on server"
-msgstr "no se permiten rutas relativas para COPY hacia un archivo"
+msgstr "no se permiten rutas relativas para un respaldo almacenado en el servidor"
 
-#: backup/basebackup_server.c:104 commands/dbcommands.c:501
-#: commands/tablespace.c:163 commands/tablespace.c:179
-#: commands/tablespace.c:599 commands/tablespace.c:644 replication/slot.c:1697
+#: backup/basebackup_server.c:102 commands/dbcommands.c:477
+#: commands/tablespace.c:157 commands/tablespace.c:173
+#: commands/tablespace.c:593 commands/tablespace.c:638 replication/slot.c:1986
 #: storage/file/copydir.c:47
 #, c-format
 msgid "could not create directory \"%s\": %m"
 msgstr "no se pudo crear el directorio «%s»: %m"
 
-#: backup/basebackup_server.c:117
+#: backup/basebackup_server.c:115
 #, c-format
 msgid "directory \"%s\" exists but is not empty"
 msgstr "el directorio «%s» existe pero no está vacío"
 
-#: backup/basebackup_server.c:125 utils/init/postinit.c:1154
+#: backup/basebackup_server.c:123 utils/init/postinit.c:1178
 #, c-format
 msgid "could not access directory \"%s\": %m"
 msgstr "no se pudo acceder al directorio «%s»: %m"
 
-#: backup/basebackup_server.c:177 backup/basebackup_server.c:184
-#: backup/basebackup_server.c:270 backup/basebackup_server.c:277
-#: storage/smgr/md.c:501 storage/smgr/md.c:508 storage/smgr/md.c:590
-#: storage/smgr/md.c:612 storage/smgr/md.c:862
+#: backup/basebackup_server.c:175 backup/basebackup_server.c:182
+#: backup/basebackup_server.c:268 backup/basebackup_server.c:275
+#: backup/walsummary.c:312 storage/smgr/md.c:502 storage/smgr/md.c:509
+#: storage/smgr/md.c:591 storage/smgr/md.c:613 storage/smgr/md.c:999
 #, c-format
 msgid "Check free disk space."
 msgstr "Verifique el espacio libre en disco."
 
-#: backup/basebackup_server.c:181 backup/basebackup_server.c:274
-#, fuzzy, c-format
-#| msgid "could not extend file \"%s\": wrote only %d of %d bytes at block %u"
+#: backup/basebackup_server.c:179 backup/basebackup_server.c:272
+#: backup/walsummary.c:309
+#, c-format
 msgid "could not write file \"%s\": wrote only %d of %d bytes at offset %u"
-msgstr "no se pudo extender el archivo «%s»: sólo se escribieron %d de %d bytes en el bloque %u"
+msgstr "no se pudo escribir en el archivo «%s»: sólo se escribieron %d de %d bytes en la posición %u"
 
 #: backup/basebackup_target.c:146
-#, fuzzy, c-format
-#| msgid "unrecognized reset target: \"%s\""
+#, c-format
 msgid "unrecognized target: \"%s\""
-msgstr "destino de reset no reconocido: «%s»"
+msgstr "destino no reconocido: «%s»"
 
 #: backup/basebackup_target.c:237
-#, fuzzy, c-format
-#| msgid "parameter \"%s\" requires a Boolean value"
+#, c-format
 msgid "target \"%s\" requires a target detail"
-msgstr "el parámetro «%s» requiere un valor lógico (booleano)"
+msgstr "el destino «%s» requiere un “target detail”"
 
 #: backup/basebackup_zstd.c:66
-#, fuzzy, c-format
-#| msgid "Bonjour is not supported by this build"
+#, c-format
 msgid "zstd compression is not supported by this build"
-msgstr "Bonjour no está soportado en este servidor"
+msgstr "la compresión zstd no está soportada en este servidor"
 
 #: backup/basebackup_zstd.c:117
 #, c-format
@@ -3774,714 +4088,723 @@ msgstr "no se pudo definir la cantidad de procesos ayudantes de compresión a %d
 
 #: backup/basebackup_zstd.c:129
 #, c-format
-msgid "could not set compression flag for %s: %s"
-msgstr "no se pudo definir una opción de compresión para %s: %s"
+msgid "could not enable long-distance mode: %s"
+msgstr "no se pudo habilitar el modo “long-distance”: %s"
 
-#: bootstrap/bootstrap.c:243 postmaster/postmaster.c:721 tcop/postgres.c:3819
+#: backup/walsummaryfuncs.c:95
+#, c-format
+msgid "invalid timeline %lld"
+msgstr "timeline %lld no válido"
+
+#: bootstrap/bootstrap.c:239 postmaster/postmaster.c:623 tcop/postgres.c:3946
 #, c-format
 msgid "--%s requires a value"
 msgstr "--%s requiere un valor"
 
-#: bootstrap/bootstrap.c:248 postmaster/postmaster.c:726 tcop/postgres.c:3824
+#: bootstrap/bootstrap.c:244 postmaster/postmaster.c:628 tcop/postgres.c:3951
 #, c-format
 msgid "-c %s requires a value"
 msgstr "-c %s requiere un valor"
 
-#: bootstrap/bootstrap.c:289
-#, c-format
-msgid "-X requires a power of two value between 1 MB and 1 GB"
-msgstr "-X require un valor potencia de dos entre 1 MB y 1 GB"
-
-#: bootstrap/bootstrap.c:295 postmaster/postmaster.c:844
-#: postmaster/postmaster.c:857
+#: bootstrap/bootstrap.c:282 postmaster/postmaster.c:746
+#: postmaster/postmaster.c:759
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "Pruebe «%s --help» para mayor información.\n"
 
-#: bootstrap/bootstrap.c:304
+#: bootstrap/bootstrap.c:291
 #, c-format
 msgid "%s: invalid command-line arguments\n"
 msgstr "%s: argumentos de línea de órdenes no válidos\n"
 
-#: catalog/aclchk.c:201
+#: catalog/aclchk.c:211
 #, c-format
 msgid "grant options can only be granted to roles"
 msgstr "la opción de grant sólo puede ser otorgada a roles"
 
-#: catalog/aclchk.c:323
+#: catalog/aclchk.c:333
 #, c-format
 msgid "no privileges were granted for column \"%s\" of relation \"%s\""
 msgstr "no se otorgaron privilegios para la columna «%s» de la relación «%s»"
 
-#: catalog/aclchk.c:328
+#: catalog/aclchk.c:338
 #, c-format
 msgid "no privileges were granted for \"%s\""
 msgstr "no se otorgaron privilegios para «%s»"
 
-#: catalog/aclchk.c:336
+#: catalog/aclchk.c:346
 #, c-format
 msgid "not all privileges were granted for column \"%s\" of relation \"%s\""
 msgstr "no todos los privilegios fueron otorgados para la columna «%s» de la relación «%s»"
 
-#: catalog/aclchk.c:341
+#: catalog/aclchk.c:351
 #, c-format
 msgid "not all privileges were granted for \"%s\""
 msgstr "no todos los privilegios fueron otorgados para «%s»"
 
-#: catalog/aclchk.c:352
+#: catalog/aclchk.c:362
 #, c-format
 msgid "no privileges could be revoked for column \"%s\" of relation \"%s\""
 msgstr "ningún privilegio pudo ser revocado para la columna «%s» de la relación «%s»"
 
-#: catalog/aclchk.c:357
+#: catalog/aclchk.c:367
 #, c-format
 msgid "no privileges could be revoked for \"%s\""
 msgstr "ningún privilegio pudo ser revocado para «%s»"
 
-#: catalog/aclchk.c:365
+#: catalog/aclchk.c:375
 #, c-format
 msgid "not all privileges could be revoked for column \"%s\" of relation \"%s\""
 msgstr "no todos los privilegios pudieron ser revocados para la columna «%s» de la relación «%s»"
 
-#: catalog/aclchk.c:370
+#: catalog/aclchk.c:380
 #, c-format
 msgid "not all privileges could be revoked for \"%s\""
 msgstr "no todos los privilegios pudieron ser revocados para «%s»"
 
-#: catalog/aclchk.c:402
+#: catalog/aclchk.c:412
 #, c-format
 msgid "grantor must be current user"
 msgstr "el cedente (grantor) debe ser el usuario actual"
 
-#: catalog/aclchk.c:470 catalog/aclchk.c:1045
+#: catalog/aclchk.c:480 catalog/aclchk.c:1055
 #, c-format
 msgid "invalid privilege type %s for relation"
 msgstr "el tipo de privilegio %s no es válido para una relación"
 
-#: catalog/aclchk.c:474 catalog/aclchk.c:1049
+#: catalog/aclchk.c:484 catalog/aclchk.c:1059
 #, c-format
 msgid "invalid privilege type %s for sequence"
 msgstr "el tipo de privilegio %s no es válido para una secuencia"
 
-#: catalog/aclchk.c:478
+#: catalog/aclchk.c:488
 #, c-format
 msgid "invalid privilege type %s for database"
 msgstr "el tipo de privilegio %s no es válido para una base de datos"
 
-#: catalog/aclchk.c:482
+#: catalog/aclchk.c:492
 #, c-format
 msgid "invalid privilege type %s for domain"
 msgstr "el tipo de privilegio %s no es válido para un dominio"
 
-#: catalog/aclchk.c:486 catalog/aclchk.c:1053
+#: catalog/aclchk.c:496 catalog/aclchk.c:1063
 #, c-format
 msgid "invalid privilege type %s for function"
 msgstr "el tipo de privilegio %s no es válido para una función"
 
-#: catalog/aclchk.c:490
+#: catalog/aclchk.c:500
 #, c-format
 msgid "invalid privilege type %s for language"
 msgstr "el tipo de privilegio %s no es válido para un lenguaje"
 
-#: catalog/aclchk.c:494
+#: catalog/aclchk.c:504
 #, c-format
 msgid "invalid privilege type %s for large object"
 msgstr "el tipo de privilegio %s no es válido para un objeto grande"
 
-#: catalog/aclchk.c:498 catalog/aclchk.c:1069
+#: catalog/aclchk.c:508 catalog/aclchk.c:1079
 #, c-format
 msgid "invalid privilege type %s for schema"
 msgstr "el tipo de privilegio %s no es válido para un esquema"
 
-#: catalog/aclchk.c:502 catalog/aclchk.c:1057
+#: catalog/aclchk.c:512 catalog/aclchk.c:1067
 #, c-format
 msgid "invalid privilege type %s for procedure"
 msgstr "el tipo de privilegio %s no es válido para un procedimiento"
 
-#: catalog/aclchk.c:506 catalog/aclchk.c:1061
+#: catalog/aclchk.c:516 catalog/aclchk.c:1071
 #, c-format
 msgid "invalid privilege type %s for routine"
 msgstr "el tipo de privilegio %s no es válido para una rutina"
 
-#: catalog/aclchk.c:510
+#: catalog/aclchk.c:520
 #, c-format
 msgid "invalid privilege type %s for tablespace"
 msgstr "el tipo de privilegio %s no es válido para un tablespace"
 
-#: catalog/aclchk.c:514 catalog/aclchk.c:1065
+#: catalog/aclchk.c:524 catalog/aclchk.c:1075
 #, c-format
 msgid "invalid privilege type %s for type"
 msgstr "el tipo de privilegio %s no es válido para un tipo"
 
-#: catalog/aclchk.c:518
+#: catalog/aclchk.c:528
 #, c-format
 msgid "invalid privilege type %s for foreign-data wrapper"
 msgstr "el tipo de privilegio %s no es válido para un conector de datos externos"
 
-#: catalog/aclchk.c:522
+#: catalog/aclchk.c:532
 #, c-format
 msgid "invalid privilege type %s for foreign server"
 msgstr "el tipo de privilegio %s no es válido para un servidor foráneo"
 
-#: catalog/aclchk.c:526
+#: catalog/aclchk.c:536
 #, c-format
 msgid "invalid privilege type %s for parameter"
 msgstr "el tipo de privilegio %s no es válido para un parámetro"
 
-#: catalog/aclchk.c:565
+#: catalog/aclchk.c:575
 #, c-format
 msgid "column privileges are only valid for relations"
 msgstr "los privilegios de columna son sólo válidos para relaciones"
 
-#: catalog/aclchk.c:728 catalog/aclchk.c:3570 catalog/objectaddress.c:1092
-#: catalog/pg_largeobject.c:116 storage/large_object/inv_api.c:287
+#: catalog/aclchk.c:738 catalog/aclchk.c:3629 catalog/objectaddress.c:1054
+#: catalog/pg_largeobject.c:113 storage/large_object/inv_api.c:285
 #, c-format
 msgid "large object %u does not exist"
 msgstr "no existe el objeto grande %u"
 
-#: catalog/aclchk.c:1102
+#: catalog/aclchk.c:1112
 #, c-format
 msgid "default privileges cannot be set for columns"
 msgstr "los privilegios por omisión no pueden definirse para columnas"
 
-#: catalog/aclchk.c:1138
-#, fuzzy, c-format
-#| msgid "permission denied to create role"
+#: catalog/aclchk.c:1148
+#, c-format
 msgid "permission denied to change default privileges"
-msgstr "se ha denegado el permiso para crear el rol"
+msgstr "se ha denegado el permiso para cambiar los privilegios por omisión"
 
-#: catalog/aclchk.c:1256
+#: catalog/aclchk.c:1266
 #, c-format
 msgid "cannot use IN SCHEMA clause when using GRANT/REVOKE ON SCHEMAS"
 msgstr "No puede utilizar la cláusula IN SCHEMA cuando se utiliza GRANT / REVOKE ON SCHEMAS"
 
-#: catalog/aclchk.c:1595 catalog/catalog.c:631 catalog/objectaddress.c:1561
-#: catalog/pg_publication.c:533 commands/analyze.c:389 commands/copy.c:837
-#: commands/sequence.c:1663 commands/tablecmds.c:7339 commands/tablecmds.c:7495
-#: commands/tablecmds.c:7545 commands/tablecmds.c:7619
-#: commands/tablecmds.c:7689 commands/tablecmds.c:7801
-#: commands/tablecmds.c:7895 commands/tablecmds.c:7954
-#: commands/tablecmds.c:8043 commands/tablecmds.c:8073
-#: commands/tablecmds.c:8201 commands/tablecmds.c:8283
-#: commands/tablecmds.c:8417 commands/tablecmds.c:8525
-#: commands/tablecmds.c:12240 commands/tablecmds.c:12421
-#: commands/tablecmds.c:12582 commands/tablecmds.c:13744
-#: commands/tablecmds.c:16273 commands/trigger.c:949 parser/analyze.c:2480
-#: parser/parse_relation.c:737 parser/parse_target.c:1054
-#: parser/parse_type.c:144 parser/parse_utilcmd.c:3413
-#: parser/parse_utilcmd.c:3449 parser/parse_utilcmd.c:3491 utils/adt/acl.c:2884
-#: utils/adt/ruleutils.c:2799
+#: catalog/aclchk.c:1617 catalog/catalog.c:659 catalog/objectaddress.c:1523
+#: catalog/pg_publication.c:528 commands/analyze.c:380 commands/copy.c:951
+#: commands/sequence.c:1655 commands/tablecmds.c:7541 commands/tablecmds.c:7695
+#: commands/tablecmds.c:7745 commands/tablecmds.c:7819
+#: commands/tablecmds.c:7889 commands/tablecmds.c:8019
+#: commands/tablecmds.c:8148 commands/tablecmds.c:8242
+#: commands/tablecmds.c:8343 commands/tablecmds.c:8470
+#: commands/tablecmds.c:8500 commands/tablecmds.c:8642
+#: commands/tablecmds.c:8735 commands/tablecmds.c:8869
+#: commands/tablecmds.c:8981 commands/tablecmds.c:12797
+#: commands/tablecmds.c:12989 commands/tablecmds.c:13150
+#: commands/tablecmds.c:14339 commands/tablecmds.c:16966 commands/trigger.c:942
+#: parser/analyze.c:2530 parser/parse_relation.c:737 parser/parse_target.c:1067
+#: parser/parse_type.c:144 parser/parse_utilcmd.c:3409
+#: parser/parse_utilcmd.c:3449 parser/parse_utilcmd.c:3491 utils/adt/acl.c:2923
+#: utils/adt/ruleutils.c:2812
 #, c-format
 msgid "column \"%s\" of relation \"%s\" does not exist"
 msgstr "no existe la columna «%s» en la relación «%s»"
 
-#: catalog/aclchk.c:1840
+#: catalog/aclchk.c:1862
 #, c-format
 msgid "\"%s\" is an index"
 msgstr "«%s» es un índice"
 
-#: catalog/aclchk.c:1847 commands/tablecmds.c:13901 commands/tablecmds.c:17200
+#: catalog/aclchk.c:1869 commands/tablecmds.c:14496 commands/tablecmds.c:17882
 #, c-format
 msgid "\"%s\" is a composite type"
 msgstr "«%s» es un tipo compuesto"
 
-#: catalog/aclchk.c:1855 catalog/objectaddress.c:1401 commands/sequence.c:1171
-#: commands/tablecmds.c:254 commands/tablecmds.c:17164 utils/adt/acl.c:2092
-#: utils/adt/acl.c:2122 utils/adt/acl.c:2154 utils/adt/acl.c:2186
-#: utils/adt/acl.c:2214 utils/adt/acl.c:2244
+#: catalog/aclchk.c:1877 catalog/objectaddress.c:1363 commands/tablecmds.c:263
+#: commands/tablecmds.c:17846 utils/adt/acl.c:2107 utils/adt/acl.c:2137
+#: utils/adt/acl.c:2170 utils/adt/acl.c:2206 utils/adt/acl.c:2237
+#: utils/adt/acl.c:2268
 #, c-format
 msgid "\"%s\" is not a sequence"
 msgstr "«%s» no es una secuencia"
 
-#: catalog/aclchk.c:1893
+#: catalog/aclchk.c:1915
 #, c-format
 msgid "sequence \"%s\" only supports USAGE, SELECT, and UPDATE privileges"
 msgstr "la secuencia «%s» sólo soporta los privilegios USAGE, SELECT, y UPDATE"
 
-#: catalog/aclchk.c:1910
+#: catalog/aclchk.c:1932
 #, c-format
 msgid "invalid privilege type %s for table"
 msgstr "el tipo de privilegio %s no es válido para una tabla"
 
-#: catalog/aclchk.c:2072
+#: catalog/aclchk.c:2097
 #, c-format
 msgid "invalid privilege type %s for column"
 msgstr "el tipo de privilegio %s no es válido para una columna"
 
-#: catalog/aclchk.c:2085
+#: catalog/aclchk.c:2110
 #, c-format
 msgid "sequence \"%s\" only supports SELECT column privileges"
 msgstr "la secuencia «%s» sólo soporta el privilegio SELECT"
 
-#: catalog/aclchk.c:2275
+#: catalog/aclchk.c:2301
 #, c-format
 msgid "language \"%s\" is not trusted"
 msgstr "el lenguaje «%s» no es confiable (trusted)"
 
-#: catalog/aclchk.c:2277
+#: catalog/aclchk.c:2303
 #, c-format
 msgid "GRANT and REVOKE are not allowed on untrusted languages, because only superusers can use untrusted languages."
 msgstr "GRANT y REVOKE no están permitidos en lenguajes no confiables, porque sólo los superusuarios pueden usar lenguajes no confiables."
 
-#: catalog/aclchk.c:2427
+#: catalog/aclchk.c:2454
 #, c-format
 msgid "cannot set privileges of array types"
 msgstr "no se puede definir privilegios para tipos de array"
 
-#: catalog/aclchk.c:2428
+#: catalog/aclchk.c:2455
 #, c-format
 msgid "Set the privileges of the element type instead."
 msgstr "Defina los privilegios del tipo elemento en su lugar."
 
-#: catalog/aclchk.c:2435 catalog/objectaddress.c:1667
+#: catalog/aclchk.c:2459
+#, c-format
+msgid "cannot set privileges of multirange types"
+msgstr "no se puede definir privilegios para tipos multirango"
+
+#: catalog/aclchk.c:2460
+#, c-format
+msgid "Set the privileges of the range type instead."
+msgstr "Defina los privilegios del tipo de rango en su lugar."
+
+#: catalog/aclchk.c:2467 catalog/objectaddress.c:1629
 #, c-format
 msgid "\"%s\" is not a domain"
 msgstr "«%s» no es un dominio"
 
-#: catalog/aclchk.c:2621
+#: catalog/aclchk.c:2653
 #, c-format
 msgid "unrecognized privilege type \"%s\""
 msgstr "tipo de privilegio «%s» no reconocido"
 
-#: catalog/aclchk.c:2688
+#: catalog/aclchk.c:2720
 #, c-format
 msgid "permission denied for aggregate %s"
 msgstr "permiso denegado a la función de agregación %s"
 
-#: catalog/aclchk.c:2691
+#: catalog/aclchk.c:2723
 #, c-format
 msgid "permission denied for collation %s"
 msgstr "permiso denegado al ordenamiento (collation) %s"
 
-#: catalog/aclchk.c:2694
+#: catalog/aclchk.c:2726
 #, c-format
 msgid "permission denied for column %s"
 msgstr "permiso denegado a la columna %s"
 
-#: catalog/aclchk.c:2697
+#: catalog/aclchk.c:2729
 #, c-format
 msgid "permission denied for conversion %s"
 msgstr "permiso denegado a la conversión %s"
 
-#: catalog/aclchk.c:2700
+#: catalog/aclchk.c:2732
 #, c-format
 msgid "permission denied for database %s"
 msgstr "permiso denegado a la base de datos %s"
 
-#: catalog/aclchk.c:2703
+#: catalog/aclchk.c:2735
 #, c-format
 msgid "permission denied for domain %s"
 msgstr "permiso denegado al dominio %s"
 
-#: catalog/aclchk.c:2706
+#: catalog/aclchk.c:2738
 #, c-format
 msgid "permission denied for event trigger %s"
-msgstr "permiso denegado al disparador por eventos %s"
+msgstr "permiso denegado al “trigger” por eventos %s"
 
-#: catalog/aclchk.c:2709
+#: catalog/aclchk.c:2741
 #, c-format
 msgid "permission denied for extension %s"
 msgstr "permiso denegado a la extensión %s"
 
-#: catalog/aclchk.c:2712
+#: catalog/aclchk.c:2744
 #, c-format
 msgid "permission denied for foreign-data wrapper %s"
 msgstr "permiso denegado al conector de datos externos %s"
 
-#: catalog/aclchk.c:2715
+#: catalog/aclchk.c:2747
 #, c-format
 msgid "permission denied for foreign server %s"
 msgstr "permiso denegado al servidor foráneo %s"
 
-#: catalog/aclchk.c:2718
+#: catalog/aclchk.c:2750
 #, c-format
 msgid "permission denied for foreign table %s"
 msgstr "permiso denegado a la tabla foránea %s"
 
-#: catalog/aclchk.c:2721
+#: catalog/aclchk.c:2753
 #, c-format
 msgid "permission denied for function %s"
 msgstr "permiso denegado a la función %s"
 
-#: catalog/aclchk.c:2724
+#: catalog/aclchk.c:2756
 #, c-format
 msgid "permission denied for index %s"
 msgstr "permiso denegado al índice %s"
 
-#: catalog/aclchk.c:2727
+#: catalog/aclchk.c:2759
 #, c-format
 msgid "permission denied for language %s"
 msgstr "permiso denegado al lenguaje %s"
 
-#: catalog/aclchk.c:2730
+#: catalog/aclchk.c:2762
 #, c-format
 msgid "permission denied for large object %s"
 msgstr "permiso denegado al objeto grande %s"
 
-#: catalog/aclchk.c:2733
+#: catalog/aclchk.c:2765
 #, c-format
 msgid "permission denied for materialized view %s"
 msgstr "permiso denegado a la vista materializada %s"
 
-#: catalog/aclchk.c:2736
+#: catalog/aclchk.c:2768
 #, c-format
 msgid "permission denied for operator class %s"
 msgstr "permiso denegado a la clase de operadores %s"
 
-#: catalog/aclchk.c:2739
+#: catalog/aclchk.c:2771
 #, c-format
 msgid "permission denied for operator %s"
 msgstr "permiso denegado al operador %s"
 
-#: catalog/aclchk.c:2742
+#: catalog/aclchk.c:2774
 #, c-format
 msgid "permission denied for operator family %s"
 msgstr "permiso denegado a la familia de operadores %s"
 
-#: catalog/aclchk.c:2745
+#: catalog/aclchk.c:2777
 #, c-format
 msgid "permission denied for parameter %s"
 msgstr "permiso denegado al parámetro %s"
 
-#: catalog/aclchk.c:2748
+#: catalog/aclchk.c:2780
 #, c-format
 msgid "permission denied for policy %s"
 msgstr "permiso denegado a la política %s"
 
-#: catalog/aclchk.c:2751
+#: catalog/aclchk.c:2783
 #, c-format
 msgid "permission denied for procedure %s"
 msgstr "permiso denegado al procedimiento %s"
 
-#: catalog/aclchk.c:2754
+#: catalog/aclchk.c:2786
 #, c-format
 msgid "permission denied for publication %s"
 msgstr "permiso denegado a la publicación %s"
 
-#: catalog/aclchk.c:2757
+#: catalog/aclchk.c:2789
 #, c-format
 msgid "permission denied for routine %s"
 msgstr "permiso denegado a la rutina %s"
 
-#: catalog/aclchk.c:2760
+#: catalog/aclchk.c:2792
 #, c-format
 msgid "permission denied for schema %s"
 msgstr "permiso denegado al esquema %s"
 
-#: catalog/aclchk.c:2763 commands/sequence.c:659 commands/sequence.c:885
-#: commands/sequence.c:927 commands/sequence.c:968 commands/sequence.c:1761
-#: commands/sequence.c:1810
+#: catalog/aclchk.c:2795 commands/sequence.c:654 commands/sequence.c:880
+#: commands/sequence.c:922 commands/sequence.c:963 commands/sequence.c:1753
+#: commands/sequence.c:1799
 #, c-format
 msgid "permission denied for sequence %s"
 msgstr "permiso denegado a la secuencia %s"
 
-#: catalog/aclchk.c:2766
+#: catalog/aclchk.c:2798
 #, c-format
 msgid "permission denied for statistics object %s"
 msgstr "permiso denegado al objeto de estadísticas %s"
 
-#: catalog/aclchk.c:2769
+#: catalog/aclchk.c:2801
 #, c-format
 msgid "permission denied for subscription %s"
 msgstr "permiso denegado a la suscripción %s"
 
-#: catalog/aclchk.c:2772
+#: catalog/aclchk.c:2804
 #, c-format
 msgid "permission denied for table %s"
 msgstr "permiso denegado a la tabla %s"
 
-#: catalog/aclchk.c:2775
+#: catalog/aclchk.c:2807
 #, c-format
 msgid "permission denied for tablespace %s"
 msgstr "permiso denegado al tablespace %s"
 
-#: catalog/aclchk.c:2778
+#: catalog/aclchk.c:2810
 #, c-format
 msgid "permission denied for text search configuration %s"
 msgstr "permiso denegado a la configuración de búsqueda en texto %s"
 
-#: catalog/aclchk.c:2781
+#: catalog/aclchk.c:2813
 #, c-format
 msgid "permission denied for text search dictionary %s"
 msgstr "permiso denegado a la configuración de búsqueda en texto %s"
 
-#: catalog/aclchk.c:2784
+#: catalog/aclchk.c:2816
 #, c-format
 msgid "permission denied for type %s"
 msgstr "permiso denegado al tipo %s"
 
-#: catalog/aclchk.c:2787
+#: catalog/aclchk.c:2819
 #, c-format
 msgid "permission denied for view %s"
 msgstr "permiso denegado a la vista %s"
 
-#: catalog/aclchk.c:2823
+#: catalog/aclchk.c:2855
 #, c-format
 msgid "must be owner of aggregate %s"
 msgstr "debe ser dueño de la función de agregación %s"
 
-#: catalog/aclchk.c:2826
+#: catalog/aclchk.c:2858
 #, c-format
 msgid "must be owner of collation %s"
 msgstr "debe ser dueño del ordenamiento (collation) %s"
 
-#: catalog/aclchk.c:2829
+#: catalog/aclchk.c:2861
 #, c-format
 msgid "must be owner of conversion %s"
 msgstr "debe ser dueño de la conversión %s"
 
-#: catalog/aclchk.c:2832
+#: catalog/aclchk.c:2864
 #, c-format
 msgid "must be owner of database %s"
 msgstr "debe ser dueño de la base de datos %s"
 
-#: catalog/aclchk.c:2835
+#: catalog/aclchk.c:2867
 #, c-format
 msgid "must be owner of domain %s"
 msgstr "debe ser dueño del dominio %s"
 
-#: catalog/aclchk.c:2838
+#: catalog/aclchk.c:2870
 #, c-format
 msgid "must be owner of event trigger %s"
-msgstr "debe ser dueño del disparador por eventos %s"
+msgstr "debe ser dueño del “trigger” por eventos %s"
 
-#: catalog/aclchk.c:2841
+#: catalog/aclchk.c:2873
 #, c-format
 msgid "must be owner of extension %s"
 msgstr "debe ser dueño de la extensión %s"
 
-#: catalog/aclchk.c:2844
+#: catalog/aclchk.c:2876
 #, c-format
 msgid "must be owner of foreign-data wrapper %s"
 msgstr "debe ser dueño del conector de datos externos %s"
 
-#: catalog/aclchk.c:2847
+#: catalog/aclchk.c:2879
 #, c-format
 msgid "must be owner of foreign server %s"
 msgstr "debe ser dueño del servidor foráneo %s"
 
-#: catalog/aclchk.c:2850
+#: catalog/aclchk.c:2882
 #, c-format
 msgid "must be owner of foreign table %s"
 msgstr "debe ser dueño de la tabla foránea %s"
 
-#: catalog/aclchk.c:2853
+#: catalog/aclchk.c:2885
 #, c-format
 msgid "must be owner of function %s"
 msgstr "debe ser dueño de la función %s"
 
-#: catalog/aclchk.c:2856
+#: catalog/aclchk.c:2888
 #, c-format
 msgid "must be owner of index %s"
 msgstr "debe ser dueño del índice %s"
 
-#: catalog/aclchk.c:2859
+#: catalog/aclchk.c:2891
 #, c-format
 msgid "must be owner of language %s"
 msgstr "debe ser dueño del lenguaje %s"
 
-#: catalog/aclchk.c:2862
+#: catalog/aclchk.c:2894
 #, c-format
 msgid "must be owner of large object %s"
 msgstr "debe ser dueño del objeto grande %s"
 
-#: catalog/aclchk.c:2865
+#: catalog/aclchk.c:2897
 #, c-format
 msgid "must be owner of materialized view %s"
 msgstr "debe ser dueño de la vista materializada %s"
 
-#: catalog/aclchk.c:2868
+#: catalog/aclchk.c:2900
 #, c-format
 msgid "must be owner of operator class %s"
 msgstr "debe ser dueño de la clase de operadores %s"
 
-#: catalog/aclchk.c:2871
+#: catalog/aclchk.c:2903
 #, c-format
 msgid "must be owner of operator %s"
 msgstr "debe ser dueño del operador %s"
 
-#: catalog/aclchk.c:2874
+#: catalog/aclchk.c:2906
 #, c-format
 msgid "must be owner of operator family %s"
 msgstr "debe ser dueño de la familia de operadores %s"
 
-#: catalog/aclchk.c:2877
+#: catalog/aclchk.c:2909
 #, c-format
 msgid "must be owner of procedure %s"
 msgstr "debe ser dueño del procedimiento %s"
 
-#: catalog/aclchk.c:2880
+#: catalog/aclchk.c:2912
 #, c-format
 msgid "must be owner of publication %s"
 msgstr "debe ser dueño de la publicación %s"
 
-#: catalog/aclchk.c:2883
+#: catalog/aclchk.c:2915
 #, c-format
 msgid "must be owner of routine %s"
 msgstr "debe ser dueño de la rutina %s"
 
-#: catalog/aclchk.c:2886
+#: catalog/aclchk.c:2918
 #, c-format
 msgid "must be owner of sequence %s"
 msgstr "debe ser dueño de la secuencia %s"
 
-#: catalog/aclchk.c:2889
+#: catalog/aclchk.c:2921
 #, c-format
 msgid "must be owner of subscription %s"
 msgstr "debe ser dueño de la suscripción %s"
 
-#: catalog/aclchk.c:2892
+#: catalog/aclchk.c:2924
 #, c-format
 msgid "must be owner of table %s"
 msgstr "debe ser dueño de la tabla %s"
 
-#: catalog/aclchk.c:2895
+#: catalog/aclchk.c:2927
 #, c-format
 msgid "must be owner of type %s"
 msgstr "debe ser dueño del tipo %s"
 
-#: catalog/aclchk.c:2898
+#: catalog/aclchk.c:2930
 #, c-format
 msgid "must be owner of view %s"
 msgstr "debe ser dueño de la vista %s"
 
-#: catalog/aclchk.c:2901
+#: catalog/aclchk.c:2933
 #, c-format
 msgid "must be owner of schema %s"
 msgstr "debe ser dueño del esquema %s"
 
-#: catalog/aclchk.c:2904
+#: catalog/aclchk.c:2936
 #, c-format
 msgid "must be owner of statistics object %s"
 msgstr "debe ser dueño del objeto de estadísticas %s"
 
-#: catalog/aclchk.c:2907
+#: catalog/aclchk.c:2939
 #, c-format
 msgid "must be owner of tablespace %s"
 msgstr "debe ser dueño del tablespace %s"
 
-#: catalog/aclchk.c:2910
+#: catalog/aclchk.c:2942
 #, c-format
 msgid "must be owner of text search configuration %s"
 msgstr "debe ser dueño de la configuración de búsqueda en texto %s"
 
-#: catalog/aclchk.c:2913
+#: catalog/aclchk.c:2945
 #, c-format
 msgid "must be owner of text search dictionary %s"
 msgstr "debe ser dueño del diccionario de búsqueda en texto %s"
 
-#: catalog/aclchk.c:2927
+#: catalog/aclchk.c:2959
 #, c-format
 msgid "must be owner of relation %s"
 msgstr "debe ser dueño de la relación %s"
 
-#: catalog/aclchk.c:2973
+#: catalog/aclchk.c:3005
 #, c-format
 msgid "permission denied for column \"%s\" of relation \"%s\""
 msgstr "permiso denegado a la columna «%s» de la relación «%s»"
 
-#: catalog/aclchk.c:3108 catalog/aclchk.c:3994 catalog/aclchk.c:4026
-#, fuzzy, c-format
-#| msgid "schema with OID %u does not exist"
+#: catalog/aclchk.c:3162 catalog/aclchk.c:4170 catalog/aclchk.c:4201
+#, c-format
 msgid "%s with OID %u does not exist"
-msgstr "no existe el esquema con OID %u"
+msgstr "%s con el OID %u no existe"
 
-#: catalog/aclchk.c:3192 catalog/aclchk.c:3211
+#: catalog/aclchk.c:3245 catalog/aclchk.c:3264
 #, c-format
 msgid "attribute %d of relation with OID %u does not exist"
 msgstr "no existe el atributo %d de la relación con OID %u"
 
-#: catalog/aclchk.c:3306
+#: catalog/aclchk.c:3302 catalog/aclchk.c:3365 catalog/aclchk.c:4004
 #, c-format
 msgid "relation with OID %u does not exist"
 msgstr "no existe la relación con OID %u"
 
-#: catalog/aclchk.c:3491
+#: catalog/aclchk.c:3550
 #, c-format
 msgid "parameter ACL with OID %u does not exist"
 msgstr "no existe el ACL de parámetro con OID %u"
 
-#: catalog/aclchk.c:3655 commands/collationcmds.c:808
-#: commands/publicationcmds.c:1746
+#: catalog/aclchk.c:3723 commands/collationcmds.c:853
+#: commands/publicationcmds.c:1739
 #, c-format
 msgid "schema with OID %u does not exist"
 msgstr "no existe el esquema con OID %u"
 
-#: catalog/aclchk.c:3720 utils/cache/typcache.c:385 utils/cache/typcache.c:440
+#: catalog/aclchk.c:3797 catalog/aclchk.c:3824 catalog/aclchk.c:3853
+#: utils/cache/typcache.c:392 utils/cache/typcache.c:447
 #, c-format
 msgid "type with OID %u does not exist"
 msgstr "no existe el tipo con OID %u"
 
-#: catalog/catalog.c:449
+#: catalog/catalog.c:477
 #, c-format
 msgid "still searching for an unused OID in relation \"%s\""
 msgstr "aún se está buscando algún OID sin utilizar en la relación «%s»"
 
-#: catalog/catalog.c:451
+#: catalog/catalog.c:479
 #, c-format
 msgid "OID candidates have been checked %llu time, but no unused OID has been found yet."
 msgid_plural "OID candidates have been checked %llu times, but no unused OID has been found yet."
 msgstr[0] "se han revisado los OID candidatos %llu vez, pero aún no se ha encontrado algún OID sin utilizar."
 msgstr[1] "se han revisado los OID candidatos %llu veces, pero aún no se ha encontrado algún OID sin utilizar."
 
-#: catalog/catalog.c:476
+#: catalog/catalog.c:504
 #, c-format
 msgid "new OID has been assigned in relation \"%s\" after %llu retry"
 msgid_plural "new OID has been assigned in relation \"%s\" after %llu retries"
 msgstr[0] "se ha asignado un nuevo OID en la relación «%s» luego de %llu reintento"
 msgstr[1] "se ha asignado un nuevo OID en la relación «%s» luego de %llu reintentos"
 
-#: catalog/catalog.c:609 catalog/catalog.c:676
+#: catalog/catalog.c:637 catalog/catalog.c:704
 #, c-format
 msgid "must be superuser to call %s()"
 msgstr "debe ser superusuario para invocar %s()"
 
-#: catalog/catalog.c:618
+#: catalog/catalog.c:646
 #, c-format
 msgid "pg_nextoid() can only be used on system catalogs"
 msgstr "pg_nextoid() sólo puede usarse en catálogos de sistema"
 
-#: catalog/catalog.c:623 parser/parse_utilcmd.c:2264
+#: catalog/catalog.c:651 parser/parse_utilcmd.c:2270
 #, c-format
 msgid "index \"%s\" does not belong to table \"%s\""
 msgstr "el índice «%s» no pertenece a la tabla «%s»"
 
-#: catalog/catalog.c:640
+#: catalog/catalog.c:668
 #, c-format
 msgid "column \"%s\" is not of type oid"
 msgstr "la columna «%s» no es de tipo oid"
 
-#: catalog/catalog.c:647
+#: catalog/catalog.c:675
 #, c-format
 msgid "index \"%s\" is not the index for column \"%s\""
 msgstr "«el índice %s» no es el índice para la columna «%s»"
 
-#: catalog/dependency.c:546 catalog/pg_shdepend.c:658
+#: catalog/dependency.c:497 catalog/pg_shdepend.c:703
 #, c-format
 msgid "cannot drop %s because it is required by the database system"
 msgstr "no se puede eliminar %s porque es requerido por el sistema"
 
-#: catalog/dependency.c:838 catalog/dependency.c:1065
+#: catalog/dependency.c:789 catalog/dependency.c:1016
 #, c-format
 msgid "cannot drop %s because %s requires it"
 msgstr "no se puede eliminar %s porque %s lo requiere"
 
-#: catalog/dependency.c:840 catalog/dependency.c:1067
+#: catalog/dependency.c:791 catalog/dependency.c:1018
 #, c-format
 msgid "You can drop %s instead."
 msgstr "Puede eliminar %s en su lugar."
 
-#: catalog/dependency.c:1146 catalog/dependency.c:1155
+#: catalog/dependency.c:1097 catalog/dependency.c:1106
 #, c-format
 msgid "%s depends on %s"
 msgstr "%s depende de %s"
 
-#: catalog/dependency.c:1170 catalog/dependency.c:1179
+#: catalog/dependency.c:1121 catalog/dependency.c:1130
 #, c-format
 msgid "drop cascades to %s"
 msgstr "eliminando además %s"
 
-#: catalog/dependency.c:1187 catalog/pg_shdepend.c:823
+#: catalog/dependency.c:1138 catalog/pg_shdepend.c:868
 #, c-format
 msgid ""
 "\n"
@@ -4496,720 +4819,715 @@ msgstr[1] ""
 "\n"
 "y otros %d objetos (vea el registro del servidor para obtener la lista)"
 
-#: catalog/dependency.c:1199
+#: catalog/dependency.c:1150
 #, c-format
 msgid "cannot drop %s because other objects depend on it"
 msgstr "no se puede eliminar %s porque otros objetos dependen de él"
 
-#: catalog/dependency.c:1202 catalog/dependency.c:1209
-#: catalog/dependency.c:1220 commands/tablecmds.c:1335
-#: commands/tablecmds.c:14386 commands/tablespace.c:466 commands/user.c:1309
-#: commands/vacuum.c:212 commands/view.c:446 libpq/auth.c:326
-#: replication/logical/applyparallelworker.c:1044 replication/syncrep.c:1017
-#: storage/lmgr/deadlock.c:1135 storage/lmgr/proc.c:1358 utils/misc/guc.c:3120
-#: utils/misc/guc.c:3156 utils/misc/guc.c:3226 utils/misc/guc.c:6615
-#: utils/misc/guc.c:6649 utils/misc/guc.c:6683 utils/misc/guc.c:6726
-#: utils/misc/guc.c:6768
+#: catalog/dependency.c:1153 catalog/dependency.c:1160
+#: catalog/dependency.c:1171 commands/tablecmds.c:1459
+#: commands/tablecmds.c:15088 commands/tablespace.c:460 commands/user.c:1302
+#: commands/vacuum.c:211 commands/view.c:441 executor/execExprInterp.c:4655
+#: executor/execExprInterp.c:4663 libpq/auth.c:324
+#: replication/logical/applyparallelworker.c:1041 replication/syncrep.c:1011
+#: storage/lmgr/deadlock.c:1134 storage/lmgr/proc.c:1432 utils/misc/guc.c:3169
+#: utils/misc/guc.c:3210 utils/misc/guc.c:3285 utils/misc/guc.c:6825
+#: utils/misc/guc.c:6859 utils/misc/guc.c:6893 utils/misc/guc.c:6936
+#: utils/misc/guc.c:6978
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: catalog/dependency.c:1203 catalog/dependency.c:1210
+#: catalog/dependency.c:1154 catalog/dependency.c:1161
 #, c-format
 msgid "Use DROP ... CASCADE to drop the dependent objects too."
 msgstr "Use DROP ... CASCADE para eliminar además los objetos dependientes."
 
-#: catalog/dependency.c:1207
+#: catalog/dependency.c:1158
 #, c-format
 msgid "cannot drop desired object(s) because other objects depend on them"
 msgstr "no se puede eliminar el o los objetos deseados porque otros objetos dependen de ellos"
 
-#: catalog/dependency.c:1215
+#: catalog/dependency.c:1166
 #, c-format
 msgid "drop cascades to %d other object"
 msgid_plural "drop cascades to %d other objects"
 msgstr[0] "eliminando además %d objeto más"
 msgstr[1] "eliminando además %d objetos más"
 
-#: catalog/dependency.c:1899
+#: catalog/dependency.c:1850
 #, c-format
 msgid "constant of the type %s cannot be used here"
 msgstr "no se puede usar una constante de tipo %s aquí"
 
-#: catalog/dependency.c:2420 parser/parse_relation.c:3403
-#: parser/parse_relation.c:3413
+#: catalog/dependency.c:2375 parser/parse_relation.c:3407
+#: parser/parse_relation.c:3417
 #, c-format
 msgid "column %d of relation \"%s\" does not exist"
 msgstr "no existe la columna %d en la relación «%s»"
 
-#: catalog/heap.c:324
+#: catalog/heap.c:325
 #, c-format
 msgid "permission denied to create \"%s.%s\""
 msgstr "se ha denegado el permiso para crear «%s.%s»"
 
-#: catalog/heap.c:326
+#: catalog/heap.c:327
 #, c-format
 msgid "System catalog modifications are currently disallowed."
 msgstr "Las modificaciones al catálogo del sistema están actualmente deshabilitadas."
 
-#: catalog/heap.c:466 commands/tablecmds.c:2374 commands/tablecmds.c:3047
-#: commands/tablecmds.c:6922
+#: catalog/heap.c:467 commands/tablecmds.c:2495 commands/tablecmds.c:2917
+#: commands/tablecmds.c:7163
 #, c-format
 msgid "tables can have at most %d columns"
 msgstr "las tablas pueden tener a lo más %d columnas"
 
-#: catalog/heap.c:484 commands/tablecmds.c:7229
+#: catalog/heap.c:485 commands/tablecmds.c:7432
 #, c-format
 msgid "column name \"%s\" conflicts with a system column name"
 msgstr "el nombre de columna «%s» colisiona con nombre de una columna de sistema"
 
-#: catalog/heap.c:500
+#: catalog/heap.c:501
 #, c-format
 msgid "column name \"%s\" specified more than once"
 msgstr "el nombre de columna «%s» fue especificado más de una vez"
 
 #. translator: first %s is an integer not a name
-#: catalog/heap.c:575
+#: catalog/heap.c:579
 #, c-format
 msgid "partition key column %s has pseudo-type %s"
 msgstr "la columna %s de la llave de partición tiene pseudotipo %s"
 
-#: catalog/heap.c:580
+#: catalog/heap.c:584
 #, c-format
 msgid "column \"%s\" has pseudo-type %s"
 msgstr "la columna «%s» tiene pseudotipo %s"
 
-#: catalog/heap.c:611
+#: catalog/heap.c:615
 #, c-format
 msgid "composite type %s cannot be made a member of itself"
 msgstr "un tipo compuesto %s no puede ser hecho miembro de sí mismo"
 
 #. translator: first %s is an integer not a name
-#: catalog/heap.c:666
+#: catalog/heap.c:670
 #, c-format
 msgid "no collation was derived for partition key column %s with collatable type %s"
 msgstr "no se derivó ningún ordenamiento (collate) para la columna %s de llave de partición con tipo ordenable %s"
 
-#: catalog/heap.c:672 commands/createas.c:203 commands/createas.c:512
+#: catalog/heap.c:676 commands/createas.c:198 commands/createas.c:505
 #, c-format
 msgid "no collation was derived for column \"%s\" with collatable type %s"
 msgstr "no se derivó ningún ordenamiento (collate) para la columna «%s» con tipo ordenable %s"
 
-#: catalog/heap.c:1148 catalog/index.c:886 commands/createas.c:408
-#: commands/tablecmds.c:3987
+#: catalog/heap.c:1161 catalog/index.c:899 commands/createas.c:401
+#: commands/tablecmds.c:4171
 #, c-format
 msgid "relation \"%s\" already exists"
 msgstr "la relación «%s» ya existe"
 
-#: catalog/heap.c:1164 catalog/pg_type.c:434 catalog/pg_type.c:782
-#: catalog/pg_type.c:954 commands/typecmds.c:249 commands/typecmds.c:261
-#: commands/typecmds.c:754 commands/typecmds.c:1169 commands/typecmds.c:1395
-#: commands/typecmds.c:1575 commands/typecmds.c:2546
+#: catalog/heap.c:1177 catalog/pg_type.c:434 catalog/pg_type.c:805
+#: catalog/pg_type.c:977 commands/typecmds.c:253 commands/typecmds.c:265
+#: commands/typecmds.c:758 commands/typecmds.c:1179 commands/typecmds.c:1405
+#: commands/typecmds.c:1585 commands/typecmds.c:2556
 #, c-format
 msgid "type \"%s\" already exists"
 msgstr "ya existe un tipo «%s»"
 
-#: catalog/heap.c:1165
+#: catalog/heap.c:1178
 #, c-format
 msgid "A relation has an associated type of the same name, so you must use a name that doesn't conflict with any existing type."
 msgstr "Una relación tiene un tipo asociado del mismo nombre, de modo que debe usar un nombre que no entre en conflicto con un tipo existente."
 
-#: catalog/heap.c:1205
-#, fuzzy, c-format
-#| msgid "pg_enum OID value not set when in binary upgrade mode"
+#: catalog/heap.c:1218
+#, c-format
 msgid "toast relfilenumber value not set when in binary upgrade mode"
-msgstr "el valor de OID de pg_enum no se definió en modo de actualización binaria"
+msgstr "el valor de relfilenumber de toast no se definió en modo de actualización binaria"
 
-#: catalog/heap.c:1216
+#: catalog/heap.c:1229
 #, c-format
 msgid "pg_class heap OID value not set when in binary upgrade mode"
 msgstr "el valor de OID de heap de pg_class no se definió en modo de actualización binaria"
 
-#: catalog/heap.c:1226
-#, fuzzy, c-format
-#| msgid "pg_enum OID value not set when in binary upgrade mode"
+#: catalog/heap.c:1239
+#, c-format
 msgid "relfilenumber value not set when in binary upgrade mode"
-msgstr "el valor de OID de pg_enum no se definió en modo de actualización binaria"
+msgstr "el valor de relfilenumber no se definió en modo de actualización binaria"
 
-#: catalog/heap.c:2119
+#: catalog/heap.c:2130
 #, c-format
 msgid "cannot add NO INHERIT constraint to partitioned table \"%s\""
 msgstr "no se puede agregar una restricción NO INHERIT a la tabla particionada «%s»"
 
-#: catalog/heap.c:2393
+#: catalog/heap.c:2402
 #, c-format
 msgid "check constraint \"%s\" already exists"
 msgstr "la restricción «check» «%s» ya existe"
 
-#: catalog/heap.c:2563 catalog/index.c:900 catalog/pg_constraint.c:682
-#: commands/tablecmds.c:8900
+#: catalog/heap.c:2574 catalog/index.c:913 catalog/pg_constraint.c:724
+#: commands/tablecmds.c:9356
 #, c-format
 msgid "constraint \"%s\" for relation \"%s\" already exists"
 msgstr "la restricción «%s» para la relación «%s» ya existe"
 
-#: catalog/heap.c:2570
+#: catalog/heap.c:2581
 #, c-format
 msgid "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\""
 msgstr "la restricción «%s» está en conflicto con la restricción no heredada de la relación «%s»"
 
-#: catalog/heap.c:2581
+#: catalog/heap.c:2592
 #, c-format
 msgid "constraint \"%s\" conflicts with inherited constraint on relation \"%s\""
 msgstr "la restricción «%s» está en conflicto con la restricción heredada de la relación «%s»"
 
-#: catalog/heap.c:2591
+#: catalog/heap.c:2602
 #, c-format
 msgid "constraint \"%s\" conflicts with NOT VALID constraint on relation \"%s\""
 msgstr "la restricción «%s» está en conflicto con la restricción NOT VALID de la relación «%s»"
 
-#: catalog/heap.c:2596
+#: catalog/heap.c:2607
 #, c-format
 msgid "merging constraint \"%s\" with inherited definition"
 msgstr "mezclando la restricción «%s» con la definición heredada"
 
-#: catalog/heap.c:2622 catalog/pg_constraint.c:811 commands/tablecmds.c:2672
-#: commands/tablecmds.c:3199 commands/tablecmds.c:6858
-#: commands/tablecmds.c:15208 commands/tablecmds.c:15349
-#, fuzzy, c-format
-#| msgid "too many command-line arguments"
+#: catalog/heap.c:2633 catalog/pg_constraint.c:853 commands/tablecmds.c:3074
+#: commands/tablecmds.c:3377 commands/tablecmds.c:7089
+#: commands/tablecmds.c:15907 commands/tablecmds.c:16038
+#, c-format
 msgid "too many inheritance parents"
-msgstr "demasiados argumentos de línea de órdenes"
+msgstr "demasiados padres de herencia"
 
-#: catalog/heap.c:2706
+#: catalog/heap.c:2717
 #, c-format
 msgid "cannot use generated column \"%s\" in column generation expression"
 msgstr "no se puede usar la columna generada «%s» en una expresión de generación de columna"
 
-#: catalog/heap.c:2708
+#: catalog/heap.c:2719
 #, c-format
 msgid "A generated column cannot reference another generated column."
 msgstr "Una columna generada no puede hacer referencia a otra columna generada."
 
-#: catalog/heap.c:2714
+#: catalog/heap.c:2725
 #, c-format
 msgid "cannot use whole-row variable in column generation expression"
 msgstr "no se puede usar una variable de fila completa (whole-row) en una expresión de generación de columna"
 
-#: catalog/heap.c:2715
+#: catalog/heap.c:2726
 #, c-format
 msgid "This would cause the generated column to depend on its own value."
 msgstr "Esto causaría que la columna generada dependa de su propio valor."
 
-#: catalog/heap.c:2768
+#: catalog/heap.c:2781
 #, c-format
 msgid "generation expression is not immutable"
 msgstr "la expresión de generación no es inmutable"
 
-#: catalog/heap.c:2796 rewrite/rewriteHandler.c:1295
+#: catalog/heap.c:2809 rewrite/rewriteHandler.c:1276
 #, c-format
 msgid "column \"%s\" is of type %s but default expression is of type %s"
 msgstr "la columna «%s» es de tipo %s pero la expresión default es de tipo %s"
 
-#: catalog/heap.c:2801 commands/prepare.c:334 parser/analyze.c:2704
-#: parser/parse_target.c:593 parser/parse_target.c:874
-#: parser/parse_target.c:884 rewrite/rewriteHandler.c:1300
+#: catalog/heap.c:2814 commands/prepare.c:331 parser/analyze.c:2758
+#: parser/parse_target.c:592 parser/parse_target.c:882
+#: parser/parse_target.c:892 rewrite/rewriteHandler.c:1281
 #, c-format
 msgid "You will need to rewrite or cast the expression."
 msgstr "Necesitará reescribir la expresión o aplicarle una conversión de tipo."
 
-#: catalog/heap.c:2848
+#: catalog/heap.c:2861
 #, c-format
 msgid "only table \"%s\" can be referenced in check constraint"
 msgstr "sólo la tabla «%s» puede ser referenciada en una restricción «check»"
 
-#: catalog/heap.c:3154
+#: catalog/heap.c:3167
 #, c-format
 msgid "unsupported ON COMMIT and foreign key combination"
 msgstr "combinación de ON COMMIT y llaves foráneas no soportada"
 
-#: catalog/heap.c:3155
+#: catalog/heap.c:3168
 #, c-format
 msgid "Table \"%s\" references \"%s\", but they do not have the same ON COMMIT setting."
 msgstr "La tabla «%s» se refiere a «%s», pero no tienen la misma expresión para ON COMMIT."
 
-#: catalog/heap.c:3160
+#: catalog/heap.c:3173
 #, c-format
 msgid "cannot truncate a table referenced in a foreign key constraint"
 msgstr "no se puede truncar una tabla referida en una llave foránea"
 
-#: catalog/heap.c:3161
+#: catalog/heap.c:3174
 #, c-format
 msgid "Table \"%s\" references \"%s\"."
 msgstr "La tabla «%s» hace referencia a «%s»."
 
-#: catalog/heap.c:3163
+#: catalog/heap.c:3176
 #, c-format
 msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE."
 msgstr "Trunque la tabla «%s» al mismo tiempo, o utilice TRUNCATE ... CASCADE."
 
-#: catalog/index.c:224 parser/parse_utilcmd.c:2170
+#: catalog/index.c:219 parser/parse_utilcmd.c:2176
 #, c-format
 msgid "multiple primary keys for table \"%s\" are not allowed"
 msgstr "no se permiten múltiples llaves primarias para la tabla «%s»"
 
-#: catalog/index.c:238
-#, fuzzy, c-format
-#| msgid "primary keys cannot be expressions"
+#: catalog/index.c:233
+#, c-format
 msgid "primary keys cannot use NULLS NOT DISTINCT indexes"
-msgstr "las llaves primarias no pueden ser expresiones"
+msgstr "las llaves primarias no pueden usar índices NULLS NOT DISTINCT"
 
-#: catalog/index.c:255
+#: catalog/index.c:250
 #, c-format
 msgid "primary keys cannot be expressions"
 msgstr "las llaves primarias no pueden ser expresiones"
 
-#: catalog/index.c:272
+#: catalog/index.c:267
 #, c-format
 msgid "primary key column \"%s\" is not marked NOT NULL"
 msgstr "columna de llave primaria «%s» no está marcada NOT NULL"
 
-#: catalog/index.c:785 catalog/index.c:1941
+#: catalog/index.c:798 catalog/index.c:1915
 #, c-format
 msgid "user-defined indexes on system catalog tables are not supported"
 msgstr "los usuarios no pueden crear índices en tablas del sistema"
 
-#: catalog/index.c:825
+#: catalog/index.c:838
 #, c-format
 msgid "nondeterministic collations are not supported for operator class \"%s\""
 msgstr "los ordenamientos no determinísticos no están soportados para la clase de operadores «%s»"
 
-#: catalog/index.c:840
+#: catalog/index.c:853
 #, c-format
 msgid "concurrent index creation on system catalog tables is not supported"
 msgstr "no se pueden crear índices de forma concurrente en tablas del sistema"
 
-#: catalog/index.c:849 catalog/index.c:1317
+#: catalog/index.c:862 catalog/index.c:1331
 #, c-format
 msgid "concurrent index creation for exclusion constraints is not supported"
 msgstr "no se pueden crear índices para restricciones de exclusión de forma concurrente"
 
-#: catalog/index.c:858
+#: catalog/index.c:871
 #, c-format
 msgid "shared indexes cannot be created after initdb"
 msgstr "no se pueden crear índices compartidos después de initdb"
 
-#: catalog/index.c:878 commands/createas.c:423 commands/sequence.c:158
+#: catalog/index.c:891 commands/createas.c:416 commands/sequence.c:159
 #: parser/parse_utilcmd.c:209
 #, c-format
 msgid "relation \"%s\" already exists, skipping"
 msgstr "la relación «%s» ya existe, omitiendo"
 
-#: catalog/index.c:928
+#: catalog/index.c:941
 #, c-format
 msgid "pg_class index OID value not set when in binary upgrade mode"
 msgstr "el valor de OID de índice de pg_class no se definió en modo de actualización binaria"
 
-#: catalog/index.c:938 utils/cache/relcache.c:3730
-#, fuzzy, c-format
-#| msgid "pg_enum OID value not set when in binary upgrade mode"
+#: catalog/index.c:951 utils/cache/relcache.c:3791
+#, c-format
 msgid "index relfilenumber value not set when in binary upgrade mode"
-msgstr "el valor de OID de pg_enum no se definió en modo de actualización binaria"
+msgstr "el valor relfilenumber de índice no se definió en modo de actualización binaria"
 
-#: catalog/index.c:2240
+#: catalog/index.c:2214
 #, c-format
 msgid "DROP INDEX CONCURRENTLY must be first action in transaction"
 msgstr "DROP INDEX CONCURRENTLY debe ser la primera acción en una transacción"
 
-#: catalog/index.c:3647
+#: catalog/index.c:3668
 #, c-format
 msgid "cannot reindex temporary tables of other sessions"
 msgstr "no se puede hacer reindex de tablas temporales de otras sesiones"
 
-#: catalog/index.c:3658 commands/indexcmds.c:3623
+#: catalog/index.c:3679 commands/indexcmds.c:3626
 #, c-format
 msgid "cannot reindex invalid index on TOAST table"
 msgstr "no es posible reindexar un índice no válido en tabla TOAST"
 
-#: catalog/index.c:3674 commands/indexcmds.c:3503 commands/indexcmds.c:3647
-#: commands/tablecmds.c:3402
+#: catalog/index.c:3695 commands/indexcmds.c:3504 commands/indexcmds.c:3650
+#: commands/tablecmds.c:3581
 #, c-format
 msgid "cannot move system relation \"%s\""
 msgstr "no se puede mover la relación de sistema «%s»"
 
-#: catalog/index.c:3818
+#: catalog/index.c:3832
 #, c-format
 msgid "index \"%s\" was reindexed"
 msgstr "el índice «%s» fue reindexado"
 
-#: catalog/index.c:3955
+#: catalog/index.c:3998
 #, c-format
 msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping"
 msgstr "no se puede reindexar el índice no válido «%s.%s» en tabla TOAST, omitiendo"
 
-#: catalog/namespace.c:260 catalog/namespace.c:464 catalog/namespace.c:556
-#: commands/trigger.c:5687
+#: catalog/namespace.c:462 catalog/namespace.c:666 catalog/namespace.c:758
+#: commands/trigger.c:5729
 #, c-format
 msgid "cross-database references are not implemented: \"%s.%s.%s\""
 msgstr "no están implementadas las referencias entre bases de datos: «%s.%s.%s»"
 
-#: catalog/namespace.c:317
+#: catalog/namespace.c:519
 #, c-format
 msgid "temporary tables cannot specify a schema name"
 msgstr "las tablas temporales no pueden especificar un nombre de esquema"
 
-#: catalog/namespace.c:398
+#: catalog/namespace.c:600
 #, c-format
 msgid "could not obtain lock on relation \"%s.%s\""
-msgstr "no se pudo bloquear un candado en la relación «%s.%s»"
+msgstr "no se pudo bloquear un “lock” en la relación «%s.%s»"
 
-#: catalog/namespace.c:403 commands/lockcmds.c:145 commands/lockcmds.c:225
+#: catalog/namespace.c:605 commands/lockcmds.c:143 commands/lockcmds.c:223
 #, c-format
 msgid "could not obtain lock on relation \"%s\""
-msgstr "no se pudo bloquear un candado en la relación «%s»"
+msgstr "no se pudo bloquear un “lock” en la relación «%s»"
 
-#: catalog/namespace.c:431 parser/parse_relation.c:1429
+#: catalog/namespace.c:633 parser/parse_relation.c:1430
 #, c-format
 msgid "relation \"%s.%s\" does not exist"
 msgstr "no existe la relación «%s.%s»"
 
-#: catalog/namespace.c:436 parser/parse_relation.c:1442
-#: parser/parse_relation.c:1450 utils/adt/regproc.c:913
+#: catalog/namespace.c:638 parser/parse_relation.c:1443
+#: parser/parse_relation.c:1451 utils/adt/regproc.c:913
 #, c-format
 msgid "relation \"%s\" does not exist"
 msgstr "no existe la relación «%s»"
 
-#: catalog/namespace.c:502 catalog/namespace.c:3073 commands/extension.c:1584
-#: commands/extension.c:1590
+#: catalog/namespace.c:704 catalog/namespace.c:3522 commands/extension.c:1607
+#: commands/extension.c:1613
 #, c-format
 msgid "no schema has been selected to create in"
 msgstr "no se ha seleccionado ningún esquema dentro del cual crear"
 
-#: catalog/namespace.c:654 catalog/namespace.c:667
+#: catalog/namespace.c:856 catalog/namespace.c:869
 #, c-format
 msgid "cannot create relations in temporary schemas of other sessions"
 msgstr "no se pueden crear relaciones en esquemas temporales de otras sesiones"
 
-#: catalog/namespace.c:658
+#: catalog/namespace.c:860
 #, c-format
 msgid "cannot create temporary relation in non-temporary schema"
 msgstr "no se pueden crear tablas temporales en esquemas no temporales"
 
-#: catalog/namespace.c:673
+#: catalog/namespace.c:875
 #, c-format
 msgid "only temporary relations may be created in temporary schemas"
 msgstr "sólo relaciones temporales pueden ser creadas en los esquemas temporales"
 
-#: catalog/namespace.c:2265
+#: catalog/namespace.c:2619
 #, c-format
 msgid "statistics object \"%s\" does not exist"
 msgstr "no existe el objeto de estadísticas «%s»"
 
-#: catalog/namespace.c:2388
+#: catalog/namespace.c:2761
 #, c-format
 msgid "text search parser \"%s\" does not exist"
 msgstr "no existe el analizador de búsqueda en texto «%s»"
 
-#: catalog/namespace.c:2514 utils/adt/regproc.c:1439
+#: catalog/namespace.c:2906 utils/adt/regproc.c:1459
 #, c-format
 msgid "text search dictionary \"%s\" does not exist"
 msgstr "no existe el diccionario de búsqueda en texto «%s»"
 
-#: catalog/namespace.c:2641
+#: catalog/namespace.c:3052
 #, c-format
 msgid "text search template \"%s\" does not exist"
 msgstr "no existe la plantilla de búsqueda en texto «%s»"
 
-#: catalog/namespace.c:2767 commands/tsearchcmds.c:1162
-#: utils/adt/regproc.c:1329 utils/cache/ts_cache.c:635
+#: catalog/namespace.c:3197 commands/tsearchcmds.c:1168
+#: utils/adt/regproc.c:1349 utils/cache/ts_cache.c:635
 #, c-format
 msgid "text search configuration \"%s\" does not exist"
 msgstr "no existe la configuración de búsqueda en texto «%s»"
 
-#: catalog/namespace.c:2880 parser/parse_expr.c:832 parser/parse_target.c:1246
+#: catalog/namespace.c:3329 parser/parse_expr.c:868 parser/parse_target.c:1259
 #, c-format
 msgid "cross-database references are not implemented: %s"
 msgstr "no están implementadas las referencias entre bases de datos: %s"
 
-#: catalog/namespace.c:2886 parser/parse_expr.c:839 parser/parse_target.c:1253
-#: gram.y:18570 gram.y:18610
+#: catalog/namespace.c:3335 parser/parse_expr.c:875 parser/parse_target.c:1266
+#: gram.y:19181 gram.y:19221
 #, c-format
 msgid "improper qualified name (too many dotted names): %s"
 msgstr "el nombre no es válido (demasiados puntos): %s"
 
-#: catalog/namespace.c:3016
+#: catalog/namespace.c:3465
 #, c-format
 msgid "cannot move objects into or out of temporary schemas"
 msgstr "no se puede mover objetos hacia o desde esquemas temporales"
 
-#: catalog/namespace.c:3022
+#: catalog/namespace.c:3471
 #, c-format
 msgid "cannot move objects into or out of TOAST schema"
 msgstr "no se puede mover objetos hacia o desde el esquema TOAST"
 
-#: catalog/namespace.c:3095 commands/schemacmds.c:264 commands/schemacmds.c:344
-#: commands/tablecmds.c:1280 utils/adt/regproc.c:1668
+#: catalog/namespace.c:3544 commands/schemacmds.c:264 commands/schemacmds.c:344
+#: commands/tablecmds.c:1404 utils/adt/regproc.c:1688
 #, c-format
 msgid "schema \"%s\" does not exist"
 msgstr "no existe el esquema «%s»"
 
-#: catalog/namespace.c:3126
+#: catalog/namespace.c:3575
 #, c-format
 msgid "improper relation name (too many dotted names): %s"
 msgstr "el nombre de relación no es válido (demasiados puntos): %s"
 
-#: catalog/namespace.c:3693 utils/adt/regproc.c:1056
+#: catalog/namespace.c:4016 utils/adt/regproc.c:1056
 #, c-format
 msgid "collation \"%s\" for encoding \"%s\" does not exist"
 msgstr "no existe el ordenamiento (collation) «%s» para la codificación «%s»"
 
-#: catalog/namespace.c:3748
+#: catalog/namespace.c:4071
 #, c-format
 msgid "conversion \"%s\" does not exist"
 msgstr "no existe la conversión «%s»"
 
-#: catalog/namespace.c:4012
+#: catalog/namespace.c:4412
 #, c-format
 msgid "permission denied to create temporary tables in database \"%s\""
 msgstr "se ha denegado el permiso para crear tablas temporales en la base de datos «%s»"
 
-#: catalog/namespace.c:4028
+#: catalog/namespace.c:4428
 #, c-format
 msgid "cannot create temporary tables during recovery"
 msgstr "no se pueden crear tablas temporales durante la recuperación"
 
-#: catalog/namespace.c:4034
+#: catalog/namespace.c:4434
 #, c-format
 msgid "cannot create temporary tables during a parallel operation"
 msgstr "no se pueden crear tablas temporales durante una operación paralela"
 
-#: catalog/objectaddress.c:1409 commands/policy.c:96 commands/policy.c:376
-#: commands/tablecmds.c:248 commands/tablecmds.c:290 commands/tablecmds.c:2206
-#: commands/tablecmds.c:12357
+#: catalog/objectaddress.c:1371 commands/policy.c:93 commands/policy.c:373
+#: commands/tablecmds.c:257 commands/tablecmds.c:299 commands/tablecmds.c:2327
+#: commands/tablecmds.c:12925
 #, c-format
 msgid "\"%s\" is not a table"
 msgstr "«%s» no es una tabla"
 
-#: catalog/objectaddress.c:1416 commands/tablecmds.c:260
-#: commands/tablecmds.c:17169 commands/view.c:119
+#: catalog/objectaddress.c:1378 commands/tablecmds.c:269
+#: commands/tablecmds.c:17851 commands/view.c:114
 #, c-format
 msgid "\"%s\" is not a view"
 msgstr "«%s» no es una vista"
 
-#: catalog/objectaddress.c:1423 commands/matview.c:187 commands/tablecmds.c:266
-#: commands/tablecmds.c:17174
+#: catalog/objectaddress.c:1385 commands/matview.c:199 commands/tablecmds.c:275
+#: commands/tablecmds.c:17856
 #, c-format
 msgid "\"%s\" is not a materialized view"
 msgstr "«%s» no es una vista materializada"
 
-#: catalog/objectaddress.c:1430 commands/tablecmds.c:284
-#: commands/tablecmds.c:17179
+#: catalog/objectaddress.c:1392 commands/tablecmds.c:293
+#: commands/tablecmds.c:17861
 #, c-format
 msgid "\"%s\" is not a foreign table"
 msgstr "«%s» no es una tabla foránea"
 
-#: catalog/objectaddress.c:1471
+#: catalog/objectaddress.c:1433
 #, c-format
 msgid "must specify relation and object name"
 msgstr "debe especificar nombre de relación y nombre de objeto"
 
-#: catalog/objectaddress.c:1547 catalog/objectaddress.c:1600
+#: catalog/objectaddress.c:1509 catalog/objectaddress.c:1562
 #, c-format
 msgid "column name must be qualified"
 msgstr "el nombre de columna debe ser calificado"
 
-#: catalog/objectaddress.c:1619
+#: catalog/objectaddress.c:1581
 #, c-format
 msgid "default value for column \"%s\" of relation \"%s\" does not exist"
 msgstr "no existe el valor por omisión para la columna «%s» de la relación «%s»"
 
-#: catalog/objectaddress.c:1656 commands/functioncmds.c:137
-#: commands/tablecmds.c:276 commands/typecmds.c:274 commands/typecmds.c:3689
+#: catalog/objectaddress.c:1618 commands/functioncmds.c:132
+#: commands/tablecmds.c:285 commands/typecmds.c:278 commands/typecmds.c:3843
 #: parser/parse_type.c:243 parser/parse_type.c:272 parser/parse_type.c:801
-#: utils/adt/acl.c:4449
+#: utils/adt/acl.c:4560
 #, c-format
 msgid "type \"%s\" does not exist"
 msgstr "no existe el tipo «%s»"
 
-#: catalog/objectaddress.c:1775
+#: catalog/objectaddress.c:1737
 #, c-format
 msgid "operator %d (%s, %s) of %s does not exist"
 msgstr "no existe el operador %d (%s, %s) de %s"
 
-#: catalog/objectaddress.c:1806
+#: catalog/objectaddress.c:1768
 #, c-format
 msgid "function %d (%s, %s) of %s does not exist"
 msgstr "no existe la función %d (%s, %s) de %s"
 
-#: catalog/objectaddress.c:1857 catalog/objectaddress.c:1883
+#: catalog/objectaddress.c:1819 catalog/objectaddress.c:1845
 #, c-format
 msgid "user mapping for user \"%s\" on server \"%s\" does not exist"
 msgstr "no existe el mapeo para el usuario «%s» en el servidor «%s»"
 
-#: catalog/objectaddress.c:1872 commands/foreigncmds.c:430
-#: commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:700
+#: catalog/objectaddress.c:1834 commands/foreigncmds.c:430
+#: commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:713
 #, c-format
 msgid "server \"%s\" does not exist"
 msgstr "no existe el servidor «%s»"
 
-#: catalog/objectaddress.c:1939
+#: catalog/objectaddress.c:1901
 #, c-format
 msgid "publication relation \"%s\" in publication \"%s\" does not exist"
 msgstr "no existe la relación «%s» en la publicación «%s»"
 
-#: catalog/objectaddress.c:1986
-#, fuzzy, c-format
-#| msgid "publication relation \"%s\" in publication \"%s\" does not exist"
+#: catalog/objectaddress.c:1948
+#, c-format
 msgid "publication schema \"%s\" in publication \"%s\" does not exist"
-msgstr "no existe la relación «%s» en la publicación «%s»"
+msgstr "no existe el esquema de publicación «%s» en la publicación «%s»"
 
-#: catalog/objectaddress.c:2044
+#: catalog/objectaddress.c:2006
 #, c-format
 msgid "unrecognized default ACL object type \"%c\""
 msgstr "tipo de objeto para ACL por omisión «%c» no reconocido"
 
-#: catalog/objectaddress.c:2045
+#: catalog/objectaddress.c:2007
 #, c-format
 msgid "Valid object types are \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"."
 msgstr "Tipos válidos de objeto son «%c», «%c», «%c», «%c» y «%c»."
 
-#: catalog/objectaddress.c:2096
+#: catalog/objectaddress.c:2058
 #, c-format
 msgid "default ACL for user \"%s\" in schema \"%s\" on %s does not exist"
 msgstr "no existe el ACL por omisión para el usuario «%s» en el esquema «%s» en %s"
 
-#: catalog/objectaddress.c:2101
+#: catalog/objectaddress.c:2063
 #, c-format
 msgid "default ACL for user \"%s\" on %s does not exist"
 msgstr "no existe el ACL por omisión para el usuario «%s» en %s"
 
-#: catalog/objectaddress.c:2127 catalog/objectaddress.c:2184
-#: catalog/objectaddress.c:2239
+#: catalog/objectaddress.c:2089 catalog/objectaddress.c:2146
+#: catalog/objectaddress.c:2201
 #, c-format
 msgid "name or argument lists may not contain nulls"
 msgstr "las listas de nombres o argumentos no pueden contener nulls"
 
-#: catalog/objectaddress.c:2161
+#: catalog/objectaddress.c:2123
 #, c-format
 msgid "unsupported object type \"%s\""
 msgstr "tipo de objeto «%s» no soportado"
 
-#: catalog/objectaddress.c:2180 catalog/objectaddress.c:2197
-#: catalog/objectaddress.c:2262 catalog/objectaddress.c:2346
+#: catalog/objectaddress.c:2142 catalog/objectaddress.c:2159
+#: catalog/objectaddress.c:2224 catalog/objectaddress.c:2308
 #, c-format
 msgid "name list length must be exactly %d"
 msgstr "el largo de la lista de nombres debe ser exactamente %d"
 
-#: catalog/objectaddress.c:2201
+#: catalog/objectaddress.c:2163
 #, c-format
 msgid "large object OID may not be null"
 msgstr "el OID de objeto grande no puede ser null"
 
-#: catalog/objectaddress.c:2210 catalog/objectaddress.c:2280
-#: catalog/objectaddress.c:2287
+#: catalog/objectaddress.c:2172 catalog/objectaddress.c:2242
+#: catalog/objectaddress.c:2249
 #, c-format
 msgid "name list length must be at least %d"
 msgstr "el largo de la lista de nombres debe ser al menos %d"
 
-#: catalog/objectaddress.c:2273 catalog/objectaddress.c:2294
+#: catalog/objectaddress.c:2235 catalog/objectaddress.c:2256
 #, c-format
 msgid "argument list length must be exactly %d"
 msgstr "el largo de la lista de argumentos debe ser exactamente %d"
 
-#: catalog/objectaddress.c:2508 libpq/be-fsstubs.c:329
+#: catalog/objectaddress.c:2470 libpq/be-fsstubs.c:329
 #, c-format
 msgid "must be owner of large object %u"
 msgstr "debe ser dueño del objeto grande %u"
 
-#: catalog/objectaddress.c:2523 commands/functioncmds.c:1561
+#: catalog/objectaddress.c:2485 commands/functioncmds.c:1560
 #, c-format
 msgid "must be owner of type %s or type %s"
 msgstr "debe ser dueño del tipo %s o el tipo %s"
 
-#: catalog/objectaddress.c:2550 catalog/objectaddress.c:2559
-#: catalog/objectaddress.c:2565
+#: catalog/objectaddress.c:2512 catalog/objectaddress.c:2521
+#: catalog/objectaddress.c:2527
 #, c-format
 msgid "permission denied"
 msgstr "permiso denegado"
 
-#: catalog/objectaddress.c:2551 catalog/objectaddress.c:2560
+#: catalog/objectaddress.c:2513 catalog/objectaddress.c:2522
 #, c-format
 msgid "The current user must have the %s attribute."
-msgstr ""
+msgstr "El usuario actual debe tener el atributo %s."
 
-#: catalog/objectaddress.c:2566
+#: catalog/objectaddress.c:2528
 #, c-format
 msgid "The current user must have the %s option on role \"%s\"."
-msgstr ""
+msgstr "El usuario actual debe tener la opción %s en el rol «%s»."
 
-#: catalog/objectaddress.c:2580
+#: catalog/objectaddress.c:2542
 #, c-format
 msgid "must be superuser"
 msgstr "debe ser superusuario"
 
-#: catalog/objectaddress.c:2649
+#: catalog/objectaddress.c:2611
 #, c-format
 msgid "unrecognized object type \"%s\""
 msgstr "tipo de objeto «%s» no reconocido"
 
 #. translator: second %s is, e.g., "table %s"
-#: catalog/objectaddress.c:2941
+#: catalog/objectaddress.c:2928
 #, c-format
 msgid "column %s of %s"
 msgstr "columna %s de %s"
 
-#: catalog/objectaddress.c:2956
+#: catalog/objectaddress.c:2943
 #, c-format
 msgid "function %s"
 msgstr "función %s"
 
-#: catalog/objectaddress.c:2969
+#: catalog/objectaddress.c:2956
 #, c-format
 msgid "type %s"
 msgstr "tipo %s"
 
-#: catalog/objectaddress.c:3006
+#: catalog/objectaddress.c:2993
 #, c-format
 msgid "cast from %s to %s"
 msgstr "conversión de %s a %s"
 
-#: catalog/objectaddress.c:3039
+#: catalog/objectaddress.c:3026
 #, c-format
 msgid "collation %s"
 msgstr "ordenamiento (collation) %s"
 
 #. translator: second %s is, e.g., "table %s"
-#: catalog/objectaddress.c:3070
+#: catalog/objectaddress.c:3057
 #, c-format
 msgid "constraint %s on %s"
 msgstr "restricción «%s» en %s"
 
-#: catalog/objectaddress.c:3076
+#: catalog/objectaddress.c:3063
 #, c-format
 msgid "constraint %s"
 msgstr "restricción %s"
 
-#: catalog/objectaddress.c:3108
+#: catalog/objectaddress.c:3095
 #, c-format
 msgid "conversion %s"
 msgstr "conversión %s"
 
 #. translator: %s is typically "column %s of table %s"
-#: catalog/objectaddress.c:3130
+#: catalog/objectaddress.c:3117
 #, c-format
 msgid "default value for %s"
 msgstr "valor por omisión para %s"
 
-#: catalog/objectaddress.c:3141
+#: catalog/objectaddress.c:3128
 #, c-format
 msgid "language %s"
 msgstr "lenguaje %s"
 
-#: catalog/objectaddress.c:3149
+#: catalog/objectaddress.c:3136
 #, c-format
 msgid "large object %u"
 msgstr "objeto grande %u"
 
-#: catalog/objectaddress.c:3162
+#: catalog/objectaddress.c:3149
 #, c-format
 msgid "operator %s"
 msgstr "operador %s"
 
-#: catalog/objectaddress.c:3199
+#: catalog/objectaddress.c:3186
 #, c-format
 msgid "operator class %s for access method %s"
 msgstr "clase de operadores «%s» para el método de acceso «%s»"
 
-#: catalog/objectaddress.c:3227
+#: catalog/objectaddress.c:3214
 #, c-format
 msgid "access method %s"
 msgstr "método de acceso %s"
@@ -5218,7 +5536,7 @@ msgstr "método de acceso %s"
 #. first two %s's are data type names, the third %s is the
 #. description of the operator family, and the last %s is the
 #. textual form of the operator with arguments.
-#: catalog/objectaddress.c:3276
+#: catalog/objectaddress.c:3269
 #, c-format
 msgid "operator %d (%s, %s) of %s: %s"
 msgstr "operador %d (%s, %s) de %s: %s"
@@ -5227,237 +5545,236 @@ msgstr "operador %d (%s, %s) de %s: %s"
 #. are data type names, the third %s is the description of the
 #. operator family, and the last %s is the textual form of the
 #. function with arguments.
-#: catalog/objectaddress.c:3333
+#: catalog/objectaddress.c:3334
 #, c-format
 msgid "function %d (%s, %s) of %s: %s"
 msgstr "función %d (%s, %s) de %s: %s"
 
 #. translator: second %s is, e.g., "table %s"
-#: catalog/objectaddress.c:3385
+#: catalog/objectaddress.c:3388
 #, c-format
 msgid "rule %s on %s"
 msgstr "regla %s en %s"
 
 #. translator: second %s is, e.g., "table %s"
-#: catalog/objectaddress.c:3431
+#: catalog/objectaddress.c:3434
 #, c-format
 msgid "trigger %s on %s"
-msgstr "disparador %s en %s"
+msgstr "“trigger” %s en %s"
 
-#: catalog/objectaddress.c:3451
+#: catalog/objectaddress.c:3454
 #, c-format
 msgid "schema %s"
 msgstr "esquema %s"
 
-#: catalog/objectaddress.c:3479
+#: catalog/objectaddress.c:3482
 #, c-format
 msgid "statistics object %s"
 msgstr "objeto de estadísticas %s"
 
-#: catalog/objectaddress.c:3510
+#: catalog/objectaddress.c:3513
 #, c-format
 msgid "text search parser %s"
 msgstr "analizador de búsqueda en texto %s"
 
-#: catalog/objectaddress.c:3541
+#: catalog/objectaddress.c:3544
 #, c-format
 msgid "text search dictionary %s"
 msgstr "diccionario de búsqueda en texto %s"
 
-#: catalog/objectaddress.c:3572
+#: catalog/objectaddress.c:3575
 #, c-format
 msgid "text search template %s"
 msgstr "plantilla de búsqueda en texto %s"
 
-#: catalog/objectaddress.c:3603
+#: catalog/objectaddress.c:3606
 #, c-format
 msgid "text search configuration %s"
 msgstr "configuración de búsqueda en texto %s"
 
-#: catalog/objectaddress.c:3616
+#: catalog/objectaddress.c:3619
 #, c-format
 msgid "role %s"
 msgstr "rol %s"
 
-#: catalog/objectaddress.c:3653 catalog/objectaddress.c:5505
-#, fuzzy, c-format
-#| msgid "removal of role \"%s\" failed: %s"
+#: catalog/objectaddress.c:3656 catalog/objectaddress.c:5505
+#, c-format
 msgid "membership of role %s in role %s"
-msgstr "falló la eliminación del rol «%s»: %s"
+msgstr "membresía del rol %s en el rol %s"
 
-#: catalog/objectaddress.c:3674
+#: catalog/objectaddress.c:3677
 #, c-format
 msgid "database %s"
 msgstr "base de datos %s"
 
-#: catalog/objectaddress.c:3690
+#: catalog/objectaddress.c:3693
 #, c-format
 msgid "tablespace %s"
 msgstr "tablespace %s"
 
-#: catalog/objectaddress.c:3701
+#: catalog/objectaddress.c:3704
 #, c-format
 msgid "foreign-data wrapper %s"
 msgstr "conector de datos externos %s"
 
-#: catalog/objectaddress.c:3711
+#: catalog/objectaddress.c:3714
 #, c-format
 msgid "server %s"
 msgstr "servidor %s"
 
-#: catalog/objectaddress.c:3744
+#: catalog/objectaddress.c:3747
 #, c-format
 msgid "user mapping for %s on server %s"
 msgstr "mapeo para el usuario %s en el servidor %s"
 
-#: catalog/objectaddress.c:3796
+#: catalog/objectaddress.c:3799
 #, c-format
 msgid "default privileges on new relations belonging to role %s in schema %s"
 msgstr "privilegios por omisión en nuevas relaciones pertenecientes al rol %s en el esquema %s"
 
-#: catalog/objectaddress.c:3800
+#: catalog/objectaddress.c:3803
 #, c-format
 msgid "default privileges on new relations belonging to role %s"
 msgstr "privilegios por omisión en nuevas relaciones pertenecientes al rol %s"
 
-#: catalog/objectaddress.c:3806
+#: catalog/objectaddress.c:3809
 #, c-format
 msgid "default privileges on new sequences belonging to role %s in schema %s"
 msgstr "privilegios por omisión en nuevas secuencias pertenecientes al rol %s en el esquema %s"
 
-#: catalog/objectaddress.c:3810
+#: catalog/objectaddress.c:3813
 #, c-format
 msgid "default privileges on new sequences belonging to role %s"
 msgstr "privilegios por omisión en nuevas secuencias pertenecientes al rol %s"
 
-#: catalog/objectaddress.c:3816
+#: catalog/objectaddress.c:3819
 #, c-format
 msgid "default privileges on new functions belonging to role %s in schema %s"
 msgstr "privilegios por omisión en nuevas funciones pertenecientes al rol %s en el esquema %s"
 
-#: catalog/objectaddress.c:3820
+#: catalog/objectaddress.c:3823
 #, c-format
 msgid "default privileges on new functions belonging to role %s"
 msgstr "privilegios por omisión en nuevas funciones pertenecientes al rol %s"
 
-#: catalog/objectaddress.c:3826
+#: catalog/objectaddress.c:3829
 #, c-format
 msgid "default privileges on new types belonging to role %s in schema %s"
 msgstr "privilegios por omisión en nuevos tipos pertenecientes al rol %s en el esquema %s"
 
-#: catalog/objectaddress.c:3830
+#: catalog/objectaddress.c:3833
 #, c-format
 msgid "default privileges on new types belonging to role %s"
 msgstr "privilegios por omisión en nuevos tipos pertenecientes al rol %s"
 
-#: catalog/objectaddress.c:3836
+#: catalog/objectaddress.c:3839
 #, c-format
 msgid "default privileges on new schemas belonging to role %s"
 msgstr "privilegios por omisión en nuevos esquemas pertenecientes al rol %s"
 
-#: catalog/objectaddress.c:3843
+#: catalog/objectaddress.c:3846
 #, c-format
 msgid "default privileges belonging to role %s in schema %s"
 msgstr "privilegios por omisión pertenecientes al rol %s en el esquema %s"
 
-#: catalog/objectaddress.c:3847
+#: catalog/objectaddress.c:3850
 #, c-format
 msgid "default privileges belonging to role %s"
 msgstr "privilegios por omisión pertenecientes al rol %s"
 
-#: catalog/objectaddress.c:3869
+#: catalog/objectaddress.c:3872
 #, c-format
 msgid "extension %s"
 msgstr "extensión %s"
 
-#: catalog/objectaddress.c:3886
+#: catalog/objectaddress.c:3889
 #, c-format
 msgid "event trigger %s"
-msgstr "disparador por eventos %s"
+msgstr "“trigger” por eventos %s"
 
-#: catalog/objectaddress.c:3910
+#: catalog/objectaddress.c:3913
 #, c-format
 msgid "parameter %s"
 msgstr "parámetro %s"
 
 #. translator: second %s is, e.g., "table %s"
-#: catalog/objectaddress.c:3953
+#: catalog/objectaddress.c:3956
 #, c-format
 msgid "policy %s on %s"
 msgstr "política %s en %s"
 
-#: catalog/objectaddress.c:3967
+#: catalog/objectaddress.c:3970
 #, c-format
 msgid "publication %s"
 msgstr "publicación %s"
 
-#: catalog/objectaddress.c:3980
+#: catalog/objectaddress.c:3983
 #, c-format
 msgid "publication of schema %s in publication %s"
 msgstr "publicación de esquema %s en la publicación %s"
 
 #. translator: first %s is, e.g., "table %s"
-#: catalog/objectaddress.c:4011
+#: catalog/objectaddress.c:4014
 #, c-format
 msgid "publication of %s in publication %s"
 msgstr "publicación de %s en la publicación %s"
 
-#: catalog/objectaddress.c:4024
+#: catalog/objectaddress.c:4027
 #, c-format
 msgid "subscription %s"
 msgstr "suscripción %s"
 
-#: catalog/objectaddress.c:4045
+#: catalog/objectaddress.c:4048
 #, c-format
 msgid "transform for %s language %s"
 msgstr "transformación para %s lenguaje %s"
 
-#: catalog/objectaddress.c:4116
+#: catalog/objectaddress.c:4117
 #, c-format
 msgid "table %s"
 msgstr "tabla %s"
 
-#: catalog/objectaddress.c:4121
+#: catalog/objectaddress.c:4122
 #, c-format
 msgid "index %s"
 msgstr "índice %s"
 
-#: catalog/objectaddress.c:4125
+#: catalog/objectaddress.c:4126
 #, c-format
 msgid "sequence %s"
 msgstr "secuencia %s"
 
-#: catalog/objectaddress.c:4129
+#: catalog/objectaddress.c:4130
 #, c-format
 msgid "toast table %s"
 msgstr "tabla toast %s"
 
-#: catalog/objectaddress.c:4133
+#: catalog/objectaddress.c:4134
 #, c-format
 msgid "view %s"
 msgstr "vista %s"
 
-#: catalog/objectaddress.c:4137
+#: catalog/objectaddress.c:4138
 #, c-format
 msgid "materialized view %s"
 msgstr "vista materializada %s"
 
-#: catalog/objectaddress.c:4141
+#: catalog/objectaddress.c:4142
 #, c-format
 msgid "composite type %s"
 msgstr "tipo compuesto %s"
 
-#: catalog/objectaddress.c:4145
+#: catalog/objectaddress.c:4146
 #, c-format
 msgid "foreign table %s"
 msgstr "tabla foránea %s"
 
-#: catalog/objectaddress.c:4150
+#: catalog/objectaddress.c:4151
 #, c-format
 msgid "relation %s"
 msgstr "relación %s"
 
-#: catalog/objectaddress.c:4191
+#: catalog/objectaddress.c:4192
 #, c-format
 msgid "operator family %s for access method %s"
 msgstr "familia de operadores %s para el método de acceso %s"
@@ -5499,7 +5816,7 @@ msgstr "no se puede omitir el valor inicial cuando la función de transición es
 msgid "return type of inverse transition function %s is not %s"
 msgstr "el tipo de retorno de la función inversa de transición %s no es %s"
 
-#: catalog/pg_aggregate.c:352 executor/nodeWindowAgg.c:3009
+#: catalog/pg_aggregate.c:352 executor/nodeWindowAgg.c:2991
 #, c-format
 msgid "strictness of aggregate's forward and inverse transition functions must match"
 msgstr "la opción «strict» de las funciones de transición directa e inversa deben coincidir exactamente en la función de agregación"
@@ -5514,7 +5831,7 @@ msgstr "la función final con argumentos extra no debe declararse STRICT"
 msgid "return type of combine function %s is not %s"
 msgstr "el tipo de retorno de la función «combine» %s no es %s"
 
-#: catalog/pg_aggregate.c:439 executor/nodeAgg.c:3903
+#: catalog/pg_aggregate.c:439 executor/nodeAgg.c:3902
 #, c-format
 msgid "combine function with transition type %s must not be declared STRICT"
 msgstr "la función «combine» con tipo de transición %s no debe declararse STRICT"
@@ -5529,12 +5846,12 @@ msgstr "el tipo de retorno de la función de serialización %s no es %s"
 msgid "return type of deserialization function %s is not %s"
 msgstr "el tipo de retorno de la función de deserialización %s no es %s"
 
-#: catalog/pg_aggregate.c:498 catalog/pg_proc.c:191 catalog/pg_proc.c:225
+#: catalog/pg_aggregate.c:498 catalog/pg_proc.c:189 catalog/pg_proc.c:223
 #, c-format
 msgid "cannot determine result data type"
 msgstr "no se puede determinar el tipo de dato del resultado"
 
-#: catalog/pg_aggregate.c:513 catalog/pg_proc.c:204 catalog/pg_proc.c:233
+#: catalog/pg_aggregate.c:513 catalog/pg_proc.c:202 catalog/pg_proc.c:231
 #, c-format
 msgid "unsafe use of pseudo-type \"internal\""
 msgstr "uso inseguro de pseudotipo «internal»"
@@ -5549,7 +5866,7 @@ msgstr "la implementación de la función de agregación en modo «moving» devu
 msgid "sort operator can only be specified for single-argument aggregates"
 msgstr "el operador de ordenamiento sólo puede ser especificado para funciones de agregación de un solo argumento"
 
-#: catalog/pg_aggregate.c:706 catalog/pg_proc.c:386
+#: catalog/pg_aggregate.c:706 catalog/pg_proc.c:384
 #, c-format
 msgid "cannot change routine kind"
 msgstr "no se puede cambiar el tipo de rutina"
@@ -5574,13 +5891,13 @@ msgstr "«%s» es una agregación de conjunto hipotético."
 msgid "cannot change number of direct arguments of an aggregate function"
 msgstr "no se puede cambiar cantidad de argumentos directos de una función de agregación"
 
-#: catalog/pg_aggregate.c:858 commands/functioncmds.c:691
-#: commands/typecmds.c:1975 commands/typecmds.c:2021 commands/typecmds.c:2073
-#: commands/typecmds.c:2110 commands/typecmds.c:2144 commands/typecmds.c:2178
-#: commands/typecmds.c:2212 commands/typecmds.c:2241 commands/typecmds.c:2328
-#: commands/typecmds.c:2370 parser/parse_func.c:417 parser/parse_func.c:448
+#: catalog/pg_aggregate.c:858 commands/functioncmds.c:686
+#: commands/typecmds.c:1985 commands/typecmds.c:2031 commands/typecmds.c:2083
+#: commands/typecmds.c:2120 commands/typecmds.c:2154 commands/typecmds.c:2188
+#: commands/typecmds.c:2222 commands/typecmds.c:2251 commands/typecmds.c:2338
+#: commands/typecmds.c:2380 parser/parse_func.c:417 parser/parse_func.c:448
 #: parser/parse_func.c:475 parser/parse_func.c:489 parser/parse_func.c:611
-#: parser/parse_func.c:631 parser/parse_func.c:2171 parser/parse_func.c:2444
+#: parser/parse_func.c:631 parser/parse_func.c:2172 parser/parse_func.c:2445
 #, c-format
 msgid "function %s does not exist"
 msgstr "no existe la función %s"
@@ -5655,133 +5972,133 @@ msgstr "Esta operación no está soportada en tablas particionadas."
 msgid "This operation is not supported for partitioned indexes."
 msgstr "Esta operación no está soportada en índices particionados."
 
-#: catalog/pg_collation.c:102 catalog/pg_collation.c:160
+#: catalog/pg_collation.c:101 catalog/pg_collation.c:159
 #, c-format
 msgid "collation \"%s\" already exists, skipping"
 msgstr "el ordenamiento «%s» ya existe, omitiendo"
 
-#: catalog/pg_collation.c:104
+#: catalog/pg_collation.c:103
 #, c-format
 msgid "collation \"%s\" for encoding \"%s\" already exists, skipping"
 msgstr "el ordenamiento «%s» para la codificación «%s» ya existe, omitiendo"
 
-#: catalog/pg_collation.c:112 catalog/pg_collation.c:167
+#: catalog/pg_collation.c:111 catalog/pg_collation.c:166
 #, c-format
 msgid "collation \"%s\" already exists"
 msgstr "el ordenamiento «%s» ya existe"
 
-#: catalog/pg_collation.c:114
+#: catalog/pg_collation.c:113
 #, c-format
 msgid "collation \"%s\" for encoding \"%s\" already exists"
 msgstr "la codificación «%2$s» ya tiene un ordenamiento llamado «%1$s»"
 
-#: catalog/pg_constraint.c:690
+#: catalog/pg_constraint.c:732
 #, c-format
 msgid "constraint \"%s\" for domain %s already exists"
 msgstr "el dominio %2$s ya contiene una restricción llamada «%1$s»"
 
-#: catalog/pg_constraint.c:890 catalog/pg_constraint.c:983
+#: catalog/pg_constraint.c:932 catalog/pg_constraint.c:1025
 #, c-format
 msgid "constraint \"%s\" for table \"%s\" does not exist"
 msgstr "no existe la restricción «%s» para la tabla «%s»"
 
-#: catalog/pg_constraint.c:1083
+#: catalog/pg_constraint.c:1125
 #, c-format
 msgid "constraint \"%s\" for domain %s does not exist"
 msgstr "no existe la restricción «%s» para el dominio %s"
 
-#: catalog/pg_conversion.c:67
+#: catalog/pg_conversion.c:64
 #, c-format
 msgid "conversion \"%s\" already exists"
 msgstr "ya existe la conversión «%s»"
 
-#: catalog/pg_conversion.c:80
+#: catalog/pg_conversion.c:77
 #, c-format
 msgid "default conversion for %s to %s already exists"
 msgstr "ya existe una conversión por omisión desde %s a %s"
 
-#: catalog/pg_depend.c:222 commands/extension.c:3344
+#: catalog/pg_depend.c:224 commands/extension.c:3397
 #, c-format
 msgid "%s is already a member of extension \"%s\""
 msgstr "«%s» ya es un miembro de la extensión «%s»"
 
-#: catalog/pg_depend.c:229 catalog/pg_depend.c:280 commands/extension.c:3384
+#: catalog/pg_depend.c:231 catalog/pg_depend.c:282 commands/extension.c:3437
 #, c-format
 msgid "%s is not a member of extension \"%s\""
 msgstr "%s no es un miembro de la extensión «%s»"
 
-#: catalog/pg_depend.c:232
+#: catalog/pg_depend.c:234
 #, c-format
 msgid "An extension is not allowed to replace an object that it does not own."
 msgstr "A una extensión no se le permite reemplazar un objeto que no posee."
 
-#: catalog/pg_depend.c:283
+#: catalog/pg_depend.c:285
 #, c-format
 msgid "An extension may only use CREATE ... IF NOT EXISTS to skip object creation if the conflicting object is one that it already owns."
 msgstr "Una extensión sólo puede usar CREATE ... IF NOT EXISTS para omitir la creación de un objeto si el objeto en conflicto es uno de cual ya es dueña."
 
-#: catalog/pg_depend.c:646
+#: catalog/pg_depend.c:648
 #, c-format
 msgid "cannot remove dependency on %s because it is a system object"
 msgstr "no se puede eliminar dependencia a %s porque es un objeto requerido por el sistema"
 
-#: catalog/pg_enum.c:137 catalog/pg_enum.c:259 catalog/pg_enum.c:554
+#: catalog/pg_enum.c:175 catalog/pg_enum.c:314 catalog/pg_enum.c:624
 #, c-format
 msgid "invalid enum label \"%s\""
 msgstr "la etiqueta enum «%s» no es válida"
 
-#: catalog/pg_enum.c:138 catalog/pg_enum.c:260 catalog/pg_enum.c:555
+#: catalog/pg_enum.c:176 catalog/pg_enum.c:315 catalog/pg_enum.c:625
 #, c-format
 msgid "Labels must be %d bytes or less."
 msgstr "Las etiquetas deben ser de %d bytes o menos."
 
-#: catalog/pg_enum.c:288
+#: catalog/pg_enum.c:343
 #, c-format
 msgid "enum label \"%s\" already exists, skipping"
 msgstr "la etiqueta de enum «%s» ya existe, omitiendo"
 
-#: catalog/pg_enum.c:295 catalog/pg_enum.c:598
+#: catalog/pg_enum.c:350 catalog/pg_enum.c:668
 #, c-format
 msgid "enum label \"%s\" already exists"
 msgstr "la etiqueta de enum «%s» ya existe"
 
-#: catalog/pg_enum.c:350 catalog/pg_enum.c:593
+#: catalog/pg_enum.c:405 catalog/pg_enum.c:663
 #, c-format
 msgid "\"%s\" is not an existing enum label"
 msgstr "«%s» no es una etiqueta de enum existente"
 
-#: catalog/pg_enum.c:408
+#: catalog/pg_enum.c:463
 #, c-format
 msgid "pg_enum OID value not set when in binary upgrade mode"
 msgstr "el valor de OID de pg_enum no se definió en modo de actualización binaria"
 
-#: catalog/pg_enum.c:418
+#: catalog/pg_enum.c:473
 #, c-format
 msgid "ALTER TYPE ADD BEFORE/AFTER is incompatible with binary upgrade"
 msgstr "ALTER TYPE ADD BEFORE/AFTER es incompatible con la actualización binaria"
 
-#: catalog/pg_inherits.c:593
+#: catalog/pg_inherits.c:592
 #, c-format
 msgid "cannot detach partition \"%s\""
 msgstr "no se puede desprender la partición «%s»"
 
-#: catalog/pg_inherits.c:595
+#: catalog/pg_inherits.c:594
 #, c-format
 msgid "The partition is being detached concurrently or has an unfinished detach."
 msgstr "La partición está siendo desprendida de forma concurrente o tiene un desprendimiento sin terminar."
 
-#: catalog/pg_inherits.c:596 commands/tablecmds.c:4583
-#: commands/tablecmds.c:15464
+#: catalog/pg_inherits.c:595 commands/tablecmds.c:4800
+#: commands/tablecmds.c:16153
 #, c-format
 msgid "Use ALTER TABLE ... DETACH PARTITION ... FINALIZE to complete the pending detach operation."
 msgstr "Utilice ALTER TABLE ... DETACH PARTITION ... FINALIZE para completar la operación de desprendimiento pendiente."
 
-#: catalog/pg_inherits.c:600
+#: catalog/pg_inherits.c:599
 #, c-format
 msgid "cannot complete detaching partition \"%s\""
 msgstr "no se puede completar el desprendimiento de la partición «%s»"
 
-#: catalog/pg_inherits.c:602
+#: catalog/pg_inherits.c:601
 #, c-format
 msgid "There's no pending concurrent detach."
 msgstr "No hay desprendimientos concurrentes pendientes."
@@ -5791,116 +6108,129 @@ msgstr "No hay desprendimientos concurrentes pendientes."
 msgid "schema \"%s\" already exists"
 msgstr "ya existe el esquema «%s»"
 
-#: catalog/pg_operator.c:219 catalog/pg_operator.c:361
+#: catalog/pg_operator.c:213 catalog/pg_operator.c:355
 #, c-format
 msgid "\"%s\" is not a valid operator name"
 msgstr "«%s» no es un nombre válido de operador"
 
-#: catalog/pg_operator.c:370
+#: catalog/pg_operator.c:379
+#, c-format
+msgid "operator %s already exists"
+msgstr "ya existe un operador %s"
+
+#: catalog/pg_operator.c:445 commands/operatorcmds.c:600
+#, c-format
+msgid "operator cannot be its own negator"
+msgstr "un operador no puede ser su propio negador"
+
+#: catalog/pg_operator.c:572
 #, c-format
 msgid "only binary operators can have commutators"
 msgstr "sólo los operadores binarios pueden tener conmutadores"
 
-#: catalog/pg_operator.c:374 commands/operatorcmds.c:509
+#: catalog/pg_operator.c:576
 #, c-format
 msgid "only binary operators can have join selectivity"
 msgstr "sólo los operadores binarios pueden tener selectividad de join"
 
-#: catalog/pg_operator.c:378
+#: catalog/pg_operator.c:580
 #, c-format
 msgid "only binary operators can merge join"
 msgstr "sólo los operadores binarios pueden ser usados en merge join"
 
-#: catalog/pg_operator.c:382
+#: catalog/pg_operator.c:584
 #, c-format
 msgid "only binary operators can hash"
 msgstr "sólo los operadores binarios pueden ser usados en hash"
 
-#: catalog/pg_operator.c:393
+#: catalog/pg_operator.c:593
 #, c-format
 msgid "only boolean operators can have negators"
 msgstr "sólo los operadores booleanos pueden tener negadores"
 
-#: catalog/pg_operator.c:397 commands/operatorcmds.c:517
+#: catalog/pg_operator.c:597
 #, c-format
 msgid "only boolean operators can have restriction selectivity"
 msgstr "sólo los operadores booleanos pueden tener selectividad de restricción"
 
-#: catalog/pg_operator.c:401 commands/operatorcmds.c:521
+#: catalog/pg_operator.c:601
 #, c-format
 msgid "only boolean operators can have join selectivity"
 msgstr "sólo los operadores booleanos pueden tener selectividad de join"
 
-#: catalog/pg_operator.c:405
+#: catalog/pg_operator.c:605
 #, c-format
 msgid "only boolean operators can merge join"
 msgstr "sólo los operadores booleanos pueden ser usados en merge join"
 
-#: catalog/pg_operator.c:409
+#: catalog/pg_operator.c:609
 #, c-format
 msgid "only boolean operators can hash"
 msgstr "sólo los operadores booleanos pueden ser usados en hash"
 
-#: catalog/pg_operator.c:421
+#: catalog/pg_operator.c:739
 #, c-format
-msgid "operator %s already exists"
-msgstr "ya existe un operador %s"
+msgid "commutator operator %s is already the commutator of operator %s"
+msgstr "el operator de conmutación %s ya es el conmutador del operador %s"
 
-#: catalog/pg_operator.c:621
+#: catalog/pg_operator.c:744
 #, c-format
-msgid "operator cannot be its own negator or sort operator"
-msgstr "un operador no puede ser su propio negador u operador de ordenamiento"
+msgid "commutator operator %s is already the commutator of operator %u"
+msgstr "el operator de conmutación %s ya es el conmutador del operador %u"
 
-#: catalog/pg_parameter_acl.c:53
-#, fuzzy, c-format
-#| msgid "parameter ACL with OID %u does not exist"
-msgid "parameter ACL \"%s\" does not exist"
-msgstr "no existe el ACL de parámetro con OID %u"
+#: catalog/pg_operator.c:807
+#, c-format
+msgid "negator operator %s is already the negator of operator %s"
+msgstr "el operator de negación %s ya es el negador del operador %s"
 
-#: catalog/pg_parameter_acl.c:88
-#, fuzzy, c-format
-#| msgid "invalid type name \"%s\""
-msgid "invalid parameter name \"%s\""
-msgstr "el nombre de tipo «%s» no es válido"
+#: catalog/pg_operator.c:812
+#, c-format
+msgid "negator operator %s is already the negator of operator %u"
+msgstr "el operator de negación %s ya es el negador del operador %u"
+
+#: catalog/pg_parameter_acl.c:50
+#, c-format
+msgid "parameter ACL \"%s\" does not exist"
+msgstr "no existe el ACL de parámetro «%s»"
 
-#: catalog/pg_proc.c:132 parser/parse_func.c:2233
+#: catalog/pg_proc.c:130 parser/parse_func.c:2234
 #, c-format
 msgid "functions cannot have more than %d argument"
 msgid_plural "functions cannot have more than %d arguments"
 msgstr[0] "las funciones no pueden tener más de %d argumento"
 msgstr[1] "las funciones no pueden tener más de %d argumentos"
 
-#: catalog/pg_proc.c:376
+#: catalog/pg_proc.c:374
 #, c-format
 msgid "function \"%s\" already exists with same argument types"
 msgstr "ya existe una función «%s» con los mismos argumentos"
 
-#: catalog/pg_proc.c:388
+#: catalog/pg_proc.c:386
 #, c-format
 msgid "\"%s\" is an aggregate function."
 msgstr "«%s» es una función de agregación."
 
-#: catalog/pg_proc.c:390
+#: catalog/pg_proc.c:388
 #, c-format
 msgid "\"%s\" is a function."
 msgstr "«%s» es una función de agregación."
 
-#: catalog/pg_proc.c:392
+#: catalog/pg_proc.c:390
 #, c-format
 msgid "\"%s\" is a procedure."
 msgstr "«%s» es un índice parcial."
 
-#: catalog/pg_proc.c:394
+#: catalog/pg_proc.c:392
 #, c-format
 msgid "\"%s\" is a window function."
 msgstr "«%s» es una función de ventana deslizante."
 
-#: catalog/pg_proc.c:414
+#: catalog/pg_proc.c:412
 #, c-format
 msgid "cannot change whether a procedure has output parameters"
 msgstr "no se puede cambiar que un procedimiento tenga parámetros de salida"
 
-#: catalog/pg_proc.c:415 catalog/pg_proc.c:445
+#: catalog/pg_proc.c:413 catalog/pg_proc.c:443
 #, c-format
 msgid "cannot change return type of existing function"
 msgstr "no se puede cambiar el tipo de retorno de una función existente"
@@ -5909,120 +6239,114 @@ msgstr "no se puede cambiar el tipo de retorno de una función existente"
 #. AGGREGATE
 #.
 #. translator: first %s is DROP FUNCTION or DROP PROCEDURE
-#: catalog/pg_proc.c:421 catalog/pg_proc.c:448 catalog/pg_proc.c:493
-#: catalog/pg_proc.c:519 catalog/pg_proc.c:543
+#: catalog/pg_proc.c:419 catalog/pg_proc.c:446 catalog/pg_proc.c:491
+#: catalog/pg_proc.c:517 catalog/pg_proc.c:541
 #, c-format
 msgid "Use %s %s first."
 msgstr "Use %s %s primero."
 
-#: catalog/pg_proc.c:446
+#: catalog/pg_proc.c:444
 #, c-format
 msgid "Row type defined by OUT parameters is different."
 msgstr "Tipo de registro definido por parámetros OUT es diferente."
 
-#: catalog/pg_proc.c:490
+#: catalog/pg_proc.c:488
 #, c-format
 msgid "cannot change name of input parameter \"%s\""
 msgstr "no se puede cambiar el nombre del parámetro de entrada «%s»"
 
-#: catalog/pg_proc.c:517
+#: catalog/pg_proc.c:515
 #, c-format
 msgid "cannot remove parameter defaults from existing function"
 msgstr "no se puede eliminar el valor por omisión de funciones existentes"
 
-#: catalog/pg_proc.c:541
+#: catalog/pg_proc.c:539
 #, c-format
 msgid "cannot change data type of existing parameter default value"
 msgstr "no se puede cambiar el tipo de dato del valor por omisión de un parámetro"
 
-#: catalog/pg_proc.c:752
+#: catalog/pg_proc.c:750
 #, c-format
 msgid "there is no built-in function named \"%s\""
 msgstr "no hay ninguna función interna llamada «%s»"
 
-#: catalog/pg_proc.c:845
+#: catalog/pg_proc.c:843
 #, c-format
 msgid "SQL functions cannot return type %s"
 msgstr "las funciones SQL no pueden retornar el tipo %s"
 
-#: catalog/pg_proc.c:860
+#: catalog/pg_proc.c:858
 #, c-format
 msgid "SQL functions cannot have arguments of type %s"
 msgstr "las funciones SQL no pueden tener argumentos de tipo %s"
 
-#: catalog/pg_proc.c:987 executor/functions.c:1466
+#: catalog/pg_proc.c:986 executor/functions.c:1468
 #, c-format
 msgid "SQL function \"%s\""
 msgstr "función SQL «%s»"
 
-#: catalog/pg_publication.c:71 catalog/pg_publication.c:79
-#: catalog/pg_publication.c:87 catalog/pg_publication.c:93
+#: catalog/pg_publication.c:66 catalog/pg_publication.c:74
+#: catalog/pg_publication.c:82 catalog/pg_publication.c:88
 #, c-format
 msgid "cannot add relation \"%s\" to publication"
 msgstr "no se puede agregar la relación «%s» a la publicación"
 
-#: catalog/pg_publication.c:81
+#: catalog/pg_publication.c:76
 #, c-format
 msgid "This operation is not supported for system tables."
 msgstr "Esta operación no está soportada en tablas de sistema."
 
-#: catalog/pg_publication.c:89
+#: catalog/pg_publication.c:84
 #, c-format
 msgid "This operation is not supported for temporary tables."
 msgstr "Esta operación no está soportada en tablas temporales."
 
-#: catalog/pg_publication.c:95
+#: catalog/pg_publication.c:90
 #, c-format
 msgid "This operation is not supported for unlogged tables."
 msgstr "Esta característica no está soportada en tablas «unlogged»."
 
-#: catalog/pg_publication.c:109 catalog/pg_publication.c:117
+#: catalog/pg_publication.c:104 catalog/pg_publication.c:112
 #, c-format
 msgid "cannot add schema \"%s\" to publication"
 msgstr "no se puede agregar el esquema «%s» a la partición"
 
-#: catalog/pg_publication.c:111
-#, fuzzy, c-format
-#| msgid "This operation is not supported for system tables."
+#: catalog/pg_publication.c:106
+#, c-format
 msgid "This operation is not supported for system schemas."
-msgstr "Esta operación no está soportada en tablas de sistema."
+msgstr "Esta operación no está soportada en esquemas de sistema."
 
-#: catalog/pg_publication.c:119
-#, fuzzy, c-format
-#| msgid "Unlogged relations cannot be replicated."
+#: catalog/pg_publication.c:114
+#, c-format
 msgid "Temporary schemas cannot be replicated."
-msgstr "Las tablas «unlogged» no pueden replicarse."
+msgstr "Los esquemas temporales no pueden replicarse."
 
-#: catalog/pg_publication.c:397
+#: catalog/pg_publication.c:392
 #, c-format
 msgid "relation \"%s\" is already member of publication \"%s\""
 msgstr "la relación «%s» ya es un miembro de la publicación «%s»"
 
-#: catalog/pg_publication.c:539
-#, fuzzy, c-format
-#| msgid "cannot use system column \"%s\" in partition key"
+#: catalog/pg_publication.c:534
+#, c-format
 msgid "cannot use system column \"%s\" in publication column list"
-msgstr "no se puede usar la columna de sistema «%s» en llave de particionamiento"
+msgstr "no se puede usar la columna de sistema «%s» en lista de columnas de publicación"
 
-#: catalog/pg_publication.c:545
-#, fuzzy, c-format
-#| msgid "cannot use generated column in partition key"
+#: catalog/pg_publication.c:540
+#, c-format
 msgid "cannot use generated column \"%s\" in publication column list"
-msgstr "no se puede usar una columna generada en llave de particionamiento"
+msgstr "no se puede usar la columna generada «%s» en lista de columnas de publicación"
 
-#: catalog/pg_publication.c:551
-#, fuzzy, c-format
-#| msgid "publication of %s in publication %s"
+#: catalog/pg_publication.c:546
+#, c-format
 msgid "duplicate column \"%s\" in publication column list"
-msgstr "publicación de %s en la publicación %s"
+msgstr "columna «%s» duplicada en lista de columnas de publicación"
 
-#: catalog/pg_publication.c:641
-#, fuzzy, c-format
-#| msgid "relation \"%s\" is already member of publication \"%s\""
+#: catalog/pg_publication.c:636
+#, c-format
 msgid "schema \"%s\" is already member of publication \"%s\""
-msgstr "la relación «%s» ya es un miembro de la publicación «%s»"
+msgstr "el esquema «%s» ya es miembro de la publicación «%s»"
 
-#: catalog/pg_shdepend.c:830
+#: catalog/pg_shdepend.c:875
 #, c-format
 msgid ""
 "\n"
@@ -6037,65 +6361,70 @@ msgstr[1] ""
 "\n"
 "y objetos en otras %d bases de datos (vea el registro del servidor para obtener la lista)"
 
-#: catalog/pg_shdepend.c:1177
+#: catalog/pg_shdepend.c:1222
 #, c-format
 msgid "role %u was concurrently dropped"
 msgstr "el rol %u fue eliminado por una transacción concurrente"
 
-#: catalog/pg_shdepend.c:1189
+#: catalog/pg_shdepend.c:1234
 #, c-format
 msgid "tablespace %u was concurrently dropped"
 msgstr "el tablespace %u fue eliminado por una transacción concurrente"
 
-#: catalog/pg_shdepend.c:1203
+#: catalog/pg_shdepend.c:1248
 #, c-format
 msgid "database %u was concurrently dropped"
 msgstr "la base de datos %u fue eliminado por una transacción concurrente"
 
-#: catalog/pg_shdepend.c:1254
+#: catalog/pg_shdepend.c:1299
 #, c-format
 msgid "owner of %s"
 msgstr "dueño de %s"
 
-#: catalog/pg_shdepend.c:1256
+#: catalog/pg_shdepend.c:1301
 #, c-format
 msgid "privileges for %s"
 msgstr "privilegios para %s"
 
-#: catalog/pg_shdepend.c:1258
+#: catalog/pg_shdepend.c:1303
+#, c-format
+msgid "initial privileges for %s"
+msgstr "privilegios iniciales para %s"
+
+#: catalog/pg_shdepend.c:1305
 #, c-format
 msgid "target of %s"
 msgstr "destino de %s"
 
-#: catalog/pg_shdepend.c:1260
+#: catalog/pg_shdepend.c:1307
 #, c-format
 msgid "tablespace for %s"
 msgstr "tablespace para %s"
 
 #. translator: %s will always be "database %s"
-#: catalog/pg_shdepend.c:1268
+#: catalog/pg_shdepend.c:1315
 #, c-format
 msgid "%d object in %s"
 msgid_plural "%d objects in %s"
 msgstr[0] "%d objeto en %s"
 msgstr[1] "%d objetos en %s"
 
-#: catalog/pg_shdepend.c:1332
+#: catalog/pg_shdepend.c:1379
 #, c-format
 msgid "cannot drop objects owned by %s because they are required by the database system"
 msgstr "no se puede eliminar objetos de propiedad de %s porque son requeridos por el sistema"
 
-#: catalog/pg_shdepend.c:1498
+#: catalog/pg_shdepend.c:1560
 #, c-format
 msgid "cannot reassign ownership of objects owned by %s because they are required by the database system"
 msgstr "no se puede reasignar la propiedad de objetos de %s porque son requeridos por el sistema"
 
-#: catalog/pg_subscription.c:424
+#: catalog/pg_subscription.c:438
 #, c-format
 msgid "could not drop relation mapping for subscription \"%s\""
 msgstr "no se pudo eliminar mapeo de relación para suscripción «%s»"
 
-#: catalog/pg_subscription.c:426
+#: catalog/pg_subscription.c:440
 #, c-format
 msgid "Table synchronization for relation \"%s\" is in progress and is in state \"%c\"."
 msgstr "La sincronización de tabla para la relación «%s» está en progreso y su estado es «%c»."
@@ -6103,227 +6432,227 @@ msgstr "La sincronización de tabla para la relación «%s» está en progreso y
 #. translator: first %s is a SQL ALTER command and second %s is a
 #. SQL DROP command
 #.
-#: catalog/pg_subscription.c:433
+#: catalog/pg_subscription.c:447
 #, c-format
 msgid "Use %s to enable subscription if not already enabled or use %s to drop the subscription."
 msgstr "Utilice %s para activar la suscripción si aún no está activada, o utilice %s para eliminar la suscripción."
 
-#: catalog/pg_type.c:134 catalog/pg_type.c:474
+#: catalog/pg_type.c:133 catalog/pg_type.c:474
 #, c-format
 msgid "pg_type OID value not set when in binary upgrade mode"
 msgstr "el valor de OID de pg_type no se definió en modo de actualización binaria"
 
-#: catalog/pg_type.c:254
+#: catalog/pg_type.c:253
 #, c-format
 msgid "invalid type internal size %d"
 msgstr "el tamaño interno de tipo %d no es válido"
 
-#: catalog/pg_type.c:270 catalog/pg_type.c:278 catalog/pg_type.c:286
-#: catalog/pg_type.c:295
+#: catalog/pg_type.c:269 catalog/pg_type.c:277 catalog/pg_type.c:285
+#: catalog/pg_type.c:294
 #, c-format
 msgid "alignment \"%c\" is invalid for passed-by-value type of size %d"
 msgstr "el alineamiento «%c» no es válido para un tipo pasado por valor de tamaño %d"
 
-#: catalog/pg_type.c:302
+#: catalog/pg_type.c:301
 #, c-format
 msgid "internal size %d is invalid for passed-by-value type"
 msgstr "el tamaño interno %d no es válido para un tipo pasado por valor"
 
-#: catalog/pg_type.c:312 catalog/pg_type.c:318
+#: catalog/pg_type.c:311 catalog/pg_type.c:317
 #, c-format
 msgid "alignment \"%c\" is invalid for variable-length type"
 msgstr "el alineamiento «%c» no es válido para un tipo de largo variable"
 
-#: catalog/pg_type.c:326 commands/typecmds.c:4140
+#: catalog/pg_type.c:325 commands/typecmds.c:4363
 #, c-format
 msgid "fixed-size types must have storage PLAIN"
 msgstr "los tipos de tamaño fijo deben tener almacenamiento PLAIN"
 
-#: catalog/pg_type.c:955
+#: catalog/pg_type.c:978
 #, c-format
 msgid "Failed while creating a multirange type for type \"%s\"."
 msgstr "Falla al crear un tipo de multirango para el tipo «%s»."
 
-#: catalog/pg_type.c:956
+#: catalog/pg_type.c:979
 #, c-format
 msgid "You can manually specify a multirange type name using the \"multirange_type_name\" attribute."
 msgstr "Puede especificar manualmente un nombre para el tipo de multirango usando el atributo «multirange_type_name»."
 
-#: catalog/storage.c:505 storage/buffer/bufmgr.c:1145
+#: catalog/storage.c:533 storage/buffer/bufmgr.c:1540
 #, c-format
 msgid "invalid page in block %u of relation %s"
 msgstr "la página no es válida en el bloque %u de la relación %s"
 
-#: commands/aggregatecmds.c:171
+#: commands/aggregatecmds.c:167
 #, c-format
 msgid "only ordered-set aggregates can be hypothetical"
 msgstr "sólo las funciones de agregación de conjuntos ordenados pueden ser hipotéticas"
 
-#: commands/aggregatecmds.c:196
+#: commands/aggregatecmds.c:192
 #, c-format
 msgid "aggregate attribute \"%s\" not recognized"
 msgstr "el atributo de la función de agregación «%s» no es reconocido"
 
-#: commands/aggregatecmds.c:206
+#: commands/aggregatecmds.c:202
 #, c-format
 msgid "aggregate stype must be specified"
 msgstr "debe especificarse el tipo de transición (stype) de la función de agregación"
 
-#: commands/aggregatecmds.c:210
+#: commands/aggregatecmds.c:206
 #, c-format
 msgid "aggregate sfunc must be specified"
 msgstr "debe especificarse la función de transición (sfunc) de la función de agregación"
 
-#: commands/aggregatecmds.c:222
+#: commands/aggregatecmds.c:218
 #, c-format
 msgid "aggregate msfunc must be specified when mstype is specified"
 msgstr "debe especificarse la función de transición msfunc cuando se especifica mstype"
 
-#: commands/aggregatecmds.c:226
+#: commands/aggregatecmds.c:222
 #, c-format
 msgid "aggregate minvfunc must be specified when mstype is specified"
 msgstr "debe especificarse la función de transición minvfunc cuando se especifica mstype"
 
-#: commands/aggregatecmds.c:233
+#: commands/aggregatecmds.c:229
 #, c-format
 msgid "aggregate msfunc must not be specified without mstype"
 msgstr "no debe especificarse msfunc sin mstype"
 
-#: commands/aggregatecmds.c:237
+#: commands/aggregatecmds.c:233
 #, c-format
 msgid "aggregate minvfunc must not be specified without mstype"
 msgstr "no debe especificarse minvfunc sin mstype"
 
-#: commands/aggregatecmds.c:241
+#: commands/aggregatecmds.c:237
 #, c-format
 msgid "aggregate mfinalfunc must not be specified without mstype"
 msgstr "no debe especificarse mfinalfunc sin mstype"
 
-#: commands/aggregatecmds.c:245
+#: commands/aggregatecmds.c:241
 #, c-format
 msgid "aggregate msspace must not be specified without mstype"
 msgstr "no debe especificarse msspace sin mstype"
 
-#: commands/aggregatecmds.c:249
+#: commands/aggregatecmds.c:245
 #, c-format
 msgid "aggregate minitcond must not be specified without mstype"
 msgstr "no debe especificarse minitcond sin mstype"
 
-#: commands/aggregatecmds.c:278
+#: commands/aggregatecmds.c:274
 #, c-format
 msgid "aggregate input type must be specified"
 msgstr "debe especificarse el tipo de entrada de la función de agregación"
 
-#: commands/aggregatecmds.c:308
+#: commands/aggregatecmds.c:304
 #, c-format
 msgid "basetype is redundant with aggregate input type specification"
 msgstr "el tipo base es redundante con el tipo de entrada en la función de agregación"
 
-#: commands/aggregatecmds.c:351 commands/aggregatecmds.c:392
+#: commands/aggregatecmds.c:347 commands/aggregatecmds.c:388
 #, c-format
 msgid "aggregate transition data type cannot be %s"
 msgstr "el tipo de transición de la función de agregación no puede ser %s"
 
-#: commands/aggregatecmds.c:363
+#: commands/aggregatecmds.c:359
 #, c-format
 msgid "serialization functions may be specified only when the aggregate transition data type is %s"
 msgstr "las funciones de serialización pueden especificarse sólo cuando el tipo de transición de la función de agregación es %s"
 
-#: commands/aggregatecmds.c:373
+#: commands/aggregatecmds.c:369
 #, c-format
 msgid "must specify both or neither of serialization and deserialization functions"
 msgstr "debe especificar ambas o ninguna de las funciones de serialización y deserialización"
 
-#: commands/aggregatecmds.c:438 commands/functioncmds.c:639
+#: commands/aggregatecmds.c:434 commands/functioncmds.c:634
 #, c-format
 msgid "parameter \"parallel\" must be SAFE, RESTRICTED, or UNSAFE"
 msgstr "el parámetro «parallel» debe ser SAFE, RESTRICTED o UNSAFE"
 
-#: commands/aggregatecmds.c:494
+#: commands/aggregatecmds.c:490
 #, c-format
 msgid "parameter \"%s\" must be READ_ONLY, SHAREABLE, or READ_WRITE"
 msgstr "el parámetro «%s» debe ser READ_ONLY, SHAREABLE o READ_WRITE"
 
-#: commands/alter.c:86 commands/event_trigger.c:174
+#: commands/alter.c:83 commands/event_trigger.c:191
 #, c-format
 msgid "event trigger \"%s\" already exists"
-msgstr "el disparador por eventos «%s» ya existe"
+msgstr "el “trigger” por eventos «%s» ya existe"
 
-#: commands/alter.c:89 commands/foreigncmds.c:593
+#: commands/alter.c:86 commands/foreigncmds.c:593
 #, c-format
 msgid "foreign-data wrapper \"%s\" already exists"
 msgstr "el conector de datos externos «%s» ya existe"
 
-#: commands/alter.c:92 commands/foreigncmds.c:884
+#: commands/alter.c:89 commands/foreigncmds.c:884
 #, c-format
 msgid "server \"%s\" already exists"
 msgstr "el servidor «%s» ya existe"
 
-#: commands/alter.c:95 commands/proclang.c:133
+#: commands/alter.c:92 commands/proclang.c:131
 #, c-format
 msgid "language \"%s\" already exists"
 msgstr "ya existe el lenguaje «%s»"
 
-#: commands/alter.c:98 commands/publicationcmds.c:771
+#: commands/alter.c:95 commands/publicationcmds.c:764
 #, c-format
 msgid "publication \"%s\" already exists"
 msgstr "la publicación «%s» ya existe"
 
-#: commands/alter.c:101 commands/subscriptioncmds.c:657
+#: commands/alter.c:98 commands/subscriptioncmds.c:669
 #, c-format
 msgid "subscription \"%s\" already exists"
 msgstr "la suscripción «%s» ya existe"
 
-#: commands/alter.c:124
+#: commands/alter.c:121
 #, c-format
 msgid "conversion \"%s\" already exists in schema \"%s\""
 msgstr "ya existe una conversión llamada «%s» en el esquema «%s»"
 
-#: commands/alter.c:128
+#: commands/alter.c:125
 #, c-format
 msgid "statistics object \"%s\" already exists in schema \"%s\""
 msgstr "ya existe un objeto de estadísticas llamado «%s» en el esquema «%s»"
 
-#: commands/alter.c:132
+#: commands/alter.c:129
 #, c-format
 msgid "text search parser \"%s\" already exists in schema \"%s\""
 msgstr "el analizador de búsqueda en texto «%s» ya existe en el esquema «%s»"
 
-#: commands/alter.c:136
+#: commands/alter.c:133
 #, c-format
 msgid "text search dictionary \"%s\" already exists in schema \"%s\""
 msgstr "el diccionario de búsqueda en texto «%s» ya existe en el esquema «%s»"
 
-#: commands/alter.c:140
+#: commands/alter.c:137
 #, c-format
 msgid "text search template \"%s\" already exists in schema \"%s\""
 msgstr "la plantilla de búsqueda en texto «%s» ya existe en el esquema «%s»"
 
-#: commands/alter.c:144
+#: commands/alter.c:141
 #, c-format
 msgid "text search configuration \"%s\" already exists in schema \"%s\""
 msgstr "la configuración de búsqueda en texto «%s» ya existe en el esquema «%s»"
 
-#: commands/alter.c:217
+#: commands/alter.c:214
 #, c-format
 msgid "must be superuser to rename %s"
 msgstr "debe ser superusuario para cambiar el nombre de «%s»"
 
-#: commands/alter.c:259 commands/subscriptioncmds.c:636
-#: commands/subscriptioncmds.c:1116 commands/subscriptioncmds.c:1198
-#: commands/subscriptioncmds.c:1830
+#: commands/alter.c:256 commands/subscriptioncmds.c:648
+#: commands/subscriptioncmds.c:1129 commands/subscriptioncmds.c:1212
+#: commands/subscriptioncmds.c:1918
 #, c-format
 msgid "password_required=false is superuser-only"
-msgstr ""
+msgstr "password_required=false es sólo para superusuario"
 
-#: commands/alter.c:260 commands/subscriptioncmds.c:637
-#: commands/subscriptioncmds.c:1117 commands/subscriptioncmds.c:1199
-#: commands/subscriptioncmds.c:1831
+#: commands/alter.c:257 commands/subscriptioncmds.c:649
+#: commands/subscriptioncmds.c:1130 commands/subscriptioncmds.c:1213
+#: commands/subscriptioncmds.c:1919
 #, c-format
 msgid "Subscriptions with the password_required option set to false may only be created or modified by the superuser."
-msgstr ""
+msgstr "Las suscripciones con la opción password_required puesta en falso sólo pueden ser creadas o modificadas por el superusuario."
 
-#: commands/alter.c:775
+#: commands/alter.c:735
 #, c-format
 msgid "must be superuser to set schema of %s"
 msgstr "debe ser superusuario para definir el esquema de %s"
@@ -6343,7 +6672,7 @@ msgstr "Debe ser superusuario para crear un método de acceso."
 msgid "access method \"%s\" already exists"
 msgstr "el método de acceso «%s» ya existe"
 
-#: commands/amcmds.c:154 commands/indexcmds.c:217 commands/indexcmds.c:840
+#: commands/amcmds.c:154 commands/indexcmds.c:224 commands/indexcmds.c:850
 #: commands/opclasscmds.c:375 commands/opclasscmds.c:833
 #, c-format
 msgid "access method \"%s\" does not exist"
@@ -6354,175 +6683,174 @@ msgstr "no existe el método de acceso «%s»"
 msgid "handler function is not specified"
 msgstr "no se ha especificado una función manejadora"
 
-#: commands/amcmds.c:264 commands/event_trigger.c:183
-#: commands/foreigncmds.c:489 commands/proclang.c:80 commands/trigger.c:709
-#: parser/parse_clause.c:941
+#: commands/amcmds.c:264 commands/event_trigger.c:200
+#: commands/foreigncmds.c:489 commands/proclang.c:78 commands/trigger.c:702
+#: parser/parse_clause.c:943
 #, c-format
 msgid "function %s must return type %s"
 msgstr "la función %s debe retornar el tipo %s"
 
-#: commands/analyze.c:227
+#: commands/analyze.c:217
 #, c-format
 msgid "skipping \"%s\" --- cannot analyze this foreign table"
 msgstr "omitiendo «%s»: no se puede analizar esta tabla foránea"
 
-#: commands/analyze.c:244
+#: commands/analyze.c:234
 #, c-format
 msgid "skipping \"%s\" --- cannot analyze non-tables or special system tables"
 msgstr "omitiendo «%s»: no se pueden analizar objetos que no son tablas, ni tablas especiales de sistema"
 
-#: commands/analyze.c:324
+#: commands/analyze.c:314
 #, c-format
 msgid "analyzing \"%s.%s\" inheritance tree"
 msgstr "analizando la jerarquía de herencia «%s.%s»"
 
-#: commands/analyze.c:329
+#: commands/analyze.c:319
 #, c-format
 msgid "analyzing \"%s.%s\""
 msgstr "analizando «%s.%s»"
 
-#: commands/analyze.c:394
+#: commands/analyze.c:385
 #, c-format
 msgid "column \"%s\" of relation \"%s\" appears more than once"
 msgstr "la columna «%s» aparece más de una vez en la relación «%s»"
 
-#: commands/analyze.c:786
+#: commands/analyze.c:785
 #, c-format
 msgid "automatic analyze of table \"%s.%s.%s\"\n"
 msgstr "análisis automático de la tabla «%s.%s.%s»\n"
 
-#: commands/analyze.c:1333
+#: commands/analyze.c:1300
 #, c-format
 msgid "\"%s\": scanned %d of %u pages, containing %.0f live rows and %.0f dead rows; %d rows in sample, %.0f estimated total rows"
 msgstr "«%s»: se procesaron %d de %u páginas, que contenían %.0f filas vigentes y %.0f filas no vigentes; %d filas en la muestra, %.0f total de filas estimadas"
 
-#: commands/analyze.c:1417
+#: commands/analyze.c:1384
 #, c-format
 msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no child tables"
 msgstr "omitiendo el análisis del árbol de herencia «%s.%s» --- este árbol no contiene tablas hijas"
 
-#: commands/analyze.c:1515
+#: commands/analyze.c:1482
 #, c-format
 msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no analyzable child tables"
 msgstr "omitiendo el análisis del árbol de herencia «%s.%s» --- este árbol no contiene tablas hijas analizables"
 
-#: commands/async.c:646
+#: commands/async.c:612
 #, c-format
 msgid "channel name cannot be empty"
 msgstr "el nombre de canal no puede ser vacío"
 
-#: commands/async.c:652
+#: commands/async.c:618
 #, c-format
 msgid "channel name too long"
 msgstr "el nombre de canal es demasiado largo"
 
-#: commands/async.c:657
+#: commands/async.c:623
 #, c-format
 msgid "payload string too long"
 msgstr "la cadena de carga es demasiado larga"
 
-#: commands/async.c:876
+#: commands/async.c:842
 #, c-format
 msgid "cannot PREPARE a transaction that has executed LISTEN, UNLISTEN, or NOTIFY"
 msgstr "no se puede hacer PREPARE de una transacción que ha ejecutado LISTEN, UNLISTEN o NOTIFY"
 
-#: commands/async.c:980
+#: commands/async.c:946
 #, c-format
 msgid "too many notifications in the NOTIFY queue"
 msgstr "demasiadas notificaciones en la cola NOTIFY"
 
-#: commands/async.c:1602
+#: commands/async.c:1553
 #, c-format
 msgid "NOTIFY queue is %.0f%% full"
 msgstr "la cola NOTIFY está %.0f%% llena"
 
-#: commands/async.c:1604
+#: commands/async.c:1555
 #, c-format
 msgid "The server process with PID %d is among those with the oldest transactions."
 msgstr "El proceso servidor con PID %d está entre aquellos con transacciones más antiguas."
 
-#: commands/async.c:1607
+#: commands/async.c:1558
 #, c-format
 msgid "The NOTIFY queue cannot be emptied until that process ends its current transaction."
 msgstr "La cola NOTIFY no puede vaciarse hasta que ese proceso cierre su transacción actual."
 
-#: commands/cluster.c:131
+#: commands/cluster.c:128
 #, c-format
 msgid "unrecognized CLUSTER option \"%s\""
 msgstr "opción de CLUSTER «%s» no reconocida"
 
-#: commands/cluster.c:162 commands/cluster.c:435
+#: commands/cluster.c:159 commands/cluster.c:433
 #, c-format
 msgid "cannot cluster temporary tables of other sessions"
 msgstr "no se pueden reordenar tablas temporales de otras sesiones"
 
-#: commands/cluster.c:180
+#: commands/cluster.c:177
 #, c-format
 msgid "there is no previously clustered index for table \"%s\""
 msgstr "no hay un índice de ordenamiento definido para la tabla «%s»"
 
-#: commands/cluster.c:194 commands/tablecmds.c:14200 commands/tablecmds.c:16043
+#: commands/cluster.c:191 commands/tablecmds.c:14797 commands/tablecmds.c:16729
 #, c-format
 msgid "index \"%s\" for table \"%s\" does not exist"
 msgstr "no existe el índice «%s» en la tabla «%s»"
 
-#: commands/cluster.c:424
+#: commands/cluster.c:422
 #, c-format
 msgid "cannot cluster a shared catalog"
 msgstr "no se puede reordenar un catálogo compartido"
 
-#: commands/cluster.c:439
+#: commands/cluster.c:437
 #, c-format
 msgid "cannot vacuum temporary tables of other sessions"
 msgstr "no se puede hacer vacuum a tablas temporales de otras sesiones"
 
-#: commands/cluster.c:515 commands/tablecmds.c:16053
+#: commands/cluster.c:513 commands/tablecmds.c:16739
 #, c-format
 msgid "\"%s\" is not an index for table \"%s\""
 msgstr "«%s» no es un índice de la tabla «%s»"
 
-#: commands/cluster.c:523
+#: commands/cluster.c:521
 #, c-format
 msgid "cannot cluster on index \"%s\" because access method does not support clustering"
 msgstr "no se puede reordenar en índice «%s» porque el método de acceso no soporta reordenamiento"
 
-#: commands/cluster.c:535
+#: commands/cluster.c:533
 #, c-format
 msgid "cannot cluster on partial index \"%s\""
 msgstr "no se puede reordenar en índice parcial «%s»"
 
-#: commands/cluster.c:549
+#: commands/cluster.c:547
 #, c-format
 msgid "cannot cluster on invalid index \"%s\""
 msgstr "no se puede reordenar en el índice no válido «%s»"
 
-#: commands/cluster.c:573
+#: commands/cluster.c:571
 #, c-format
 msgid "cannot mark index clustered in partitioned table"
 msgstr "no se puede marcar un índice «clustered» en una tabla particionada"
 
-#: commands/cluster.c:952
+#: commands/cluster.c:956
 #, c-format
 msgid "clustering \"%s.%s\" using index scan on \"%s\""
 msgstr "reordenando «%s.%s» usando un recorrido de índice en «%s»"
 
-#: commands/cluster.c:958
+#: commands/cluster.c:962
 #, c-format
 msgid "clustering \"%s.%s\" using sequential scan and sort"
 msgstr "reordenando «%s.%s» usando un recorrido secuencial y ordenamiento"
 
-#: commands/cluster.c:963
+#: commands/cluster.c:967
 #, c-format
 msgid "vacuuming \"%s.%s\""
 msgstr "haciendo vacuum a «%s.%s»"
 
-#: commands/cluster.c:990
-#, fuzzy, c-format
-#| msgid "index \"%s\" now contains %.0f row versions in %u pages"
+#: commands/cluster.c:994
+#, c-format
 msgid "\"%s.%s\": found %.0f removable, %.0f nonremovable row versions in %u pages"
-msgstr "el índice «%s» ahora contiene %.0f versiones de filas en %u páginas"
+msgstr "«%s.%s»: se encontraron %.0f versiones de filas eliminables, %.0f no eliminables en %u páginas"
 
-#: commands/cluster.c:995
+#: commands/cluster.c:999
 #, c-format
 msgid ""
 "%.0f dead row versions cannot be removed yet.\n"
@@ -6531,40 +6859,39 @@ msgstr ""
 "%.0f versiones muertas de filas no pueden ser eliminadas aún.\n"
 "%s."
 
-#: commands/cluster.c:1728
-#, fuzzy, c-format
-#| msgid "permission denied to set role \"%s\""
+#: commands/cluster.c:1744
+#, c-format
 msgid "permission denied to cluster \"%s\", skipping it"
-msgstr "se ha denegado el permiso para definir el rol «%s»"
+msgstr "permiso denegado a hacer cluster a «%s», ignorando"
 
-#: commands/collationcmds.c:112
+#: commands/collationcmds.c:110
 #, c-format
 msgid "collation attribute \"%s\" not recognized"
 msgstr "el atributo de ordenamiento (collation) «%s» no es reconocido"
 
-#: commands/collationcmds.c:125 commands/collationcmds.c:131
-#: commands/define.c:389 commands/tablecmds.c:7876
-#: replication/pgoutput/pgoutput.c:310 replication/pgoutput/pgoutput.c:333
-#: replication/pgoutput/pgoutput.c:347 replication/pgoutput/pgoutput.c:357
-#: replication/pgoutput/pgoutput.c:367 replication/pgoutput/pgoutput.c:377
-#: replication/pgoutput/pgoutput.c:387 replication/walsender.c:996
-#: replication/walsender.c:1018 replication/walsender.c:1028
+#: commands/collationcmds.c:123 commands/collationcmds.c:129
+#: commands/define.c:388 commands/tablecmds.c:8129
+#: replication/pgoutput/pgoutput.c:314 replication/pgoutput/pgoutput.c:337
+#: replication/pgoutput/pgoutput.c:351 replication/pgoutput/pgoutput.c:361
+#: replication/pgoutput/pgoutput.c:371 replication/pgoutput/pgoutput.c:381
+#: replication/pgoutput/pgoutput.c:393 replication/walsender.c:1146
+#: replication/walsender.c:1168 replication/walsender.c:1178
+#: replication/walsender.c:1187 replication/walsender.c:1426
 #, c-format
 msgid "conflicting or redundant options"
 msgstr "opciones contradictorias o redundantes"
 
-#: commands/collationcmds.c:126
+#: commands/collationcmds.c:124
 #, c-format
 msgid "LOCALE cannot be specified together with LC_COLLATE or LC_CTYPE."
 msgstr "LOCALE no puede configurarse junto con LC_COLLATE o LC_CTYPE."
 
-#: commands/collationcmds.c:132
-#, fuzzy, c-format
-#| msgid "option \"%s\" cannot be specified with other options"
+#: commands/collationcmds.c:130
+#, c-format
 msgid "FROM cannot be specified together with any other options."
-msgstr "la opción «%s» no puede ser especificada con otras opciones"
+msgstr "FROM no puede especificarse junto con otras opciones."
 
-#: commands/collationcmds.c:191
+#: commands/collationcmds.c:189
 #, c-format
 msgid "collation \"default\" cannot be copied"
 msgstr "el ordenamiento «default» no puede copiarse"
@@ -6574,435 +6901,364 @@ msgstr "el ordenamiento «default» no puede copiarse"
 msgid "unrecognized collation provider: %s"
 msgstr "proveedor de ordenamiento no reconocido: %s"
 
-#: commands/collationcmds.c:253
+#: commands/collationcmds.c:253 commands/collationcmds.c:264
+#: commands/collationcmds.c:270 commands/collationcmds.c:278
 #, c-format
-msgid "parameter \"lc_collate\" must be specified"
-msgstr "debe especificarse el parámetro «lc_collate»"
+msgid "parameter \"%s\" must be specified"
+msgstr "el parámetro «%s» debe especificarse"
 
-#: commands/collationcmds.c:258
+#: commands/collationcmds.c:293 commands/dbcommands.c:1134
 #, c-format
-msgid "parameter \"lc_ctype\" must be specified"
-msgstr "debe especificarse el parámetro «lc_ctype»"
-
-#: commands/collationcmds.c:265
-#, fuzzy, c-format
-#| msgid "parameter \"lc_collate\" must be specified"
-msgid "parameter \"locale\" must be specified"
-msgstr "debe especificarse el parámetro «lc_collate»"
-
-#: commands/collationcmds.c:279 commands/dbcommands.c:1074
-#, fuzzy, c-format
-#| msgid "Using language tag \"%s\" for ICU locale \"%s\".\n"
-msgid "using standard form \"%s\" for locale \"%s\""
-msgstr "Usando la marca de lenguaje «%s» para la configuración regional ICU «%s».\n"
+msgid "using standard form \"%s\" for ICU locale \"%s\""
+msgstr "usando la forma estándar «%s» para la configuración regional ICU «%s»"
 
-#: commands/collationcmds.c:298
+#: commands/collationcmds.c:312
 #, c-format
 msgid "nondeterministic collations not supported with this provider"
 msgstr "los ordenamientos no determinísticos no están soportados con este proveedor"
 
-#: commands/collationcmds.c:303 commands/dbcommands.c:1093
-#, fuzzy, c-format
-#| msgid "ICU locale cannot be specified unless locale provider is ICU"
+#: commands/collationcmds.c:317 commands/dbcommands.c:1087
+#, c-format
 msgid "ICU rules cannot be specified unless locale provider is ICU"
-msgstr "no se puede especificar una configuración regional ICU a menos que el proveedor de configuración regional sea ICU"
+msgstr "no se pueden especificar reglas ICU a menos que el proveedor de configuración regional sea ICU"
 
-#: commands/collationcmds.c:322
+#: commands/collationcmds.c:340
 #, c-format
 msgid "current database's encoding is not supported with this provider"
 msgstr "la codificación de la base de datos actual no está soportada con este proveedor"
 
-#: commands/collationcmds.c:382
+#: commands/collationcmds.c:409
 #, c-format
 msgid "collation \"%s\" for encoding \"%s\" already exists in schema \"%s\""
 msgstr "ya existe un ordenamiento (collation) llamado «%s» para la codificación «%s» en el esquema «%s»"
 
-#: commands/collationcmds.c:393
+#: commands/collationcmds.c:420
 #, c-format
 msgid "collation \"%s\" already exists in schema \"%s\""
 msgstr "ya existe un ordenamiento llamado «%s» en el esquema «%s»"
 
-#: commands/collationcmds.c:418
-#, fuzzy, c-format
-#| msgid "change the definition of a collation"
+#: commands/collationcmds.c:445
+#, c-format
 msgid "cannot refresh version of default collation"
-msgstr "cambia la definición de un ordenamiento"
+msgstr "no se puede refrescar la versión del ordenamiento por omisión"
 
-#: commands/collationcmds.c:419
-#, fuzzy, c-format
-#| msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION instead."
-msgid "Use ALTER DATABASE ... REFRESH COLLATION VERSION instead."
-msgstr "Use ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION en su lugar."
+#. translator: %s is an SQL command
+#. translator: %s is an SQL ALTER command
+#: commands/collationcmds.c:447 commands/subscriptioncmds.c:1376
+#: commands/tablecmds.c:7905 commands/tablecmds.c:7915
+#: commands/tablecmds.c:7917 commands/tablecmds.c:14499
+#: commands/tablecmds.c:17884 commands/tablecmds.c:17905
+#: commands/typecmds.c:3787 commands/typecmds.c:3872 commands/typecmds.c:4226
+#, c-format
+msgid "Use %s instead."
+msgstr "Use %s en su lugar."
 
-#: commands/collationcmds.c:446 commands/dbcommands.c:2447
+#: commands/collationcmds.c:480 commands/dbcommands.c:2566
 #, c-format
 msgid "changing version from %s to %s"
 msgstr "cambiando versión de %s a %s"
 
-#: commands/collationcmds.c:461 commands/dbcommands.c:2460
+#: commands/collationcmds.c:495 commands/dbcommands.c:2579
 #, c-format
 msgid "version has not changed"
 msgstr "la versión no ha cambiado"
 
-#: commands/collationcmds.c:494 commands/dbcommands.c:2626
+#: commands/collationcmds.c:528 commands/dbcommands.c:2749
 #, c-format
 msgid "database with OID %u does not exist"
 msgstr "no existe la base de datos con OID %u"
 
-#: commands/collationcmds.c:515
+#: commands/collationcmds.c:554
 #, c-format
 msgid "collation with OID %u does not exist"
 msgstr "no existe el ordenamiento (collation) con OID %u"
 
-#: commands/collationcmds.c:803
+#: commands/collationcmds.c:848
 #, c-format
 msgid "must be superuser to import system collations"
 msgstr "debe ser superusuario para importar ordenamientos del sistema"
 
-#: commands/collationcmds.c:831 commands/copyfrom.c:1653 commands/copyto.c:656
-#: libpq/be-secure-common.c:59
-#, c-format
-msgid "could not execute command \"%s\": %m"
-msgstr "no se pudo ejecutar la orden «%s»: %m"
-
-#: commands/collationcmds.c:923 commands/collationcmds.c:1008
+#: commands/collationcmds.c:968 commands/collationcmds.c:1053
 #, c-format
 msgid "no usable system locales were found"
 msgstr "no se encontraron locales de sistema utilizables"
 
-#: commands/comment.c:61 commands/dbcommands.c:1594 commands/dbcommands.c:1791
-#: commands/dbcommands.c:1901 commands/dbcommands.c:2099
-#: commands/dbcommands.c:2337 commands/dbcommands.c:2420
-#: commands/dbcommands.c:2530 commands/dbcommands.c:3030
-#: utils/init/postinit.c:1025 utils/init/postinit.c:1130
-#: utils/init/postinit.c:1147
+#: commands/comment.c:61 commands/dbcommands.c:1665 commands/dbcommands.c:1883
+#: commands/dbcommands.c:1995 commands/dbcommands.c:2193
+#: commands/dbcommands.c:2433 commands/dbcommands.c:2526
+#: commands/dbcommands.c:2650 commands/dbcommands.c:3161
+#: utils/init/postinit.c:1034 utils/init/postinit.c:1098
+#: utils/init/postinit.c:1171
 #, c-format
 msgid "database \"%s\" does not exist"
 msgstr "no existe la base de datos «%s»"
 
 #: commands/comment.c:101
-#, fuzzy, c-format
-#| msgid "cannot alter constraint \"%s\" on relation \"%s\""
+#, c-format
 msgid "cannot set comment on relation \"%s\""
-msgstr "no se puede modificar la restricción «%s» en la relación «%s»"
+msgstr "no se puede definir comentario en la relación «%s»"
 
-#: commands/constraint.c:63 utils/adt/ri_triggers.c:2028
+#: commands/constraint.c:61 utils/adt/ri_triggers.c:2019
 #, c-format
 msgid "function \"%s\" was not called by trigger manager"
 msgstr "la función «%s» no fue ejecutada por el manejador de triggers"
 
-#: commands/constraint.c:70 utils/adt/ri_triggers.c:2037
+#: commands/constraint.c:68 utils/adt/ri_triggers.c:2028
 #, c-format
 msgid "function \"%s\" must be fired AFTER ROW"
 msgstr "la función «%s» debe ser ejecutada AFTER ROW"
 
-#: commands/constraint.c:84
+#: commands/constraint.c:82
 #, c-format
 msgid "function \"%s\" must be fired for INSERT or UPDATE"
 msgstr "la función «%s» debe ser ejecutada en INSERT o UPDATE"
 
-#: commands/conversioncmds.c:69
+#: commands/conversioncmds.c:62
 #, c-format
 msgid "source encoding \"%s\" does not exist"
 msgstr "no existe la codificación fuente «%s»"
 
-#: commands/conversioncmds.c:76
+#: commands/conversioncmds.c:69
 #, c-format
 msgid "destination encoding \"%s\" does not exist"
 msgstr "no existe la codificación de destino «%s»"
 
-#: commands/conversioncmds.c:89
+#: commands/conversioncmds.c:82
 #, c-format
 msgid "encoding conversion to or from \"SQL_ASCII\" is not supported"
 msgstr "la conversión de codificación desde o hacia a «SQL_ASCII» no está soportada"
 
-#: commands/conversioncmds.c:102
+#: commands/conversioncmds.c:95
 #, c-format
 msgid "encoding conversion function %s must return type %s"
 msgstr "la función de conversión de codificación %s debe retornar tipo %s"
 
-#: commands/conversioncmds.c:132
+#: commands/conversioncmds.c:125
 #, c-format
 msgid "encoding conversion function %s returned incorrect result for empty input"
 msgstr "la función de conversión de codificación %s retornó un resultado incorrecto para una entrada vacía"
 
-#: commands/copy.c:86
-#, fuzzy, c-format
-#| msgid "permission denied to create role"
+#: commands/copy.c:84
+#, c-format
 msgid "permission denied to COPY to or from an external program"
-msgstr "se ha denegado el permiso para crear el rol"
+msgstr "se ha denegado el permiso para hacer COPY hacia o desde un programa externo"
 
-#: commands/copy.c:87
+#: commands/copy.c:85
 #, c-format
 msgid "Only roles with privileges of the \"%s\" role may COPY to or from an external program."
-msgstr ""
+msgstr "Sólo los roles con privilegios del rol «%s» pueden hacer COPY desde o hacia un programa externo."
 
-#: commands/copy.c:89 commands/copy.c:100 commands/copy.c:109
+#: commands/copy.c:87 commands/copy.c:98 commands/copy.c:107
 #, c-format
 msgid "Anyone can COPY to stdout or from stdin. psql's \\copy command also works for anyone."
 msgstr "Cualquier usuario puede usar COPY hacia la salida estándar o desde la entrada estándar. La orden \\copy de psql también puede ser utilizado por cualquier usuario."
 
-#: commands/copy.c:97
-#, fuzzy, c-format
-#| msgid "permission denied to drop role"
+#: commands/copy.c:95
+#, c-format
 msgid "permission denied to COPY from a file"
-msgstr "se ha denegado el permiso para eliminar el rol"
+msgstr "se ha denegado el permiso para hacer COPY desde un archivo"
 
-#: commands/copy.c:98
+#: commands/copy.c:96
 #, c-format
 msgid "Only roles with privileges of the \"%s\" role may COPY from a file."
-msgstr ""
+msgstr "Sólo los roles con privilegios del rol «%s» pueden hacer COPY desde un archivo."
 
-#: commands/copy.c:106
-#, fuzzy, c-format
-#| msgid "permission denied to drop role"
+#: commands/copy.c:104
+#, c-format
 msgid "permission denied to COPY to a file"
-msgstr "se ha denegado el permiso para eliminar el rol"
+msgstr "se ha denegado el permiso para hacer COPY a un archivo"
 
-#: commands/copy.c:107
+#: commands/copy.c:105
 #, c-format
 msgid "Only roles with privileges of the \"%s\" role may COPY to a file."
-msgstr ""
+msgstr "Sólo los roles con privilegios del rol «%s» pueden hacer COPY hacia un archivo."
 
-#: commands/copy.c:195
+#: commands/copy.c:193
 #, c-format
 msgid "COPY FROM not supported with row-level security"
 msgstr "COPY FROM no está soportado con seguridad a nivel de registros"
 
-#: commands/copy.c:196
+#: commands/copy.c:194
 #, c-format
 msgid "Use INSERT statements instead."
 msgstr "Use sentencias INSERT en su lugar."
 
-#: commands/copy.c:290
-#, fuzzy, c-format
-#| msgid "\"EEEE\" not supported for input"
-msgid "MERGE not supported in COPY"
-msgstr "«EEEE» no está soportado en la entrada"
-
-#: commands/copy.c:383
+#: commands/copy.c:375
 #, c-format
 msgid "cannot use \"%s\" with HEADER in COPY TO"
 msgstr "no se puede usar «%s» con HEADER en COPY TO"
 
-#: commands/copy.c:392
-#, fuzzy, c-format
-#| msgid "%s requires a Boolean value"
+#: commands/copy.c:384
+#, c-format
 msgid "%s requires a Boolean value or \"match\""
-msgstr "«%s» requiere un valor lógico (booleano)"
+msgstr "«%s» requiere un valor lógico (booleano) o «match»"
+
+#. translator: first %s is the name of a COPY option, e.g. ON_ERROR,
+#. second %s is a COPY with direction, e.g. COPY TO
+#: commands/copy.c:402 commands/copy.c:782 commands/copy.c:798
+#: commands/copy.c:815 commands/copy.c:841 commands/copy.c:851
+#, c-format
+msgid "COPY %s cannot be used with %s"
+msgstr "COPY %s no puede usarse con %s"
+
+#. translator: first %s is the name of a COPY option, e.g. ON_ERROR
+#: commands/copy.c:416 commands/copy.c:441
+#, c-format
+msgid "COPY %s \"%s\" not recognized"
+msgstr "no se reconoce el valor «%2$s» para COPY %1$s"
 
-#: commands/copy.c:451
+#: commands/copy.c:502
 #, c-format
 msgid "COPY format \"%s\" not recognized"
 msgstr "el formato de COPY «%s» no es reconocido"
 
-#: commands/copy.c:509 commands/copy.c:522 commands/copy.c:535
-#: commands/copy.c:554
+#: commands/copy.c:560 commands/copy.c:575 commands/copy.c:590
+#: commands/copy.c:609
 #, c-format
 msgid "argument to option \"%s\" must be a list of column names"
 msgstr "el argumento de la opción «%s» debe ser una lista de nombres de columna"
 
-#: commands/copy.c:566
+#: commands/copy.c:621
 #, c-format
 msgid "argument to option \"%s\" must be a valid encoding name"
 msgstr "el argumento de la opción «%s» debe ser un nombre válido de codificación"
 
-#: commands/copy.c:573 commands/dbcommands.c:859 commands/dbcommands.c:2285
+#: commands/copy.c:642 commands/dbcommands.c:866 commands/dbcommands.c:2381
 #, c-format
 msgid "option \"%s\" not recognized"
 msgstr "no se reconoce la opción «%s»"
 
-#: commands/copy.c:585
+#. translator: %s is the name of a COPY option, e.g. ON_ERROR
+#: commands/copy.c:655 commands/copy.c:660 commands/copy.c:665
+#: commands/copy.c:740
 #, c-format
-msgid "cannot specify DELIMITER in BINARY mode"
-msgstr "no se puede especificar DELIMITER en modo BINARY"
+msgid "cannot specify %s in BINARY mode"
+msgstr "no se puede especificar %s en modo BINARY"
 
-#: commands/copy.c:590
+#: commands/copy.c:670
 #, c-format
-msgid "cannot specify NULL in BINARY mode"
-msgstr "no se puede especificar NULL en modo BINARY"
+msgid "only ON_ERROR STOP is allowed in BINARY mode"
+msgstr "sólo ON ERROR STOP es permitido en modo BINARY"
 
-#: commands/copy.c:595
-#, fuzzy, c-format
-#| msgid "cannot specify NULL in BINARY mode"
-msgid "cannot specify DEFAULT in BINARY mode"
-msgstr "no se puede especificar NULL en modo BINARY"
-
-#: commands/copy.c:617
+#: commands/copy.c:692
 #, c-format
 msgid "COPY delimiter must be a single one-byte character"
 msgstr "el delimitador de COPY debe ser un solo carácter de un byte"
 
-#: commands/copy.c:624
+#: commands/copy.c:699
 #, c-format
 msgid "COPY delimiter cannot be newline or carriage return"
 msgstr "el delimitador de COPY no puede ser el carácter de nueva línea ni el de retorno de carro"
 
-#: commands/copy.c:630
+#: commands/copy.c:705
 #, c-format
 msgid "COPY null representation cannot use newline or carriage return"
 msgstr "la representación de null de COPY no puede usar el carácter de nueva línea ni el de retorno de carro"
 
-#: commands/copy.c:640
-#, fuzzy, c-format
-#| msgid "COPY null representation cannot use newline or carriage return"
+#: commands/copy.c:715
+#, c-format
 msgid "COPY default representation cannot use newline or carriage return"
-msgstr "la representación de null de COPY no puede usar el carácter de nueva línea ni el de retorno de carro"
+msgstr "la representación de default de COPY no puede usar el carácter de nueva línea ni el de retorno de carro"
 
-#: commands/copy.c:658
+#: commands/copy.c:733
 #, c-format
 msgid "COPY delimiter cannot be \"%s\""
 msgstr "el delimitador de COPY no puede ser «%s»"
 
-#: commands/copy.c:664
-#, fuzzy, c-format
-#| msgid "cannot specify DELIMITER in BINARY mode"
-msgid "cannot specify HEADER in BINARY mode"
-msgstr "no se puede especificar DELIMITER en modo BINARY"
-
-#: commands/copy.c:670
+#. translator: %s is the name of a COPY option, e.g. ON_ERROR
+#: commands/copy.c:747 commands/copy.c:764 commands/copy.c:776
+#: commands/copy.c:791 commands/copy.c:807
 #, c-format
-msgid "COPY quote available only in CSV mode"
-msgstr "el «quote» de COPY está disponible sólo en modo CSV"
+msgid "COPY %s requires CSV mode"
+msgstr "COPY %s requiere modo CSV"
 
-#: commands/copy.c:675
+#: commands/copy.c:752
 #, c-format
 msgid "COPY quote must be a single one-byte character"
 msgstr "la comilla («quote») de COPY debe ser un solo carácter de un byte"
 
-#: commands/copy.c:680
+#: commands/copy.c:757
 #, c-format
 msgid "COPY delimiter and quote must be different"
 msgstr "el delimitador de COPY y la comilla («quote») deben ser diferentes"
 
-#: commands/copy.c:686
-#, c-format
-msgid "COPY escape available only in CSV mode"
-msgstr "escape de COPY disponible sólo en modo CSV"
-
-#: commands/copy.c:691
+#: commands/copy.c:769
 #, c-format
 msgid "COPY escape must be a single one-byte character"
 msgstr "el escape de COPY debe ser un sólo carácter de un byte"
 
-#: commands/copy.c:697
-#, c-format
-msgid "COPY force quote available only in CSV mode"
-msgstr "el forzado de comillas de COPY sólo está disponible en modo CSV"
-
-#: commands/copy.c:701
-#, c-format
-msgid "COPY force quote only available using COPY TO"
-msgstr "el forzado de comillas de COPY sólo está disponible en COPY TO"
-
-#: commands/copy.c:707
-#, c-format
-msgid "COPY force not null available only in CSV mode"
-msgstr "el forzado de no nulos en COPY sólo está disponible en modo CSV"
-
-#: commands/copy.c:711
-#, c-format
-msgid "COPY force not null only available using COPY FROM"
-msgstr "el forzado de no nulos en COPY sólo está disponible usando COPY FROM"
-
-#: commands/copy.c:717
-#, c-format
-msgid "COPY force null available only in CSV mode"
-msgstr "el forzado de nulos en COPY sólo está disponible en modo CSV"
-
-#: commands/copy.c:722
-#, c-format
-msgid "COPY force null only available using COPY FROM"
-msgstr "el forzado de nulos en COPY sólo está disponible usando COPY FROM"
-
-#: commands/copy.c:728
+#. translator: %s is the name of a COPY option, e.g. NULL
+#: commands/copy.c:823 commands/copy.c:859
 #, c-format
-msgid "COPY delimiter must not appear in the NULL specification"
-msgstr "el delimitador de COPY no debe aparecer en la especificación NULL"
+msgid "COPY delimiter character must not appear in the %s specification"
+msgstr "el carácter delimitador de COPY no debe aparecer en la especificación %s"
 
-#: commands/copy.c:735
+#. translator: %s is the name of a COPY option, e.g. NULL
+#: commands/copy.c:832 commands/copy.c:868
 #, c-format
-msgid "CSV quote character must not appear in the NULL specification"
-msgstr "el carácter de «quote» de CSV no debe aparecer en la especificación NULL"
-
-#: commands/copy.c:742
-#, fuzzy, c-format
-#| msgid "COPY force null only available using COPY FROM"
-msgid "COPY DEFAULT only available using COPY FROM"
-msgstr "el forzado de nulos en COPY sólo está disponible usando COPY FROM"
+msgid "CSV quote character must not appear in the %s specification"
+msgstr "el carácter de «quote» de CSV no debe aparecer en la especificación %s"
 
-#: commands/copy.c:748
-#, fuzzy, c-format
-#| msgid "COPY delimiter must not appear in the NULL specification"
-msgid "COPY delimiter must not appear in the DEFAULT specification"
-msgstr "el delimitador de COPY no debe aparecer en la especificación NULL"
-
-#: commands/copy.c:755
-#, fuzzy, c-format
-#| msgid "CSV quote character must not appear in the NULL specification"
-msgid "CSV quote character must not appear in the DEFAULT specification"
-msgstr "el carácter de «quote» de CSV no debe aparecer en la especificación NULL"
-
-#: commands/copy.c:763
+#: commands/copy.c:877
 #, c-format
 msgid "NULL specification and DEFAULT specification cannot be the same"
-msgstr ""
+msgstr "las especificaciones NULL y DEFAULT no pueden ser la misma"
 
-#: commands/copy.c:825
+#: commands/copy.c:939
 #, c-format
 msgid "column \"%s\" is a generated column"
 msgstr "la columna «%s» es una columna generada"
 
-#: commands/copy.c:827
+#: commands/copy.c:941
 #, c-format
 msgid "Generated columns cannot be used in COPY."
 msgstr "Las columnas generadas no pueden usarse en COPY."
 
-#: commands/copy.c:842 commands/indexcmds.c:1894 commands/statscmds.c:242
-#: commands/tablecmds.c:2405 commands/tablecmds.c:3127
-#: commands/tablecmds.c:3626 parser/parse_relation.c:3688
-#: parser/parse_relation.c:3698 parser/parse_relation.c:3716
-#: parser/parse_relation.c:3723 parser/parse_relation.c:3737
-#: utils/adt/tsvector_op.c:2855
+#: commands/copy.c:956 commands/indexcmds.c:1890 commands/statscmds.c:239
+#: commands/tablecmds.c:2526 commands/tablecmds.c:2997
+#: commands/tablecmds.c:3808 parser/parse_relation.c:3692
+#: parser/parse_relation.c:3702 parser/parse_relation.c:3720
+#: parser/parse_relation.c:3727 parser/parse_relation.c:3741
+#: utils/adt/tsvector_op.c:2853
 #, c-format
 msgid "column \"%s\" does not exist"
 msgstr "no existe la columna «%s»"
 
-#: commands/copy.c:849 commands/tablecmds.c:2431 commands/trigger.c:958
-#: parser/parse_target.c:1070 parser/parse_target.c:1081
+#: commands/copy.c:963 commands/tablecmds.c:2552 commands/trigger.c:951
+#: parser/parse_target.c:1083 parser/parse_target.c:1094
 #, c-format
 msgid "column \"%s\" specified more than once"
 msgstr "la columna «%s» fue especificada más de una vez"
 
-#: commands/copyfrom.c:122
+#: commands/copyfrom.c:118
 #, c-format
 msgid "COPY %s"
-msgstr ""
+msgstr "COPY %s"
 
-#: commands/copyfrom.c:130
+#: commands/copyfrom.c:126
 #, c-format
 msgid "COPY %s, line %llu, column %s"
-msgstr ""
+msgstr "COPY %s, línea %llu, columna %s"
 
-#: commands/copyfrom.c:135 commands/copyfrom.c:181
+#: commands/copyfrom.c:131 commands/copyfrom.c:177
 #, c-format
 msgid "COPY %s, line %llu"
-msgstr ""
+msgstr "COPY %s, línea %llu"
 
-#: commands/copyfrom.c:147
+#: commands/copyfrom.c:143
 #, c-format
 msgid "COPY %s, line %llu, column %s: \"%s\""
-msgstr ""
+msgstr "COPY %s, línea %llu, columna %s: «%s»"
 
-#: commands/copyfrom.c:157
+#: commands/copyfrom.c:153
 #, c-format
 msgid "COPY %s, line %llu, column %s: null input"
-msgstr ""
+msgstr "COPY %s, línea %llu, columna %s: entrada nula"
 
-#: commands/copyfrom.c:174
+#: commands/copyfrom.c:170
 #, c-format
 msgid "COPY %s, line %llu: \"%s\""
-msgstr ""
+msgstr "COPY %s, línea %llu: «%s»"
 
 #: commands/copyfrom.c:673
 #, c-format
@@ -7012,7 +7268,7 @@ msgstr "no se puede copiar hacia la vista «%s»"
 #: commands/copyfrom.c:675
 #, c-format
 msgid "To enable copying to a view, provide an INSTEAD OF INSERT trigger."
-msgstr "Para posibilitar «copy» a una vista, provea un disparador INSTEAD OF INSERT."
+msgstr "Para posibilitar «copy» a una vista, provea un “trigger” INSTEAD OF INSERT."
 
 #: commands/copyfrom.c:679
 #, c-format
@@ -7044,32 +7300,41 @@ msgstr "no se puede ejecutar COPY FREEZE debido a actividad anterior en la trans
 msgid "cannot perform COPY FREEZE because the table was not created or truncated in the current subtransaction"
 msgstr "no se puede ejecutar COPY FREEZE porque la tabla no fue creada ni truncada en la subtransacción en curso"
 
-#: commands/copyfrom.c:1411
+#: commands/copyfrom.c:1313
+#, c-format
+msgid "%llu row was skipped due to data type incompatibility"
+msgid_plural "%llu rows were skipped due to data type incompatibility"
+msgstr[0] "%llu fila fue ignorada por incompatibilidad de tipo de dato"
+msgstr[1] "%llu filas fueron ignoradas por incompatibilidad de tipo de dato"
+
+#. translator: first %s is the name of a COPY option, e.g. FORCE_NOT_NULL
+#. translator: %s is the name of a COPY option, e.g. FORCE_NOT_NULL
+#: commands/copyfrom.c:1448 commands/copyfrom.c:1491 commands/copyto.c:601
 #, c-format
-msgid "FORCE_NOT_NULL column \"%s\" not referenced by COPY"
-msgstr "la columna FORCE_NOT_NULL «%s» no es referenciada en COPY"
+msgid "%s column \"%s\" not referenced by COPY"
+msgstr "la columna %s «%s» no es referenciada en COPY"
 
-#: commands/copyfrom.c:1434
+#: commands/copyfrom.c:1544 utils/mb/mbutils.c:385
 #, c-format
-msgid "FORCE_NULL column \"%s\" not referenced by COPY"
-msgstr "la columna FORCE_NULL «%s» no es referenciada en COPY"
+msgid "default conversion function for encoding \"%s\" to \"%s\" does not exist"
+msgstr "no existe el procedimiento por omisión de conversión desde la codificación «%s» a «%s»"
 
-#: commands/copyfrom.c:1672
+#: commands/copyfrom.c:1742
 #, c-format
 msgid "COPY FROM instructs the PostgreSQL server process to read a file. You may want a client-side facility such as psql's \\copy."
 msgstr "COPY FROM indica al proceso servidor de PostgreSQL leer un archivo. Puede desear usar una facilidad del lado del cliente como \\copy de psql."
 
-#: commands/copyfrom.c:1685 commands/copyto.c:708
+#: commands/copyfrom.c:1755 commands/copyto.c:706
 #, c-format
 msgid "\"%s\" is a directory"
 msgstr "«%s» es un directorio"
 
-#: commands/copyfrom.c:1753 commands/copyto.c:306 libpq/be-secure-common.c:83
+#: commands/copyfrom.c:1823 commands/copyto.c:299 libpq/be-secure-common.c:83
 #, c-format
 msgid "could not close pipe to external command: %m"
 msgstr "no se pudo cerrar la tubería a la orden externa: %m"
 
-#: commands/copyfrom.c:1768 commands/copyto.c:311
+#: commands/copyfrom.c:1838 commands/copyto.c:304
 #, c-format
 msgid "program \"%s\" failed"
 msgstr "el programa «%s» falló"
@@ -7110,26 +7375,25 @@ msgid "could not read from COPY file: %m"
 msgstr "no se pudo leer desde archivo COPY: %m"
 
 #: commands/copyfromparse.c:278 commands/copyfromparse.c:303
-#: tcop/postgres.c:377
+#: replication/walsender.c:756 replication/walsender.c:782 tcop/postgres.c:381
 #, c-format
 msgid "unexpected EOF on client connection with an open transaction"
 msgstr "se encontró fin de archivo inesperado en una conexión con una transacción abierta"
 
-#: commands/copyfromparse.c:294
+#: commands/copyfromparse.c:294 replication/walsender.c:772
 #, c-format
 msgid "unexpected message type 0x%02X during COPY from stdin"
 msgstr "se recibió un mensaje de tipo 0x%02X inesperado durante COPY desde la entrada estándar"
 
-#: commands/copyfromparse.c:317
+#: commands/copyfromparse.c:317 replication/walsender.c:803
 #, c-format
 msgid "COPY from stdin failed: %s"
 msgstr "falló COPY desde la entrada estándar: %s"
 
 #: commands/copyfromparse.c:785
-#, fuzzy, c-format
-#| msgid "wrong number of columns: %d, expected %d"
+#, c-format
 msgid "wrong number of fields in header line: got %d, expected %d"
-msgstr "número de columnas erróneo: %d, se esperaban %d"
+msgstr "número de campos en línea de cabecera erróneo: %d, se esperaban %d"
 
 #: commands/copyfromparse.c:801
 #, c-format
@@ -7141,8 +7405,8 @@ msgstr "discordancia de nombre de columna en campo %d de la línea de encabezado
 msgid "column name mismatch in header line field %d: got \"%s\", expected \"%s\""
 msgstr "discordancia en nombre de columna en campo %d de la línea de encabezado: se obtuvo «%s», se esperaba «%s»"
 
-#: commands/copyfromparse.c:892 commands/copyfromparse.c:1514
-#: commands/copyfromparse.c:1770
+#: commands/copyfromparse.c:892 commands/copyfromparse.c:1554
+#: commands/copyfromparse.c:1810
 #, c-format
 msgid "extra data after last expected column"
 msgstr "datos extra después de la última columna esperada"
@@ -7152,1126 +7416,1177 @@ msgstr "datos extra después de la última columna esperada"
 msgid "missing data for column \"%s\""
 msgstr "faltan datos en la columna «%s»"
 
-#: commands/copyfromparse.c:999
+#: commands/copyfromparse.c:990
+#, c-format
+msgid "skipping row due to data type incompatibility at line %llu for column \"%s\": \"%s\""
+msgstr "omitiendo fila debido a incompatibilidad de tipo en la línea %llu para la columna «%s»: «%s»"
+
+#: commands/copyfromparse.c:998
+#, c-format
+msgid "skipping row due to data type incompatibility at line %llu for column \"%s\": null input"
+msgstr "omitiendo fila debido a incompatibilidad de tipo en la línea %llu para la columna «%s»: entrada nula"
+
+#: commands/copyfromparse.c:1044
 #, c-format
 msgid "received copy data after EOF marker"
 msgstr "se recibieron datos de copy después del marcador EOF"
 
-#: commands/copyfromparse.c:1006
+#: commands/copyfromparse.c:1051
 #, c-format
 msgid "row field count is %d, expected %d"
 msgstr "la cantidad de registros es %d, pero se esperaban %d"
 
-#: commands/copyfromparse.c:1296 commands/copyfromparse.c:1313
+#: commands/copyfromparse.c:1336 commands/copyfromparse.c:1353
 #, c-format
 msgid "literal carriage return found in data"
 msgstr "se encontró un retorno de carro literal en los datos"
 
-#: commands/copyfromparse.c:1297 commands/copyfromparse.c:1314
+#: commands/copyfromparse.c:1337 commands/copyfromparse.c:1354
 #, c-format
 msgid "unquoted carriage return found in data"
 msgstr "se encontró un retorno de carro fuera de comillas en los datos"
 
-#: commands/copyfromparse.c:1299 commands/copyfromparse.c:1316
+#: commands/copyfromparse.c:1339 commands/copyfromparse.c:1356
 #, c-format
 msgid "Use \"\\r\" to represent carriage return."
 msgstr "Use «\\r» para representar el retorno de carro."
 
-#: commands/copyfromparse.c:1300 commands/copyfromparse.c:1317
+#: commands/copyfromparse.c:1340 commands/copyfromparse.c:1357
 #, c-format
 msgid "Use quoted CSV field to represent carriage return."
 msgstr "Use un campo CSV entre comillas para representar el retorno de carro."
 
-#: commands/copyfromparse.c:1329
+#: commands/copyfromparse.c:1369
 #, c-format
 msgid "literal newline found in data"
 msgstr "se encontró un salto de línea literal en los datos"
 
-#: commands/copyfromparse.c:1330
+#: commands/copyfromparse.c:1370
 #, c-format
 msgid "unquoted newline found in data"
 msgstr "se encontró un salto de línea fuera de comillas en los datos"
 
-#: commands/copyfromparse.c:1332
+#: commands/copyfromparse.c:1372
 #, c-format
 msgid "Use \"\\n\" to represent newline."
 msgstr "Use «\\n» para representar un salto de línea."
 
-#: commands/copyfromparse.c:1333
+#: commands/copyfromparse.c:1373
 #, c-format
 msgid "Use quoted CSV field to represent newline."
 msgstr "Use un campo CSV entre comillas para representar un salto de línea."
 
-#: commands/copyfromparse.c:1379 commands/copyfromparse.c:1415
+#: commands/copyfromparse.c:1419 commands/copyfromparse.c:1455
 #, c-format
 msgid "end-of-copy marker does not match previous newline style"
 msgstr "el marcador fin-de-copy no coincide con el estilo previo de salto de línea"
 
-#: commands/copyfromparse.c:1388 commands/copyfromparse.c:1404
+#: commands/copyfromparse.c:1428 commands/copyfromparse.c:1444
 #, c-format
 msgid "end-of-copy marker corrupt"
 msgstr "marcador fin-de-copy corrupto"
 
-#: commands/copyfromparse.c:1706 commands/copyfromparse.c:1921
-#, fuzzy, c-format
-#| msgid "unexpected EOF in COPY data"
-msgid "unexpected DEFAULT in COPY data"
-msgstr "EOF inesperado en datos de COPY"
+#: commands/copyfromparse.c:1746 commands/copyfromparse.c:1961
+#, c-format
+msgid "unexpected default marker in COPY data"
+msgstr "marcador “default” inesperado en datos de COPY"
 
-#: commands/copyfromparse.c:1707 commands/copyfromparse.c:1922
-#, fuzzy, c-format
-#| msgid "column \"%s\" can only be updated to DEFAULT"
-msgid "Column \"%s\" has no DEFAULT value."
-msgstr "la columna «%s» sólo puede actualizarse a DEFAULT"
+#: commands/copyfromparse.c:1747 commands/copyfromparse.c:1962
+#, c-format
+msgid "Column \"%s\" has no default value."
+msgstr "La columna «%s» no tiene valor por omisión."
 
-#: commands/copyfromparse.c:1854
+#: commands/copyfromparse.c:1894
 #, c-format
 msgid "unterminated CSV quoted field"
 msgstr "un valor entre comillas está inconcluso"
 
-#: commands/copyfromparse.c:1956 commands/copyfromparse.c:1975
+#: commands/copyfromparse.c:1996 commands/copyfromparse.c:2015
 #, c-format
 msgid "unexpected EOF in COPY data"
 msgstr "EOF inesperado en datos de COPY"
 
-#: commands/copyfromparse.c:1965
+#: commands/copyfromparse.c:2005
 #, c-format
 msgid "invalid field size"
 msgstr "el tamaño de campo no es válido"
 
-#: commands/copyfromparse.c:1988
+#: commands/copyfromparse.c:2028
 #, c-format
 msgid "incorrect binary data format"
 msgstr "el formato de datos binarios es incorrecto"
 
-#: commands/copyto.c:236
+#: commands/copyto.c:229
 #, c-format
 msgid "could not write to COPY program: %m"
 msgstr "no se pudo escribir al programa COPY: %m"
 
-#: commands/copyto.c:241
+#: commands/copyto.c:234
 #, c-format
 msgid "could not write to COPY file: %m"
 msgstr "no se pudo escribir archivo COPY: %m"
 
-#: commands/copyto.c:386
+#: commands/copyto.c:379
 #, c-format
 msgid "cannot copy from view \"%s\""
 msgstr "no se puede copiar desde la vista «%s»"
 
-#: commands/copyto.c:388 commands/copyto.c:394 commands/copyto.c:400
-#: commands/copyto.c:411
+#: commands/copyto.c:381 commands/copyto.c:387 commands/copyto.c:393
+#: commands/copyto.c:404
 #, c-format
 msgid "Try the COPY (SELECT ...) TO variant."
 msgstr "Intente la forma COPY (SELECT ...) TO."
 
-#: commands/copyto.c:392
+#: commands/copyto.c:385
 #, c-format
 msgid "cannot copy from materialized view \"%s\""
 msgstr "no se puede copiar desde la vista materializada «%s»"
 
-#: commands/copyto.c:398
+#: commands/copyto.c:391
 #, c-format
 msgid "cannot copy from foreign table \"%s\""
 msgstr "no se puede copiar desde la tabla foránea «%s»"
 
-#: commands/copyto.c:404
+#: commands/copyto.c:397
 #, c-format
 msgid "cannot copy from sequence \"%s\""
 msgstr "no se puede copiar desde la secuencia «%s»"
 
-#: commands/copyto.c:409
+#: commands/copyto.c:402
 #, c-format
 msgid "cannot copy from partitioned table \"%s\""
 msgstr "no se puede hacer copy de la tabla particionada «%s»"
 
-#: commands/copyto.c:415
+#: commands/copyto.c:408
 #, c-format
 msgid "cannot copy from non-table relation \"%s\""
 msgstr "no se puede copiar desde la relación «%s» porque no es una tabla"
 
-#: commands/copyto.c:467
+#: commands/copyto.c:460
 #, c-format
 msgid "DO INSTEAD NOTHING rules are not supported for COPY"
 msgstr "las reglas DO INSTEAD NOTHING no están soportadas para COPY"
 
-#: commands/copyto.c:481
+#: commands/copyto.c:474
 #, c-format
 msgid "conditional DO INSTEAD rules are not supported for COPY"
 msgstr "las reglas DO INSTEAD condicionales no están soportadas para COPY"
 
-#: commands/copyto.c:485
+#: commands/copyto.c:478
 #, c-format
-msgid "DO ALSO rules are not supported for the COPY"
+msgid "DO ALSO rules are not supported for COPY"
 msgstr "las reglas DO ALSO no están soportadas para COPY"
 
-#: commands/copyto.c:490
+#: commands/copyto.c:483
 #, c-format
 msgid "multi-statement DO INSTEAD rules are not supported for COPY"
 msgstr "las reglas DO INSTEAD de múltiples sentencias no están soportadas para COPY"
 
-#: commands/copyto.c:500
+#: commands/copyto.c:493
 #, c-format
 msgid "COPY (SELECT INTO) is not supported"
 msgstr "COPY (SELECT INTO) no está soportado"
 
-#: commands/copyto.c:517
+#: commands/copyto.c:499
+#, c-format
+msgid "COPY query must not be a utility command"
+msgstr "la consulta COPY no debe ser una orden de utilidad"
+
+#: commands/copyto.c:515
 #, c-format
 msgid "COPY query must have a RETURNING clause"
 msgstr "la consulta COPY debe tener una cláusula RETURNING"
 
-#: commands/copyto.c:546
+#: commands/copyto.c:544
 #, c-format
 msgid "relation referenced by COPY statement has changed"
 msgstr "la relación referenciada por la sentencia COPY ha cambiado"
 
-#: commands/copyto.c:605
-#, c-format
-msgid "FORCE_QUOTE column \"%s\" not referenced by COPY"
-msgstr "la columna FORCE_QUOTE «%s» no es referenciada en COPY"
-
-#: commands/copyto.c:673
+#: commands/copyto.c:671
 #, c-format
 msgid "relative path not allowed for COPY to file"
 msgstr "no se permiten rutas relativas para COPY hacia un archivo"
 
-#: commands/copyto.c:692
+#: commands/copyto.c:690
 #, c-format
 msgid "could not open file \"%s\" for writing: %m"
 msgstr "no se pudo abrir el archivo «%s» para escritura: %m"
 
-#: commands/copyto.c:695
+#: commands/copyto.c:693
 #, c-format
 msgid "COPY TO instructs the PostgreSQL server process to write a file. You may want a client-side facility such as psql's \\copy."
 msgstr "COPY TO indica al proceso servidor PostgreSQL escribir a un archivo. Puede desear usar facilidades del lado del cliente, como \\copy de psql."
 
-#: commands/createas.c:215 commands/createas.c:523
+#: commands/createas.c:210 commands/createas.c:516
 #, c-format
 msgid "too many column names were specified"
 msgstr "se especificaron demasiados nombres de columna"
 
-#: commands/createas.c:546
+#: commands/createas.c:539
 #, c-format
 msgid "policies not yet implemented for this command"
 msgstr "las políticas no están implementadas para esta orden"
 
-#: commands/dbcommands.c:822
+#: commands/dbcommands.c:829
 #, c-format
 msgid "LOCATION is not supported anymore"
 msgstr "LOCATION ya no está soportado"
 
-#: commands/dbcommands.c:823
+#: commands/dbcommands.c:830
 #, c-format
 msgid "Consider using tablespaces instead."
 msgstr "Considere usar tablespaces."
 
-#: commands/dbcommands.c:848
+#: commands/dbcommands.c:855
 #, c-format
 msgid "OIDs less than %u are reserved for system objects"
 msgstr "los OIDs menores que %u están reservados para objetos del sistema"
 
-#: commands/dbcommands.c:879 utils/adt/ascii.c:146
+#: commands/dbcommands.c:886 utils/adt/ascii.c:146
 #, c-format
 msgid "%d is not a valid encoding code"
 msgstr "%d no es un código válido de codificación"
 
-#: commands/dbcommands.c:890 utils/adt/ascii.c:128
+#: commands/dbcommands.c:897 utils/adt/ascii.c:128
 #, c-format
 msgid "%s is not a valid encoding name"
 msgstr "%s no es un nombre válido de codificación"
 
-#: commands/dbcommands.c:919
+#: commands/dbcommands.c:931
 #, c-format
 msgid "unrecognized locale provider: %s"
 msgstr "proveedor de ordenamiento no reconocido: %s"
 
-#: commands/dbcommands.c:932 commands/dbcommands.c:2318 commands/user.c:300
-#: commands/user.c:740
+#: commands/dbcommands.c:944 commands/dbcommands.c:2414 commands/user.c:299
+#: commands/user.c:739
 #, c-format
 msgid "invalid connection limit: %d"
 msgstr "límite de conexión no válido: %d"
 
-#: commands/dbcommands.c:953
+#: commands/dbcommands.c:965
 #, c-format
 msgid "permission denied to create database"
 msgstr "se ha denegado el permiso para crear la base de datos"
 
-#: commands/dbcommands.c:977
+#: commands/dbcommands.c:989
 #, c-format
 msgid "template database \"%s\" does not exist"
 msgstr "no existe la base de datos patrón «%s»"
 
-#: commands/dbcommands.c:989
+#: commands/dbcommands.c:999
 #, c-format
-msgid "permission denied to copy database \"%s\""
+msgid "cannot use invalid database \"%s\" as template"
+msgstr "no se puede usar la base de datos «%s» no válida como plantilla"
+
+#: commands/dbcommands.c:1000 commands/dbcommands.c:2444
+#: utils/init/postinit.c:1113
+#, c-format
+msgid "Use DROP DATABASE to drop invalid databases."
+msgstr "Use DROP DATABASE para eliminar una base de datos no válida."
+
+#: commands/dbcommands.c:1011
+#, c-format
+msgid "permission denied to copy database \"%s\""
 msgstr "se ha denegado el permiso para copiar la base de datos «%s»"
 
-#: commands/dbcommands.c:1006
-#, fuzzy, c-format
-#| msgid "invalid parameter list format: \"%s\""
+#: commands/dbcommands.c:1028
+#, c-format
 msgid "invalid create database strategy \"%s\""
-msgstr "el formato de la lista de parámetros no es válido: «%s»"
+msgstr "estrategia de creación de base de dato no válida: «%s»"
 
-#: commands/dbcommands.c:1007
-#, fuzzy, c-format
-#| msgid "Valid values are \"local\" and \"cascaded\"."
-msgid "Valid strategies are \"wal_log\", and \"file_copy\"."
-msgstr "Los valores aceptables son «local» y «cascaded»."
+#: commands/dbcommands.c:1029
+#, c-format
+msgid "Valid strategies are \"wal_log\" and \"file_copy\"."
+msgstr "Las estrategias válidas son «wal_log» y «file_copy»."
 
-#: commands/dbcommands.c:1028
+#: commands/dbcommands.c:1050
 #, c-format
 msgid "invalid server encoding %d"
 msgstr "la codificación de servidor %d no es válida"
 
-#: commands/dbcommands.c:1034 commands/dbcommands.c:1039
+#: commands/dbcommands.c:1056
 #, c-format
-msgid "invalid locale name: \"%s\""
-msgstr "nombre de configuración regional no válido: «%s»"
+msgid "invalid LC_COLLATE locale name: \"%s\""
+msgstr "nombre de configuración regional LC_COLLATE no válido: «%s»"
 
-#: commands/dbcommands.c:1049
-#, fuzzy, c-format
-#| msgid "encoding \"%s\" not supported by ICU"
-msgid "encoding \"%s\" is not supported with ICU provider"
-msgstr "la codificación «%s» no estæ soportada por ICU"
+#: commands/dbcommands.c:1057 commands/dbcommands.c:1063
+#, c-format
+msgid "If the locale name is specific to ICU, use ICU_LOCALE."
+msgstr "Si el nombre de configuración regional es específico a ICU, use ICU_LOCALE."
+
+#: commands/dbcommands.c:1062
+#, c-format
+msgid "invalid LC_CTYPE locale name: \"%s\""
+msgstr "nombre de configuración regional LC_CTYPE no válido: «%s»"
 
-#: commands/dbcommands.c:1059
+#: commands/dbcommands.c:1074
 #, c-format
-msgid "ICU locale must be specified"
-msgstr "el locale ICU debe ser especificado"
+msgid "BUILTIN_LOCALE cannot be specified unless locale provider is builtin"
+msgstr "no se puede especificar BUILTIN_LOCALE a menos que el proveedor de configuración regional sea builtin"
 
-#: commands/dbcommands.c:1088
+#: commands/dbcommands.c:1082
 #, c-format
 msgid "ICU locale cannot be specified unless locale provider is ICU"
 msgstr "no se puede especificar una configuración regional ICU a menos que el proveedor de configuración regional sea ICU"
 
-#: commands/dbcommands.c:1111
+#: commands/dbcommands.c:1100
+#, c-format
+msgid "LOCALE or BUILTIN_LOCALE must be specified"
+msgstr "debe especificarse LOCALE o BUILTIN_LOCALE"
+
+#: commands/dbcommands.c:1109
+#, c-format
+msgid "encoding \"%s\" is not supported with ICU provider"
+msgstr "la codificación «%s» no está soportada por ICU"
+
+#: commands/dbcommands.c:1119
+#, c-format
+msgid "LOCALE or ICU_LOCALE must be specified"
+msgstr "debe especificarse LOCALE o ICU_LOCALE"
+
+#: commands/dbcommands.c:1163
 #, c-format
 msgid "new encoding (%s) is incompatible with the encoding of the template database (%s)"
 msgstr "la nueva codificación (%s) es incompatible con la codificación de la base de datos patrón (%s)"
 
-#: commands/dbcommands.c:1114
+#: commands/dbcommands.c:1166
 #, c-format
 msgid "Use the same encoding as in the template database, or use template0 as template."
 msgstr "Use la misma codificación que en la base de datos patrón, o bien use template0 como patrón."
 
-#: commands/dbcommands.c:1119
+#: commands/dbcommands.c:1171
 #, c-format
 msgid "new collation (%s) is incompatible with the collation of the template database (%s)"
 msgstr "la nueva «collation» (%s) es incompatible con la «collation» de la base de datos patrón (%s)"
 
-#: commands/dbcommands.c:1121
+#: commands/dbcommands.c:1173
 #, c-format
 msgid "Use the same collation as in the template database, or use template0 as template."
 msgstr "Use la misma «collation» que en la base de datos patrón, o bien use template0 como patrón."
 
-#: commands/dbcommands.c:1126
+#: commands/dbcommands.c:1178
 #, c-format
 msgid "new LC_CTYPE (%s) is incompatible with the LC_CTYPE of the template database (%s)"
 msgstr "el nuevo LC_CTYPE (%s) es incompatible con el LC_CTYPE de la base de datos patrón (%s)"
 
-#: commands/dbcommands.c:1128
+#: commands/dbcommands.c:1180
 #, c-format
 msgid "Use the same LC_CTYPE as in the template database, or use template0 as template."
 msgstr "Use el mismo LC_CTYPE que en la base de datos patrón, o bien use template0 como patrón."
 
-#: commands/dbcommands.c:1133
-#, fuzzy, c-format
-#| msgid "new encoding (%s) is incompatible with the encoding of the template database (%s)"
+#: commands/dbcommands.c:1185
+#, c-format
 msgid "new locale provider (%s) does not match locale provider of the template database (%s)"
-msgstr "la nueva codificación (%s) es incompatible con la codificación de la base de datos patrón (%s)"
+msgstr "el nuevo proveedor de configuración regional (%s) no coincide con el proveedor de la base de datos patrón (%s)"
 
-#: commands/dbcommands.c:1135
-#, fuzzy, c-format
-#| msgid "Use the same encoding as in the template database, or use template0 as template."
+#: commands/dbcommands.c:1187
+#, c-format
 msgid "Use the same locale provider as in the template database, or use template0 as template."
-msgstr "Use la misma codificación que en la base de datos patrón, o bien use template0 como patrón."
+msgstr "Use el mismo proveedor de «locale» que en la base de datos patrón, o bien use template0 como patrón."
 
-#: commands/dbcommands.c:1147
-#, fuzzy, c-format
-#| msgid "new collation (%s) is incompatible with the collation of the template database (%s)"
+#: commands/dbcommands.c:1199
+#, c-format
 msgid "new ICU locale (%s) is incompatible with the ICU locale of the template database (%s)"
-msgstr "la nueva «collation» (%s) es incompatible con la «collation» de la base de datos patrón (%s)"
+msgstr "la nueva configuración regional ICU (%s) es incompatible con la configuración regional ICU de la base de datos patrón (%s)"
 
-#: commands/dbcommands.c:1149
-#, fuzzy, c-format
-#| msgid "Use the same collation as in the template database, or use template0 as template."
+#: commands/dbcommands.c:1201
+#, c-format
 msgid "Use the same ICU locale as in the template database, or use template0 as template."
-msgstr "Use la misma «collation» que en la base de datos patrón, o bien use template0 como patrón."
+msgstr "Use la misma configuración regional («locale») que en la base de datos patrón, o bien use template0 como patrón."
 
-#: commands/dbcommands.c:1160
-#, fuzzy, c-format
-#| msgid "new collation (%s) is incompatible with the collation of the template database (%s)"
+#: commands/dbcommands.c:1212
+#, c-format
 msgid "new ICU collation rules (%s) are incompatible with the ICU collation rules of the template database (%s)"
-msgstr "la nueva «collation» (%s) es incompatible con la «collation» de la base de datos patrón (%s)"
+msgstr "las nuevas reglas de «collation» ICU (%s) son incompatibles con las reglas de «collation» ICU de la base de datos patrón (%s)"
 
-#: commands/dbcommands.c:1162
-#, fuzzy, c-format
-#| msgid "Use the same collation as in the template database, or use template0 as template."
+#: commands/dbcommands.c:1214
+#, c-format
 msgid "Use the same ICU collation rules as in the template database, or use template0 as template."
-msgstr "Use la misma «collation» que en la base de datos patrón, o bien use template0 como patrón."
+msgstr "Use las mismas reglas de «collation» ICU que en la base de datos patrón, o bien use template0 como patrón."
 
-#: commands/dbcommands.c:1185
+#: commands/dbcommands.c:1243
 #, c-format
 msgid "template database \"%s\" has a collation version, but no actual collation version could be determined"
-msgstr ""
+msgstr "la base de datos patrón «%s» tiene una versión de configuración regional, pero no se pudo determinar una versión real"
 
-#: commands/dbcommands.c:1190
-#, fuzzy, c-format
-#| msgid "template database \"%s\" does not exist"
+#: commands/dbcommands.c:1248
+#, c-format
 msgid "template database \"%s\" has a collation version mismatch"
-msgstr "no existe la base de datos patrón «%s»"
+msgstr "discordancia en la versión de «collation» de la base de datos patrón «%s»"
 
-#: commands/dbcommands.c:1192
-#, fuzzy, c-format
-#| msgid "The collation in the database was created using version %s, but the operating system provides version %s."
+#: commands/dbcommands.c:1250
+#, c-format
 msgid "The template database was created using collation version %s, but the operating system provides version %s."
-msgstr "El ordenamiento en la base de datos fue creado usando la versión %s, pero el sistema operativo provee la versión %s."
+msgstr "La base de datos patrón fue creada usando la versión %s, pero el sistema operativo provee la versión %s."
 
-#: commands/dbcommands.c:1195
-#, fuzzy, c-format
-#| msgid "Rebuild all objects affected by this collation and run ALTER COLLATION %s REFRESH VERSION, or build PostgreSQL with the right library version."
+#: commands/dbcommands.c:1253
+#, c-format
 msgid "Rebuild all objects in the template database that use the default collation and run ALTER DATABASE %s REFRESH COLLATION VERSION, or build PostgreSQL with the right library version."
-msgstr "Reconstruya todos los objetos afectados por este ordenamiento y ejecute ALTER COLLATION %s REFRESH VERSION, o construya PostgreSQL con la versión correcta de la biblioteca."
+msgstr "Reconstruya todos los objetos de la base de datos patrón afectados por este ordenamiento y ejecute ALTER DATABASE %s REFRESH COLLATION VERSION, o construya PostgreSQL con la versión correcta de la biblioteca."
 
-#: commands/dbcommands.c:1231 commands/dbcommands.c:1947
+#: commands/dbcommands.c:1298 commands/dbcommands.c:2041
 #, c-format
 msgid "pg_global cannot be used as default tablespace"
 msgstr "no puede usarse pg_global como tablespace por omisión"
 
-#: commands/dbcommands.c:1257
+#: commands/dbcommands.c:1324
 #, c-format
 msgid "cannot assign new default tablespace \"%s\""
 msgstr "no se puede asignar el nuevo tablespace por omisión «%s»"
 
-#: commands/dbcommands.c:1259
+#: commands/dbcommands.c:1326
 #, c-format
 msgid "There is a conflict because database \"%s\" already has some tables in this tablespace."
 msgstr "Hay un conflicto puesto que la base de datos «%s» ya tiene algunas tablas en este tablespace."
 
-#: commands/dbcommands.c:1289 commands/dbcommands.c:1820
+#: commands/dbcommands.c:1356 commands/dbcommands.c:1912
 #, c-format
 msgid "database \"%s\" already exists"
 msgstr "la base de datos «%s» ya existe"
 
-#: commands/dbcommands.c:1303
+#: commands/dbcommands.c:1370
 #, c-format
 msgid "source database \"%s\" is being accessed by other users"
 msgstr "la base de datos de origen «%s» está siendo utilizada por otros usuarios"
 
-#: commands/dbcommands.c:1325
-#, fuzzy, c-format
-#| msgid "database \"%s\" already exists"
+#: commands/dbcommands.c:1392
+#, c-format
 msgid "database OID %u is already in use by database \"%s\""
-msgstr "la base de datos «%s» ya existe"
+msgstr "el OID de base de datos %u ya está en uso por la base de datos «%s»"
 
-#: commands/dbcommands.c:1331
+#: commands/dbcommands.c:1398
 #, c-format
 msgid "data directory with the specified OID %u already exists"
 msgstr "el directorio de datos con el OID %u especificado ya existe"
 
-#: commands/dbcommands.c:1503 commands/dbcommands.c:1518
+#: commands/dbcommands.c:1571 commands/dbcommands.c:1586
+#: utils/adt/pg_locale.c:2588
 #, c-format
 msgid "encoding \"%s\" does not match locale \"%s\""
 msgstr "la codificación «%s» no coincide con la configuración regional «%s»"
 
-#: commands/dbcommands.c:1506
+#: commands/dbcommands.c:1574
 #, c-format
 msgid "The chosen LC_CTYPE setting requires encoding \"%s\"."
 msgstr "El parámetro LC_CTYPE escogido requiere la codificación «%s»."
 
-#: commands/dbcommands.c:1521
+#: commands/dbcommands.c:1589
 #, c-format
 msgid "The chosen LC_COLLATE setting requires encoding \"%s\"."
 msgstr "El parámetro LC_COLLATE escogido requiere la codificación «%s»."
 
-#: commands/dbcommands.c:1601
+#: commands/dbcommands.c:1672
 #, c-format
 msgid "database \"%s\" does not exist, skipping"
 msgstr "no existe la base de datos «%s», omitiendo"
 
-#: commands/dbcommands.c:1625
+#: commands/dbcommands.c:1696
 #, c-format
 msgid "cannot drop a template database"
 msgstr "no se puede borrar una base de datos patrón"
 
-#: commands/dbcommands.c:1631
+#: commands/dbcommands.c:1702
 #, c-format
 msgid "cannot drop the currently open database"
 msgstr "no se puede eliminar la base de datos activa"
 
-#: commands/dbcommands.c:1644
+#: commands/dbcommands.c:1715
 #, c-format
 msgid "database \"%s\" is used by an active logical replication slot"
-msgstr "la base de datos «%s» está en uso por un slot de replicación activo"
+msgstr "la base de datos «%s» está en uso por un slot de replicación lógica activo"
 
-#: commands/dbcommands.c:1646
+#: commands/dbcommands.c:1717
 #, c-format
 msgid "There is %d active slot."
 msgid_plural "There are %d active slots."
 msgstr[0] "Hay %d slot activo."
 msgstr[1] "Hay %d slots activos."
 
-#: commands/dbcommands.c:1660
+#: commands/dbcommands.c:1731
 #, c-format
 msgid "database \"%s\" is being used by logical replication subscription"
 msgstr "la base de datos «%s» está siendo utilizada por suscripciones de replicación lógica"
 
-#: commands/dbcommands.c:1662
+#: commands/dbcommands.c:1733
 #, c-format
 msgid "There is %d subscription."
 msgid_plural "There are %d subscriptions."
 msgstr[0] "Hay %d suscripción."
 msgstr[1] "Hay %d suscripciones."
 
-#: commands/dbcommands.c:1683 commands/dbcommands.c:1842
-#: commands/dbcommands.c:1969
+#: commands/dbcommands.c:1754 commands/dbcommands.c:1934
+#: commands/dbcommands.c:2063
 #, c-format
 msgid "database \"%s\" is being accessed by other users"
 msgstr "la base de datos «%s» está siendo utilizada por otros usuarios"
 
-#: commands/dbcommands.c:1802
+#: commands/dbcommands.c:1894
 #, c-format
 msgid "permission denied to rename database"
 msgstr "se ha denegado el permiso para cambiar el nombre a la base de datos"
 
-#: commands/dbcommands.c:1831
+#: commands/dbcommands.c:1923
 #, c-format
 msgid "current database cannot be renamed"
 msgstr "no se puede cambiar el nombre de la base de datos activa"
 
-#: commands/dbcommands.c:1925
+#: commands/dbcommands.c:2019
 #, c-format
 msgid "cannot change the tablespace of the currently open database"
 msgstr "no se puede cambiar el tablespace de la base de datos activa"
 
-#: commands/dbcommands.c:2031
+#: commands/dbcommands.c:2125
 #, c-format
 msgid "some relations of database \"%s\" are already in tablespace \"%s\""
 msgstr "algunas relaciones de la base de datos «%s» ya están en el tablespace «%s»"
 
-#: commands/dbcommands.c:2033
+#: commands/dbcommands.c:2127
 #, c-format
 msgid "You must move them back to the database's default tablespace before using this command."
 msgstr "Debe moverlas de vuelta al tablespace por omisión de la base de datos antes de ejecutar esta orden."
 
-#: commands/dbcommands.c:2160 commands/dbcommands.c:2868
-#: commands/dbcommands.c:3132 commands/dbcommands.c:3245
+#: commands/dbcommands.c:2256 commands/dbcommands.c:2999
+#: commands/dbcommands.c:3299 commands/dbcommands.c:3412
 #, c-format
 msgid "some useless files may be left behind in old database directory \"%s\""
 msgstr "algunos archivos inútiles pueden haber quedado en el directorio \"%s\""
 
-#: commands/dbcommands.c:2221
+#: commands/dbcommands.c:2317
 #, c-format
 msgid "unrecognized DROP DATABASE option \"%s\""
 msgstr "opción de DROP DATABASE «%s» no reconocida"
 
-#: commands/dbcommands.c:2299
+#: commands/dbcommands.c:2395
 #, c-format
 msgid "option \"%s\" cannot be specified with other options"
 msgstr "la opción «%s» no puede ser especificada con otras opciones"
 
-#: commands/dbcommands.c:2355
+#: commands/dbcommands.c:2443
+#, c-format
+msgid "cannot alter invalid database \"%s\""
+msgstr "no se puede alterar base de datos no válida «%s»"
+
+#: commands/dbcommands.c:2460
 #, c-format
 msgid "cannot disallow connections for current database"
 msgstr "no se pueden prohibir las conexiones para la base de datos actual"
 
-#: commands/dbcommands.c:2570
+#: commands/dbcommands.c:2690
 #, c-format
 msgid "permission denied to change owner of database"
 msgstr "se ha denegado el permiso para cambiar el dueño de la base de datos"
 
-#: commands/dbcommands.c:2974
+#: commands/dbcommands.c:3105
 #, c-format
 msgid "There are %d other session(s) and %d prepared transaction(s) using the database."
 msgstr "Hay otras %d sesiones y %d transacciones preparadas usando la base de datos."
 
-#: commands/dbcommands.c:2977
+#: commands/dbcommands.c:3108
 #, c-format
 msgid "There is %d other session using the database."
 msgid_plural "There are %d other sessions using the database."
 msgstr[0] "Hay %d otra sesión usando la base de datos."
 msgstr[1] "Hay otras %d sesiones usando la base de datos."
 
-#: commands/dbcommands.c:2982 storage/ipc/procarray.c:3798
+#: commands/dbcommands.c:3113 storage/ipc/procarray.c:3859
 #, c-format
 msgid "There is %d prepared transaction using the database."
 msgid_plural "There are %d prepared transactions using the database."
 msgstr[0] "Hay %d otra transacción preparada usando la base de datos."
 msgstr[1] "Hay otras %d transacciones preparadas usando la base de datos."
 
-#: commands/dbcommands.c:3088
-#, fuzzy, c-format
-#| msgid "removing WAL directory \"%s\""
+#: commands/dbcommands.c:3255
+#, c-format
 msgid "missing directory \"%s\""
-msgstr "eliminando el directorio de WAL «%s»"
+msgstr "directorio «%s» faltante"
 
-#: commands/dbcommands.c:3146 commands/tablespace.c:190
-#: commands/tablespace.c:639
+#: commands/dbcommands.c:3313 commands/tablespace.c:184
+#: commands/tablespace.c:633
 #, c-format
 msgid "could not stat directory \"%s\": %m"
 msgstr "no se pudo hacer stat al directorio «%s»: %m"
 
-#: commands/define.c:54 commands/define.c:258 commands/define.c:290
-#: commands/define.c:318 commands/define.c:364
+#: commands/define.c:53 commands/define.c:257 commands/define.c:289
+#: commands/define.c:317 commands/define.c:363
 #, c-format
 msgid "%s requires a parameter"
 msgstr "%s requiere un parámetro"
 
-#: commands/define.c:87 commands/define.c:98 commands/define.c:192
-#: commands/define.c:210 commands/define.c:225 commands/define.c:243
+#: commands/define.c:86 commands/define.c:97 commands/define.c:191
+#: commands/define.c:209 commands/define.c:224 commands/define.c:242
 #, c-format
 msgid "%s requires a numeric value"
 msgstr "%s requiere un valor numérico"
 
-#: commands/define.c:154
+#: commands/define.c:153
 #, c-format
 msgid "%s requires a Boolean value"
 msgstr "«%s» requiere un valor lógico (booleano)"
 
-#: commands/define.c:168 commands/define.c:177 commands/define.c:327
+#: commands/define.c:167 commands/define.c:176 commands/define.c:326
 #, c-format
 msgid "%s requires an integer value"
 msgstr "%s requiere valor entero"
 
-#: commands/define.c:272
+#: commands/define.c:271
 #, c-format
 msgid "argument of %s must be a name"
 msgstr "el argumento de %s debe ser un nombre"
 
-#: commands/define.c:302
+#: commands/define.c:301
 #, c-format
 msgid "argument of %s must be a type name"
 msgstr "el argumento de %s debe ser un nombre de tipo"
 
-#: commands/define.c:348
+#: commands/define.c:347
 #, c-format
 msgid "invalid argument for %s: \"%s\""
 msgstr "argumento no válido para %s: «%s»"
 
-#: commands/dropcmds.c:101 commands/functioncmds.c:1387
-#: utils/adt/ruleutils.c:2897
+#: commands/dropcmds.c:96 commands/functioncmds.c:1382
+#: utils/adt/ruleutils.c:2910
 #, c-format
 msgid "\"%s\" is an aggregate function"
 msgstr "«%s» es una función de agregación"
 
-#: commands/dropcmds.c:103
+#: commands/dropcmds.c:98
 #, c-format
 msgid "Use DROP AGGREGATE to drop aggregate functions."
 msgstr "Use DROP AGGREGATE para eliminar funciones de agregación."
 
-#: commands/dropcmds.c:158 commands/sequence.c:474 commands/tablecmds.c:3710
-#: commands/tablecmds.c:3868 commands/tablecmds.c:3920
-#: commands/tablecmds.c:16468 tcop/utility.c:1335
+#: commands/dropcmds.c:153 commands/sequence.c:462 commands/tablecmds.c:3892
+#: commands/tablecmds.c:4050 commands/tablecmds.c:4102
+#: commands/tablecmds.c:17161 tcop/utility.c:1325
 #, c-format
 msgid "relation \"%s\" does not exist, skipping"
 msgstr "no existe la relación «%s», omitiendo"
 
-#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1285
+#: commands/dropcmds.c:183 commands/dropcmds.c:282 commands/tablecmds.c:1409
 #, c-format
 msgid "schema \"%s\" does not exist, skipping"
 msgstr "el esquema «%s» no existe, omitiendo"
 
-#: commands/dropcmds.c:228 commands/dropcmds.c:267 commands/tablecmds.c:277
+#: commands/dropcmds.c:223 commands/dropcmds.c:262 commands/tablecmds.c:286
 #, c-format
 msgid "type \"%s\" does not exist, skipping"
 msgstr "el tipo «%s» no existe, omitiendo"
 
-#: commands/dropcmds.c:257
+#: commands/dropcmds.c:252
 #, c-format
 msgid "access method \"%s\" does not exist, skipping"
 msgstr "no existe el método de acceso «%s», omitiendo"
 
-#: commands/dropcmds.c:275
+#: commands/dropcmds.c:270
 #, c-format
 msgid "collation \"%s\" does not exist, skipping"
 msgstr "no existe el ordenamiento (collation) «%s», omitiendo"
 
-#: commands/dropcmds.c:282
+#: commands/dropcmds.c:277
 #, c-format
 msgid "conversion \"%s\" does not exist, skipping"
 msgstr "no existe la conversión «%s», omitiendo"
 
-#: commands/dropcmds.c:293 commands/statscmds.c:654
+#: commands/dropcmds.c:288 commands/statscmds.c:664
 #, c-format
 msgid "statistics object \"%s\" does not exist, skipping"
 msgstr "no existe el objeto de estadísticas «%s», omitiendo"
 
-#: commands/dropcmds.c:300
+#: commands/dropcmds.c:295
 #, c-format
 msgid "text search parser \"%s\" does not exist, skipping"
 msgstr "el analizador de búsqueda en texto «%s» no existe, omitiendo"
 
-#: commands/dropcmds.c:307
+#: commands/dropcmds.c:302
 #, c-format
 msgid "text search dictionary \"%s\" does not exist, skipping"
 msgstr "el diccionario de búsqueda en texto «%s» no existe, omitiendo"
 
-#: commands/dropcmds.c:314
+#: commands/dropcmds.c:309
 #, c-format
 msgid "text search template \"%s\" does not exist, skipping"
 msgstr "la plantilla de búsqueda en texto «%s» no existe, omitiendo"
 
-#: commands/dropcmds.c:321
+#: commands/dropcmds.c:316
 #, c-format
 msgid "text search configuration \"%s\" does not exist, skipping"
 msgstr "no existe la configuración de búsqueda en texto «%s», omitiendo"
 
-#: commands/dropcmds.c:326
+#: commands/dropcmds.c:321
 #, c-format
 msgid "extension \"%s\" does not exist, skipping"
 msgstr "no existe la extensión «%s», omitiendo"
 
-#: commands/dropcmds.c:336
+#: commands/dropcmds.c:331
 #, c-format
 msgid "function %s(%s) does not exist, skipping"
 msgstr "no existe la función %s(%s), omitiendo"
 
-#: commands/dropcmds.c:349
+#: commands/dropcmds.c:344
 #, c-format
 msgid "procedure %s(%s) does not exist, skipping"
 msgstr "el procedimiento %s(%s) no existe, omitiendo"
 
-#: commands/dropcmds.c:362
+#: commands/dropcmds.c:357
 #, c-format
 msgid "routine %s(%s) does not exist, skipping"
 msgstr "no existe la rutina %s(%s), omitiendo"
 
-#: commands/dropcmds.c:375
+#: commands/dropcmds.c:370
 #, c-format
 msgid "aggregate %s(%s) does not exist, skipping"
 msgstr "la función de agregación %s(%s) no existe, omitiendo"
 
-#: commands/dropcmds.c:388
+#: commands/dropcmds.c:383
 #, c-format
 msgid "operator %s does not exist, skipping"
 msgstr "el operador %s no existe, omitiendo"
 
-#: commands/dropcmds.c:394
+#: commands/dropcmds.c:389
 #, c-format
 msgid "language \"%s\" does not exist, skipping"
 msgstr "el lenguaje «%s» no existe, omitiendo"
 
-#: commands/dropcmds.c:403
+#: commands/dropcmds.c:398
 #, c-format
 msgid "cast from type %s to type %s does not exist, skipping"
 msgstr "no existe la conversión del tipo %s al tipo %s, omitiendo"
 
-#: commands/dropcmds.c:412
+#: commands/dropcmds.c:407
 #, c-format
 msgid "transform for type %s language \"%s\" does not exist, skipping"
 msgstr "la transformación para el tipo %s lenguaje «%s» no existe, omitiendo"
 
-#: commands/dropcmds.c:420
+#: commands/dropcmds.c:415
 #, c-format
 msgid "trigger \"%s\" for relation \"%s\" does not exist, skipping"
-msgstr "disparador «%s» para la relación «%s» no existe, omitiendo"
+msgstr "“trigger” «%s» para la relación «%s» no existe, omitiendo"
 
-#: commands/dropcmds.c:429
+#: commands/dropcmds.c:424
 #, c-format
 msgid "policy \"%s\" for relation \"%s\" does not exist, skipping"
 msgstr "la política «%s» para la relación «%s» no existe, omitiendo"
 
-#: commands/dropcmds.c:436
+#: commands/dropcmds.c:431
 #, c-format
 msgid "event trigger \"%s\" does not exist, skipping"
-msgstr "el disparador por eventos «%s» no existe, omitiendo"
+msgstr "el “trigger” por eventos «%s» no existe, omitiendo"
 
-#: commands/dropcmds.c:442
+#: commands/dropcmds.c:437
 #, c-format
 msgid "rule \"%s\" for relation \"%s\" does not exist, skipping"
 msgstr "la regla «%s» para la relación «%s» no existe, omitiendo"
 
-#: commands/dropcmds.c:449
+#: commands/dropcmds.c:444
 #, c-format
 msgid "foreign-data wrapper \"%s\" does not exist, skipping"
 msgstr "no existe el conector de datos externos «%s», omitiendo"
 
-#: commands/dropcmds.c:453 commands/foreigncmds.c:1360
+#: commands/dropcmds.c:448 commands/foreigncmds.c:1360
 #, c-format
 msgid "server \"%s\" does not exist, skipping"
 msgstr "el servidor «%s» no existe, omitiendo"
 
-#: commands/dropcmds.c:462
+#: commands/dropcmds.c:457
 #, c-format
 msgid "operator class \"%s\" does not exist for access method \"%s\", skipping"
 msgstr "no existe la clase de operadores «%s» para el método de acceso «%s», omitiendo"
 
-#: commands/dropcmds.c:474
+#: commands/dropcmds.c:469
 #, c-format
 msgid "operator family \"%s\" does not exist for access method \"%s\", skipping"
 msgstr "no existe la familia de operadores «%s» para el método de acceso «%s», omitiendo"
 
-#: commands/dropcmds.c:481
+#: commands/dropcmds.c:476
 #, c-format
 msgid "publication \"%s\" does not exist, skipping"
 msgstr "no existe la publicación «%s», omitiendo"
 
-#: commands/event_trigger.c:125
+#: commands/event_trigger.c:137
 #, c-format
 msgid "permission denied to create event trigger \"%s\""
-msgstr "se ha denegado el permiso para crear el disparador por eventos «%s»"
+msgstr "se ha denegado el permiso para crear el “trigger” por eventos «%s»"
 
-#: commands/event_trigger.c:127
+#: commands/event_trigger.c:139
 #, c-format
 msgid "Must be superuser to create an event trigger."
-msgstr "Debe ser superusuario para crear un disparador por eventos."
+msgstr "Debe ser superusuario para crear un “trigger” por eventos."
 
-#: commands/event_trigger.c:136
+#: commands/event_trigger.c:149
 #, c-format
 msgid "unrecognized event name \"%s\""
 msgstr "nommre de evento «%s» no reconocido"
 
-#: commands/event_trigger.c:153
+#: commands/event_trigger.c:166
 #, c-format
 msgid "unrecognized filter variable \"%s\""
 msgstr "variable de filtro «%s» no reconocida"
 
-#: commands/event_trigger.c:207
+#: commands/event_trigger.c:181
+#, c-format
+msgid "tag filtering is not supported for login event triggers"
+msgstr "el filtrado de «tags» no está soportado en “triggers” por evento de login"
+
+#: commands/event_trigger.c:224
 #, c-format
 msgid "filter value \"%s\" not recognized for filter variable \"%s\""
 msgstr "el valor de filtro «%s» no es reconocido por la variable de filtro «%s»"
 
 #. translator: %s represents an SQL statement name
-#: commands/event_trigger.c:213 commands/event_trigger.c:235
+#: commands/event_trigger.c:230 commands/event_trigger.c:252
 #, c-format
 msgid "event triggers are not supported for %s"
-msgstr "los disparadores por eventos no están soportados para %s"
+msgstr "los “triggers” por evento no están soportados para %s"
 
-#: commands/event_trigger.c:248
+#: commands/event_trigger.c:265
 #, c-format
 msgid "filter variable \"%s\" specified more than once"
 msgstr "la variable de filtro «%s» fue especificada más de una vez"
 
-#: commands/event_trigger.c:376 commands/event_trigger.c:420
-#: commands/event_trigger.c:514
+#: commands/event_trigger.c:438 commands/event_trigger.c:490
+#: commands/event_trigger.c:584
 #, c-format
 msgid "event trigger \"%s\" does not exist"
-msgstr "no existe el disparador por eventos «%s»"
+msgstr "no existe el “trigger” por eventos «%s»"
 
-#: commands/event_trigger.c:452
+#: commands/event_trigger.c:522
 #, c-format
 msgid "event trigger with OID %u does not exist"
-msgstr "no existe el disparador por eventos con OID %u"
+msgstr "no existe el “trigger” por eventos con OID %u"
 
-#: commands/event_trigger.c:482
+#: commands/event_trigger.c:552
 #, c-format
 msgid "permission denied to change owner of event trigger \"%s\""
-msgstr "se ha denegado el permiso para cambiar el dueño del disparador por eventos «%s»"
+msgstr "se ha denegado el permiso para cambiar el dueño del “trigger” por eventos «%s»"
 
-#: commands/event_trigger.c:484
+#: commands/event_trigger.c:554
 #, c-format
 msgid "The owner of an event trigger must be a superuser."
-msgstr "El dueño de un disparador por eventos debe ser un superusuario."
+msgstr "El dueño de un “trigger” por eventos debe ser un superusuario."
 
-#: commands/event_trigger.c:1304
+#: commands/event_trigger.c:1409
 #, c-format
 msgid "%s can only be called in a sql_drop event trigger function"
-msgstr "%s sólo puede invocarse en una función de un disparador en el evento sql_drop"
+msgstr "%s sólo puede invocarse en una función de un “trigger” en el evento sql_drop"
 
-#: commands/event_trigger.c:1397 commands/event_trigger.c:1418
+#: commands/event_trigger.c:1502 commands/event_trigger.c:1523
 #, c-format
 msgid "%s can only be called in a table_rewrite event trigger function"
-msgstr "%s sólo puede invocarse en una función de un disparador en el evento table_rewrite"
+msgstr "%s sólo puede invocarse en una función de un “trigger” en el evento table_rewrite"
 
-#: commands/event_trigger.c:1831
+#: commands/event_trigger.c:1936
 #, c-format
 msgid "%s can only be called in an event trigger function"
-msgstr "%s sólo puede invocarse en una función de un disparador por eventos"
+msgstr "%s sólo puede invocarse en una función de un “trigger” por eventos"
 
-#: commands/explain.c:220
+#: commands/explain.c:241 commands/explain.c:266
 #, c-format
 msgid "unrecognized value for EXPLAIN option \"%s\": \"%s\""
 msgstr "valor no reconocido para la opción de EXPLAIN «%s»: «%s»"
 
-#: commands/explain.c:227
+#: commands/explain.c:273
 #, c-format
 msgid "unrecognized EXPLAIN option \"%s\""
 msgstr "opción de EXPLAIN «%s» no reconocida"
 
-#: commands/explain.c:236
+#: commands/explain.c:282
 #, c-format
 msgid "EXPLAIN option WAL requires ANALYZE"
 msgstr "la opción WAL de EXPLAIN requiere ANALYZE"
 
-#: commands/explain.c:245
+#: commands/explain.c:291
 #, c-format
 msgid "EXPLAIN option TIMING requires ANALYZE"
 msgstr "la opción TIMING de EXPLAIN requiere ANALYZE"
 
-#: commands/explain.c:251
-#, fuzzy, c-format
-#| msgid "options -d/--dbname and -f/--file cannot be used together"
+#: commands/explain.c:297
+#, c-format
+msgid "EXPLAIN option SERIALIZE requires ANALYZE"
+msgstr "la opción SERIALIZE de EXPLAIN requiere ANALYZE"
+
+#: commands/explain.c:303
+#, c-format
 msgid "EXPLAIN options ANALYZE and GENERIC_PLAN cannot be used together"
-msgstr "las opciones -d/--dbname y -f/--file no pueden usarse juntas"
+msgstr "las opciones ANALYZE y GENERIC_PLAN de EXPLAIN no pueden usarse juntas"
 
-#: commands/extension.c:177 commands/extension.c:3009
+#: commands/extension.c:178 commands/extension.c:3031
 #, c-format
 msgid "extension \"%s\" does not exist"
 msgstr "no existe la extensión «%s»"
 
-#: commands/extension.c:276 commands/extension.c:285 commands/extension.c:297
-#: commands/extension.c:307
+#: commands/extension.c:277 commands/extension.c:286 commands/extension.c:298
+#: commands/extension.c:308
 #, c-format
 msgid "invalid extension name: \"%s\""
 msgstr "nombre de extensión no válido: «%s»"
 
-#: commands/extension.c:277
+#: commands/extension.c:278
 #, c-format
 msgid "Extension names must not be empty."
 msgstr "Los nombres de extensión no deben ser vacíos."
 
-#: commands/extension.c:286
+#: commands/extension.c:287
 #, c-format
 msgid "Extension names must not contain \"--\"."
 msgstr "Los nombres de extensión no deben contener «--»."
 
-#: commands/extension.c:298
+#: commands/extension.c:299
 #, c-format
 msgid "Extension names must not begin or end with \"-\"."
 msgstr "Los nombres de extensión no deben empezar ni terminar con «-»."
 
-#: commands/extension.c:308
+#: commands/extension.c:309
 #, c-format
 msgid "Extension names must not contain directory separator characters."
 msgstr "Los nombres de extensión no deben contener caracteres separadores de directorio."
 
-#: commands/extension.c:323 commands/extension.c:332 commands/extension.c:341
-#: commands/extension.c:351
+#: commands/extension.c:324 commands/extension.c:333 commands/extension.c:342
+#: commands/extension.c:352
 #, c-format
 msgid "invalid extension version name: \"%s\""
 msgstr "nombre de versión de extensión no válido: «%s»"
 
-#: commands/extension.c:324
+#: commands/extension.c:325
 #, c-format
 msgid "Version names must not be empty."
 msgstr "Los nombres de versión no deben ser vacíos."
 
-#: commands/extension.c:333
+#: commands/extension.c:334
 #, c-format
 msgid "Version names must not contain \"--\"."
 msgstr "Los nombres de versión no deben contener «--»."
 
-#: commands/extension.c:342
+#: commands/extension.c:343
 #, c-format
 msgid "Version names must not begin or end with \"-\"."
 msgstr "Los nombres de versión no deben empezar ni terminar con «-»."
 
-#: commands/extension.c:352
+#: commands/extension.c:353
 #, c-format
 msgid "Version names must not contain directory separator characters."
 msgstr "Los nombres de versión no deben contener caracteres separadores de directorio."
 
-#: commands/extension.c:506
-#, fuzzy, c-format
-#| msgid "extension \"%s\" does not exist"
+#: commands/extension.c:507
+#, c-format
 msgid "extension \"%s\" is not available"
-msgstr "no existe la extensión «%s»"
+msgstr "la extensión «%s» no está disponible"
 
-#: commands/extension.c:507
-#, fuzzy, c-format
-#| msgid "could not open extension control file \"%s\": %m"
+#: commands/extension.c:508
+#, c-format
 msgid "Could not open extension control file \"%s\": %m."
-msgstr "no se pudo abrir el archivo de control de extensión «%s»: %m"
+msgstr "No se pudo abrir el archivo de control de extensión «%s»: %m."
 
-#: commands/extension.c:509
+#: commands/extension.c:510
 #, c-format
 msgid "The extension must first be installed on the system where PostgreSQL is running."
 msgstr "La extensión debe primero ser instalada en el sistema donde PostgreSQL está ejecutándose."
 
-#: commands/extension.c:513
+#: commands/extension.c:514
 #, c-format
 msgid "could not open extension control file \"%s\": %m"
 msgstr "no se pudo abrir el archivo de control de extensión «%s»: %m"
 
-#: commands/extension.c:536 commands/extension.c:546
+#: commands/extension.c:537 commands/extension.c:547
 #, c-format
 msgid "parameter \"%s\" cannot be set in a secondary extension control file"
 msgstr "el parámetro «%s» no se puede cambiar en un archivo control secundario de extensión"
 
-#: commands/extension.c:568 commands/extension.c:576 commands/extension.c:584
-#: utils/misc/guc.c:3098
+#: commands/extension.c:569 commands/extension.c:577 commands/extension.c:585
+#: utils/misc/guc.c:3147
 #, c-format
 msgid "parameter \"%s\" requires a Boolean value"
 msgstr "el parámetro «%s» requiere un valor lógico (booleano)"
 
-#: commands/extension.c:593
+#: commands/extension.c:594
 #, c-format
 msgid "\"%s\" is not a valid encoding name"
 msgstr "«%s» no es un nombre válido de codificación"
 
-#: commands/extension.c:607 commands/extension.c:622
+#: commands/extension.c:608 commands/extension.c:623
 #, c-format
 msgid "parameter \"%s\" must be a list of extension names"
 msgstr "el parámetro «%s» debe ser una lista de nombres de extensión"
 
-#: commands/extension.c:629
+#: commands/extension.c:630
 #, c-format
 msgid "unrecognized parameter \"%s\" in file \"%s\""
 msgstr "parámetro no reconocido «%s» en el archivo «%s»"
 
-#: commands/extension.c:638
+#: commands/extension.c:639
 #, c-format
 msgid "parameter \"schema\" cannot be specified when \"relocatable\" is true"
 msgstr "el parámetro «schema» no puede ser especificado cuando «relocatable» es verdadero"
 
-#: commands/extension.c:816
+#: commands/extension.c:817
 #, c-format
 msgid "transaction control statements are not allowed within an extension script"
 msgstr "las sentencias de control de transacción no están permitidos dentro de un guión de transacción"
 
-#: commands/extension.c:896
+#: commands/extension.c:897
 #, c-format
 msgid "permission denied to create extension \"%s\""
 msgstr "se ha denegado el permiso para crear la extensión «%s»"
 
-#: commands/extension.c:899
+#: commands/extension.c:900
 #, c-format
 msgid "Must have CREATE privilege on current database to create this extension."
 msgstr "Debe tener privilegio CREATE en la base de datos actual para crear esta extensión."
 
-#: commands/extension.c:900
+#: commands/extension.c:901
 #, c-format
 msgid "Must be superuser to create this extension."
 msgstr "Debe ser superusuario para crear esta extensión."
 
-#: commands/extension.c:904
+#: commands/extension.c:905
 #, c-format
 msgid "permission denied to update extension \"%s\""
 msgstr "se ha denegado el permiso para actualizar la extensión «%s»"
 
-#: commands/extension.c:907
+#: commands/extension.c:908
 #, c-format
 msgid "Must have CREATE privilege on current database to update this extension."
 msgstr "Debe tener privilegio CREATE en la base de datos actual para actualizar esta extensión."
 
-#: commands/extension.c:908
+#: commands/extension.c:909
 #, c-format
 msgid "Must be superuser to update this extension."
 msgstr "Debe ser superusuario para actualizar esta extensión."
 
-#: commands/extension.c:1265
+#: commands/extension.c:1042
+#, c-format
+msgid "invalid character in extension owner: must not contain any of \"%s\""
+msgstr "carácter no válido en dueño de extensión: no debe contener ninguno de «%s»"
+
+#: commands/extension.c:1066 commands/extension.c:1093
+#, c-format
+msgid "invalid character in extension \"%s\" schema: must not contain any of \"%s\""
+msgstr "carácter no válido en esquema de extensión «%s»: no debe contener ninguno de «%s»"
+
+#: commands/extension.c:1288
 #, c-format
 msgid "extension \"%s\" has no update path from version \"%s\" to version \"%s\""
 msgstr "la extensión «%s» no tiene ruta de actualización desde la versión «%s» hasta la versión «%s»"
 
-#: commands/extension.c:1473 commands/extension.c:3067
+#: commands/extension.c:1496 commands/extension.c:3089
 #, c-format
 msgid "version to install must be specified"
 msgstr "la versión a instalar debe ser especificada"
 
-#: commands/extension.c:1510
+#: commands/extension.c:1533
 #, c-format
 msgid "extension \"%s\" has no installation script nor update path for version \"%s\""
 msgstr "la extensión «%s» no tiene script de instalación ni ruta de actualización para la versión «%s»"
 
-#: commands/extension.c:1544
+#: commands/extension.c:1567
 #, c-format
 msgid "extension \"%s\" must be installed in schema \"%s\""
 msgstr "la extensión «%s» debe ser instalada en el esquema «%s»"
 
-#: commands/extension.c:1704
+#: commands/extension.c:1727
 #, c-format
 msgid "cyclic dependency detected between extensions \"%s\" and \"%s\""
 msgstr "detectada una dependencia cíclica entre las extensiones «%s» y «%s»"
 
-#: commands/extension.c:1709
+#: commands/extension.c:1732
 #, c-format
 msgid "installing required extension \"%s\""
 msgstr "instalando la extensión requerida «%s»"
 
-#: commands/extension.c:1732
+#: commands/extension.c:1755
 #, c-format
 msgid "required extension \"%s\" is not installed"
 msgstr "la extensión requerida «%s» no está instalada"
 
-#: commands/extension.c:1735
+#: commands/extension.c:1758
 #, c-format
 msgid "Use CREATE EXTENSION ... CASCADE to install required extensions too."
 msgstr "Use CREATE EXTENSION ... CASCADE para instalar además las extensiones requeridas."
 
-#: commands/extension.c:1770
+#: commands/extension.c:1793
 #, c-format
 msgid "extension \"%s\" already exists, skipping"
 msgstr "la extensión «%s» ya existe, omitiendo"
 
-#: commands/extension.c:1777
+#: commands/extension.c:1800
 #, c-format
 msgid "extension \"%s\" already exists"
 msgstr "la extensión «%s» ya existe"
 
-#: commands/extension.c:1788
+#: commands/extension.c:1811
 #, c-format
 msgid "nested CREATE EXTENSION is not supported"
 msgstr "los CREATE EXTENSION anidados no están soportados"
 
-#: commands/extension.c:1952
+#: commands/extension.c:1975
 #, c-format
 msgid "cannot drop extension \"%s\" because it is being modified"
 msgstr "no se puede eliminar la extensión «%s» porque está siendo modificada"
 
-#: commands/extension.c:2427
+#: commands/extension.c:2450
 #, c-format
 msgid "%s can only be called from an SQL script executed by CREATE EXTENSION"
 msgstr "%s sólo puede invocarse desde un script SQL ejecutado por CREATE EXTENSION"
 
-#: commands/extension.c:2439
+#: commands/extension.c:2462
 #, c-format
 msgid "OID %u does not refer to a table"
 msgstr "el OID %u no hace referencia a una tabla"
 
-#: commands/extension.c:2444
+#: commands/extension.c:2467
 #, c-format
 msgid "table \"%s\" is not a member of the extension being created"
 msgstr "el tabla «%s» no es un miembro de la extensión que se está creando"
 
-#: commands/extension.c:2790
+#: commands/extension.c:2813
 #, c-format
 msgid "cannot move extension \"%s\" into schema \"%s\" because the extension contains the schema"
 msgstr "no se puede mover la extensión «%s» al esquema «%s» porque la extensión contiene al esquema"
 
-#: commands/extension.c:2831 commands/extension.c:2928
+#: commands/extension.c:2854 commands/extension.c:2948
 #, c-format
 msgid "extension \"%s\" does not support SET SCHEMA"
 msgstr "la extensión «%s» no soporta SET SCHEMA"
 
-#: commands/extension.c:2885
-#, fuzzy, c-format
-#| msgid "cannot drop extension \"%s\" because it is being modified"
+#: commands/extension.c:2911
+#, c-format
 msgid "cannot SET SCHEMA of extension \"%s\" because other extensions prevent it"
-msgstr "no se puede eliminar la extensión «%s» porque está siendo modificada"
+msgstr "no se puede hacer SET SCHEMA de la extensión «%s» porque otras extensiones lo impiden"
 
-#: commands/extension.c:2887
-#, fuzzy, c-format
-#| msgid "relation \"%s\" is not a partition of relation \"%s\""
+#: commands/extension.c:2913
+#, c-format
 msgid "Extension \"%s\" requests no relocation of extension \"%s\"."
-msgstr "relación «%s» no es una partición de la relación «%s»"
+msgstr "La extensión «%s» solicita no relocalizar la extensión «%s»."
 
-#: commands/extension.c:2930
+#: commands/extension.c:2950
 #, c-format
 msgid "%s is not in the extension's schema \"%s\""
 msgstr "%s no está en el esquema de la extensión, «%s»"
 
-#: commands/extension.c:2989
+#: commands/extension.c:3011
 #, c-format
 msgid "nested ALTER EXTENSION is not supported"
 msgstr "los ALTER EXTENSION anidados no están soportados"
 
-#: commands/extension.c:3078
+#: commands/extension.c:3100
 #, c-format
 msgid "version \"%s\" of extension \"%s\" is already installed"
 msgstr "la versión «%s» de la extensión «%s» ya está instalada"
 
-#: commands/extension.c:3290
+#: commands/extension.c:3311
 #, c-format
 msgid "cannot add an object of this type to an extension"
 msgstr "no se puede añadir un objeto de este tipo a una extensión"
 
-#: commands/extension.c:3356
+#: commands/extension.c:3409
 #, c-format
 msgid "cannot add schema \"%s\" to extension \"%s\" because the schema contains the extension"
 msgstr "no se puede agregar el esquema «%s» a la extensión «%s» porque el esquema contiene la extensión"
 
-#: commands/extension.c:3450
+#: commands/extension.c:3491 commands/typecmds.c:4042 utils/fmgr/funcapi.c:725
+#, c-format
+msgid "could not find multirange type for data type %s"
+msgstr "no se pudo encontrar un tipo de multirango para el tipo de dato %s"
+
+#: commands/extension.c:3532
 #, c-format
 msgid "file \"%s\" is too large"
 msgstr "el archivo «%s» es demasiado grande"
@@ -8301,7 +8616,7 @@ msgstr "Debe ser superusuario para cambiar el dueño de un conector de datos ext
 msgid "The owner of a foreign-data wrapper must be a superuser."
 msgstr "El dueño de un conector de datos externos debe ser un superusuario."
 
-#: commands/foreigncmds.c:291 commands/foreigncmds.c:707 foreign/foreign.c:678
+#: commands/foreigncmds.c:291 commands/foreigncmds.c:707 foreign/foreign.c:691
 #, c-format
 msgid "foreign-data wrapper \"%s\" does not exist"
 msgstr "no existe el conector de datos externos «%s»"
@@ -8371,7 +8686,7 @@ msgstr "no existe el mapeo de usuario «%s» para el servidor «%s»"
 msgid "user mapping for \"%s\" does not exist for server \"%s\", skipping"
 msgstr "no existe el mapeo de usuario «%s» para el servidor «%s», omitiendo"
 
-#: commands/foreigncmds.c:1507 foreign/foreign.c:391
+#: commands/foreigncmds.c:1507 foreign/foreign.c:404
 #, c-format
 msgid "foreign-data wrapper \"%s\" has no handler"
 msgstr "el conector de datos externos «%s» no tiene manejador"
@@ -8386,524 +8701,528 @@ msgstr "el conector de datos externos «%s» no soporta IMPORT FOREIGN SCHEMA"
 msgid "importing foreign table \"%s\""
 msgstr "importando la tabla foránea «%s»"
 
-#: commands/functioncmds.c:109
+#: commands/functioncmds.c:104
 #, c-format
 msgid "SQL function cannot return shell type %s"
 msgstr "una función SQL no puede retornar el tipo inconcluso %s"
 
-#: commands/functioncmds.c:114
+#: commands/functioncmds.c:109
 #, c-format
 msgid "return type %s is only a shell"
 msgstr "el tipo de retorno %s está inconcluso"
 
-#: commands/functioncmds.c:143 parser/parse_type.c:354
+#: commands/functioncmds.c:138 parser/parse_type.c:354
 #, c-format
 msgid "type modifier cannot be specified for shell type \"%s\""
 msgstr "no se puede especificar un modificador de tipo para el tipo inconcluso «%s»"
 
-#: commands/functioncmds.c:149
+#: commands/functioncmds.c:144
 #, c-format
 msgid "type \"%s\" is not yet defined"
 msgstr "el tipo «%s» no ha sido definido aún"
 
-#: commands/functioncmds.c:150
+#: commands/functioncmds.c:145
 #, c-format
 msgid "Creating a shell type definition."
 msgstr "Creando una definición de tipo inconclusa."
 
-#: commands/functioncmds.c:249
+#: commands/functioncmds.c:244
 #, c-format
 msgid "SQL function cannot accept shell type %s"
 msgstr "las funciones SQL no pueden aceptar el tipo inconcluso %s"
 
-#: commands/functioncmds.c:255
+#: commands/functioncmds.c:250
 #, c-format
 msgid "aggregate cannot accept shell type %s"
 msgstr "las funciones de agregación no pueden aceptar el tipo inconcluso %s"
 
-#: commands/functioncmds.c:260
+#: commands/functioncmds.c:255
 #, c-format
 msgid "argument type %s is only a shell"
 msgstr "el tipo de argumento %s está inconcluso"
 
-#: commands/functioncmds.c:270
+#: commands/functioncmds.c:265
 #, c-format
 msgid "type %s does not exist"
 msgstr "no existe el tipo %s"
 
-#: commands/functioncmds.c:284
+#: commands/functioncmds.c:279
 #, c-format
 msgid "aggregates cannot accept set arguments"
 msgstr "las funciones de agregación no pueden aceptar argumentos de conjunto"
 
-#: commands/functioncmds.c:288
+#: commands/functioncmds.c:283
 #, c-format
 msgid "procedures cannot accept set arguments"
 msgstr "los procedimientos no pueden aceptar argumentos de conjunto"
 
-#: commands/functioncmds.c:292
+#: commands/functioncmds.c:287
 #, c-format
 msgid "functions cannot accept set arguments"
 msgstr "funciones no pueden aceptar argumentos de conjunto"
 
-#: commands/functioncmds.c:302
+#: commands/functioncmds.c:297
 #, c-format
 msgid "VARIADIC parameter must be the last input parameter"
 msgstr "el parámetro VARIADIC debe ser el último parámetro de entrada"
 
-#: commands/functioncmds.c:322
+#: commands/functioncmds.c:317
 #, c-format
 msgid "VARIADIC parameter must be the last parameter"
 msgstr "el parámetro VARIADIC debe ser el último parámetro"
 
-#: commands/functioncmds.c:347
+#: commands/functioncmds.c:342
 #, c-format
 msgid "VARIADIC parameter must be an array"
 msgstr "el parámetro VARIADIC debe ser un array"
 
-#: commands/functioncmds.c:392
+#: commands/functioncmds.c:387
 #, c-format
 msgid "parameter name \"%s\" used more than once"
 msgstr "nombre de parámetro «%s» usado más de una vez"
 
-#: commands/functioncmds.c:410
+#: commands/functioncmds.c:405
 #, c-format
 msgid "only input parameters can have default values"
 msgstr "solo los parámetros de entrada pueden tener valores por omisión"
 
-#: commands/functioncmds.c:425
+#: commands/functioncmds.c:420
 #, c-format
 msgid "cannot use table references in parameter default value"
 msgstr "no se pueden usar referencias a tablas en el valor por omisión de un parámetro"
 
-#: commands/functioncmds.c:449
+#: commands/functioncmds.c:444
 #, c-format
 msgid "input parameters after one with a default value must also have defaults"
 msgstr "los parámetros de entrada después de uno que tenga valor por omisión también deben tener valores por omisión"
 
-#: commands/functioncmds.c:459
+#: commands/functioncmds.c:454
 #, c-format
 msgid "procedure OUT parameters cannot appear after one with a default value"
 msgstr "los parámetros OUT no pueden aparecer después de uno que tenga valor por omisión"
 
-#: commands/functioncmds.c:601 commands/functioncmds.c:780
+#: commands/functioncmds.c:596 commands/functioncmds.c:775
 #, c-format
 msgid "invalid attribute in procedure definition"
 msgstr "atributo no válido en definición de procedimiento"
 
-#: commands/functioncmds.c:697
+#: commands/functioncmds.c:692
 #, c-format
 msgid "support function %s must return type %s"
 msgstr "la función de soporte %s debe retornar el tipo %s"
 
-#: commands/functioncmds.c:708
+#: commands/functioncmds.c:703
 #, c-format
 msgid "must be superuser to specify a support function"
 msgstr "debe ser superusuario para especificar una función de soporte"
 
-#: commands/functioncmds.c:829 commands/functioncmds.c:1432
+#: commands/functioncmds.c:824 commands/functioncmds.c:1427
 #, c-format
 msgid "COST must be positive"
 msgstr "COST debe ser positivo"
 
-#: commands/functioncmds.c:837 commands/functioncmds.c:1440
+#: commands/functioncmds.c:832 commands/functioncmds.c:1435
 #, c-format
 msgid "ROWS must be positive"
 msgstr "ROWS debe ser positivo"
 
-#: commands/functioncmds.c:866
+#: commands/functioncmds.c:861
 #, c-format
 msgid "no function body specified"
 msgstr "no se ha especificado un cuerpo para la función"
 
-#: commands/functioncmds.c:871
+#: commands/functioncmds.c:866
 #, c-format
 msgid "duplicate function body specified"
 msgstr "se ha especificado por duplicado el cuerpo para la función"
 
-#: commands/functioncmds.c:876
+#: commands/functioncmds.c:871
 #, c-format
 msgid "inline SQL function body only valid for language SQL"
 msgstr "cuerpo de función SQL en línea solo es válido para lenguaje SQL"
 
-#: commands/functioncmds.c:918
+#: commands/functioncmds.c:913
 #, c-format
 msgid "SQL function with unquoted function body cannot have polymorphic arguments"
 msgstr "una función SQL con el cuerpo de la función fuera de comillas no puede tener argumentos polimórficos"
 
-#: commands/functioncmds.c:944 commands/functioncmds.c:963
+#: commands/functioncmds.c:939 commands/functioncmds.c:958
 #, c-format
 msgid "%s is not yet supported in unquoted SQL function body"
 msgstr "%s aún no está soportado en una función SQL con el cuerpo fuera de comillas"
 
-#: commands/functioncmds.c:991
+#: commands/functioncmds.c:986
 #, c-format
 msgid "only one AS item needed for language \"%s\""
 msgstr "sólo se requiere un item AS para el lenguaje «%s»"
 
-#: commands/functioncmds.c:1096
+#: commands/functioncmds.c:1091
 #, c-format
 msgid "no language specified"
 msgstr "no se ha especificado el lenguaje"
 
-#: commands/functioncmds.c:1104 commands/functioncmds.c:2105
-#: commands/proclang.c:237
+#: commands/functioncmds.c:1099 commands/functioncmds.c:2117
+#: commands/proclang.c:235
 #, c-format
 msgid "language \"%s\" does not exist"
 msgstr "no existe el lenguaje «%s»"
 
-#: commands/functioncmds.c:1106 commands/functioncmds.c:2107
+#: commands/functioncmds.c:1101 commands/functioncmds.c:2119
 #, c-format
 msgid "Use CREATE EXTENSION to load the language into the database."
 msgstr "Use CREATE EXTENSION para cargar el lenguaje en la base de datos."
 
-#: commands/functioncmds.c:1139 commands/functioncmds.c:1424
+#: commands/functioncmds.c:1134 commands/functioncmds.c:1419
 #, c-format
 msgid "only superuser can define a leakproof function"
 msgstr "sólo un superusuario puede definir funciones «leakproof»"
 
-#: commands/functioncmds.c:1190
+#: commands/functioncmds.c:1185
 #, c-format
 msgid "function result type must be %s because of OUT parameters"
 msgstr "tipo de retorno de función debe ser %s debido a los parámetros OUT"
 
-#: commands/functioncmds.c:1203
+#: commands/functioncmds.c:1198
 #, c-format
 msgid "function result type must be specified"
 msgstr "el tipo de retorno de la función debe ser especificado"
 
-#: commands/functioncmds.c:1256 commands/functioncmds.c:1444
+#: commands/functioncmds.c:1251 commands/functioncmds.c:1439
 #, c-format
 msgid "ROWS is not applicable when function does not return a set"
 msgstr "ROWS no es aplicable cuando una función no retorna un conjunto"
 
-#: commands/functioncmds.c:1547
+#: commands/functioncmds.c:1546
 #, c-format
 msgid "source data type %s is a pseudo-type"
 msgstr "el tipo de origen %s es un pseudotipo"
 
-#: commands/functioncmds.c:1553
+#: commands/functioncmds.c:1552
 #, c-format
 msgid "target data type %s is a pseudo-type"
 msgstr "el tipo de retorno %s es un pseudotipo"
 
-#: commands/functioncmds.c:1577
+#: commands/functioncmds.c:1576
 #, c-format
 msgid "cast will be ignored because the source data type is a domain"
 msgstr "el cast será ignorado porque el tipo de datos de origen es un dominio"
 
-#: commands/functioncmds.c:1582
+#: commands/functioncmds.c:1581
 #, c-format
 msgid "cast will be ignored because the target data type is a domain"
 msgstr "el cast será ignorado porque el tipo de datos de destino es un dominio"
 
-#: commands/functioncmds.c:1607
+#: commands/functioncmds.c:1606
 #, c-format
 msgid "cast function must take one to three arguments"
 msgstr "la función de conversión lleva de uno a tres argumentos"
 
-#: commands/functioncmds.c:1613
+#: commands/functioncmds.c:1612
 #, c-format
 msgid "argument of cast function must match or be binary-coercible from source data type"
 msgstr "el argumento de la función de conversión debe coincidir o ser binario-convertible con el tipo de origen"
 
-#: commands/functioncmds.c:1617
+#: commands/functioncmds.c:1616
 #, c-format
 msgid "second argument of cast function must be type %s"
 msgstr "el segundo argumento de la función de conversión debe ser de tipo %s"
 
-#: commands/functioncmds.c:1622
+#: commands/functioncmds.c:1621
 #, c-format
 msgid "third argument of cast function must be type %s"
 msgstr "el tercer argumento de la función de conversión debe ser de tipo %s"
 
-#: commands/functioncmds.c:1629
+#: commands/functioncmds.c:1628
 #, c-format
 msgid "return data type of cast function must match or be binary-coercible to target data type"
 msgstr "el tipo de salida de la función de conversión debe coincidir o ser binario-convertible con el tipo de retorno"
 
-#: commands/functioncmds.c:1640
+#: commands/functioncmds.c:1639
 #, c-format
 msgid "cast function must not be volatile"
 msgstr "la función de conversión no debe ser volatile"
 
-#: commands/functioncmds.c:1645
+#: commands/functioncmds.c:1644
 #, c-format
 msgid "cast function must be a normal function"
 msgstr "la función de conversión debe ser una función normal"
 
-#: commands/functioncmds.c:1649
+#: commands/functioncmds.c:1648
 #, c-format
 msgid "cast function must not return a set"
 msgstr "la función de conversión no debe retornar un conjunto"
 
-#: commands/functioncmds.c:1675
+#: commands/functioncmds.c:1674
 #, c-format
 msgid "must be superuser to create a cast WITHOUT FUNCTION"
 msgstr "debe ser superusuario para crear una conversión sin especificar función"
 
-#: commands/functioncmds.c:1690
+#: commands/functioncmds.c:1689
 #, c-format
 msgid "source and target data types are not physically compatible"
 msgstr "los tipos de datos de origen y destino no son físicamente compatibles"
 
-#: commands/functioncmds.c:1705
+#: commands/functioncmds.c:1709
 #, c-format
 msgid "composite data types are not binary-compatible"
 msgstr "los tipos de datos compuestos no son binario-compatibles"
 
-#: commands/functioncmds.c:1711
-#, c-format
-msgid "enum data types are not binary-compatible"
-msgstr "los tipos de datos enum no son binario-compatibles"
-
-#: commands/functioncmds.c:1717
+#: commands/functioncmds.c:1715
 #, c-format
 msgid "array data types are not binary-compatible"
 msgstr "los tipos de datos de array no son binario-compatibles"
 
-#: commands/functioncmds.c:1734
+#: commands/functioncmds.c:1723
+#, c-format
+msgid "range data types are not binary-compatible"
+msgstr "los tipos de datos de rango no son binario-compatibles"
+
+#: commands/functioncmds.c:1729
+#, c-format
+msgid "enum data types are not binary-compatible"
+msgstr "los tipos de datos enum no son binario-compatibles"
+
+#: commands/functioncmds.c:1746
 #, c-format
 msgid "domain data types must not be marked binary-compatible"
 msgstr "los tipos de dato de dominio no deben ser marcados binario-compatibles"
 
-#: commands/functioncmds.c:1744
+#: commands/functioncmds.c:1756
 #, c-format
 msgid "source data type and target data type are the same"
 msgstr "el tipo de origen y el tipo de retorno son el mismo"
 
-#: commands/functioncmds.c:1777
+#: commands/functioncmds.c:1789
 #, c-format
 msgid "transform function must not be volatile"
 msgstr "la función de transformación no debe ser volatile"
 
-#: commands/functioncmds.c:1781
+#: commands/functioncmds.c:1793
 #, c-format
 msgid "transform function must be a normal function"
 msgstr "la función de transformación debe ser una función normal"
 
-#: commands/functioncmds.c:1785
+#: commands/functioncmds.c:1797
 #, c-format
 msgid "transform function must not return a set"
 msgstr "la función de transformación no debe retornar un conjunto"
 
-#: commands/functioncmds.c:1789
+#: commands/functioncmds.c:1801
 #, c-format
 msgid "transform function must take one argument"
 msgstr "la función de transformación debe recibir un argumento"
 
-#: commands/functioncmds.c:1793
+#: commands/functioncmds.c:1805
 #, c-format
 msgid "first argument of transform function must be type %s"
 msgstr "el primer argumento de la función de transformación debe ser de tipo %s"
 
-#: commands/functioncmds.c:1832
+#: commands/functioncmds.c:1844
 #, c-format
 msgid "data type %s is a pseudo-type"
 msgstr "el tipo de dato %s es un pseudo-tipo"
 
-#: commands/functioncmds.c:1838
+#: commands/functioncmds.c:1850
 #, c-format
 msgid "data type %s is a domain"
 msgstr "tipo de dato «%s» es un dominio"
 
-#: commands/functioncmds.c:1878
+#: commands/functioncmds.c:1890
 #, c-format
 msgid "return data type of FROM SQL function must be %s"
 msgstr "el tipo de dato de retorno de la función FROM SQL debe ser %s"
 
-#: commands/functioncmds.c:1904
+#: commands/functioncmds.c:1916
 #, c-format
 msgid "return data type of TO SQL function must be the transform data type"
 msgstr "el tipo de dato de retorno de la función TO SQL debe ser el tipo de dato de la transformación"
 
-#: commands/functioncmds.c:1931
+#: commands/functioncmds.c:1943
 #, c-format
 msgid "transform for type %s language \"%s\" already exists"
 msgstr "la transformación para el tipo %s lenguaje «%s» ya existe"
 
-#: commands/functioncmds.c:2017
+#: commands/functioncmds.c:2029
 #, c-format
 msgid "transform for type %s language \"%s\" does not exist"
 msgstr "la transformación para el tipo %s lenguaje «%s» no existe"
 
-#: commands/functioncmds.c:2041
+#: commands/functioncmds.c:2053
 #, c-format
 msgid "function %s already exists in schema \"%s\""
 msgstr "ya existe una función llamada %s en el esquema «%s»"
 
-#: commands/functioncmds.c:2092
+#: commands/functioncmds.c:2104
 #, c-format
 msgid "no inline code specified"
 msgstr "no se ha especificado código"
 
-#: commands/functioncmds.c:2138
+#: commands/functioncmds.c:2150
 #, c-format
 msgid "language \"%s\" does not support inline code execution"
 msgstr "el lenguaje «%s» no soporta ejecución de código en línea"
 
-#: commands/functioncmds.c:2233
+#: commands/functioncmds.c:2245
 #, c-format
 msgid "cannot pass more than %d argument to a procedure"
 msgid_plural "cannot pass more than %d arguments to a procedure"
 msgstr[0] "no se pueden pasar más de %d argumento a un procedimiento"
 msgstr[1] "no se pueden pasar más de %d argumentos a un procedimiento"
 
-#: commands/indexcmds.c:641
+#: commands/indexcmds.c:656
 #, c-format
 msgid "must specify at least one column"
 msgstr "debe especificar al menos una columna"
 
-#: commands/indexcmds.c:645
+#: commands/indexcmds.c:660
 #, c-format
 msgid "cannot use more than %d columns in an index"
 msgstr "no se puede usar más de %d columnas en un índice"
 
-#: commands/indexcmds.c:688
-#, fuzzy, c-format
-#| msgid "cannot change relation \"%s\""
+#: commands/indexcmds.c:703
+#, c-format
 msgid "cannot create index on relation \"%s\""
-msgstr "no se puede cambiar la relación «%s»"
+msgstr "no se puede crear índice en la relación «%s»"
 
-#: commands/indexcmds.c:714
+#: commands/indexcmds.c:729
 #, c-format
 msgid "cannot create index on partitioned table \"%s\" concurrently"
 msgstr "no se puede crear un índice en la tabla particionada «%s» concurrentemente"
 
-#: commands/indexcmds.c:719
-#, c-format
-msgid "cannot create exclusion constraints on partitioned table \"%s\""
-msgstr "no se pueden create restricciones de exclusión en la tabla particionada «%s»"
-
-#: commands/indexcmds.c:729
+#: commands/indexcmds.c:739
 #, c-format
 msgid "cannot create indexes on temporary tables of other sessions"
 msgstr "no se pueden crear índices en tablas temporales de otras sesiones"
 
-#: commands/indexcmds.c:767 commands/tablecmds.c:784 commands/tablespace.c:1184
+#: commands/indexcmds.c:777 commands/tablecmds.c:818 commands/tablespace.c:1178
 #, c-format
 msgid "cannot specify default tablespace for partitioned relations"
 msgstr "no se puede especificar el tablespace por omisión para las relaciones particionadas"
 
-#: commands/indexcmds.c:799 commands/tablecmds.c:819 commands/tablecmds.c:3409
+#: commands/indexcmds.c:809 commands/tablecmds.c:849 commands/tablecmds.c:3588
 #, c-format
 msgid "only shared relations can be placed in pg_global tablespace"
 msgstr "sólo relaciones compartidas pueden ser puestas en el tablespace pg_global"
 
-#: commands/indexcmds.c:832
+#: commands/indexcmds.c:842
 #, c-format
 msgid "substituting access method \"gist\" for obsolete method \"rtree\""
 msgstr "sustituyendo el método de acceso obsoleto «rtree» por «gist»"
 
-#: commands/indexcmds.c:853
+#: commands/indexcmds.c:863
 #, c-format
 msgid "access method \"%s\" does not support unique indexes"
 msgstr "el método de acceso «%s» no soporta índices únicos"
 
-#: commands/indexcmds.c:858
+#: commands/indexcmds.c:868
 #, c-format
 msgid "access method \"%s\" does not support included columns"
 msgstr "el método de acceso «%s» no soporta columnas incluidas"
 
-#: commands/indexcmds.c:863
+#: commands/indexcmds.c:873
 #, c-format
 msgid "access method \"%s\" does not support multicolumn indexes"
 msgstr "el método de acceso «%s» no soporta índices multicolumna"
 
-#: commands/indexcmds.c:868
+#: commands/indexcmds.c:878
 #, c-format
 msgid "access method \"%s\" does not support exclusion constraints"
 msgstr "el método de acceso «%s» no soporta restricciones de exclusión"
 
-#: commands/indexcmds.c:995
+#: commands/indexcmds.c:1007
 #, c-format
 msgid "cannot match partition key to an index using access method \"%s\""
 msgstr "no se puede hacer coincidir la llave de partición a un índice usando el método de acceso «%s»"
 
-#: commands/indexcmds.c:1005
+#: commands/indexcmds.c:1017
 #, c-format
 msgid "unsupported %s constraint with partition key definition"
 msgstr "restricción %s no soportada con definición de llave de particionamiento"
 
-#: commands/indexcmds.c:1007
+#: commands/indexcmds.c:1019
 #, c-format
 msgid "%s constraints cannot be used when partition keys include expressions."
 msgstr "No se pueden usar restricciones %s cuando las llaves de particionamiento incluyen expresiones."
 
-#: commands/indexcmds.c:1046
+#: commands/indexcmds.c:1069
+#, c-format
+msgid "cannot match partition key to index on column \"%s\" using non-equal operator \"%s\""
+msgstr "no se puede hacer coincidir la llave de partición en la columna «%s» usando el operador «%s» que no es igualdad"
+
+#: commands/indexcmds.c:1085
 #, c-format
 msgid "unique constraint on partitioned table must include all partitioning columns"
 msgstr "las restricciones unique en tablas particionadas deben incluir todas las columnas de particionamiento"
 
-#: commands/indexcmds.c:1047
+#: commands/indexcmds.c:1086
 #, c-format
 msgid "%s constraint on table \"%s\" lacks column \"%s\" which is part of the partition key."
 msgstr "La restricción %s en la tabla «%s» no incluye la columna «%s» que es parte de la llave de particionamiento."
 
-#: commands/indexcmds.c:1066 commands/indexcmds.c:1085
+#: commands/indexcmds.c:1105 commands/indexcmds.c:1124
 #, c-format
 msgid "index creation on system columns is not supported"
 msgstr "la creación de índices en columnas de sistema no está soportada"
 
-#: commands/indexcmds.c:1314 tcop/utility.c:1525
+#: commands/indexcmds.c:1354 tcop/utility.c:1515
 #, c-format
 msgid "cannot create unique index on partitioned table \"%s\""
 msgstr "no se puede crear un índice único en la tabla particionada «%s»"
 
-#: commands/indexcmds.c:1316 tcop/utility.c:1527
+#: commands/indexcmds.c:1356 tcop/utility.c:1517
 #, c-format
 msgid "Table \"%s\" contains partitions that are foreign tables."
 msgstr "La tabla «%s» contiene particiones que son tablas foráneas."
 
-#: commands/indexcmds.c:1811
+#: commands/indexcmds.c:1806
 #, c-format
 msgid "functions in index predicate must be marked IMMUTABLE"
 msgstr "las funciones utilizadas en predicados de índice deben estar marcadas IMMUTABLE"
 
-#: commands/indexcmds.c:1889 parser/parse_utilcmd.c:2513
-#: parser/parse_utilcmd.c:2648
+#: commands/indexcmds.c:1885 parser/parse_utilcmd.c:2519
+#: parser/parse_utilcmd.c:2654
 #, c-format
 msgid "column \"%s\" named in key does not exist"
 msgstr "no existe la columna «%s» en la llave"
 
-#: commands/indexcmds.c:1913 parser/parse_utilcmd.c:1812
+#: commands/indexcmds.c:1909 parser/parse_utilcmd.c:1807
 #, c-format
 msgid "expressions are not supported in included columns"
 msgstr "las expresiones no están soportadas en columnas incluidas"
 
-#: commands/indexcmds.c:1954
+#: commands/indexcmds.c:1950
 #, c-format
 msgid "functions in index expression must be marked IMMUTABLE"
 msgstr "las funciones utilizadas en expresiones de índice deben estar marcadas IMMUTABLE"
 
-#: commands/indexcmds.c:1969
+#: commands/indexcmds.c:1965
 #, c-format
 msgid "including column does not support a collation"
 msgstr "la columna incluida no permite un ordenamiento (collation)"
 
-#: commands/indexcmds.c:1973
+#: commands/indexcmds.c:1969
 #, c-format
 msgid "including column does not support an operator class"
 msgstr "la columna incluida no permite una clase de operadores"
 
-#: commands/indexcmds.c:1977
+#: commands/indexcmds.c:1973
 #, c-format
 msgid "including column does not support ASC/DESC options"
 msgstr "la columna incluida no permite las opciones ASC/DESC"
 
-#: commands/indexcmds.c:1981
+#: commands/indexcmds.c:1977
 #, c-format
 msgid "including column does not support NULLS FIRST/LAST options"
 msgstr "la columna incluida no permite las opciones NULLS FIRST/LAST"
 
-#: commands/indexcmds.c:2022
+#: commands/indexcmds.c:2020
 #, c-format
 msgid "could not determine which collation to use for index expression"
 msgstr "no se pudo determinar qué ordenamiento (collation) usar para la expresión de índice"
 
-#: commands/indexcmds.c:2030 commands/tablecmds.c:17497 commands/typecmds.c:807
-#: parser/parse_expr.c:2722 parser/parse_type.c:568 parser/parse_utilcmd.c:3774
-#: utils/adt/misc.c:586
+#: commands/indexcmds.c:2028 commands/tablecmds.c:18185 commands/typecmds.c:811
+#: parser/parse_expr.c:2785 parser/parse_type.c:568 parser/parse_utilcmd.c:3771
+#: utils/adt/misc.c:630
 #, c-format
 msgid "collations are not supported by type %s"
 msgstr "los ordenamientos (collation) no están soportados por el tipo %s"
@@ -8938,95 +9257,100 @@ msgstr "el método de acceso «%s» no soporta las opciones ASC/DESC"
 msgid "access method \"%s\" does not support NULLS FIRST/LAST options"
 msgstr "el método de acceso «%s» no soporta las opciones NULLS FIRST/LAST"
 
-#: commands/indexcmds.c:2212 commands/tablecmds.c:17522
-#: commands/tablecmds.c:17528 commands/typecmds.c:2301
+#: commands/indexcmds.c:2210 commands/tablecmds.c:18210
+#: commands/tablecmds.c:18216 commands/typecmds.c:2311
 #, c-format
 msgid "data type %s has no default operator class for access method \"%s\""
 msgstr "el tipo de dato %s no tiene una clase de operadores por omisión para el método de acceso «%s»"
 
-#: commands/indexcmds.c:2214
+#: commands/indexcmds.c:2212
 #, c-format
 msgid "You must specify an operator class for the index or define a default operator class for the data type."
 msgstr "Debe especificar una clase de operadores para el índice, o definir una clase de operadores por omisión para el tipo de datos."
 
-#: commands/indexcmds.c:2243 commands/indexcmds.c:2251
+#: commands/indexcmds.c:2241 commands/indexcmds.c:2249
 #: commands/opclasscmds.c:205
 #, c-format
 msgid "operator class \"%s\" does not exist for access method \"%s\""
 msgstr "no existe la clase de operadores «%s» para el método de acceso «%s»"
 
-#: commands/indexcmds.c:2265 commands/typecmds.c:2289
+#: commands/indexcmds.c:2263 commands/typecmds.c:2299
 #, c-format
 msgid "operator class \"%s\" does not accept data type %s"
 msgstr "la clase de operadores «%s» no acepta el tipo de datos %s"
 
-#: commands/indexcmds.c:2355
+#: commands/indexcmds.c:2353
 #, c-format
 msgid "there are multiple default operator classes for data type %s"
 msgstr "hay múltiples clases de operadores por omisión para el tipo de datos %s"
 
-#: commands/indexcmds.c:2683
+#: commands/indexcmds.c:2681
 #, c-format
 msgid "unrecognized REINDEX option \"%s\""
 msgstr "opción de REINDEX «%s» no reconocida"
 
-#: commands/indexcmds.c:2910
+#: commands/indexcmds.c:2913
 #, c-format
 msgid "table \"%s\" has no indexes that can be reindexed concurrently"
 msgstr "la tabla «%s» no tiene índices que puedan ser reindexados concurrentemente"
 
-#: commands/indexcmds.c:2924
+#: commands/indexcmds.c:2927
 #, c-format
 msgid "table \"%s\" has no indexes to reindex"
 msgstr "la tabla «%s» no tiene índices para reindexar"
 
-#: commands/indexcmds.c:2969 commands/indexcmds.c:3484
-#: commands/indexcmds.c:3612
+#: commands/indexcmds.c:2974 commands/indexcmds.c:3485
+#: commands/indexcmds.c:3615
 #, c-format
 msgid "cannot reindex system catalogs concurrently"
 msgstr "no se pueden reindexar catálogos de sistema concurrentemente"
 
-#: commands/indexcmds.c:2993
+#: commands/indexcmds.c:2998
 #, c-format
 msgid "can only reindex the currently open database"
 msgstr "sólo se puede reindexar la base de datos actualmente abierta"
 
-#: commands/indexcmds.c:3091
+#: commands/indexcmds.c:3090
 #, c-format
 msgid "cannot reindex system catalogs concurrently, skipping all"
 msgstr "no se puede reindexar un catálogo de sistema concurrentemente, omitiéndolos todos"
 
-#: commands/indexcmds.c:3124
+#: commands/indexcmds.c:3123
 #, c-format
 msgid "cannot move system relations, skipping all"
 msgstr "no se puede mover las relaciones de sistema, omitiendo todas"
 
-#: commands/indexcmds.c:3170
+#: commands/indexcmds.c:3169
 #, c-format
 msgid "while reindexing partitioned table \"%s.%s\""
 msgstr "al reindexar tabla particionada «%s.%s»"
 
-#: commands/indexcmds.c:3173
+#: commands/indexcmds.c:3172
 #, c-format
 msgid "while reindexing partitioned index \"%s.%s\""
 msgstr "al reindexar índice particionado «%s.%s»"
 
-#: commands/indexcmds.c:3364 commands/indexcmds.c:4220
+#: commands/indexcmds.c:3365 commands/indexcmds.c:4241
 #, c-format
 msgid "table \"%s.%s\" was reindexed"
 msgstr "la tabla «%s.%s» fue reindexada"
 
-#: commands/indexcmds.c:3516 commands/indexcmds.c:3568
+#: commands/indexcmds.c:3517 commands/indexcmds.c:3570
 #, c-format
-msgid "cannot reindex invalid index \"%s.%s\" concurrently, skipping"
-msgstr "no se puede reindexar el índice no válido «%s.%s» concurrentemente, omitiendo"
+msgid "skipping reindex of invalid index \"%s.%s\""
+msgstr "omitiendo reindexar índice no válido «%s.%s»"
 
-#: commands/indexcmds.c:3522
+#: commands/indexcmds.c:3520 commands/indexcmds.c:3573
+#, c-format
+msgid "Use DROP INDEX or REINDEX INDEX."
+msgstr "Use DROP INDEX o REINDEX INDEX."
+
+#: commands/indexcmds.c:3524
 #, c-format
 msgid "cannot reindex exclusion constraint index \"%s.%s\" concurrently, skipping"
 msgstr "no se puede reindexar el índice de restricción de exclusión «%s.%s» concurrentemente, omitiendo"
 
-#: commands/indexcmds.c:3677
+#: commands/indexcmds.c:3680
 #, c-format
 msgid "cannot reindex this type of relation concurrently"
 msgstr "no se puede reindexar este tipo de relación concurrentemente"
@@ -9036,48 +9360,47 @@ msgstr "no se puede reindexar este tipo de relación concurrentemente"
 msgid "cannot move non-shared relation to tablespace \"%s\""
 msgstr "no se puede mover relación no compartida al tablespace «%s»"
 
-#: commands/indexcmds.c:4201 commands/indexcmds.c:4213
+#: commands/indexcmds.c:4222 commands/indexcmds.c:4234
 #, c-format
 msgid "index \"%s.%s\" was reindexed"
 msgstr "el índice «%s.%s» fue reindexado"
 
-#: commands/indexcmds.c:4203 commands/indexcmds.c:4222
+#: commands/indexcmds.c:4224 commands/indexcmds.c:4243
 #, c-format
 msgid "%s."
 msgstr "%s."
 
-#: commands/lockcmds.c:93
-#, fuzzy, c-format
-#| msgid "cannot lock rows in relation \"%s\""
+#: commands/lockcmds.c:91
+#, c-format
 msgid "cannot lock relation \"%s\""
-msgstr "no se puede bloquear registros en la tabla «%s»"
+msgstr "no se puede bloquear la relación «%s»"
 
-#: commands/matview.c:194
+#: commands/matview.c:206
 #, c-format
 msgid "CONCURRENTLY cannot be used when the materialized view is not populated"
 msgstr "no se puede usar CONCURRENTLY cuando la vista materializada no contiene datos"
 
-#: commands/matview.c:200 gram.y:18307
+#: commands/matview.c:212 gram.y:18918
 #, c-format
 msgid "%s and %s options cannot be used together"
 msgstr "las opciones %s y %s no pueden usarse juntas"
 
-#: commands/matview.c:257
+#: commands/matview.c:269
 #, c-format
 msgid "cannot refresh materialized view \"%s\" concurrently"
 msgstr "no se puede refrescar la vista materializada «%s» concurrentemente"
 
-#: commands/matview.c:260
+#: commands/matview.c:272
 #, c-format
 msgid "Create a unique index with no WHERE clause on one or more columns of the materialized view."
 msgstr "Cree un índice único sin cláusula WHERE en una o más columnas de la vista materializada."
 
-#: commands/matview.c:654
+#: commands/matview.c:666
 #, c-format
 msgid "new data for materialized view \"%s\" contains duplicate rows without any null columns"
 msgstr "nuevos datos para la vista materializada «%s» contiene filas duplicadas sin columnas nulas"
 
-#: commands/matview.c:656
+#: commands/matview.c:668
 #, c-format
 msgid "Row: %s"
 msgstr "Fila: %s"
@@ -9279,27 +9602,27 @@ msgstr "el número de operador %d para (%s,%s) aparece más de una vez"
 msgid "operator %d(%s,%s) already exists in operator family \"%s\""
 msgstr "ya existe un operador %d(%s,%s) en la familia de operadores «%s»"
 
-#: commands/opclasscmds.c:1566
+#: commands/opclasscmds.c:1589
 #, c-format
 msgid "function %d(%s,%s) already exists in operator family \"%s\""
 msgstr "ya existe una función %d(%s,%s) en la familia de operador «%s»"
 
-#: commands/opclasscmds.c:1647
+#: commands/opclasscmds.c:1744
 #, c-format
 msgid "operator %d(%s,%s) does not exist in operator family \"%s\""
 msgstr "no existe el operador %d(%s,%s) en la familia de operadores «%s»"
 
-#: commands/opclasscmds.c:1687
+#: commands/opclasscmds.c:1784
 #, c-format
 msgid "function %d(%s,%s) does not exist in operator family \"%s\""
 msgstr "no existe la función %d(%s,%s) en la familia de operadores «%s»"
 
-#: commands/opclasscmds.c:1718
+#: commands/opclasscmds.c:1815
 #, c-format
 msgid "operator class \"%s\" for access method \"%s\" already exists in schema \"%s\""
 msgstr "ya existe una clase de operadores «%s» para el método de acceso «%s» en el esquema «%s»"
 
-#: commands/opclasscmds.c:1741
+#: commands/opclasscmds.c:1838
 #, c-format
 msgid "operator family \"%s\" for access method \"%s\" already exists in schema \"%s\""
 msgstr "ya existe una familia de operadores «%s» para el método de acceso «%s» en el esquema «%s»"
@@ -9309,7 +9632,7 @@ msgstr "ya existe una familia de operadores «%s» para el método de acceso «%
 msgid "SETOF type not allowed for operator argument"
 msgstr "no se permite un tipo SETOF en los argumentos de un operador"
 
-#: commands/operatorcmds.c:154 commands/operatorcmds.c:481
+#: commands/operatorcmds.c:154 commands/operatorcmds.c:554
 #, c-format
 msgid "operator attribute \"%s\" not recognized"
 msgstr "el atributo de operador «%s» no es reconocido"
@@ -9349,53 +9672,70 @@ msgstr "la función de estimación de join %s tiene múltiples coincidencias"
 msgid "join estimator function %s must return type %s"
 msgstr "la función de estimación de join %s debe retornar tipo %s"
 
-#: commands/operatorcmds.c:475
+#: commands/operatorcmds.c:388 parser/parse_oper.c:119 parser/parse_oper.c:637
+#: utils/adt/regproc.c:509 utils/adt/regproc.c:683
+#, c-format
+msgid "operator does not exist: %s"
+msgstr "el operador no existe: %s"
+
+#: commands/operatorcmds.c:396 parser/parse_oper.c:702 parser/parse_oper.c:815
+#, c-format
+msgid "operator is only a shell: %s"
+msgstr "el operador está inconcluso: %s"
+
+#: commands/operatorcmds.c:548
 #, c-format
 msgid "operator attribute \"%s\" cannot be changed"
 msgstr "el atributo de operador «%s» no puede ser cambiado"
 
-#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:149
-#: commands/tablecmds.c:1616 commands/tablecmds.c:2219
-#: commands/tablecmds.c:3520 commands/tablecmds.c:6369
-#: commands/tablecmds.c:9181 commands/tablecmds.c:17090
-#: commands/tablecmds.c:17125 commands/trigger.c:323 commands/trigger.c:1339
-#: commands/trigger.c:1449 rewrite/rewriteDefine.c:275
-#: rewrite/rewriteDefine.c:786 rewrite/rewriteRemove.c:80
+#: commands/operatorcmds.c:615 commands/operatorcmds.c:622
+#: commands/operatorcmds.c:628 commands/operatorcmds.c:634
+#, c-format
+msgid "operator attribute \"%s\" cannot be changed if it has already been set"
+msgstr "el atributo de operador «%s» no puede ser cambiado si ya se ha establecido"
+
+#: commands/policy.c:86 commands/policy.c:379 commands/statscmds.c:146
+#: commands/tablecmds.c:1740 commands/tablecmds.c:2340
+#: commands/tablecmds.c:3702 commands/tablecmds.c:6605
+#: commands/tablecmds.c:9637 commands/tablecmds.c:17772
+#: commands/tablecmds.c:17807 commands/trigger.c:316 commands/trigger.c:1332
+#: commands/trigger.c:1442 rewrite/rewriteDefine.c:268
+#: rewrite/rewriteDefine.c:779 rewrite/rewriteRemove.c:74
 #, c-format
 msgid "permission denied: \"%s\" is a system catalog"
 msgstr "permiso denegado: «%s» es un catálogo de sistema"
 
-#: commands/policy.c:172
+#: commands/policy.c:169
 #, c-format
 msgid "ignoring specified roles other than PUBLIC"
 msgstr "ignorando los roles especificados que no son PUBLIC"
 
-#: commands/policy.c:173
+#: commands/policy.c:170
 #, c-format
 msgid "All roles are members of the PUBLIC role."
 msgstr "Todos los roles son miembros del rol PUBLIC."
 
-#: commands/policy.c:606
+#: commands/policy.c:603
 #, c-format
 msgid "WITH CHECK cannot be applied to SELECT or DELETE"
 msgstr "WITH CHECK no puede ser aplicado a SELECT o DELETE"
 
-#: commands/policy.c:615 commands/policy.c:918
+#: commands/policy.c:612 commands/policy.c:915
 #, c-format
 msgid "only WITH CHECK expression allowed for INSERT"
 msgstr "sólo se permite una expresión WITH CHECK para INSERT"
 
-#: commands/policy.c:689 commands/policy.c:1141
+#: commands/policy.c:686 commands/policy.c:1138
 #, c-format
 msgid "policy \"%s\" for table \"%s\" already exists"
 msgstr "la política «%s» para la tabla «%s» ya existe"
 
-#: commands/policy.c:890 commands/policy.c:1169 commands/policy.c:1240
+#: commands/policy.c:887 commands/policy.c:1166 commands/policy.c:1237
 #, c-format
 msgid "policy \"%s\" for table \"%s\" does not exist"
 msgstr "no existe la política «%s» para la tabla «%s»"
 
-#: commands/policy.c:908
+#: commands/policy.c:905
 #, c-format
 msgid "only USING expression allowed for SELECT, DELETE"
 msgstr "sólo se permite una expresión USING para SELECT, DELETE"
@@ -9411,270 +9751,244 @@ msgid "cannot create a cursor WITH HOLD within security-restricted operation"
 msgstr "no se puede crear un cursor WITH HOLD dentro de una operación restringida por seguridad"
 
 #: commands/portalcmds.c:189 commands/portalcmds.c:242
-#: executor/execCurrent.c:70 utils/adt/xml.c:2844 utils/adt/xml.c:3014
+#: executor/execCurrent.c:70 utils/adt/xml.c:2936 utils/adt/xml.c:3106
 #, c-format
 msgid "cursor \"%s\" does not exist"
 msgstr "no existe el cursor «%s»"
 
-#: commands/prepare.c:75
+#: commands/prepare.c:72
 #, c-format
 msgid "invalid statement name: must not be empty"
 msgstr "el nombre de sentencia no es válido: no debe ser vacío"
 
-#: commands/prepare.c:230 commands/prepare.c:235
+#: commands/prepare.c:227 commands/prepare.c:232
 #, c-format
 msgid "prepared statement is not a SELECT"
 msgstr "la sentencia preparada no es un SELECT"
 
-#: commands/prepare.c:295
+#: commands/prepare.c:292
 #, c-format
 msgid "wrong number of parameters for prepared statement \"%s\""
 msgstr "el número de parámetros es incorrecto en la sentencia preparada «%s»"
 
-#: commands/prepare.c:297
+#: commands/prepare.c:294
 #, c-format
 msgid "Expected %d parameters but got %d."
 msgstr "Se esperaban %d parámetros pero se obtuvieron %d."
 
-#: commands/prepare.c:330
+#: commands/prepare.c:327
 #, c-format
 msgid "parameter $%d of type %s cannot be coerced to the expected type %s"
 msgstr "el parámetro $%d de tipo %s no puede ser convertido al tipo esperado %s"
 
-#: commands/prepare.c:414
+#: commands/prepare.c:411
 #, c-format
 msgid "prepared statement \"%s\" already exists"
 msgstr "la sentencia preparada «%s» ya existe"
 
-#: commands/prepare.c:453
+#: commands/prepare.c:450
 #, c-format
 msgid "prepared statement \"%s\" does not exist"
 msgstr "no existe la sentencia preparada «%s»"
 
-#: commands/proclang.c:68
+#: commands/proclang.c:66
 #, c-format
 msgid "must be superuser to create custom procedural language"
 msgstr "debe ser superusuario para crear un lenguaje procedural personalizado"
 
-#: commands/publicationcmds.c:131 postmaster/postmaster.c:1205
-#: postmaster/postmaster.c:1303 storage/file/fd.c:3861
-#: utils/init/miscinit.c:1815
+#: commands/publicationcmds.c:124 postmaster/postmaster.c:1108
+#: postmaster/postmaster.c:1210 utils/init/miscinit.c:1865
 #, c-format
 msgid "invalid list syntax in parameter \"%s\""
 msgstr "la sintaxis de lista no es válida para el parámetro «%s»"
 
-#: commands/publicationcmds.c:150
-#, fuzzy, c-format
-#| msgid "unrecognized value for EXPLAIN option \"%s\": \"%s\""
+#: commands/publicationcmds.c:143
+#, c-format
 msgid "unrecognized value for publication option \"%s\": \"%s\""
-msgstr "valor no reconocido para la opción de EXPLAIN «%s»: «%s»"
+msgstr "valor no reconocido para la opción de publicación «%s»: «%s»"
 
-#: commands/publicationcmds.c:164
+#: commands/publicationcmds.c:157
 #, c-format
 msgid "unrecognized publication parameter: \"%s\""
 msgstr "parámetro de publicación no reconocido: «%s»"
 
-#: commands/publicationcmds.c:205
-#, fuzzy, c-format
-#| msgid "no schema has been selected to create in"
+#: commands/publicationcmds.c:198
+#, c-format
 msgid "no schema has been selected for CURRENT_SCHEMA"
-msgstr "no se ha seleccionado ningún esquema dentro del cual crear"
+msgstr "no se ha seleccionado ningún esquema para CURRENT_SCHEMA"
 
-#: commands/publicationcmds.c:502
-#, fuzzy
-#| msgid "System catalog modifications are currently disallowed."
+#: commands/publicationcmds.c:495
 msgid "System columns are not allowed."
-msgstr "Las modificaciones al catálogo del sistema están actualmente deshabilitadas."
+msgstr "Las columnas de sistema no son permitidas."
 
-#: commands/publicationcmds.c:509 commands/publicationcmds.c:514
-#: commands/publicationcmds.c:531
-#, fuzzy
-#| msgid "grouping operations are not allowed in %s"
+#: commands/publicationcmds.c:502 commands/publicationcmds.c:507
+#: commands/publicationcmds.c:524
 msgid "User-defined operators are not allowed."
-msgstr "no se permiten operaciones «grouping» en %s"
+msgstr "Los operadores definidos por el usuario no están permitidos."
 
-#: commands/publicationcmds.c:555
+#: commands/publicationcmds.c:548
 msgid "Only columns, constants, built-in operators, built-in data types, built-in collations, and immutable built-in functions are allowed."
-msgstr ""
+msgstr "Sólo columnas, constantes, operadores built-in, tipos de datos built-in, configuraciones regionales built-in y funciones built-in inmutables son permitidas."
 
-#: commands/publicationcmds.c:567
-#, fuzzy
-#| msgid "set-returning functions are not allowed in %s"
+#: commands/publicationcmds.c:560
 msgid "User-defined types are not allowed."
-msgstr "no se permiten funciones que retornan conjuntos en %s"
+msgstr "Los tipos definidos por el usuario no están permitidos."
 
-#: commands/publicationcmds.c:570
-#, fuzzy
-#| msgid "set-returning functions are not allowed in %s"
+#: commands/publicationcmds.c:563
 msgid "User-defined or built-in mutable functions are not allowed."
-msgstr "no se permiten funciones que retornan conjuntos en %s"
+msgstr "Las funciones definidas por el usuario, o las que son mutables, no están permitidas."
 
-#: commands/publicationcmds.c:573
-#, fuzzy
-#| msgid "set-returning functions are not allowed in %s"
+#: commands/publicationcmds.c:566
 msgid "User-defined collations are not allowed."
-msgstr "no se permiten funciones que retornan conjuntos en %s"
+msgstr "Los «collations» definidos por el usuario no están permitidos."
 
-#: commands/publicationcmds.c:583
-#, fuzzy, c-format
-#| msgid "invalid publication_names syntax"
+#: commands/publicationcmds.c:576
+#, c-format
 msgid "invalid publication WHERE expression"
-msgstr "sintaxis de publication_names no válida"
+msgstr "sintaxis de cláusula WHERE de publicación no válida"
 
-#: commands/publicationcmds.c:636
-#, fuzzy, c-format
-#| msgid "cannot alter constraint \"%s\" on relation \"%s\""
+#: commands/publicationcmds.c:629
+#, c-format
 msgid "cannot use publication WHERE clause for relation \"%s\""
-msgstr "no se puede modificar la restricción «%s» en la relación «%s»"
+msgstr "no se puede usar cláusula WHERE de la publicación para la relación «%s»"
 
-#: commands/publicationcmds.c:638
+#: commands/publicationcmds.c:631
 #, c-format
 msgid "WHERE clause cannot be used for a partitioned table when %s is false."
-msgstr ""
+msgstr "la cláusula WHERE no puede ser usada para una tabla particionada cuando %s es falso."
 
-#: commands/publicationcmds.c:709 commands/publicationcmds.c:723
-#, fuzzy, c-format
-#| msgid "cannot alter constraint \"%s\" on relation \"%s\""
+#: commands/publicationcmds.c:702 commands/publicationcmds.c:716
+#, c-format
 msgid "cannot use column list for relation \"%s.%s\" in publication \"%s\""
-msgstr "no se puede modificar la restricción «%s» en la relación «%s»"
+msgstr "no se puede usar lista de columnas para la relación «%s.%s» en la publicación «%s»"
 
-#: commands/publicationcmds.c:712
+#: commands/publicationcmds.c:705
 #, c-format
 msgid "Column lists cannot be specified in publications containing FOR TABLES IN SCHEMA elements."
-msgstr ""
+msgstr "Las listas de columnas no pueden ser especificadas en publicaciones que contienen elementos FOR TABLES IN SCHEMA."
 
-#: commands/publicationcmds.c:726
+#: commands/publicationcmds.c:719
 #, c-format
 msgid "Column lists cannot be specified for partitioned tables when %s is false."
-msgstr ""
+msgstr "Las listas de columnas no pueden ser especificadas para tablas particionadas cuando %s es falso."
 
-#: commands/publicationcmds.c:761
+#: commands/publicationcmds.c:754
 #, c-format
 msgid "must be superuser to create FOR ALL TABLES publication"
 msgstr "debe ser superusuario para crear publicaciones FOR ALL TABLES"
 
-#: commands/publicationcmds.c:832
-#, fuzzy, c-format
-#| msgid "must be superuser to create FOR ALL TABLES publication"
+#: commands/publicationcmds.c:825
+#, c-format
 msgid "must be superuser to create FOR TABLES IN SCHEMA publication"
-msgstr "debe ser superusuario para crear publicaciones FOR ALL TABLES"
+msgstr "debe ser superusuario para crear publicaciones FOR TABLES IN SCHEMA"
 
-#: commands/publicationcmds.c:868
+#: commands/publicationcmds.c:861
 #, c-format
-msgid "wal_level is insufficient to publish logical changes"
-msgstr "wal_level es insuficiente para publicar cambios lógicos"
+msgid "\"wal_level\" is insufficient to publish logical changes"
+msgstr "«wal_level» es insuficiente para publicar cambios lógicos"
 
-#: commands/publicationcmds.c:869
-#, fuzzy, c-format
-#| msgid "Change wal_level to be logical or higher."
-msgid "Set wal_level to \"logical\" before creating subscriptions."
-msgstr "Cambie wal_level a logical o superior."
+#: commands/publicationcmds.c:862
+#, c-format
+msgid "Set \"wal_level\" to \"logical\" before creating subscriptions."
+msgstr "Cambie «wal_level» a «logical» antes de crear suscripciones."
 
-#: commands/publicationcmds.c:965 commands/publicationcmds.c:973
-#, fuzzy, c-format
-#| msgid "cannot set parameter \"%s\" within security-definer function"
+#: commands/publicationcmds.c:958 commands/publicationcmds.c:966
+#, c-format
 msgid "cannot set parameter \"%s\" to false for publication \"%s\""
-msgstr "no se puede definir el parámetro «%s» dentro una función security-definer"
+msgstr "no se puede definir el parámetro «%s» a falso para la publicación «%s»"
 
-#: commands/publicationcmds.c:968
+#: commands/publicationcmds.c:961
 #, c-format
 msgid "The publication contains a WHERE clause for partitioned table \"%s\", which is not allowed when \"%s\" is false."
 msgstr "La publicación contiene una cláusula WHERE para la tabla particionada «%s», que no está permitido cuando «%s» es falso."
 
-#: commands/publicationcmds.c:976
+#: commands/publicationcmds.c:969
 #, c-format
 msgid "The publication contains a column list for partitioned table \"%s\", which is not allowed when \"%s\" is false."
 msgstr "La publicación contiene una lista de columns para la tabla particionada «%s», que no está permitido cuando «%s» es falso."
 
-#: commands/publicationcmds.c:1299
-#, fuzzy, c-format
-#| msgid "cannot add schema \"%s\" to publication"
+#: commands/publicationcmds.c:1292
+#, c-format
 msgid "cannot add schema to publication \"%s\""
-msgstr "no se puede agregar el esquema «%s» a la partición"
+msgstr "no se puede agregar el esquema «%s» a la publicación"
 
-#: commands/publicationcmds.c:1301
+#: commands/publicationcmds.c:1294
 #, c-format
 msgid "Schemas cannot be added if any tables that specify a column list are already part of the publication."
-msgstr ""
+msgstr "Los esquemas no pueden ser añadidos si alguna tabla que especifica una lista de columnas ya es parte de la publicación."
 
-#: commands/publicationcmds.c:1349
+#: commands/publicationcmds.c:1342
 #, c-format
 msgid "must be superuser to add or set schemas"
 msgstr "debe ser superusuario para agregar o definir esquemas"
 
-#: commands/publicationcmds.c:1358 commands/publicationcmds.c:1366
+#: commands/publicationcmds.c:1351 commands/publicationcmds.c:1359
 #, c-format
 msgid "publication \"%s\" is defined as FOR ALL TABLES"
 msgstr "la publicación \"%s\" se define como FOR ALL TABLES"
 
-#: commands/publicationcmds.c:1360
-#, fuzzy, c-format
-#| msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications."
+#: commands/publicationcmds.c:1353
+#, c-format
 msgid "Schemas cannot be added to or dropped from FOR ALL TABLES publications."
-msgstr "Las tablas no se pueden agregar ni eliminar de las publicaciones FOR ALL TABLES."
+msgstr "No se pueden agregar ni eliminar esquemas de las publicaciones FOR ALL TABLES."
 
-#: commands/publicationcmds.c:1368
+#: commands/publicationcmds.c:1361
 #, c-format
 msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications."
 msgstr "Las tablas no se pueden agregar ni eliminar de las publicaciones FOR ALL TABLES."
 
-#: commands/publicationcmds.c:1392 commands/publicationcmds.c:1431
-#: commands/publicationcmds.c:1968 utils/cache/lsyscache.c:3592
+#: commands/publicationcmds.c:1385 commands/publicationcmds.c:1424
+#: commands/publicationcmds.c:1961 utils/cache/lsyscache.c:3634
 #, c-format
 msgid "publication \"%s\" does not exist"
 msgstr "no existe la publicación «%s»"
 
-#: commands/publicationcmds.c:1594 commands/publicationcmds.c:1657
-#, fuzzy, c-format
-#| msgid "conflicting or redundant NULL / NOT NULL declarations for column \"%s\""
+#: commands/publicationcmds.c:1587 commands/publicationcmds.c:1650
+#, c-format
 msgid "conflicting or redundant WHERE clauses for table \"%s\""
-msgstr "declaraciones NULL/NOT NULL en conflicto o redundantes para la columna «%s»"
+msgstr "cláusulas WHERE en conflicto o redundantes para la tabla «%s»"
 
-#: commands/publicationcmds.c:1601 commands/publicationcmds.c:1669
-#, fuzzy, c-format
-#| msgid "conflicting or redundant options"
+#: commands/publicationcmds.c:1594 commands/publicationcmds.c:1662
+#, c-format
 msgid "conflicting or redundant column lists for table \"%s\""
-msgstr "opciones contradictorias o redundantes"
+msgstr "listas de columnas contradictorias o redundantes para la tabla «%s»"
 
-#: commands/publicationcmds.c:1803
-#, fuzzy, c-format
-#| msgid "operator argument types must be specified in ALTER OPERATOR FAMILY"
+#: commands/publicationcmds.c:1796
+#, c-format
 msgid "column list must not be specified in ALTER PUBLICATION ... DROP"
-msgstr "los tipos de los argumentos de operador deben ser especificados en ALTER OPERATOR FAMILY"
+msgstr "la lista de columnas no debe ser especificada en ALTER PUBLICATION ... DROP"
 
-#: commands/publicationcmds.c:1815
+#: commands/publicationcmds.c:1808
 #, c-format
 msgid "relation \"%s\" is not part of the publication"
 msgstr "relación «%s» no es parte de la publicación"
 
-#: commands/publicationcmds.c:1822
+#: commands/publicationcmds.c:1815
 #, c-format
 msgid "cannot use a WHERE clause when removing a table from a publication"
 msgstr "no se puede usar una cláusula WHERE cuando se elimina una tabla de una publicación"
 
-#: commands/publicationcmds.c:1882
-#, fuzzy, c-format
-#| msgid "relation \"%s\" is not part of the publication"
+#: commands/publicationcmds.c:1875
+#, c-format
 msgid "tables from schema \"%s\" are not part of the publication"
-msgstr "relación «%s» no es parte de la publicación"
+msgstr "las tablas del esquema «%s» no son parte de la publicación"
 
-#: commands/publicationcmds.c:1925 commands/publicationcmds.c:1932
+#: commands/publicationcmds.c:1918 commands/publicationcmds.c:1925
 #, c-format
 msgid "permission denied to change owner of publication \"%s\""
 msgstr "se ha denegado el permiso para cambiar el dueño de la publicación «%s»"
 
-#: commands/publicationcmds.c:1927
+#: commands/publicationcmds.c:1920
 #, c-format
 msgid "The owner of a FOR ALL TABLES publication must be a superuser."
 msgstr "El dueño de una publicación FOR ALL TABLES debe ser un superusuario."
 
-#: commands/publicationcmds.c:1934
-#, fuzzy, c-format
-#| msgid "The owner of a FOR ALL TABLES publication must be a superuser."
+#: commands/publicationcmds.c:1927
+#, c-format
 msgid "The owner of a FOR TABLES IN SCHEMA publication must be a superuser."
-msgstr "El dueño de una publicación FOR ALL TABLES debe ser un superusuario."
+msgstr "El dueño de una publicación FOR TABLES IN SCHEMA debe ser un superusuario."
 
-#: commands/publicationcmds.c:2000
+#: commands/publicationcmds.c:1993
 #, c-format
 msgid "publication with OID %u does not exist"
 msgstr "no existe la publicación con OID %u"
@@ -9715,3263 +10029,3266 @@ msgid "security labels are not supported for this type of object"
 msgstr "las etiquetas de seguirdad no están soportadas para este tipo de objeto"
 
 #: commands/seclabel.c:193
-#, fuzzy, c-format
-#| msgid "cannot alter constraint \"%s\" on relation \"%s\""
+#, c-format
 msgid "cannot set security label on relation \"%s\""
-msgstr "no se puede modificar la restricción «%s» en la relación «%s»"
+msgstr "no se puede definir la etiqueta de seguridad en la relación «%s»"
 
-#: commands/sequence.c:754
+#: commands/sequence.c:748
 #, c-format
 msgid "nextval: reached maximum value of sequence \"%s\" (%lld)"
-msgstr ""
+msgstr "nextval: se alcanzó el valor máximo de la secuencia «%s» (%lld)"
 
-#: commands/sequence.c:773
+#: commands/sequence.c:767
 #, c-format
 msgid "nextval: reached minimum value of sequence \"%s\" (%lld)"
-msgstr ""
+msgstr "nextval: se alcanzó el valor mínimo de la secuencia «%s» (%lld)"
 
-#: commands/sequence.c:891
+#: commands/sequence.c:886
 #, c-format
 msgid "currval of sequence \"%s\" is not yet defined in this session"
 msgstr "currval de la secuencia «%s» no está definido en esta sesión"
 
-#: commands/sequence.c:910 commands/sequence.c:916
+#: commands/sequence.c:905 commands/sequence.c:911
 #, c-format
 msgid "lastval is not yet defined in this session"
 msgstr "lastval no está definido en esta sesión"
 
-#: commands/sequence.c:996
-#, fuzzy, c-format
-#| msgid "value %s out of bounds for option \"%s\""
+#: commands/sequence.c:991
+#, c-format
 msgid "setval: value %lld is out of bounds for sequence \"%s\" (%lld..%lld)"
-msgstr "el valor %s está fuera del rango de la opción «%s»"
+msgstr "setval: el valor %lld está fuera del rango para la secuencia «%s» (%lld..%lld)"
 
-#: commands/sequence.c:1365
+#: commands/sequence.c:1357
 #, c-format
 msgid "invalid sequence option SEQUENCE NAME"
 msgstr "opción de secuencia no válida SEQUENCE NAME"
 
-#: commands/sequence.c:1391
+#: commands/sequence.c:1383
 #, c-format
 msgid "identity column type must be smallint, integer, or bigint"
 msgstr "el tipo de columna de identidad debe ser smallint, integer o bigint"
 
-#: commands/sequence.c:1392
+#: commands/sequence.c:1384
 #, c-format
 msgid "sequence type must be smallint, integer, or bigint"
 msgstr "el tipo de secuencia debe ser smallint, integer o bigint"
 
-#: commands/sequence.c:1426
+#: commands/sequence.c:1418
 #, c-format
 msgid "INCREMENT must not be zero"
 msgstr "INCREMENT no debe ser cero"
 
-#: commands/sequence.c:1474
-#, fuzzy, c-format
-#| msgid "value \"%s\" is out of range for type %s"
+#: commands/sequence.c:1466
+#, c-format
 msgid "MAXVALUE (%lld) is out of range for sequence data type %s"
-msgstr "el valor «%s» está fuera de rango para el tipo %s"
+msgstr "el MAXVALUE (%lld) está fuera de rango para el tipo de la secuencia %s"
 
-#: commands/sequence.c:1506
-#, fuzzy, c-format
-#| msgid "value \"%s\" is out of range for type %s"
+#: commands/sequence.c:1498
+#, c-format
 msgid "MINVALUE (%lld) is out of range for sequence data type %s"
-msgstr "el valor «%s» está fuera de rango para el tipo %s"
+msgstr "el MINVALUE (%lld) está fuera de rango para el tipo de la secuencia %s"
 
-#: commands/sequence.c:1514
+#: commands/sequence.c:1506
 #, c-format
 msgid "MINVALUE (%lld) must be less than MAXVALUE (%lld)"
-msgstr ""
+msgstr "MINVALUE (%lld) debe ser menor que MAXVALUE (%lld)"
 
-#: commands/sequence.c:1535
+#: commands/sequence.c:1527
 #, c-format
 msgid "START value (%lld) cannot be less than MINVALUE (%lld)"
-msgstr ""
+msgstr "el valor START (%lld) no puede ser menor que MINVALUE (%lld)"
 
-#: commands/sequence.c:1541
+#: commands/sequence.c:1533
 #, c-format
 msgid "START value (%lld) cannot be greater than MAXVALUE (%lld)"
-msgstr ""
+msgstr "el valor START (%lld) no puede ser mayor que el MAXVALUE (%lld)"
 
-#: commands/sequence.c:1565
+#: commands/sequence.c:1557
 #, c-format
 msgid "RESTART value (%lld) cannot be less than MINVALUE (%lld)"
-msgstr ""
+msgstr "el valor RESTART (%lld) no puede ser menor que MINVALUE (%lld)"
 
-#: commands/sequence.c:1571
+#: commands/sequence.c:1563
 #, c-format
 msgid "RESTART value (%lld) cannot be greater than MAXVALUE (%lld)"
-msgstr ""
+msgstr "el valor RESTART (%lld) no puede ser mayor que MAXVALUE (%lld)"
 
-#: commands/sequence.c:1582
-#, fuzzy, c-format
-#| msgid "stride must be greater than zero"
+#: commands/sequence.c:1574
+#, c-format
 msgid "CACHE (%lld) must be greater than zero"
-msgstr "el intervalo de paso (stride) debe ser mayor que cero"
+msgstr "el CACHE (%lld) debe ser mayor que cero"
 
-#: commands/sequence.c:1618
+#: commands/sequence.c:1610
 #, c-format
 msgid "invalid OWNED BY option"
 msgstr "opción OWNED BY no válida"
 
-#: commands/sequence.c:1619
+#: commands/sequence.c:1611
 #, c-format
 msgid "Specify OWNED BY table.column or OWNED BY NONE."
 msgstr "Especifique OWNED BY tabla.columna o OWNED BY NONE."
 
-#: commands/sequence.c:1644
-#, fuzzy, c-format
-#| msgid "cannot move system relation \"%s\""
+#: commands/sequence.c:1636
+#, c-format
 msgid "sequence cannot be owned by relation \"%s\""
-msgstr "no se puede mover la relación de sistema «%s»"
+msgstr "la secuencia no puede ser poseída por la relación «%s»"
 
-#: commands/sequence.c:1652
+#: commands/sequence.c:1644
 #, c-format
 msgid "sequence must have same owner as table it is linked to"
 msgstr "la secuencia debe tener el mismo dueño que la tabla a la que está enlazada"
 
-#: commands/sequence.c:1656
+#: commands/sequence.c:1648
 #, c-format
 msgid "sequence must be in same schema as table it is linked to"
 msgstr "la secuencia debe estar en el mismo esquema que la tabla a la que está enlazada"
 
-#: commands/sequence.c:1678
+#: commands/sequence.c:1670
 #, c-format
 msgid "cannot change ownership of identity sequence"
 msgstr "no se puede cambiar el dueño de la secuencia de identidad"
 
-#: commands/sequence.c:1679 commands/tablecmds.c:13891
-#: commands/tablecmds.c:16488
+#: commands/sequence.c:1671 commands/tablecmds.c:14486
+#: commands/tablecmds.c:17181
 #, c-format
 msgid "Sequence \"%s\" is linked to table \"%s\"."
 msgstr "La secuencia «%s» está enlazada a la tabla «%s»."
 
-#: commands/statscmds.c:109 commands/statscmds.c:118 tcop/utility.c:1886
+#: commands/statscmds.c:106 commands/statscmds.c:115 tcop/utility.c:1883
 #, c-format
 msgid "only a single relation is allowed in CREATE STATISTICS"
 msgstr "sólo se permite una relación en CREATE STATISTICS"
 
-#: commands/statscmds.c:136
-#, fuzzy, c-format
-#| msgid "cannot rewrite system relation \"%s\""
+#: commands/statscmds.c:133
+#, c-format
 msgid "cannot define statistics for relation \"%s\""
-msgstr "no se puede reescribir la relación de sistema «%s»"
+msgstr "no se puede definir estadísticas para la relación «%s»"
 
-#: commands/statscmds.c:190
+#: commands/statscmds.c:187
 #, c-format
 msgid "statistics object \"%s\" already exists, skipping"
 msgstr "el objeto de estadísticas «%s» ya existe, omitiendo"
 
-#: commands/statscmds.c:198
+#: commands/statscmds.c:195
 #, c-format
 msgid "statistics object \"%s\" already exists"
 msgstr "el objeto de estadísticas «%s» ya existe"
 
-#: commands/statscmds.c:209
+#: commands/statscmds.c:206
 #, c-format
 msgid "cannot have more than %d columns in statistics"
 msgstr "no se puede tener más de %d columnas en estadísticas"
 
-#: commands/statscmds.c:250 commands/statscmds.c:273 commands/statscmds.c:307
+#: commands/statscmds.c:247 commands/statscmds.c:270 commands/statscmds.c:304
 #, c-format
 msgid "statistics creation on system columns is not supported"
 msgstr "la creación de estadísticas en columnas de sistema no está soportada"
 
-#: commands/statscmds.c:257 commands/statscmds.c:280
+#: commands/statscmds.c:254 commands/statscmds.c:277
 #, c-format
 msgid "column \"%s\" cannot be used in statistics because its type %s has no default btree operator class"
 msgstr "la columna «%s» no puede ser usado en estadísticas porque su tipo %s no tiene una clase de operadores por omisión para btree"
 
-#: commands/statscmds.c:324
+#: commands/statscmds.c:321
 #, c-format
 msgid "expression cannot be used in multivariate statistics because its type %s has no default btree operator class"
 msgstr "la expresión no puede ser usada en estadísticas multivariantes porque su tipo %s no tiene una clase de operadores por omisión para btree"
 
-#: commands/statscmds.c:345
+#: commands/statscmds.c:342
 #, c-format
 msgid "when building statistics on a single expression, statistics kinds may not be specified"
 msgstr "al crear estadísticas sobre una sola expresión, no se deben especificar tipos de estadísticas"
 
-#: commands/statscmds.c:374
+#: commands/statscmds.c:371
 #, c-format
 msgid "unrecognized statistics kind \"%s\""
 msgstr "tipo de estadísticas «%s» no reconocido"
 
-#: commands/statscmds.c:403
+#: commands/statscmds.c:400
 #, c-format
 msgid "extended statistics require at least 2 columns"
 msgstr "las estadísticas extendidas requieren al menos 2 columnas"
 
-#: commands/statscmds.c:421
+#: commands/statscmds.c:418
 #, c-format
 msgid "duplicate column name in statistics definition"
 msgstr "nombre de columna duplicado en definición de estadísticas"
 
-#: commands/statscmds.c:456
+#: commands/statscmds.c:453
 #, c-format
 msgid "duplicate expression in statistics definition"
 msgstr "expresión duplicada en definición de estadísticas"
 
-#: commands/statscmds.c:619 commands/tablecmds.c:8180
+#: commands/statscmds.c:628 commands/tablecmds.c:8620
 #, c-format
 msgid "statistics target %d is too low"
 msgstr "el valor de estadísticas %d es demasiado bajo"
 
-#: commands/statscmds.c:627 commands/tablecmds.c:8188
+#: commands/statscmds.c:636 commands/tablecmds.c:8628
 #, c-format
 msgid "lowering statistics target to %d"
 msgstr "bajando el valor de estadísticas a %d"
 
-#: commands/statscmds.c:650
+#: commands/statscmds.c:660
 #, c-format
 msgid "statistics object \"%s.%s\" does not exist, skipping"
 msgstr "no existe el objeto de estadísticas «%s.%s», omitiendo"
 
-#: commands/subscriptioncmds.c:271 commands/subscriptioncmds.c:359
+#: commands/subscriptioncmds.c:275 commands/subscriptioncmds.c:372
 #, c-format
 msgid "unrecognized subscription parameter: \"%s\""
 msgstr "parámetro de suscripción no reconocido: «%s»"
 
-#: commands/subscriptioncmds.c:327 replication/pgoutput/pgoutput.c:398
-#, fuzzy, c-format
-#| msgid "unrecognized section name: \"%s\""
+#: commands/subscriptioncmds.c:340 replication/pgoutput/pgoutput.c:404
+#, c-format
 msgid "unrecognized origin value: \"%s\""
-msgstr "nombre de sección «%s» no reconocido"
+msgstr "valor de origen no reconocido: «%s»"
 
-#: commands/subscriptioncmds.c:350
-#, fuzzy, c-format
-#| msgid "invalid WAL location: \"%s\""
+#: commands/subscriptioncmds.c:363
+#, c-format
 msgid "invalid WAL location (LSN): %s"
-msgstr "ubicación de WAL no válida: «%s»"
+msgstr "ubicación de WAL (LSN) no válida: %s"
 
 #. translator: both %s are strings of the form "option = value"
-#: commands/subscriptioncmds.c:374 commands/subscriptioncmds.c:381
-#: commands/subscriptioncmds.c:388 commands/subscriptioncmds.c:410
-#: commands/subscriptioncmds.c:426
+#: commands/subscriptioncmds.c:387 commands/subscriptioncmds.c:394
+#: commands/subscriptioncmds.c:401 commands/subscriptioncmds.c:423
+#: commands/subscriptioncmds.c:439
 #, c-format
 msgid "%s and %s are mutually exclusive options"
 msgstr "%s y %s son opciones mutuamente excluyentes"
 
 #. translator: both %s are strings of the form "option = value"
-#: commands/subscriptioncmds.c:416 commands/subscriptioncmds.c:432
+#: commands/subscriptioncmds.c:429 commands/subscriptioncmds.c:445
 #, c-format
 msgid "subscription with %s must also set %s"
 msgstr "suscripción con %s también debe activar %s"
 
-#: commands/subscriptioncmds.c:494
-#, fuzzy, c-format
-#| msgid "could not receive list of replicated tables from the publisher: %s"
+#: commands/subscriptioncmds.c:506
+#, c-format
 msgid "could not receive list of publications from the publisher: %s"
-msgstr "no se pudo recibir la lista de tablas replicadas desde el editor (publisher): %s"
+msgstr "no se pudo recibir la lista de publicaciones desde el publicador: %s"
 
-#: commands/subscriptioncmds.c:526
-#, fuzzy, c-format
-#| msgid "publication \"%s\" does not exist"
+#: commands/subscriptioncmds.c:538
+#, c-format
 msgid "publication %s does not exist on the publisher"
 msgid_plural "publications %s do not exist on the publisher"
-msgstr[0] "no existe la publicación «%s»"
-msgstr[1] "no existe la publicación «%s»"
+msgstr[0] "no existe la publicación «%s» en el “publisher”"
+msgstr[1] "no existen las publicaciones «%s» en el “publisher”"
 
-#: commands/subscriptioncmds.c:614
-#, fuzzy, c-format
-#| msgid "permission denied for subscription %s"
+#: commands/subscriptioncmds.c:626
+#, c-format
 msgid "permission denied to create subscription"
-msgstr "permiso denegado a la suscripción %s"
+msgstr "permiso denegado a crear suscripción"
 
-#: commands/subscriptioncmds.c:615
+#: commands/subscriptioncmds.c:627
 #, c-format
 msgid "Only roles with privileges of the \"%s\" role may create subscriptions."
-msgstr ""
+msgstr "Sólo los roles con privilegio del rol «%s» pueden crear suscripciones."
 
-#: commands/subscriptioncmds.c:745 commands/subscriptioncmds.c:878
-#: replication/logical/tablesync.c:1304 replication/logical/worker.c:4616
+#: commands/subscriptioncmds.c:758 commands/subscriptioncmds.c:891
+#: commands/subscriptioncmds.c:1524 replication/logical/tablesync.c:1345
+#: replication/logical/worker.c:4503
 #, c-format
 msgid "could not connect to the publisher: %s"
-msgstr "no se pudo connectar con el editor (publisher): %s"
+msgstr "no se pudo connectar con el publicador: %s"
 
-#: commands/subscriptioncmds.c:816
+#: commands/subscriptioncmds.c:829
 #, c-format
 msgid "created replication slot \"%s\" on publisher"
-msgstr "se creó el slot de replicación «%s» en el editor (publisher)"
+msgstr "se creó el slot de replicación «%s» en el publicador"
 
-#: commands/subscriptioncmds.c:828
-#, fuzzy, c-format
-#| msgid "subscription has no replication slot set"
+#: commands/subscriptioncmds.c:841
+#, c-format
 msgid "subscription was created, but is not connected"
-msgstr "la suscripción no tiene un slot de replicación establecido"
+msgstr "la suscripción fue creada, pero no está conectada"
 
-#: commands/subscriptioncmds.c:829
+#: commands/subscriptioncmds.c:842
 #, c-format
 msgid "To initiate replication, you must manually create the replication slot, enable the subscription, and refresh the subscription."
-msgstr ""
+msgstr "Para iniciar la replicacióñ, debe manualmente crear el slot de replicación, activar la suscripción, y refrescar la suscripción."
 
-#: commands/subscriptioncmds.c:1096 commands/subscriptioncmds.c:1502
-#: commands/subscriptioncmds.c:1885 utils/cache/lsyscache.c:3642
+#: commands/subscriptioncmds.c:1109 commands/subscriptioncmds.c:1590
+#: commands/subscriptioncmds.c:1973 utils/cache/lsyscache.c:3684
 #, c-format
 msgid "subscription \"%s\" does not exist"
 msgstr "no existe la suscripción «%s»"
 
-#: commands/subscriptioncmds.c:1152
+#: commands/subscriptioncmds.c:1166 commands/subscriptioncmds.c:1245
 #, c-format
 msgid "cannot set %s for enabled subscription"
 msgstr "no se puede establecer %s para la suscripción activada"
 
-#: commands/subscriptioncmds.c:1227
+#: commands/subscriptioncmds.c:1233
+#, c-format
+msgid "cannot set option \"%s\" for a subscription that does not have a slot name"
+msgstr "no se puede definir la opción «%s” para una suscripción que no tiene un nombre de slot"
+
+#: commands/subscriptioncmds.c:1279
 #, c-format
 msgid "cannot enable subscription that does not have a slot name"
 msgstr "no se puede habilitar la suscripción que no tiene un nombre de slot"
 
-#: commands/subscriptioncmds.c:1271 commands/subscriptioncmds.c:1322
+#: commands/subscriptioncmds.c:1323 commands/subscriptioncmds.c:1374
 #, c-format
 msgid "ALTER SUBSCRIPTION with refresh is not allowed for disabled subscriptions"
 msgstr "ALTER SUBSCRIPTION con actualización no está permitido para las suscripciones desactivadas"
 
-#: commands/subscriptioncmds.c:1272
+#: commands/subscriptioncmds.c:1324
 #, c-format
 msgid "Use ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)."
 msgstr "Use ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)."
 
-#: commands/subscriptioncmds.c:1281 commands/subscriptioncmds.c:1336
-#, fuzzy, c-format
-#| msgid "ALTER SUBSCRIPTION with refresh is not allowed for disabled subscriptions"
+#: commands/subscriptioncmds.c:1333 commands/subscriptioncmds.c:1388
+#, c-format
 msgid "ALTER SUBSCRIPTION with refresh and copy_data is not allowed when two_phase is enabled"
-msgstr "ALTER SUBSCRIPTION con actualización no está permitido para las suscripciones desactivadas"
+msgstr "ALTER SUBSCRIPTION con «refresh» y «copy_data» no está permitido cuando «two_phase» está activo"
 
-#: commands/subscriptioncmds.c:1282
-#, fuzzy, c-format
-#| msgid "Use ALTER SUBSCRIPTION ... REFRESH with copy_data = false, or use DROP/CREATE SUBSCRIPTION."
+#: commands/subscriptioncmds.c:1334
+#, c-format
 msgid "Use ALTER SUBSCRIPTION ... SET PUBLICATION with refresh = false, or with copy_data = false, or use DROP/CREATE SUBSCRIPTION."
-msgstr "Use ALTER SUBSCRIPTION ... REFRESH con copy_data = false, o use DROP/CREATE SUBSCRIPTION."
-
-#. translator: %s is an SQL ALTER command
-#: commands/subscriptioncmds.c:1324
-#, fuzzy, c-format
-#| msgid "Use views instead."
-msgid "Use %s instead."
-msgstr "Use vistas en su lugar."
+msgstr "Use ALTER SUBSCRIPTION ... SET PUBLICATION con refresh = false, o con copy_data=false, o use DROP/CREATE SUBSCRIPTION."
 
 #. translator: %s is an SQL ALTER command
-#: commands/subscriptioncmds.c:1338
-#, fuzzy, c-format
-#| msgid "Use ALTER SUBSCRIPTION ... REFRESH with copy_data = false, or use DROP/CREATE SUBSCRIPTION."
+#: commands/subscriptioncmds.c:1390
+#, c-format
 msgid "Use %s with refresh = false, or with copy_data = false, or use DROP/CREATE SUBSCRIPTION."
-msgstr "Use ALTER SUBSCRIPTION ... REFRESH con copy_data = false, o use DROP/CREATE SUBSCRIPTION."
+msgstr "Use %s con refresh = false, o con copy_data = false, o use DROP/CREATE SUBSCRIPTION."
 
-#: commands/subscriptioncmds.c:1360
+#: commands/subscriptioncmds.c:1412
 #, c-format
 msgid "ALTER SUBSCRIPTION ... REFRESH is not allowed for disabled subscriptions"
 msgstr "ALTER SUBSCRIPTION ... REFRESH no está permitido para las suscripciones desactivadas"
 
-#: commands/subscriptioncmds.c:1385
-#, fuzzy, c-format
-#| msgid "ALTER SUBSCRIPTION ... REFRESH is not allowed for disabled subscriptions"
+#: commands/subscriptioncmds.c:1437
+#, c-format
 msgid "ALTER SUBSCRIPTION ... REFRESH with copy_data is not allowed when two_phase is enabled"
-msgstr "ALTER SUBSCRIPTION ... REFRESH no está permitido para las suscripciones desactivadas"
+msgstr "ALTER SUBSCRIPTION ... REFRESH con copy_data no está permitido cuando two_phase está activo"
 
-#: commands/subscriptioncmds.c:1386
+#: commands/subscriptioncmds.c:1438
 #, c-format
 msgid "Use ALTER SUBSCRIPTION ... REFRESH with copy_data = false, or use DROP/CREATE SUBSCRIPTION."
 msgstr "Use ALTER SUBSCRIPTION ... REFRESH con copy_data = false, o use DROP/CREATE SUBSCRIPTION."
 
-#: commands/subscriptioncmds.c:1421
+#: commands/subscriptioncmds.c:1473
 #, c-format
 msgid "skip WAL location (LSN %X/%X) must be greater than origin LSN %X/%X"
 msgstr "la ubicación de WAL a saltar (LSN %X/%X) debe ser mayor que el LSN de origen %X/%X"
 
-#: commands/subscriptioncmds.c:1506
+#: commands/subscriptioncmds.c:1594
 #, c-format
 msgid "subscription \"%s\" does not exist, skipping"
 msgstr "no existe la suscripción «%s», omitiendo"
 
-#: commands/subscriptioncmds.c:1775
+#: commands/subscriptioncmds.c:1863
 #, c-format
 msgid "dropped replication slot \"%s\" on publisher"
-msgstr "eliminando el slot de replicación «%s» en editor (publisher)"
+msgstr "eliminando el slot de replicación «%s» en publicador"
 
-#: commands/subscriptioncmds.c:1784 commands/subscriptioncmds.c:1792
+#: commands/subscriptioncmds.c:1872 commands/subscriptioncmds.c:1880
 #, c-format
 msgid "could not drop replication slot \"%s\" on publisher: %s"
-msgstr "no se pudo eliminar el slot de replicación «%s» en editor (publisher): %s"
+msgstr "no se pudo eliminar el slot de replicación «%s» en publicador: %s"
 
-#: commands/subscriptioncmds.c:1917
+#: commands/subscriptioncmds.c:2005
 #, c-format
 msgid "subscription with OID %u does not exist"
 msgstr "no existe la suscripción con OID %u"
 
-#: commands/subscriptioncmds.c:1988 commands/subscriptioncmds.c:2113
+#: commands/subscriptioncmds.c:2076 commands/subscriptioncmds.c:2201
 #, c-format
 msgid "could not receive list of replicated tables from the publisher: %s"
-msgstr "no se pudo recibir la lista de tablas replicadas desde el editor (publisher): %s"
+msgstr "no se pudo recibir la lista de tablas replicadas desde el publicador: %s"
 
-#: commands/subscriptioncmds.c:2024
+#: commands/subscriptioncmds.c:2112
 #, c-format
 msgid "subscription \"%s\" requested copy_data with origin = NONE but might copy data that had a different origin"
-msgstr ""
+msgstr "la suscripción «%s» pidió copy_data con origin = NONE pero podría copiar datos que tenían un origen diferente"
 
-#: commands/subscriptioncmds.c:2026
-#, fuzzy, c-format
-#| msgid "relation \"%s\" is not part of the publication"
-msgid "Subscribed publication %s is subscribing to other publications."
-msgid_plural "Subscribed publications %s are subscribing to other publications."
-msgstr[0] "relación «%s» no es parte de la publicación"
-msgstr[1] "relación «%s» no es parte de la publicación"
+#: commands/subscriptioncmds.c:2114
+#, c-format
+msgid "The subscription being created subscribes to a publication (%s) that contains tables that are written to by other subscriptions."
+msgid_plural "The subscription being created subscribes to publications (%s) that contain tables that are written to by other subscriptions."
+msgstr[0] "La suscripción que está siendo creada suscribe a una publicación (%s) que contiene tablas que están siendo escritas por otras suscripciones."
+msgstr[1] "La suscripción que está siendo creada suscribe a publicaciones (%s) que contienen tablas que están siendo escritas por otras suscripciones."
 
-#: commands/subscriptioncmds.c:2029
+#: commands/subscriptioncmds.c:2117
 #, c-format
 msgid "Verify that initial data copied from the publisher tables did not come from other origins."
-msgstr ""
+msgstr "Verifique que los datos iniciales copiados desde el publicador no vinieron de otros orígenes."
 
-#: commands/subscriptioncmds.c:2135 replication/logical/tablesync.c:875
-#: replication/pgoutput/pgoutput.c:1115
-#, fuzzy, c-format
-#| msgid "cannot use ONLY for foreign key on partitioned table \"%s\" referencing relation \"%s\""
+#: commands/subscriptioncmds.c:2223 replication/logical/tablesync.c:906
+#: replication/pgoutput/pgoutput.c:1143
+#, c-format
 msgid "cannot use different column lists for table \"%s.%s\" in different publications"
-msgstr "no se puede usar ONLY para una llave foránea en la tabla particionada «%s» haciendo referencia a la relación «%s»"
+msgstr "no se puede usar distintas listas de columnas para la tabla «%s.%s» en distintas publicaciones"
 
-#: commands/subscriptioncmds.c:2185
+#: commands/subscriptioncmds.c:2273
 #, c-format
 msgid "could not connect to publisher when attempting to drop replication slot \"%s\": %s"
-msgstr "no se pudo conectar con el editor (publisher) al intentar eliminar el slot de replicación \"%s\": %s"
+msgstr "no se pudo conectar con el publicador al intentar eliminar el slot de replicación \"%s\": %s"
 
 #. translator: %s is an SQL ALTER command
-#: commands/subscriptioncmds.c:2188
+#: commands/subscriptioncmds.c:2276
 #, c-format
-msgid "Use %s to disassociate the subscription from the slot."
-msgstr "Use %s para disociar la suscripción del slot."
+msgid "Use %s to disable the subscription, and then use %s to disassociate it from the slot."
+msgstr "Use %s para desactivar la suscripción, luego use %s para disociarla del slot."
 
-#: commands/subscriptioncmds.c:2218
+#: commands/subscriptioncmds.c:2307
 #, c-format
 msgid "publication name \"%s\" used more than once"
 msgstr "nombre de publicación «%s» usado más de una vez"
 
-#: commands/subscriptioncmds.c:2262
+#: commands/subscriptioncmds.c:2351
 #, c-format
 msgid "publication \"%s\" is already in subscription \"%s\""
 msgstr "la publicación «%s» ya existe en la suscripción «%s»"
 
-#: commands/subscriptioncmds.c:2276
+#: commands/subscriptioncmds.c:2365
 #, c-format
 msgid "publication \"%s\" is not in subscription \"%s\""
 msgstr "la publicación «%s» no está en la suscripción «%s»"
 
-#: commands/subscriptioncmds.c:2287
+#: commands/subscriptioncmds.c:2376
 #, c-format
 msgid "cannot drop all the publications from a subscription"
 msgstr "no se puede eliminar todas las publicaciones de una suscripción"
 
-#: commands/subscriptioncmds.c:2344
-#, fuzzy, c-format
-#| msgid "%s requires a Boolean value"
+#: commands/subscriptioncmds.c:2433
+#, c-format
 msgid "%s requires a Boolean value or \"parallel\""
-msgstr "«%s» requiere un valor lógico (booleano)"
+msgstr "«%s» requiere un valor lógico (booleano) o “parallel”"
 
-#: commands/tablecmds.c:246 commands/tablecmds.c:288
+#: commands/tablecmds.c:255 commands/tablecmds.c:297
 #, c-format
 msgid "table \"%s\" does not exist"
 msgstr "no existe la tabla «%s»"
 
-#: commands/tablecmds.c:247 commands/tablecmds.c:289
+#: commands/tablecmds.c:256 commands/tablecmds.c:298
 #, c-format
 msgid "table \"%s\" does not exist, skipping"
 msgstr "la tabla «%s» no existe, omitiendo"
 
-#: commands/tablecmds.c:249 commands/tablecmds.c:291
+#: commands/tablecmds.c:258 commands/tablecmds.c:300
 msgid "Use DROP TABLE to remove a table."
 msgstr "Use DROP TABLE para eliminar una tabla."
 
-#: commands/tablecmds.c:252
+#: commands/tablecmds.c:261
 #, c-format
 msgid "sequence \"%s\" does not exist"
 msgstr "no existe la secuencia «%s»"
 
-#: commands/tablecmds.c:253
+#: commands/tablecmds.c:262
 #, c-format
 msgid "sequence \"%s\" does not exist, skipping"
 msgstr "la secuencia «%s» no existe, omitiendo"
 
-#: commands/tablecmds.c:255
+#: commands/tablecmds.c:264
 msgid "Use DROP SEQUENCE to remove a sequence."
 msgstr "Use DROP SEQUENCE para eliminar una secuencia."
 
-#: commands/tablecmds.c:258
+#: commands/tablecmds.c:267
 #, c-format
 msgid "view \"%s\" does not exist"
 msgstr "no existe la vista «%s»"
 
-#: commands/tablecmds.c:259
+#: commands/tablecmds.c:268
 #, c-format
 msgid "view \"%s\" does not exist, skipping"
 msgstr "la vista «%s» no existe, omitiendo"
 
-#: commands/tablecmds.c:261
+#: commands/tablecmds.c:270
 msgid "Use DROP VIEW to remove a view."
 msgstr "Use DROP VIEW para eliminar una vista."
 
-#: commands/tablecmds.c:264
+#: commands/tablecmds.c:273
 #, c-format
 msgid "materialized view \"%s\" does not exist"
 msgstr "no existe la vista materializada «%s»"
 
-#: commands/tablecmds.c:265
+#: commands/tablecmds.c:274
 #, c-format
 msgid "materialized view \"%s\" does not exist, skipping"
 msgstr "la vista materializada «%s» no existe, omitiendo"
 
-#: commands/tablecmds.c:267
+#: commands/tablecmds.c:276
 msgid "Use DROP MATERIALIZED VIEW to remove a materialized view."
 msgstr "Use DROP MATERIALIZED VIEW para eliminar una vista materializada."
 
-#: commands/tablecmds.c:270 commands/tablecmds.c:294 commands/tablecmds.c:19002
-#: parser/parse_utilcmd.c:2245
+#: commands/tablecmds.c:279 commands/tablecmds.c:303 commands/tablecmds.c:19805
+#: parser/parse_utilcmd.c:2251
 #, c-format
 msgid "index \"%s\" does not exist"
 msgstr "no existe el índice «%s»"
 
-#: commands/tablecmds.c:271 commands/tablecmds.c:295
+#: commands/tablecmds.c:280 commands/tablecmds.c:304
 #, c-format
 msgid "index \"%s\" does not exist, skipping"
 msgstr "el índice «%s» no existe, omitiendo"
 
-#: commands/tablecmds.c:273 commands/tablecmds.c:297
+#: commands/tablecmds.c:282 commands/tablecmds.c:306
 msgid "Use DROP INDEX to remove an index."
 msgstr "Use DROP INDEX para eliminar un índice."
 
-#: commands/tablecmds.c:278
+#: commands/tablecmds.c:287
 #, c-format
 msgid "\"%s\" is not a type"
 msgstr "«%s» no es un tipo"
 
-#: commands/tablecmds.c:279
+#: commands/tablecmds.c:288
 msgid "Use DROP TYPE to remove a type."
 msgstr "Use DROP TYPE para eliminar un tipo."
 
-#: commands/tablecmds.c:282 commands/tablecmds.c:13730
-#: commands/tablecmds.c:16193
+#: commands/tablecmds.c:291 commands/tablecmds.c:14325
+#: commands/tablecmds.c:16886
 #, c-format
 msgid "foreign table \"%s\" does not exist"
 msgstr "no existe la tabla foránea «%s»"
 
-#: commands/tablecmds.c:283
+#: commands/tablecmds.c:292
 #, c-format
 msgid "foreign table \"%s\" does not exist, skipping"
 msgstr "la tabla foránea «%s» no existe, omitiendo"
 
-#: commands/tablecmds.c:285
+#: commands/tablecmds.c:294
 msgid "Use DROP FOREIGN TABLE to remove a foreign table."
 msgstr "Use DROP FOREIGN TABLE para eliminar una tabla foránea."
 
-#: commands/tablecmds.c:700
+#: commands/tablecmds.c:734
 #, c-format
 msgid "ON COMMIT can only be used on temporary tables"
 msgstr "ON COMMIT sólo puede ser usado en tablas temporales"
 
-#: commands/tablecmds.c:731
+#: commands/tablecmds.c:765
 #, c-format
 msgid "cannot create temporary table within security-restricted operation"
 msgstr "no se puede crear una tabla temporal dentro una operación restringida por seguridad"
 
-#: commands/tablecmds.c:767 commands/tablecmds.c:15038
+#: commands/tablecmds.c:801 commands/tablecmds.c:15745
 #, c-format
 msgid "relation \"%s\" would be inherited from more than once"
 msgstr "se heredaría de la relación «%s» más de una vez"
 
-#: commands/tablecmds.c:955
-#, c-format
-msgid "specifying a table access method is not supported on a partitioned table"
-msgstr "especificar un método de acceso de tablas no está soportado en tablas particionadas"
-
-#: commands/tablecmds.c:1048
+#: commands/tablecmds.c:1067
 #, c-format
 msgid "\"%s\" is not partitioned"
 msgstr "«%s» no está particionada"
 
-#: commands/tablecmds.c:1142
+#: commands/tablecmds.c:1161
 #, c-format
 msgid "cannot partition using more than %d columns"
 msgstr "no se puede particionar usando más de %d columnas"
 
-#: commands/tablecmds.c:1198
+#: commands/tablecmds.c:1217
 #, c-format
 msgid "cannot create foreign partition of partitioned table \"%s\""
 msgstr "no se puede crear una partición foránea en la tabla particionada «%s»"
 
-#: commands/tablecmds.c:1200
+#: commands/tablecmds.c:1219
 #, c-format
 msgid "Table \"%s\" contains indexes that are unique."
 msgstr "La tabla «%s» contiene índices que son únicos."
 
-#: commands/tablecmds.c:1365
+#: commands/tablecmds.c:1338 commands/tablecmds.c:13341
 #, c-format
-msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects"
+msgid "too many array dimensions"
+msgstr "demasiadas dimensiones de array"
+
+#: commands/tablecmds.c:1343 parser/parse_clause.c:774
+#: parser/parse_relation.c:1912
+#, c-format
+msgid "column \"%s\" cannot be declared SETOF"
+msgstr "la columna «%s» no puede ser declarada SETOF"
+
+#: commands/tablecmds.c:1489
+#, c-format
+msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects"
 msgstr "DROP INDEX CONCURRENTLY no soporta eliminar múltiples objetos"
 
-#: commands/tablecmds.c:1369
+#: commands/tablecmds.c:1493
 #, c-format
 msgid "DROP INDEX CONCURRENTLY does not support CASCADE"
 msgstr "DROP INDEX CONCURRENTLY no soporta CASCADE"
 
-#: commands/tablecmds.c:1473
+#: commands/tablecmds.c:1597
 #, c-format
 msgid "cannot drop partitioned index \"%s\" concurrently"
 msgstr "no se puede eliminar el índice particionado «%s» concurrentemente"
 
-#: commands/tablecmds.c:1761
+#: commands/tablecmds.c:1885
 #, c-format
 msgid "cannot truncate only a partitioned table"
 msgstr "no se puede truncar ONLY una tabla particionada"
 
-#: commands/tablecmds.c:1762
+#: commands/tablecmds.c:1886
 #, c-format
 msgid "Do not specify the ONLY keyword, or use TRUNCATE ONLY on the partitions directly."
 msgstr "No especifique la opción ONLY, o ejecute TRUNCATE ONLY en las particiones directamente."
 
-#: commands/tablecmds.c:1835
+#: commands/tablecmds.c:1959
 #, c-format
 msgid "truncate cascades to table \"%s\""
 msgstr "truncando además la tabla «%s»"
 
-#: commands/tablecmds.c:2199
+#: commands/tablecmds.c:2320
 #, c-format
 msgid "cannot truncate foreign table \"%s\""
 msgstr "no se puede truncar la tabla foránea «%s»"
 
-#: commands/tablecmds.c:2256
+#: commands/tablecmds.c:2377
 #, c-format
 msgid "cannot truncate temporary tables of other sessions"
 msgstr "no se pueden truncar tablas temporales de otras sesiones"
 
-#: commands/tablecmds.c:2488 commands/tablecmds.c:14935
+#: commands/tablecmds.c:2606 commands/tablecmds.c:15642
 #, c-format
 msgid "cannot inherit from partitioned table \"%s\""
 msgstr "no se puede heredar de la tabla particionada «%s»"
 
-#: commands/tablecmds.c:2493
+#: commands/tablecmds.c:2611
 #, c-format
 msgid "cannot inherit from partition \"%s\""
 msgstr "no se puede heredar de la partición «%s»"
 
-#: commands/tablecmds.c:2501 parser/parse_utilcmd.c:2475
-#: parser/parse_utilcmd.c:2617
+#: commands/tablecmds.c:2619 parser/parse_utilcmd.c:2481
+#: parser/parse_utilcmd.c:2623
 #, c-format
 msgid "inherited relation \"%s\" is not a table or foreign table"
 msgstr "la relación heredada «%s» no es una tabla o tabla foránea"
 
-#: commands/tablecmds.c:2513
+#: commands/tablecmds.c:2631
 #, c-format
 msgid "cannot create a temporary relation as partition of permanent relation \"%s\""
 msgstr "no se puede crear una relación temporal como partición de la relación permanente «%s»"
 
-#: commands/tablecmds.c:2522 commands/tablecmds.c:14914
+#: commands/tablecmds.c:2640 commands/tablecmds.c:15621
 #, c-format
 msgid "cannot inherit from temporary relation \"%s\""
 msgstr "no se puede heredar de la tabla temporal «%s»"
 
-#: commands/tablecmds.c:2532 commands/tablecmds.c:14922
+#: commands/tablecmds.c:2650 commands/tablecmds.c:15629
 #, c-format
 msgid "cannot inherit from temporary relation of another session"
 msgstr "no se puede heredar de una tabla temporal de otra sesión"
 
-#: commands/tablecmds.c:2585
+#: commands/tablecmds.c:2791 commands/tablecmds.c:2845
+#: commands/tablecmds.c:13024 parser/parse_utilcmd.c:1265
+#: parser/parse_utilcmd.c:1308 parser/parse_utilcmd.c:1735
+#: parser/parse_utilcmd.c:1843
 #, c-format
-msgid "merging multiple inherited definitions of column \"%s\""
-msgstr "mezclando múltiples definiciones heredadas de la columna «%s»"
+msgid "cannot convert whole-row table reference"
+msgstr "no se puede convertir una referencia a la fila completa (whole-row)"
 
-#: commands/tablecmds.c:2597
+#: commands/tablecmds.c:2792 parser/parse_utilcmd.c:1266
 #, c-format
-msgid "inherited column \"%s\" has a type conflict"
-msgstr "columna heredada «%s» tiene conflicto de tipos"
+msgid "Generation expression for column \"%s\" contains a whole-row reference to table \"%s\"."
+msgstr "La expresión de generación para la columna «%s» contiene una referencia a la fila completa (whole-row) de la tabla «%s»."
 
-#: commands/tablecmds.c:2599 commands/tablecmds.c:2628
-#: commands/tablecmds.c:2647 commands/tablecmds.c:2919
-#: commands/tablecmds.c:2955 commands/tablecmds.c:2971
-#: parser/parse_coerce.c:2155 parser/parse_coerce.c:2175
-#: parser/parse_coerce.c:2195 parser/parse_coerce.c:2216
-#: parser/parse_coerce.c:2271 parser/parse_coerce.c:2305
-#: parser/parse_coerce.c:2381 parser/parse_coerce.c:2412
-#: parser/parse_coerce.c:2451 parser/parse_coerce.c:2518
-#: parser/parse_param.c:223
+#: commands/tablecmds.c:2846 parser/parse_utilcmd.c:1309
 #, c-format
-msgid "%s versus %s"
-msgstr "%s versus %s"
+msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"."
+msgstr "La restricción «%s» contiene una referencia a la fila completa (whole-row) de la tabla «%s»."
 
-#: commands/tablecmds.c:2612
+#: commands/tablecmds.c:2956 commands/tablecmds.c:3227
 #, c-format
-msgid "inherited column \"%s\" has a collation conflict"
-msgstr "columna heredada «%s» tiene conflicto de ordenamiento (collation)"
+msgid "column \"%s\" inherits from generated column but specifies default"
+msgstr "la columna «%s» hereda de una columna generada pero especifica un valor por omisión"
 
-#: commands/tablecmds.c:2614 commands/tablecmds.c:2935
-#: commands/tablecmds.c:6849
+#: commands/tablecmds.c:2961 commands/tablecmds.c:3232
 #, c-format
-msgid "\"%s\" versus \"%s\""
-msgstr "«%s» versus «%s»"
+msgid "column \"%s\" inherits from generated column but specifies identity"
+msgstr "la columna «%s» hereda de una columna generada pero especifica una identidad"
 
-#: commands/tablecmds.c:2626
+#: commands/tablecmds.c:2969 commands/tablecmds.c:3240
 #, c-format
-msgid "inherited column \"%s\" has a storage parameter conflict"
-msgstr "columna heredada «%s» tiene conflicto de parámetros de almacenamiento"
+msgid "child column \"%s\" specifies generation expression"
+msgstr "la columna hija «%s» especifica una expresión de generación de columna"
 
-#: commands/tablecmds.c:2645 commands/tablecmds.c:2969
+#: commands/tablecmds.c:2971 commands/tablecmds.c:3242
 #, c-format
-msgid "column \"%s\" has a compression method conflict"
-msgstr "la columna «%s» tiene conflicto de método de compresión"
+msgid "A child table column cannot be generated unless its parent column is."
+msgstr "Una columna de tabla hija no puede ser generada a menos que su columna padre lo sea."
 
-#: commands/tablecmds.c:2661
+#: commands/tablecmds.c:3017
 #, c-format
-msgid "inherited column \"%s\" has a generation conflict"
-msgstr "columna heredada «%s» tiene conflicto de generación"
+msgid "column \"%s\" inherits conflicting generation expressions"
+msgstr "la columna «%s» hereda expresiones de generación en conflicto"
 
-#: commands/tablecmds.c:2767 commands/tablecmds.c:2822
-#: commands/tablecmds.c:12456 parser/parse_utilcmd.c:1298
-#: parser/parse_utilcmd.c:1341 parser/parse_utilcmd.c:1740
-#: parser/parse_utilcmd.c:1848
+#: commands/tablecmds.c:3019
 #, c-format
-msgid "cannot convert whole-row table reference"
-msgstr "no se puede convertir una referencia a la fila completa (whole-row)"
+msgid "To resolve the conflict, specify a generation expression explicitly."
+msgstr "Para resolver el conflicto, indique explícitamente una expresión de generación."
 
-#: commands/tablecmds.c:2768 parser/parse_utilcmd.c:1299
+#: commands/tablecmds.c:3023
 #, c-format
-msgid "Generation expression for column \"%s\" contains a whole-row reference to table \"%s\"."
-msgstr "La expresión de generación para la columna «%s» contiene una referencia a la fila completa (whole-row) de la tabla «%s»."
+msgid "column \"%s\" inherits conflicting default values"
+msgstr "la columna «%s» hereda valores por omisión no coincidentes"
 
-#: commands/tablecmds.c:2823 parser/parse_utilcmd.c:1342
+#: commands/tablecmds.c:3025
 #, c-format
-msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"."
-msgstr "La restricción «%s» contiene una referencia a la fila completa (whole-row) de la tabla «%s»."
+msgid "To resolve the conflict, specify a default explicitly."
+msgstr "Para resolver el conflicto, indique explícitamente un valor por omisión."
+
+#: commands/tablecmds.c:3080
+#, c-format
+msgid "check constraint name \"%s\" appears multiple times but with different expressions"
+msgstr "la restricción «check» «%s» aparece más de una vez con diferentes expresiones"
 
-#: commands/tablecmds.c:2901
+#: commands/tablecmds.c:3131
 #, c-format
 msgid "merging column \"%s\" with inherited definition"
 msgstr "mezclando la columna «%s» con la definición heredada"
 
-#: commands/tablecmds.c:2905
+#: commands/tablecmds.c:3135
 #, c-format
 msgid "moving and merging column \"%s\" with inherited definition"
 msgstr "moviendo y mezclando la columna «%s» con la definición heredada"
 
-#: commands/tablecmds.c:2906
+#: commands/tablecmds.c:3136
 #, c-format
 msgid "User-specified column moved to the position of the inherited column."
 msgstr "La columna especificada por el usuario fue movida a la posición de la columna heredada."
 
-#: commands/tablecmds.c:2917
+#: commands/tablecmds.c:3148
 #, c-format
 msgid "column \"%s\" has a type conflict"
 msgstr "la columna «%s» tiene conflicto de tipos"
 
-#: commands/tablecmds.c:2933
+#: commands/tablecmds.c:3150 commands/tablecmds.c:3184
+#: commands/tablecmds.c:3200 commands/tablecmds.c:3307
+#: commands/tablecmds.c:3340 commands/tablecmds.c:3356
+#: parser/parse_coerce.c:2192 parser/parse_coerce.c:2212
+#: parser/parse_coerce.c:2232 parser/parse_coerce.c:2253
+#: parser/parse_coerce.c:2308 parser/parse_coerce.c:2342
+#: parser/parse_coerce.c:2418 parser/parse_coerce.c:2449
+#: parser/parse_coerce.c:2488 parser/parse_coerce.c:2555
+#: parser/parse_param.c:223
+#, c-format
+msgid "%s versus %s"
+msgstr "%s versus %s"
+
+#: commands/tablecmds.c:3162
 #, c-format
 msgid "column \"%s\" has a collation conflict"
 msgstr "la columna «%s» tiene conflicto de ordenamientos (collation)"
 
-#: commands/tablecmds.c:2953
+#: commands/tablecmds.c:3164 commands/tablecmds.c:3326
+#: commands/tablecmds.c:7080
 #, c-format
-msgid "column \"%s\" has a storage parameter conflict"
-msgstr "la columna «%s» tiene conflicto de parámetros de almacenamiento"
+msgid "\"%s\" versus \"%s\""
+msgstr "«%s» versus «%s»"
 
-#: commands/tablecmds.c:2999 commands/tablecmds.c:3086
+#: commands/tablecmds.c:3182
 #, c-format
-msgid "column \"%s\" inherits from generated column but specifies default"
-msgstr "la columna «%s» hereda de una columna generada pero especifica un valor por omisión"
+msgid "column \"%s\" has a storage parameter conflict"
+msgstr "la columna «%s» tiene conflicto de parámetros de almacenamiento"
 
-#: commands/tablecmds.c:3004 commands/tablecmds.c:3091
+#: commands/tablecmds.c:3198 commands/tablecmds.c:3354
 #, c-format
-msgid "column \"%s\" inherits from generated column but specifies identity"
-msgstr "la columna «%s» hereda de una columna generada pero especifica una identidad"
+msgid "column \"%s\" has a compression method conflict"
+msgstr "la columna «%s» tiene conflicto de método de compresión"
 
-#: commands/tablecmds.c:3012 commands/tablecmds.c:3099
+#: commands/tablecmds.c:3293
 #, c-format
-msgid "child column \"%s\" specifies generation expression"
-msgstr "la columna hija «%s» especifica una expresión de generación de columna"
-
-#: commands/tablecmds.c:3014 commands/tablecmds.c:3101
-#, fuzzy, c-format
-#| msgid "A generated column cannot reference another generated column."
-msgid "A child table column cannot be generated unless its parent column is."
-msgstr "Una columna generada no puede hacer referencia a otra columna generada."
+msgid "merging multiple inherited definitions of column \"%s\""
+msgstr "mezclando múltiples definiciones heredadas de la columna «%s»"
 
-#: commands/tablecmds.c:3147
+#: commands/tablecmds.c:3305
 #, c-format
-msgid "column \"%s\" inherits conflicting generation expressions"
-msgstr "la columna «%s» hereda expresiones de generación en conflicto"
-
-#: commands/tablecmds.c:3149
-#, fuzzy, c-format
-#| msgid "To resolve the conflict, specify a default explicitly."
-msgid "To resolve the conflict, specify a generation expression explicitly."
-msgstr "Para resolver el conflicto, indique explícitamente un valor por omisión."
+msgid "inherited column \"%s\" has a type conflict"
+msgstr "columna heredada «%s» tiene conflicto de tipos"
 
-#: commands/tablecmds.c:3153
+#: commands/tablecmds.c:3324
 #, c-format
-msgid "column \"%s\" inherits conflicting default values"
-msgstr "la columna «%s» hereda valores por omisión no coincidentes"
+msgid "inherited column \"%s\" has a collation conflict"
+msgstr "columna heredada «%s» tiene conflicto de ordenamiento (collation)"
 
-#: commands/tablecmds.c:3155
+#: commands/tablecmds.c:3338
 #, c-format
-msgid "To resolve the conflict, specify a default explicitly."
-msgstr "Para resolver el conflicto, indique explícitamente un valor por omisión."
+msgid "inherited column \"%s\" has a storage parameter conflict"
+msgstr "columna heredada «%s» tiene conflicto de parámetros de almacenamiento"
 
-#: commands/tablecmds.c:3205
+#: commands/tablecmds.c:3366
 #, c-format
-msgid "check constraint name \"%s\" appears multiple times but with different expressions"
-msgstr "la restricción «check» «%s» aparece más de una vez con diferentes expresiones"
+msgid "inherited column \"%s\" has a generation conflict"
+msgstr "columna heredada «%s» tiene conflicto de generación"
 
-#: commands/tablecmds.c:3418
+#: commands/tablecmds.c:3597
 #, c-format
 msgid "cannot move temporary tables of other sessions"
 msgstr "no se pueden mover tablas temporales de otras sesiones"
 
-#: commands/tablecmds.c:3488
+#: commands/tablecmds.c:3670
 #, c-format
 msgid "cannot rename column of typed table"
 msgstr "no se puede cambiar el nombre a una columna de una tabla tipada"
 
-#: commands/tablecmds.c:3507
-#, fuzzy, c-format
-#| msgid "cannot alter inherited column \"%s\" of relation \"%s\""
+#: commands/tablecmds.c:3689
+#, c-format
 msgid "cannot rename columns of relation \"%s\""
-msgstr "no se puede alterar la columna heredada «%s» de la relación «%s»"
+msgstr "no se puede cambiar el nombre de columnas de la relación «%s»"
 
-#: commands/tablecmds.c:3602
+#: commands/tablecmds.c:3784
 #, c-format
 msgid "inherited column \"%s\" must be renamed in child tables too"
 msgstr "debe cambiar el nombre a la columna heredada «%s» en las tablas hijas también"
 
-#: commands/tablecmds.c:3634
+#: commands/tablecmds.c:3816
 #, c-format
 msgid "cannot rename system column \"%s\""
 msgstr "no se puede cambiar el nombre a la columna de sistema «%s»"
 
-#: commands/tablecmds.c:3649
+#: commands/tablecmds.c:3831
 #, c-format
 msgid "cannot rename inherited column \"%s\""
 msgstr "no se puede cambiar el nombre a la columna heredada «%s»"
 
-#: commands/tablecmds.c:3801
+#: commands/tablecmds.c:3983
 #, c-format
 msgid "inherited constraint \"%s\" must be renamed in child tables too"
 msgstr "debe cambiar el nombre a la restricción heredada «%s» en las tablas hijas también"
 
-#: commands/tablecmds.c:3808
+#: commands/tablecmds.c:3990
 #, c-format
 msgid "cannot rename inherited constraint \"%s\""
 msgstr "no se puede cambiar el nombre a la restricción heredada «%s»"
 
 #. translator: first %s is a SQL command, eg ALTER TABLE
-#: commands/tablecmds.c:4105
+#: commands/tablecmds.c:4290
 #, c-format
 msgid "cannot %s \"%s\" because it is being used by active queries in this session"
 msgstr "no se puede hacer %s en «%s» porque está siendo usada por consultas activas en esta sesión"
 
 #. translator: first %s is a SQL command, eg ALTER TABLE
-#: commands/tablecmds.c:4114
+#: commands/tablecmds.c:4299
 #, c-format
 msgid "cannot %s \"%s\" because it has pending trigger events"
-msgstr "no se puede hacer %s en «%s» porque tiene eventos de disparador pendientes"
+msgstr "no se puede hacer %s en «%s» porque tiene eventos de “trigger” pendientes"
+
+#: commands/tablecmds.c:4325
+#, c-format
+msgid "cannot alter temporary tables of other sessions"
+msgstr "no se pueden alterar tablas temporales de otras sesiones"
 
-#: commands/tablecmds.c:4581
+#: commands/tablecmds.c:4798
 #, c-format
 msgid "cannot alter partition \"%s\" with an incomplete detach"
 msgstr "no se puede modificar la partición «%s» teniendo un desprendimiento incompleto"
 
-#: commands/tablecmds.c:4774 commands/tablecmds.c:4789
+#: commands/tablecmds.c:5002 commands/tablecmds.c:5017
 #, c-format
 msgid "cannot change persistence setting twice"
 msgstr "no se puede cambiar la opción de persistencia dos veces"
 
-#: commands/tablecmds.c:4810
-#, fuzzy, c-format
-#| msgid "cannot change inheritance of partitioned table"
-msgid "cannot change access method of a partitioned table"
-msgstr "no se puede cambiar la herencia de una tabla particionada"
-
-#: commands/tablecmds.c:4816
-#, fuzzy, c-format
-#| msgid "cannot have multiple SET TABLESPACE subcommands"
+#: commands/tablecmds.c:5038
+#, c-format
 msgid "cannot have multiple SET ACCESS METHOD subcommands"
-msgstr "no se pueden tener múltiples subórdenes SET TABLESPACE"
+msgstr "no se pueden tener múltiples subórdenes SET ACCESS METHOD"
 
-#: commands/tablecmds.c:5537
+#: commands/tablecmds.c:5768
 #, c-format
 msgid "cannot rewrite system relation \"%s\""
 msgstr "no se puede reescribir la relación de sistema «%s»"
 
-#: commands/tablecmds.c:5543
+#: commands/tablecmds.c:5774
 #, c-format
 msgid "cannot rewrite table \"%s\" used as a catalog table"
 msgstr "no se puede reescribir la tabla «%s» que es usada como tabla de catálogo"
 
-#: commands/tablecmds.c:5553
+#: commands/tablecmds.c:5786
 #, c-format
 msgid "cannot rewrite temporary tables of other sessions"
 msgstr "no se puede reescribir tablas temporales de otras sesiones"
 
-#: commands/tablecmds.c:6048
+#: commands/tablecmds.c:6281
 #, c-format
 msgid "column \"%s\" of relation \"%s\" contains null values"
 msgstr "la columna «%s» de la relación «%s» contiene valores null"
 
-#: commands/tablecmds.c:6065
+#: commands/tablecmds.c:6298
 #, c-format
 msgid "check constraint \"%s\" of relation \"%s\" is violated by some row"
 msgstr "la restricción check «%s» de la relación «%s» es violada por alguna fila"
 
-#: commands/tablecmds.c:6084 partitioning/partbounds.c:3388
+#: commands/tablecmds.c:6317 partitioning/partbounds.c:3387
 #, c-format
 msgid "updated partition constraint for default partition \"%s\" would be violated by some row"
 msgstr "la restricción de partición actualizada para la partición default «%s» sería violada por alguna fila"
 
-#: commands/tablecmds.c:6090
+#: commands/tablecmds.c:6323
 #, c-format
 msgid "partition constraint of relation \"%s\" is violated by some row"
 msgstr "la restricción de partición de la relación «%s» es violada por alguna fila"
 
 #. translator: %s is a group of some SQL keywords
-#: commands/tablecmds.c:6352
-#, fuzzy, c-format
-#| msgid "relation \"%s\" is not a parent of relation \"%s\""
+#: commands/tablecmds.c:6588
+#, c-format
 msgid "ALTER action %s cannot be performed on relation \"%s\""
-msgstr "relación «%s» no es un padre de la relación «%s»"
+msgstr "la acción ALTER %s no puede ser efecutada en la relación «%s»"
 
-#: commands/tablecmds.c:6607 commands/tablecmds.c:6614
+#: commands/tablecmds.c:6843 commands/tablecmds.c:6850
 #, c-format
 msgid "cannot alter type \"%s\" because column \"%s.%s\" uses it"
 msgstr "no se puede alterar el tipo «%s» porque la columna «%s.%s» lo usa"
 
-#: commands/tablecmds.c:6621
+#: commands/tablecmds.c:6857
 #, c-format
 msgid "cannot alter foreign table \"%s\" because column \"%s.%s\" uses its row type"
 msgstr "no se puede alterar la tabla foránea «%s» porque la columna «%s.%s» usa su tipo de registro"
 
-#: commands/tablecmds.c:6628
+#: commands/tablecmds.c:6864
 #, c-format
 msgid "cannot alter table \"%s\" because column \"%s.%s\" uses its row type"
 msgstr "no se puede alterar la tabla «%s» porque la columna «%s.%s» usa su tipo de registro"
 
-#: commands/tablecmds.c:6684
+#: commands/tablecmds.c:6920
 #, c-format
 msgid "cannot alter type \"%s\" because it is the type of a typed table"
 msgstr "no se puede cambiar el tipo «%s» porque es el tipo de una tabla tipada"
 
-#: commands/tablecmds.c:6686
+#: commands/tablecmds.c:6922
 #, c-format
 msgid "Use ALTER ... CASCADE to alter the typed tables too."
 msgstr "Use ALTER ... CASCADE para eliminar además las tablas tipadas."
 
-#: commands/tablecmds.c:6732
+#: commands/tablecmds.c:6968
 #, c-format
 msgid "type %s is not a composite type"
 msgstr "el tipo %s no es un tipo compuesto"
 
-#: commands/tablecmds.c:6759
+#: commands/tablecmds.c:6995
 #, c-format
 msgid "cannot add column to typed table"
 msgstr "no se puede agregar una columna a una tabla tipada"
 
-#: commands/tablecmds.c:6812
+#: commands/tablecmds.c:7043
 #, c-format
 msgid "cannot add column to a partition"
 msgstr "no se puede agregar una columna a una partición"
 
-#: commands/tablecmds.c:6841 commands/tablecmds.c:15165
+#: commands/tablecmds.c:7072 commands/tablecmds.c:15860
 #, c-format
 msgid "child table \"%s\" has different type for column \"%s\""
 msgstr "la tabla hija «%s» tiene un tipo diferente para la columna «%s»"
 
-#: commands/tablecmds.c:6847 commands/tablecmds.c:15172
+#: commands/tablecmds.c:7078 commands/tablecmds.c:15866
 #, c-format
 msgid "child table \"%s\" has different collation for column \"%s\""
 msgstr "la tabla hija «%s» tiene un ordenamiento (collation) diferente para la columna «%s»"
 
-#: commands/tablecmds.c:6865
+#: commands/tablecmds.c:7096
 #, c-format
 msgid "merging definition of column \"%s\" for child \"%s\""
 msgstr "mezclando la definición de la columna «%s» en la tabla hija «%s»"
 
-#: commands/tablecmds.c:6908
+#: commands/tablecmds.c:7149
 #, c-format
 msgid "cannot recursively add identity column to table that has child tables"
 msgstr "no se puede agregar una columna de identidad recursivamente a una tabla que tiene tablas hijas"
 
-#: commands/tablecmds.c:7159
+#: commands/tablecmds.c:7362
 #, c-format
 msgid "column must be added to child tables too"
 msgstr "la columna debe ser agregada a las tablas hijas también"
 
-#: commands/tablecmds.c:7237
+#: commands/tablecmds.c:7440
 #, c-format
 msgid "column \"%s\" of relation \"%s\" already exists, skipping"
 msgstr "la columna «%s» de la relación «%s» ya existe, omitiendo"
 
-#: commands/tablecmds.c:7244
+#: commands/tablecmds.c:7447
 #, c-format
 msgid "column \"%s\" of relation \"%s\" already exists"
 msgstr "ya existe la columna «%s» en la relación «%s»"
 
-#: commands/tablecmds.c:7310 commands/tablecmds.c:12094
+#: commands/tablecmds.c:7513 commands/tablecmds.c:12652
 #, c-format
 msgid "cannot remove constraint from only the partitioned table when partitions exist"
 msgstr "no se pueden eliminar restricciones sólo de la tabla particionada cuando existen particiones"
 
-#: commands/tablecmds.c:7311 commands/tablecmds.c:7628
-#: commands/tablecmds.c:8593 commands/tablecmds.c:12095
+#: commands/tablecmds.c:7514 commands/tablecmds.c:7828
+#: commands/tablecmds.c:8006 commands/tablecmds.c:8113
+#: commands/tablecmds.c:8230 commands/tablecmds.c:9049
+#: commands/tablecmds.c:12653
 #, c-format
 msgid "Do not specify the ONLY keyword."
 msgstr "No especifique la opción ONLY."
 
-#: commands/tablecmds.c:7348 commands/tablecmds.c:7554
-#: commands/tablecmds.c:7696 commands/tablecmds.c:7810
-#: commands/tablecmds.c:7904 commands/tablecmds.c:7963
-#: commands/tablecmds.c:8082 commands/tablecmds.c:8221
-#: commands/tablecmds.c:8291 commands/tablecmds.c:8425
-#: commands/tablecmds.c:12249 commands/tablecmds.c:13753
-#: commands/tablecmds.c:16282
+#: commands/tablecmds.c:7550 commands/tablecmds.c:7754
+#: commands/tablecmds.c:7896 commands/tablecmds.c:8028
+#: commands/tablecmds.c:8157 commands/tablecmds.c:8251
+#: commands/tablecmds.c:8352 commands/tablecmds.c:8509
+#: commands/tablecmds.c:8662 commands/tablecmds.c:8743
+#: commands/tablecmds.c:8877 commands/tablecmds.c:12806
+#: commands/tablecmds.c:14348 commands/tablecmds.c:16975
 #, c-format
 msgid "cannot alter system column \"%s\""
 msgstr "no se puede alterar columna de sistema «%s»"
 
-#: commands/tablecmds.c:7354 commands/tablecmds.c:7702
+#: commands/tablecmds.c:7556 commands/tablecmds.c:7902
 #, c-format
 msgid "column \"%s\" of relation \"%s\" is an identity column"
 msgstr "la columna «%s» en la relación «%s» es una columna de identidad"
 
-#: commands/tablecmds.c:7397
+#: commands/tablecmds.c:7597
 #, c-format
 msgid "column \"%s\" is in a primary key"
 msgstr "la columna «%s» está en la llave primaria"
 
-#: commands/tablecmds.c:7402
+#: commands/tablecmds.c:7602
 #, c-format
 msgid "column \"%s\" is in index used as replica identity"
 msgstr "la columna «%s» se encuentra en un índice utilizado como identidad de réplica"
 
-#: commands/tablecmds.c:7425
+#: commands/tablecmds.c:7625
 #, c-format
 msgid "column \"%s\" is marked NOT NULL in parent table"
 msgstr "columna «%s» está marcada NOT NULL en la tabla padre"
 
-#: commands/tablecmds.c:7625 commands/tablecmds.c:9077
+#: commands/tablecmds.c:7825 commands/tablecmds.c:9533
 #, c-format
 msgid "constraint must be added to child tables too"
 msgstr "la restricción debe ser agregada a las tablas hijas también"
 
-#: commands/tablecmds.c:7626
+#: commands/tablecmds.c:7826
 #, c-format
 msgid "Column \"%s\" of relation \"%s\" is not already NOT NULL."
 msgstr "La columna «%s» de la relación «%s» no está previamente marcada NOT NULL."
 
-#: commands/tablecmds.c:7704
-#, c-format
-msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY instead."
-msgstr "Use ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY en su lugar."
-
-#: commands/tablecmds.c:7709
+#: commands/tablecmds.c:7911
 #, c-format
 msgid "column \"%s\" of relation \"%s\" is a generated column"
 msgstr "la columna «%s» en la relación «%s» es una columna generada"
 
-#: commands/tablecmds.c:7712
+#: commands/tablecmds.c:8005
 #, c-format
-msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION instead."
-msgstr "Use ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION en su lugar."
+msgid "cannot add identity to a column of only the partitioned table"
+msgstr "no se puede agregar identidad a una columna de sólo una tabla particionada"
 
-#: commands/tablecmds.c:7821
+#: commands/tablecmds.c:8011
+#, c-format
+msgid "cannot add identity to a column of a partition"
+msgstr "no se puede agregar identidad a una columna de una partición"
+
+#: commands/tablecmds.c:8039
 #, c-format
 msgid "column \"%s\" of relation \"%s\" must be declared NOT NULL before identity can be added"
 msgstr "la columna «%s» en la relación «%s» debe ser declarada NOT NULL antes de que una identidad pueda agregarse"
 
-#: commands/tablecmds.c:7827
+#: commands/tablecmds.c:8045
 #, c-format
 msgid "column \"%s\" of relation \"%s\" is already an identity column"
 msgstr "la columna «%s» en la relación «%s» ya es una columna de identidad"
 
-#: commands/tablecmds.c:7833
+#: commands/tablecmds.c:8051
 #, c-format
 msgid "column \"%s\" of relation \"%s\" already has a default value"
 msgstr "la columna «%s» en la relación «%s» ya tiene un valor por omisión"
 
-#: commands/tablecmds.c:7910 commands/tablecmds.c:7971
+#: commands/tablecmds.c:8112
+#, c-format
+msgid "cannot change identity column of only the partitioned table"
+msgstr "no se puede cambiar la columna de identidad de una tabla particionada"
+
+#: commands/tablecmds.c:8118
+#, c-format
+msgid "cannot change identity column of a partition"
+msgstr "no puede cambiar la columna de identidad de una partición"
+
+#: commands/tablecmds.c:8163 commands/tablecmds.c:8259
 #, c-format
 msgid "column \"%s\" of relation \"%s\" is not an identity column"
 msgstr "la columna «%s» en la relación «%s» no es una columna identidad"
 
-#: commands/tablecmds.c:7976
+#: commands/tablecmds.c:8229
+#, c-format
+msgid "cannot drop identity from a column of only the partitioned table"
+msgstr "no se pueden eliminar la identidad de la columna de sólo una tabla particionada"
+
+#: commands/tablecmds.c:8235
+#, c-format
+msgid "cannot drop identity from a column of a partition"
+msgstr "no se puede eliminar la identidad de la columna de una partición"
+
+#: commands/tablecmds.c:8264
 #, c-format
 msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping"
 msgstr "la columna «%s» de la relación «%s» no es una columna identidad, omitiendo"
 
-#: commands/tablecmds.c:8029
+#: commands/tablecmds.c:8358
+#, c-format
+msgid "column \"%s\" of relation \"%s\" is not a generated column"
+msgstr "la columna «%s» en la relación «%s» no es una columna generada"
+
+#: commands/tablecmds.c:8456
 #, c-format
 msgid "ALTER TABLE / DROP EXPRESSION must be applied to child tables too"
 msgstr "ALTER TABLE / DROP EXPRESSION se debe aplicar a las tablas hijas también"
 
-#: commands/tablecmds.c:8051
+#: commands/tablecmds.c:8478
 #, c-format
 msgid "cannot drop generation expression from inherited column"
 msgstr "no se puede eliminar la expresión de generación de una columna heredada"
 
-#: commands/tablecmds.c:8090
+#: commands/tablecmds.c:8517
 #, c-format
 msgid "column \"%s\" of relation \"%s\" is not a stored generated column"
 msgstr "la columna «%s» en la relación «%s» no es una columna generada almacenada"
 
-#: commands/tablecmds.c:8095
+#: commands/tablecmds.c:8522
 #, c-format
 msgid "column \"%s\" of relation \"%s\" is not a stored generated column, skipping"
 msgstr "la columna «%s» de la relación «%s» no es una columna generada almacenada, omitiendo"
 
-#: commands/tablecmds.c:8168
+#: commands/tablecmds.c:8600
 #, c-format
 msgid "cannot refer to non-index column by number"
 msgstr "no se puede referir a columnas que no son de índice por número"
 
-#: commands/tablecmds.c:8211
+#: commands/tablecmds.c:8652
 #, c-format
 msgid "column number %d of relation \"%s\" does not exist"
 msgstr "no existe la columna número %d en la relación «%s»"
 
-#: commands/tablecmds.c:8230
+#: commands/tablecmds.c:8671
 #, c-format
 msgid "cannot alter statistics on included column \"%s\" of index \"%s\""
 msgstr "no se puede alterar estadísticas en la columna incluida «%s» del índice «%s»"
 
-#: commands/tablecmds.c:8235
+#: commands/tablecmds.c:8676
 #, c-format
 msgid "cannot alter statistics on non-expression column \"%s\" of index \"%s\""
 msgstr "no se puede alterar estadísticas en la columna no-de-expresión «%s» del índice «%s»"
 
-#: commands/tablecmds.c:8237
+#: commands/tablecmds.c:8678
 #, c-format
 msgid "Alter statistics on table column instead."
 msgstr "Altere las estadísticas en la columna de la tabla en su lugar."
 
-#: commands/tablecmds.c:8472
+#: commands/tablecmds.c:8924
 #, c-format
 msgid "cannot drop column from typed table"
 msgstr "no se pueden eliminar columnas de una tabla tipada"
 
-#: commands/tablecmds.c:8531
+#: commands/tablecmds.c:8987
 #, c-format
 msgid "column \"%s\" of relation \"%s\" does not exist, skipping"
 msgstr "no existe la columna «%s» en la relación «%s», omitiendo"
 
-#: commands/tablecmds.c:8544
+#: commands/tablecmds.c:9000
 #, c-format
 msgid "cannot drop system column \"%s\""
 msgstr "no se puede eliminar la columna de sistema «%s»"
 
-#: commands/tablecmds.c:8554
+#: commands/tablecmds.c:9010
 #, c-format
 msgid "cannot drop inherited column \"%s\""
 msgstr "no se puede eliminar la columna heredada «%s»"
 
-#: commands/tablecmds.c:8567
+#: commands/tablecmds.c:9023
 #, c-format
 msgid "cannot drop column \"%s\" because it is part of the partition key of relation \"%s\""
 msgstr "no se puede eliminar la columna «%s» porque es parte de la llave de partición de la relación «%s»"
 
-#: commands/tablecmds.c:8592
+#: commands/tablecmds.c:9048
 #, c-format
 msgid "cannot drop column from only the partitioned table when partitions exist"
 msgstr "no se pueden eliminar columnas sólo de una tabla particionada cuando existe particiones"
 
-#: commands/tablecmds.c:8797
+#: commands/tablecmds.c:9253
 #, c-format
 msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX is not supported on partitioned tables"
 msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX no está soportado en tablas particionadas"
 
-#: commands/tablecmds.c:8822
+#: commands/tablecmds.c:9278
 #, c-format
 msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX will rename index \"%s\" to \"%s\""
 msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX renombrará el índice «%s» a «%s»"
 
-#: commands/tablecmds.c:9159
+#: commands/tablecmds.c:9615
 #, c-format
 msgid "cannot use ONLY for foreign key on partitioned table \"%s\" referencing relation \"%s\""
 msgstr "no se puede usar ONLY para una llave foránea en la tabla particionada «%s» haciendo referencia a la relación «%s»"
 
-#: commands/tablecmds.c:9165
+#: commands/tablecmds.c:9621
 #, c-format
 msgid "cannot add NOT VALID foreign key on partitioned table \"%s\" referencing relation \"%s\""
 msgstr "no se puede agregar una llave foránea NOT VALID a la tabla particionada «%s» haciendo referencia a la relación «%s»"
 
-#: commands/tablecmds.c:9168
+#: commands/tablecmds.c:9624
 #, c-format
 msgid "This feature is not yet supported on partitioned tables."
 msgstr "Esta característica no está aún soportada en tablas particionadas."
 
-#: commands/tablecmds.c:9175 commands/tablecmds.c:9631
+#: commands/tablecmds.c:9631 commands/tablecmds.c:10092
 #, c-format
 msgid "referenced relation \"%s\" is not a table"
 msgstr "la relación referida «%s» no es una tabla"
 
-#: commands/tablecmds.c:9198
+#: commands/tablecmds.c:9654
 #, c-format
 msgid "constraints on permanent tables may reference only permanent tables"
 msgstr "las restricciones en tablas permanentes sólo pueden hacer referencia a tablas permanentes"
 
-#: commands/tablecmds.c:9205
+#: commands/tablecmds.c:9661
 #, c-format
 msgid "constraints on unlogged tables may reference only permanent or unlogged tables"
 msgstr "las restricciones en tablas «unlogged» sólo pueden hacer referencia a tablas permanentes o «unlogged»"
 
-#: commands/tablecmds.c:9211
+#: commands/tablecmds.c:9667
 #, c-format
 msgid "constraints on temporary tables may reference only temporary tables"
 msgstr "las restricciones en tablas temporales sólo pueden hacer referencia a tablas temporales"
 
-#: commands/tablecmds.c:9215
+#: commands/tablecmds.c:9671
 #, c-format
 msgid "constraints on temporary tables must involve temporary tables of this session"
 msgstr "las restricciones en tablas temporales sólo pueden hacer referencia a tablas temporales de esta sesión"
 
-#: commands/tablecmds.c:9279 commands/tablecmds.c:9285
+#: commands/tablecmds.c:9735 commands/tablecmds.c:9741
 #, c-format
 msgid "invalid %s action for foreign key constraint containing generated column"
 msgstr "acción %s no válida para restricción de llave foránea que contiene columnas generadas"
 
-#: commands/tablecmds.c:9301
+#: commands/tablecmds.c:9757
 #, c-format
 msgid "number of referencing and referenced columns for foreign key disagree"
 msgstr "el número de columnas referidas en la llave foránea no coincide con el número de columnas de referencia"
 
-#: commands/tablecmds.c:9408
+#: commands/tablecmds.c:9864
 #, c-format
 msgid "foreign key constraint \"%s\" cannot be implemented"
 msgstr "la restricción de llave foránea «%s» no puede ser implementada"
 
-#: commands/tablecmds.c:9410
+#: commands/tablecmds.c:9866
 #, c-format
 msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s."
 msgstr "Las columnas llave «%s» y «%s» son de tipos incompatibles: %s y %s"
 
-#: commands/tablecmds.c:9567
+#: commands/tablecmds.c:10035
 #, c-format
 msgid "column \"%s\" referenced in ON DELETE SET action must be part of foreign key"
 msgstr "la columna «%s» referenciada en la acción ON DELETE SET debe ser parte de la llave foránea"
 
-#: commands/tablecmds.c:9841 commands/tablecmds.c:10311
-#: parser/parse_utilcmd.c:791 parser/parse_utilcmd.c:920
+#: commands/tablecmds.c:10392 commands/tablecmds.c:10832
+#: parser/parse_utilcmd.c:822 parser/parse_utilcmd.c:945
 #, c-format
 msgid "foreign key constraints are not supported on foreign tables"
 msgstr "las restricciones de llave foránea no están soportadas en tablas foráneas"
 
-#: commands/tablecmds.c:10864 commands/tablecmds.c:11142
-#: commands/tablecmds.c:12051 commands/tablecmds.c:12126
+#: commands/tablecmds.c:10815
+#, c-format
+msgid "cannot attach table \"%s\" as a partition because it is referenced by foreign key \"%s\""
+msgstr "no se puede adjuntar la tabla foránea «%s» como partición porque es referenciada por la llave foránea «%s»"
+
+#: commands/tablecmds.c:11416 commands/tablecmds.c:11697
+#: commands/tablecmds.c:12609 commands/tablecmds.c:12683
 #, c-format
 msgid "constraint \"%s\" of relation \"%s\" does not exist"
 msgstr "no existe la restricción «%s» en la relación «%s»"
 
-#: commands/tablecmds.c:10871
+#: commands/tablecmds.c:11423
 #, c-format
 msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint"
 msgstr "la restricción «%s» de la relación «%s» no es una restricción de llave foránea"
 
-#: commands/tablecmds.c:10909
+#: commands/tablecmds.c:11461
 #, c-format
 msgid "cannot alter constraint \"%s\" on relation \"%s\""
 msgstr "no se puede modificar la restricción «%s» en la relación «%s»"
 
-#: commands/tablecmds.c:10912
+#: commands/tablecmds.c:11464
 #, c-format
 msgid "Constraint \"%s\" is derived from constraint \"%s\" of relation \"%s\"."
 msgstr "La restricción «%s» deriva de la restricción «%s» de la relación «%s»."
 
-#: commands/tablecmds.c:10914
+#: commands/tablecmds.c:11466
 #, c-format
-msgid "You may alter the constraint it derives from, instead."
+msgid "You may alter the constraint it derives from instead."
 msgstr "En su lugar, puede modificar la restricción de la cual deriva."
 
-#: commands/tablecmds.c:11150
+#: commands/tablecmds.c:11705
 #, c-format
 msgid "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint"
 msgstr "la restricción «%s» de la relación «%s» no es una llave foránea o restricción «check»"
 
-#: commands/tablecmds.c:11227
+#: commands/tablecmds.c:11782
 #, c-format
 msgid "constraint must be validated on child tables too"
 msgstr "la restricción debe ser validada en las tablas hijas también"
 
-#: commands/tablecmds.c:11314
+#: commands/tablecmds.c:11869
 #, c-format
 msgid "column \"%s\" referenced in foreign key constraint does not exist"
 msgstr "no existe la columna «%s» referida en la llave foránea"
 
-#: commands/tablecmds.c:11320
-#, fuzzy, c-format
-#| msgid "Generated columns cannot be used in COPY."
+#: commands/tablecmds.c:11875
+#, c-format
 msgid "system columns cannot be used in foreign keys"
-msgstr "Las columnas generadas no pueden usarse en COPY."
+msgstr "las columnas de sistema no pueden usarse en llaves foráneas"
 
-#: commands/tablecmds.c:11324
+#: commands/tablecmds.c:11879
 #, c-format
 msgid "cannot have more than %d keys in a foreign key"
 msgstr "no se puede tener más de %d columnas en una llave foránea"
 
-#: commands/tablecmds.c:11389
+#: commands/tablecmds.c:11944
 #, c-format
 msgid "cannot use a deferrable primary key for referenced table \"%s\""
 msgstr "no se puede usar una llave primaria postergable para la tabla referenciada «%s»"
 
-#: commands/tablecmds.c:11406
+#: commands/tablecmds.c:11961
 #, c-format
 msgid "there is no primary key for referenced table \"%s\""
 msgstr "no hay llave primaria para la tabla referida «%s»"
 
-#: commands/tablecmds.c:11470
+#: commands/tablecmds.c:12029
 #, c-format
 msgid "foreign key referenced-columns list must not contain duplicates"
 msgstr "la lista de columnas referidas en una llave foránea no debe contener duplicados"
 
-#: commands/tablecmds.c:11562
+#: commands/tablecmds.c:12121
 #, c-format
 msgid "cannot use a deferrable unique constraint for referenced table \"%s\""
 msgstr "no se puede usar una restricción unique postergable para la tabla referenciada «%s»"
 
-#: commands/tablecmds.c:11567
+#: commands/tablecmds.c:12126
 #, c-format
 msgid "there is no unique constraint matching given keys for referenced table \"%s\""
 msgstr "no hay restricción unique que coincida con las columnas dadas en la tabla referida «%s»"
 
-#: commands/tablecmds.c:12007
+#: commands/tablecmds.c:12565
 #, c-format
 msgid "cannot drop inherited constraint \"%s\" of relation \"%s\""
 msgstr "no se puede eliminar la restricción «%s» heredada de la relación «%s»"
 
-#: commands/tablecmds.c:12057
+#: commands/tablecmds.c:12615
 #, c-format
 msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping"
 msgstr "no existe la restricción «%s» en la relación «%s», omitiendo"
 
-#: commands/tablecmds.c:12233
+#: commands/tablecmds.c:12790
 #, c-format
 msgid "cannot alter column type of typed table"
 msgstr "no se puede cambiar el tipo de una columna de una tabla tipada"
 
-#: commands/tablecmds.c:12260
+#: commands/tablecmds.c:12816
+#, c-format
+msgid "cannot specify USING when altering type of generated column"
+msgstr "no se puede especificar USING al alterar el tipo de una columna generada"
+
+#: commands/tablecmds.c:12817 commands/tablecmds.c:18028
+#: commands/tablecmds.c:18118 commands/trigger.c:656
+#: rewrite/rewriteHandler.c:941 rewrite/rewriteHandler.c:976
+#, c-format
+msgid "Column \"%s\" is a generated column."
+msgstr "La columna «%s» es una columna generada."
+
+#: commands/tablecmds.c:12827
 #, c-format
 msgid "cannot alter inherited column \"%s\""
 msgstr "no se puede alterar la columna heredada «%s»"
 
-#: commands/tablecmds.c:12269
+#: commands/tablecmds.c:12836
 #, c-format
 msgid "cannot alter column \"%s\" because it is part of the partition key of relation \"%s\""
 msgstr "no se puede alterar la columna «%s» porque es parte de la llave de partición de la relación «%s»"
 
-#: commands/tablecmds.c:12319
+#: commands/tablecmds.c:12886
 #, c-format
 msgid "result of USING clause for column \"%s\" cannot be cast automatically to type %s"
 msgstr "el resultado de la cláusula USING para la columna «%s» no puede ser convertido automáticamente al tipo %s"
 
-#: commands/tablecmds.c:12322
+#: commands/tablecmds.c:12889
 #, c-format
 msgid "You might need to add an explicit cast."
 msgstr "Puede ser necesario agregar un cast explícito."
 
-#: commands/tablecmds.c:12326
+#: commands/tablecmds.c:12893
 #, c-format
 msgid "column \"%s\" cannot be cast automatically to type %s"
 msgstr "la columna «%s» no puede convertirse automáticamente al tipo %s"
 
 #. translator: USING is SQL, don't translate it
-#: commands/tablecmds.c:12329
+#: commands/tablecmds.c:12897
 #, c-format
 msgid "You might need to specify \"USING %s::%s\"."
 msgstr "Puede ser necesario especificar «USING %s::%s»."
 
-#: commands/tablecmds.c:12428
+#: commands/tablecmds.c:12996
 #, c-format
 msgid "cannot alter inherited column \"%s\" of relation \"%s\""
 msgstr "no se puede alterar la columna heredada «%s» de la relación «%s»"
 
-#: commands/tablecmds.c:12457
+#: commands/tablecmds.c:13025
 #, c-format
 msgid "USING expression contains a whole-row table reference."
 msgstr "La expresión USING contiene una referencia a la fila completa (whole-row)."
 
-#: commands/tablecmds.c:12468
+#: commands/tablecmds.c:13036
 #, c-format
 msgid "type of inherited column \"%s\" must be changed in child tables too"
 msgstr "debe cambiar el tipo a la columna heredada «%s» en las tablas hijas también"
 
-#: commands/tablecmds.c:12593
+#: commands/tablecmds.c:13161
 #, c-format
 msgid "cannot alter type of column \"%s\" twice"
 msgstr "no se puede alterar el tipo de la columna «%s» dos veces"
 
-#: commands/tablecmds.c:12631
+#: commands/tablecmds.c:13199
 #, c-format
 msgid "generation expression for column \"%s\" cannot be cast automatically to type %s"
 msgstr "la expresión de generación para la columna «%s» no puede ser convertido automáticamente al tipo %s"
 
-#: commands/tablecmds.c:12636
+#: commands/tablecmds.c:13204
 #, c-format
 msgid "default for column \"%s\" cannot be cast automatically to type %s"
 msgstr "el valor por omisión para la columna «%s» no puede ser convertido automáticamente al tipo %s"
 
-#: commands/tablecmds.c:12717
+#: commands/tablecmds.c:13508
 #, c-format
-msgid "cannot alter type of a column used by a view or rule"
-msgstr "no se puede alterar el tipo de una columna usada en una regla o vista"
+msgid "cannot alter type of a column used by a function or procedure"
+msgstr "no se puede alterar el tipo de una columna usada en una función o procedimiento"
 
-#: commands/tablecmds.c:12718 commands/tablecmds.c:12737
-#: commands/tablecmds.c:12755
+#: commands/tablecmds.c:13509 commands/tablecmds.c:13524
+#: commands/tablecmds.c:13544 commands/tablecmds.c:13563
+#: commands/tablecmds.c:13622
 #, c-format
 msgid "%s depends on column \"%s\""
 msgstr "%s depende de la columna «%s»"
 
-#: commands/tablecmds.c:12736
+#: commands/tablecmds.c:13523
+#, c-format
+msgid "cannot alter type of a column used by a view or rule"
+msgstr "no se puede alterar el tipo de una columna usada en una regla o vista"
+
+#: commands/tablecmds.c:13543
 #, c-format
 msgid "cannot alter type of a column used in a trigger definition"
 msgstr "no se puede alterar el tipo de una columna usada en una definición de trigger"
 
-#: commands/tablecmds.c:12754
+#: commands/tablecmds.c:13562
 #, c-format
 msgid "cannot alter type of a column used in a policy definition"
 msgstr "no se puede alterar el tipo de una columna usada en una definición de política"
 
-#: commands/tablecmds.c:12785
+#: commands/tablecmds.c:13593
 #, c-format
 msgid "cannot alter type of a column used by a generated column"
 msgstr "no se puede alterar el tipo de una columna usada por una columna generada"
 
-#: commands/tablecmds.c:12786
+#: commands/tablecmds.c:13594
 #, c-format
 msgid "Column \"%s\" is used by generated column \"%s\"."
 msgstr "La columna «%s» es usada por la columna generada «%s»."
 
-#: commands/tablecmds.c:13861 commands/tablecmds.c:13873
+#: commands/tablecmds.c:13621
+#, c-format
+msgid "cannot alter type of a column used by a publication WHERE clause"
+msgstr "no se puede alterar el tipo de una columna usada en una cláusula WHERE de publicación"
+
+#: commands/tablecmds.c:14456 commands/tablecmds.c:14468
 #, c-format
 msgid "cannot change owner of index \"%s\""
 msgstr "no se puede cambiar el dueño del índice «%s»"
 
-#: commands/tablecmds.c:13863 commands/tablecmds.c:13875
+#: commands/tablecmds.c:14458 commands/tablecmds.c:14470
 #, c-format
-msgid "Change the ownership of the index's table, instead."
-msgstr "Considere cambiar el dueño de la tabla en vez de cambiar el dueño del índice."
+msgid "Change the ownership of the index's table instead."
+msgstr "Cambie el dueño de la tabla del índice en su lugar."
 
-#: commands/tablecmds.c:13889
+#: commands/tablecmds.c:14484
 #, c-format
 msgid "cannot change owner of sequence \"%s\""
 msgstr "no se puede cambiar el dueño de la secuencia «%s»"
 
-#: commands/tablecmds.c:13903 commands/tablecmds.c:17201
-#: commands/tablecmds.c:17220
+#: commands/tablecmds.c:14509
 #, c-format
-msgid "Use ALTER TYPE instead."
-msgstr "Considere usar ALTER TYPE."
-
-#: commands/tablecmds.c:13912
-#, fuzzy, c-format
-#| msgid "cannot change owner of index \"%s\""
 msgid "cannot change owner of relation \"%s\""
-msgstr "no se puede cambiar el dueño del índice «%s»"
+msgstr "no se puede cambiar el dueño de la relación «%s»"
 
-#: commands/tablecmds.c:14274
+#: commands/tablecmds.c:14976
 #, c-format
 msgid "cannot have multiple SET TABLESPACE subcommands"
 msgstr "no se pueden tener múltiples subórdenes SET TABLESPACE"
 
-#: commands/tablecmds.c:14351
-#, fuzzy, c-format
-#| msgid "cannot alter constraint \"%s\" on relation \"%s\""
+#: commands/tablecmds.c:15053
+#, c-format
 msgid "cannot set options for relation \"%s\""
-msgstr "no se puede modificar la restricción «%s» en la relación «%s»"
+msgstr "no se puede definir opciones para la relación «%s»"
 
-#: commands/tablecmds.c:14385 commands/view.c:445
+#: commands/tablecmds.c:15087 commands/view.c:440
 #, c-format
 msgid "WITH CHECK OPTION is supported only on automatically updatable views"
 msgstr "WITH CHECK OPTION sólo puede usarse en vistas automáticamente actualizables"
 
-#: commands/tablecmds.c:14635
+#: commands/tablecmds.c:15338
 #, c-format
 msgid "only tables, indexes, and materialized views exist in tablespaces"
 msgstr "solamente tablas, índices y vistas materializadas existen en tablespaces"
 
-#: commands/tablecmds.c:14647
+#: commands/tablecmds.c:15350
 #, c-format
 msgid "cannot move relations in to or out of pg_global tablespace"
 msgstr "no se puede mover objetos hacia o desde el tablespace pg_global"
 
-#: commands/tablecmds.c:14739
+#: commands/tablecmds.c:15442
 #, c-format
 msgid "aborting because lock on relation \"%s.%s\" is not available"
 msgstr "cancelando porque el lock en la relación «%s.%s» no está disponible"
 
-#: commands/tablecmds.c:14755
+#: commands/tablecmds.c:15458
 #, c-format
 msgid "no matching relations in tablespace \"%s\" found"
 msgstr "no se encontraron relaciones coincidentes en el tablespace «%s»"
 
-#: commands/tablecmds.c:14873
+#: commands/tablecmds.c:15580
 #, c-format
 msgid "cannot change inheritance of typed table"
 msgstr "no se puede cambiar la herencia de una tabla tipada"
 
-#: commands/tablecmds.c:14878 commands/tablecmds.c:15396
+#: commands/tablecmds.c:15585 commands/tablecmds.c:16085
 #, c-format
 msgid "cannot change inheritance of a partition"
 msgstr "no puede cambiar la herencia de una partición"
 
-#: commands/tablecmds.c:14883
+#: commands/tablecmds.c:15590
 #, c-format
 msgid "cannot change inheritance of partitioned table"
 msgstr "no se puede cambiar la herencia de una tabla particionada"
 
-#: commands/tablecmds.c:14929
+#: commands/tablecmds.c:15636
 #, c-format
 msgid "cannot inherit to temporary relation of another session"
 msgstr "no se puede agregar herencia a tablas temporales de otra sesión"
 
-#: commands/tablecmds.c:14942
+#: commands/tablecmds.c:15649
 #, c-format
 msgid "cannot inherit from a partition"
 msgstr "no se puede heredar de una partición"
 
-#: commands/tablecmds.c:14964 commands/tablecmds.c:17841
+#: commands/tablecmds.c:15671 commands/tablecmds.c:18529
 #, c-format
 msgid "circular inheritance not allowed"
 msgstr "la herencia circular no está permitida"
 
-#: commands/tablecmds.c:14965 commands/tablecmds.c:17842
+#: commands/tablecmds.c:15672 commands/tablecmds.c:18530
 #, c-format
 msgid "\"%s\" is already a child of \"%s\"."
 msgstr "«%s» ya es un hijo de «%s»."
 
-#: commands/tablecmds.c:14978
+#: commands/tablecmds.c:15685
 #, c-format
 msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child"
 msgstr "el trigger «%s» impide a la tabla «%s» convertirse en hija de herencia"
 
-#: commands/tablecmds.c:14980
+#: commands/tablecmds.c:15687
 #, c-format
 msgid "ROW triggers with transition tables are not supported in inheritance hierarchies."
 msgstr "Los triggers ROW con tablas de transición no están permitidos en jerarquías de herencia."
 
-#: commands/tablecmds.c:15183
+#: commands/tablecmds.c:15876
 #, c-format
 msgid "column \"%s\" in child table must be marked NOT NULL"
 msgstr "columna «%s» en tabla hija debe marcarse como NOT NULL"
 
-#: commands/tablecmds.c:15192
+#: commands/tablecmds.c:15885
 #, c-format
 msgid "column \"%s\" in child table must be a generated column"
 msgstr "columna «%s» en tabla hija debe ser una columna generada"
 
-#: commands/tablecmds.c:15197
-#, fuzzy, c-format
-#| msgid "column \"%s\" in child table must be a generated column"
+#: commands/tablecmds.c:15889
+#, c-format
 msgid "column \"%s\" in child table must not be a generated column"
-msgstr "columna «%s» en tabla hija debe ser una columna generada"
+msgstr "columna «%s» en tabla hija no puede ser una columna generada"
 
-#: commands/tablecmds.c:15228
+#: commands/tablecmds.c:15927
 #, c-format
 msgid "child table is missing column \"%s\""
 msgstr "tabla hija no tiene la columna «%s»"
 
-#: commands/tablecmds.c:15316
+#: commands/tablecmds.c:16008
 #, c-format
 msgid "child table \"%s\" has different definition for check constraint \"%s\""
 msgstr "la tabla hija «%s» tiene una definición diferente para la restricción «check» «%s»"
 
-#: commands/tablecmds.c:15324
+#: commands/tablecmds.c:16015
 #, c-format
 msgid "constraint \"%s\" conflicts with non-inherited constraint on child table \"%s\""
 msgstr "la restricción «%s» está en conflicto con la restricción no heredada en la tabla hija «%s»"
 
-#: commands/tablecmds.c:15335
+#: commands/tablecmds.c:16025
 #, c-format
 msgid "constraint \"%s\" conflicts with NOT VALID constraint on child table \"%s\""
 msgstr "la restricción «%s» está en conflicto con la restricción NOT VALID en la tabla hija «%s»"
 
-#: commands/tablecmds.c:15374
+#: commands/tablecmds.c:16063
 #, c-format
 msgid "child table is missing constraint \"%s\""
 msgstr "tabla hija no tiene la restricción «%s»"
 
-#: commands/tablecmds.c:15460
+#: commands/tablecmds.c:16149
 #, c-format
 msgid "partition \"%s\" already pending detach in partitioned table \"%s.%s\""
 msgstr "la partición «%s» ya tiene un desprendimiento pendiente en la tabla particionada «%s.%s»"
 
-#: commands/tablecmds.c:15489 commands/tablecmds.c:15537
+#: commands/tablecmds.c:16178 commands/tablecmds.c:16224
 #, c-format
 msgid "relation \"%s\" is not a partition of relation \"%s\""
 msgstr "relación «%s» no es una partición de la relación «%s»"
 
-#: commands/tablecmds.c:15543
+#: commands/tablecmds.c:16230
 #, c-format
 msgid "relation \"%s\" is not a parent of relation \"%s\""
 msgstr "relación «%s» no es un padre de la relación «%s»"
 
-#: commands/tablecmds.c:15771
+#: commands/tablecmds.c:16457
 #, c-format
 msgid "typed tables cannot inherit"
 msgstr "las tablas tipadas no pueden heredar"
 
-#: commands/tablecmds.c:15801
+#: commands/tablecmds.c:16487
 #, c-format
 msgid "table is missing column \"%s\""
 msgstr "la tabla no tiene la columna «%s»"
 
-#: commands/tablecmds.c:15812
+#: commands/tablecmds.c:16498
 #, c-format
 msgid "table has column \"%s\" where type requires \"%s\""
 msgstr "la tabla tiene columna «%s» en la posición en que el tipo requiere «%s»."
 
-#: commands/tablecmds.c:15821
+#: commands/tablecmds.c:16507
 #, c-format
 msgid "table \"%s\" has different type for column \"%s\""
 msgstr "la tabla «%s» tiene un tipo diferente para la columna «%s»"
 
-#: commands/tablecmds.c:15835
+#: commands/tablecmds.c:16521
 #, c-format
 msgid "table has extra column \"%s\""
 msgstr "tabla tiene la columna extra «%s»"
 
-#: commands/tablecmds.c:15887
+#: commands/tablecmds.c:16573
 #, c-format
 msgid "\"%s\" is not a typed table"
 msgstr "«%s» no es una tabla tipada"
 
-#: commands/tablecmds.c:16061
+#: commands/tablecmds.c:16747
 #, c-format
 msgid "cannot use non-unique index \"%s\" as replica identity"
 msgstr "no se puede usar el índice no-único «%s» como identidad de réplica"
 
-#: commands/tablecmds.c:16067
+#: commands/tablecmds.c:16753
 #, c-format
 msgid "cannot use non-immediate index \"%s\" as replica identity"
 msgstr "no puede usar el índice no-inmediato «%s» como identidad de réplica"
 
-#: commands/tablecmds.c:16073
+#: commands/tablecmds.c:16759
 #, c-format
 msgid "cannot use expression index \"%s\" as replica identity"
 msgstr "no se puede usar el índice funcional «%s» como identidad de réplica"
 
-#: commands/tablecmds.c:16079
+#: commands/tablecmds.c:16765
 #, c-format
 msgid "cannot use partial index \"%s\" as replica identity"
 msgstr "no se puede usar el índice parcial «%s» como identidad de réplica"
 
-#: commands/tablecmds.c:16096
+#: commands/tablecmds.c:16782
 #, c-format
 msgid "index \"%s\" cannot be used as replica identity because column %d is a system column"
 msgstr "el índice «%s» no puede usarse como identidad de réplica porque la column %d es una columna de sistema"
 
-#: commands/tablecmds.c:16103
+#: commands/tablecmds.c:16789
 #, c-format
 msgid "index \"%s\" cannot be used as replica identity because column \"%s\" is nullable"
 msgstr "el índice «%s» no puede usarse como identidad de réplica porque la column «%s» acepta valores nulos"
 
-#: commands/tablecmds.c:16348
+#: commands/tablecmds.c:17041
 #, c-format
 msgid "cannot change logged status of table \"%s\" because it is temporary"
 msgstr "no se puede cambiar el estado «logged» de la tabla «%s» porque es temporal"
 
-#: commands/tablecmds.c:16372
+#: commands/tablecmds.c:17065
 #, c-format
 msgid "cannot change table \"%s\" to unlogged because it is part of a publication"
 msgstr "no se pudo cambiar la tabla «%s» a «unlogged» porque es parte de una publicación"
 
-#: commands/tablecmds.c:16374
+#: commands/tablecmds.c:17067
 #, c-format
 msgid "Unlogged relations cannot be replicated."
 msgstr "Las tablas «unlogged» no pueden replicarse."
 
-#: commands/tablecmds.c:16419
+#: commands/tablecmds.c:17112
 #, c-format
 msgid "could not change table \"%s\" to logged because it references unlogged table \"%s\""
 msgstr "no se pudo cambiar la tabla «%s» a «logged» porque hace referencia a la tabla «unlogged» «%s»"
 
-#: commands/tablecmds.c:16429
+#: commands/tablecmds.c:17122
 #, c-format
 msgid "could not change table \"%s\" to unlogged because it references logged table \"%s\""
 msgstr "no se pudo cambiar la tabla «%s» a «unlogged» porque hace referencia a la tabla «logged» «%s»"
 
-#: commands/tablecmds.c:16487
+#: commands/tablecmds.c:17180
 #, c-format
 msgid "cannot move an owned sequence into another schema"
 msgstr "no se puede mover una secuencia enlazada a una tabla hacia otro esquema"
 
-#: commands/tablecmds.c:16594
+#: commands/tablecmds.c:17288
 #, c-format
 msgid "relation \"%s\" already exists in schema \"%s\""
 msgstr "ya existe una relación llamada «%s» en el esquema «%s»"
 
-#: commands/tablecmds.c:17006
+#: commands/tablecmds.c:17713
 #, c-format
 msgid "\"%s\" is not a table or materialized view"
 msgstr "«%s» no es una tabla o vista materializada"
 
-#: commands/tablecmds.c:17184
+#: commands/tablecmds.c:17866
 #, c-format
 msgid "\"%s\" is not a composite type"
 msgstr "«%s» no es un tipo compuesto"
 
-#: commands/tablecmds.c:17212
-#, fuzzy, c-format
-#| msgid "cannot change owner of index \"%s\""
+#: commands/tablecmds.c:17896
+#, c-format
 msgid "cannot change schema of index \"%s\""
-msgstr "no se puede cambiar el dueño del índice «%s»"
+msgstr "no se puede cambiar el esquema del índice «%s»"
 
-#: commands/tablecmds.c:17214 commands/tablecmds.c:17226
-#, fuzzy, c-format
-#| msgid "Change the ownership of the index's table, instead."
+#: commands/tablecmds.c:17898 commands/tablecmds.c:17912
+#, c-format
 msgid "Change the schema of the table instead."
-msgstr "Considere cambiar el dueño de la tabla en vez de cambiar el dueño del índice."
+msgstr "Cambie el esquema de la tabla en su lugar."
 
-#: commands/tablecmds.c:17218
-#, fuzzy, c-format
-#| msgid "cannot convert Perl hash to non-composite type %s"
+#: commands/tablecmds.c:17902
+#, c-format
 msgid "cannot change schema of composite type \"%s\""
-msgstr "no se puede convertir un hash de Perl al tipo no compuesto %s"
+msgstr "no se puede cambiar el esquema del tipo compuesto «%s»"
 
-#: commands/tablecmds.c:17224
-#, fuzzy, c-format
-#| msgid "cannot change TOAST relation \"%s\""
+#: commands/tablecmds.c:17910
+#, c-format
 msgid "cannot change schema of TOAST table \"%s\""
-msgstr "no se puede cambiar la relación TOAST «%s»"
+msgstr "no se puede cambiar el esquema de la relación TOAST «%s»"
 
-#: commands/tablecmds.c:17256
+#: commands/tablecmds.c:17942
 #, c-format
 msgid "cannot use \"list\" partition strategy with more than one column"
 msgstr "no se puede usar la estrategia de particionamiento «list» con más de una columna"
 
-#: commands/tablecmds.c:17322
+#: commands/tablecmds.c:18008
 #, c-format
 msgid "column \"%s\" named in partition key does not exist"
 msgstr "la columna «%s» nombrada en llave de particionamiento no existe"
 
-#: commands/tablecmds.c:17330
+#: commands/tablecmds.c:18016
 #, c-format
 msgid "cannot use system column \"%s\" in partition key"
 msgstr "no se puede usar la columna de sistema «%s» en llave de particionamiento"
 
-#: commands/tablecmds.c:17341 commands/tablecmds.c:17455
+#: commands/tablecmds.c:18027 commands/tablecmds.c:18117
 #, c-format
 msgid "cannot use generated column in partition key"
 msgstr "no se puede usar una columna generada en llave de particionamiento"
 
-#: commands/tablecmds.c:17342 commands/tablecmds.c:17456 commands/trigger.c:663
-#: rewrite/rewriteHandler.c:934 rewrite/rewriteHandler.c:969
+#: commands/tablecmds.c:18100
 #, c-format
-msgid "Column \"%s\" is a generated column."
-msgstr "La columna «%s» es una columna generada."
+msgid "partition key expressions cannot contain system column references"
+msgstr "las expresiones en la llave de particionamiento no pueden contener referencias a columnas de sistema"
 
-#: commands/tablecmds.c:17418
+#: commands/tablecmds.c:18147
 #, c-format
 msgid "functions in partition key expression must be marked IMMUTABLE"
 msgstr "las funciones utilizadas en expresiones de la llave de particionamiento deben estar marcadas IMMUTABLE"
 
-#: commands/tablecmds.c:17438
-#, c-format
-msgid "partition key expressions cannot contain system column references"
-msgstr "las expresiones en la llave de particionamiento no pueden contener referencias a columnas de sistema"
-
-#: commands/tablecmds.c:17468
+#: commands/tablecmds.c:18156
 #, c-format
 msgid "cannot use constant expression as partition key"
 msgstr "no se pueden usar expresiones constantes como llave de particionamiento"
 
-#: commands/tablecmds.c:17489
+#: commands/tablecmds.c:18177
 #, c-format
 msgid "could not determine which collation to use for partition expression"
 msgstr "no se pudo determinar qué ordenamiento (collation) usar para la expresión de particionamiento"
 
-#: commands/tablecmds.c:17524
+#: commands/tablecmds.c:18212
 #, c-format
 msgid "You must specify a hash operator class or define a default hash operator class for the data type."
 msgstr "Debe especificar una clase de operadores hash, o definir una clase de operadores por omisión para hash para el tipo de datos."
 
-#: commands/tablecmds.c:17530
+#: commands/tablecmds.c:18218
 #, c-format
 msgid "You must specify a btree operator class or define a default btree operator class for the data type."
 msgstr "Debe especificar una clase de operadores btree, o definir una clase de operadores por omisión para btree para el tipo de datos."
 
-#: commands/tablecmds.c:17781
+#: commands/tablecmds.c:18469
 #, c-format
 msgid "\"%s\" is already a partition"
 msgstr "«%s» ya es una partición"
 
-#: commands/tablecmds.c:17787
+#: commands/tablecmds.c:18475
 #, c-format
 msgid "cannot attach a typed table as partition"
 msgstr "no puede adjuntar tabla tipada como partición"
 
-#: commands/tablecmds.c:17803
+#: commands/tablecmds.c:18491
 #, c-format
 msgid "cannot attach inheritance child as partition"
 msgstr "no puede adjuntar hija de herencia como partición"
 
-#: commands/tablecmds.c:17817
+#: commands/tablecmds.c:18505
 #, c-format
 msgid "cannot attach inheritance parent as partition"
 msgstr "no puede adjuntar ancestro de herencia como partición"
 
-#: commands/tablecmds.c:17851
+#: commands/tablecmds.c:18539
 #, c-format
 msgid "cannot attach a temporary relation as partition of permanent relation \"%s\""
 msgstr "no se puede adjuntar una relación temporal como partición de la relación permanente «%s»"
 
-#: commands/tablecmds.c:17859
+#: commands/tablecmds.c:18547
 #, c-format
 msgid "cannot attach a permanent relation as partition of temporary relation \"%s\""
 msgstr "no se puede adjuntar una relación permanente como partición de la relación temporal «%s»"
 
-#: commands/tablecmds.c:17867
+#: commands/tablecmds.c:18555
 #, c-format
 msgid "cannot attach as partition of temporary relation of another session"
 msgstr "no se puede adjuntar como partición de una relación temporal de otra sesión"
 
-#: commands/tablecmds.c:17874
+#: commands/tablecmds.c:18562
 #, c-format
 msgid "cannot attach temporary relation of another session as partition"
 msgstr "no se adjuntar una relación temporal de otra sesión como partición"
 
-#: commands/tablecmds.c:17894
+#: commands/tablecmds.c:18582
+#, c-format
+msgid "table \"%s\" being attached contains an identity column \"%s\""
+msgstr "la tabla «%s» siendo adjuntada contiene la columna de identidad «%s»"
+
+#: commands/tablecmds.c:18584
+#, c-format
+msgid "The new partition may not contain an identity column."
+msgstr "La nueva partición no puede contener una columna de identidad."
+
+#: commands/tablecmds.c:18592
 #, c-format
 msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\""
 msgstr "la tabla «%s» contiene la columna «%s» no encontrada en el padre «%s»"
 
-#: commands/tablecmds.c:17897
+#: commands/tablecmds.c:18595
 #, c-format
 msgid "The new partition may contain only the columns present in parent."
 msgstr "La nueva partición sólo puede contener las columnas presentes en el padre."
 
-#: commands/tablecmds.c:17909
+#: commands/tablecmds.c:18607
 #, c-format
 msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition"
 msgstr "el trigger «%s» impide a la tabla «%s» devenir partición"
 
-#: commands/tablecmds.c:17911
+#: commands/tablecmds.c:18609
 #, c-format
 msgid "ROW triggers with transition tables are not supported on partitions."
 msgstr "Los triggers ROW con tablas de transición no están soportados en particiones."
 
-#: commands/tablecmds.c:18090
+#: commands/tablecmds.c:18785
 #, c-format
 msgid "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\""
 msgstr "no se puede adjuntar la tabla foránea «%s» como partición de la tabla particionada «%s»"
 
-#: commands/tablecmds.c:18093
+#: commands/tablecmds.c:18788
 #, c-format
 msgid "Partitioned table \"%s\" contains unique indexes."
 msgstr "La tabla particionada «%s» contiene índices únicos."
 
-#: commands/tablecmds.c:18406
+#: commands/tablecmds.c:19110
 #, c-format
 msgid "cannot detach partitions concurrently when a default partition exists"
 msgstr "no se puede desprender particiones concurrentemente cuando existe una partición por omisión"
 
-#: commands/tablecmds.c:18515
+#: commands/tablecmds.c:19219
 #, c-format
 msgid "partitioned table \"%s\" was removed concurrently"
 msgstr "la tabla particionada «%s» fue eliminada concurrentemente"
 
-#: commands/tablecmds.c:18521
+#: commands/tablecmds.c:19225
 #, c-format
 msgid "partition \"%s\" was removed concurrently"
 msgstr "la partición «%s» fue eliminada concurrentemente"
 
-#: commands/tablecmds.c:19036 commands/tablecmds.c:19056
-#: commands/tablecmds.c:19077 commands/tablecmds.c:19096
-#: commands/tablecmds.c:19138
+#: commands/tablecmds.c:19839 commands/tablecmds.c:19859
+#: commands/tablecmds.c:19880 commands/tablecmds.c:19899
+#: commands/tablecmds.c:19941
 #, c-format
 msgid "cannot attach index \"%s\" as a partition of index \"%s\""
 msgstr "no se puede adjuntar el índice «%s» como partición del índice «%s»"
 
-#: commands/tablecmds.c:19039
+#: commands/tablecmds.c:19842
 #, c-format
 msgid "Index \"%s\" is already attached to another index."
 msgstr "El índice «%s» ya está adjunto a otro índice."
 
-#: commands/tablecmds.c:19059
+#: commands/tablecmds.c:19862
 #, c-format
 msgid "Index \"%s\" is not an index on any partition of table \"%s\"."
 msgstr "El índice «%s» no es un índice en una partición de la tabla «%s»."
 
-#: commands/tablecmds.c:19080
+#: commands/tablecmds.c:19883
 #, c-format
 msgid "The index definitions do not match."
 msgstr "Las definiciones de los índices no coinciden."
 
-#: commands/tablecmds.c:19099
+#: commands/tablecmds.c:19902
 #, c-format
 msgid "The index \"%s\" belongs to a constraint in table \"%s\" but no constraint exists for index \"%s\"."
 msgstr "El índice «%s» pertenece a una restricción en la tabla «%s», pero no existe una restricción para el índice «%s»."
 
-#: commands/tablecmds.c:19141
+#: commands/tablecmds.c:19944
 #, c-format
 msgid "Another index is already attached for partition \"%s\"."
 msgstr "Otro índice ya está adjunto para la partición «%s»."
 
-#: commands/tablecmds.c:19370
+#: commands/tablecmds.c:20180
 #, c-format
 msgid "column data type %s does not support compression"
 msgstr "el tipo de dato de columna %s no soporta compresión"
 
-#: commands/tablecmds.c:19377
+#: commands/tablecmds.c:20187
 #, c-format
 msgid "invalid compression method \"%s\""
 msgstr "método de compresión «%s» no válido"
 
-#: commands/tablecmds.c:19403
+#: commands/tablecmds.c:20213
 #, c-format
 msgid "invalid storage type \"%s\""
 msgstr "tipo de almacenamiento no válido «%s»"
 
-#: commands/tablecmds.c:19413
+#: commands/tablecmds.c:20223
 #, c-format
 msgid "column data type %s can only have storage PLAIN"
 msgstr "el tipo de datos %s de la columna sólo puede tener almacenamiento PLAIN"
 
-#: commands/tablespace.c:199 commands/tablespace.c:650
+#: commands/tablespace.c:193 commands/tablespace.c:644
 #, c-format
 msgid "\"%s\" exists but is not a directory"
 msgstr "«%s» existe pero no es un directorio"
 
-#: commands/tablespace.c:230
+#: commands/tablespace.c:224
 #, c-format
 msgid "permission denied to create tablespace \"%s\""
 msgstr "se ha denegado el permiso para crear el tablespace «%s»"
 
-#: commands/tablespace.c:232
+#: commands/tablespace.c:226
 #, c-format
 msgid "Must be superuser to create a tablespace."
 msgstr "Debe ser superusuario para crear tablespaces."
 
-#: commands/tablespace.c:248
+#: commands/tablespace.c:242
 #, c-format
 msgid "tablespace location cannot contain single quotes"
 msgstr "la ruta del tablespace no puede contener comillas simples"
 
-#: commands/tablespace.c:261
+#: commands/tablespace.c:255
 #, c-format
 msgid "tablespace location must be an absolute path"
 msgstr "la ubicación del tablespace debe ser una ruta absoluta"
 
-#: commands/tablespace.c:273
+#: commands/tablespace.c:267
 #, c-format
 msgid "tablespace location \"%s\" is too long"
 msgstr "la ruta «%s» del tablespace es demasiado larga"
 
-#: commands/tablespace.c:280
+#: commands/tablespace.c:274
 #, c-format
 msgid "tablespace location should not be inside the data directory"
 msgstr "la ubicación del tablespace no debe estar dentro del directorio de datos"
 
-#: commands/tablespace.c:289 commands/tablespace.c:976
+#: commands/tablespace.c:283 commands/tablespace.c:970
 #, c-format
 msgid "unacceptable tablespace name \"%s\""
 msgstr "el nombre de tablespace «%s» es inaceptable"
 
-#: commands/tablespace.c:291 commands/tablespace.c:977
+#: commands/tablespace.c:285 commands/tablespace.c:971
 #, c-format
 msgid "The prefix \"pg_\" is reserved for system tablespaces."
 msgstr "El prefijo «pg_» está reservado para tablespaces del sistema."
 
-#: commands/tablespace.c:310 commands/tablespace.c:998
+#: commands/tablespace.c:304 commands/tablespace.c:992
 #, c-format
 msgid "tablespace \"%s\" already exists"
 msgstr "el tablespace «%s» ya existe"
 
-#: commands/tablespace.c:326
-#, fuzzy, c-format
-#| msgid "pg_type OID value not set when in binary upgrade mode"
+#: commands/tablespace.c:320
+#, c-format
 msgid "pg_tablespace OID value not set when in binary upgrade mode"
-msgstr "el valor de OID de pg_type no se definió en modo de actualización binaria"
+msgstr "el valor de OID de pg_tablespace no se definió en modo de actualización binaria"
 
-#: commands/tablespace.c:431 commands/tablespace.c:959
-#: commands/tablespace.c:1048 commands/tablespace.c:1117
-#: commands/tablespace.c:1263 commands/tablespace.c:1466
+#: commands/tablespace.c:425 commands/tablespace.c:953
+#: commands/tablespace.c:1042 commands/tablespace.c:1111
+#: commands/tablespace.c:1257 commands/tablespace.c:1460
 #, c-format
 msgid "tablespace \"%s\" does not exist"
 msgstr "no existe el tablespace «%s»"
 
-#: commands/tablespace.c:437
+#: commands/tablespace.c:431
 #, c-format
 msgid "tablespace \"%s\" does not exist, skipping"
 msgstr "el tablespace «%s» no existe, omitiendo"
 
-#: commands/tablespace.c:463
+#: commands/tablespace.c:457
 #, c-format
 msgid "tablespace \"%s\" cannot be dropped because some objects depend on it"
 msgstr "no se puede eliminar el tablespace «%s» porque otros objetos dependen de él"
 
-#: commands/tablespace.c:530
+#: commands/tablespace.c:524
 #, c-format
 msgid "tablespace \"%s\" is not empty"
 msgstr "el tablespace «%s» no está vacío"
 
-#: commands/tablespace.c:617
+#: commands/tablespace.c:611
 #, c-format
 msgid "directory \"%s\" does not exist"
 msgstr "no existe el directorio «%s»"
 
-#: commands/tablespace.c:618
+#: commands/tablespace.c:612
 #, c-format
 msgid "Create this directory for the tablespace before restarting the server."
 msgstr "Cree este directorio para el tablespace antes de reiniciar el servidor."
 
-#: commands/tablespace.c:623
+#: commands/tablespace.c:617
 #, c-format
 msgid "could not set permissions on directory \"%s\": %m"
 msgstr "no se pudo definir los permisos del directorio «%s»: %m"
 
-#: commands/tablespace.c:655
+#: commands/tablespace.c:649
 #, c-format
 msgid "directory \"%s\" already in use as a tablespace"
 msgstr "el directorio «%s» ya está siendo usado como tablespace"
 
-#: commands/tablespace.c:833 commands/tablespace.c:919
+#: commands/tablespace.c:827 commands/tablespace.c:913
 #, c-format
 msgid "could not remove symbolic link \"%s\": %m"
 msgstr "no se pudo eliminar el enlace simbólico «%s»: %m"
 
-#: commands/tablespace.c:842 commands/tablespace.c:927
+#: commands/tablespace.c:836 commands/tablespace.c:921
 #, c-format
 msgid "\"%s\" is not a directory or symbolic link"
 msgstr "«%s» no es un directorio o enlace simbólico"
 
-#: commands/tablespace.c:1122
+#: commands/tablespace.c:1116
 #, c-format
 msgid "Tablespace \"%s\" does not exist."
 msgstr "No existe el tablespace «%s»."
 
-#: commands/tablespace.c:1568
+#: commands/tablespace.c:1562
 #, c-format
 msgid "directories for tablespace %u could not be removed"
 msgstr "algunos directorios para el tablespace %u no pudieron eliminarse"
 
-#: commands/tablespace.c:1570
+#: commands/tablespace.c:1564
 #, c-format
 msgid "You can remove the directories manually if necessary."
 msgstr "Puede eliminar los directorios manualmente, si es necesario."
 
-#: commands/trigger.c:232 commands/trigger.c:243
+#: commands/trigger.c:225 commands/trigger.c:236
 #, c-format
 msgid "\"%s\" is a table"
 msgstr "«%s» es una tabla"
 
-#: commands/trigger.c:234 commands/trigger.c:245
+#: commands/trigger.c:227 commands/trigger.c:238
 #, c-format
 msgid "Tables cannot have INSTEAD OF triggers."
-msgstr "Las tablas no pueden tener disparadores INSTEAD OF."
+msgstr "Las tablas no pueden tener “triggers” INSTEAD OF."
 
-#: commands/trigger.c:266
+#: commands/trigger.c:259
 #, c-format
 msgid "\"%s\" is a partitioned table"
 msgstr "«%s» es una tabla particionada"
 
-#: commands/trigger.c:268
-#, fuzzy, c-format
-#| msgid "ROW triggers with transition tables are not supported on partitions."
+#: commands/trigger.c:261
+#, c-format
 msgid "ROW triggers with transition tables are not supported on partitioned tables."
-msgstr "Los triggers ROW con tablas de transición no están soportados en particiones."
+msgstr "Los triggers ROW con tablas de transición no están soportados en tablas particionadas."
 
-#: commands/trigger.c:280 commands/trigger.c:287 commands/trigger.c:451
+#: commands/trigger.c:273 commands/trigger.c:280 commands/trigger.c:444
 #, c-format
 msgid "\"%s\" is a view"
 msgstr "«%s» es una vista"
 
-#: commands/trigger.c:282
+#: commands/trigger.c:275
 #, c-format
 msgid "Views cannot have row-level BEFORE or AFTER triggers."
-msgstr "Las vistas no pueden tener disparadores BEFORE o AFTER a nivel de fila."
+msgstr "Las vistas no pueden tener “triggers” BEFORE o AFTER a nivel de fila."
 
-#: commands/trigger.c:289
+#: commands/trigger.c:282
 #, c-format
 msgid "Views cannot have TRUNCATE triggers."
-msgstr "Las vistas no pueden tener disparadores TRUNCATE."
+msgstr "Las vistas no pueden tener “triggers” TRUNCATE."
 
-#: commands/trigger.c:297 commands/trigger.c:309 commands/trigger.c:444
+#: commands/trigger.c:290 commands/trigger.c:302 commands/trigger.c:437
 #, c-format
 msgid "\"%s\" is a foreign table"
 msgstr "«%s» es una tabla foránea"
 
-#: commands/trigger.c:299
+#: commands/trigger.c:292
 #, c-format
 msgid "Foreign tables cannot have INSTEAD OF triggers."
-msgstr "Las tablas foráneas no pueden tener disparadores INSTEAD OF."
+msgstr "Las tablas foráneas no pueden tener “triggers” INSTEAD OF."
 
-#: commands/trigger.c:311
+#: commands/trigger.c:304
 #, c-format
 msgid "Foreign tables cannot have constraint triggers."
-msgstr "Las tablas foráneas no pueden tener disparadores de restricción."
+msgstr "Las tablas foráneas no pueden tener “triggers” de restricción."
 
-#: commands/trigger.c:316 commands/trigger.c:1332 commands/trigger.c:1439
-#, fuzzy, c-format
-#| msgid "relation \"%s\" does not exist"
+#: commands/trigger.c:309 commands/trigger.c:1325 commands/trigger.c:1432
+#, c-format
 msgid "relation \"%s\" cannot have triggers"
-msgstr "no existe la relación «%s»"
+msgstr "la relación «%s» no puede tener triggers."
 
-#: commands/trigger.c:387
+#: commands/trigger.c:380
 #, c-format
 msgid "TRUNCATE FOR EACH ROW triggers are not supported"
-msgstr "los disparadores TRUNCATE FOR EACH ROW no están soportados"
+msgstr "los “triggers” TRUNCATE FOR EACH ROW no están soportados"
 
-#: commands/trigger.c:395
+#: commands/trigger.c:388
 #, c-format
 msgid "INSTEAD OF triggers must be FOR EACH ROW"
-msgstr "los disparadores INSTEAD OF deben ser FOR EACH ROW"
+msgstr "los “triggers” INSTEAD OF deben ser FOR EACH ROW"
 
-#: commands/trigger.c:399
+#: commands/trigger.c:392
 #, c-format
 msgid "INSTEAD OF triggers cannot have WHEN conditions"
-msgstr "los disparadores INSTEAD OF no pueden tener condiciones WHEN"
+msgstr "los “triggers” INSTEAD OF no pueden tener condiciones WHEN"
 
-#: commands/trigger.c:403
+#: commands/trigger.c:396
 #, c-format
 msgid "INSTEAD OF triggers cannot have column lists"
-msgstr "los disparadores INSTEAD OF no pueden tener listas de columnas"
+msgstr "los “triggers” INSTEAD OF no pueden tener listas de columnas"
 
-#: commands/trigger.c:432
+#: commands/trigger.c:425
 #, c-format
 msgid "ROW variable naming in the REFERENCING clause is not supported"
 msgstr "dar nombre a una variable ROW en la cláusula REFERENCING no está soportado"
 
-#: commands/trigger.c:433
+#: commands/trigger.c:426
 #, c-format
 msgid "Use OLD TABLE or NEW TABLE for naming transition tables."
 msgstr "utilice OLD TABLE o NEW TABLE para nombrar tablas de transición."
 
-#: commands/trigger.c:446
+#: commands/trigger.c:439
 #, c-format
 msgid "Triggers on foreign tables cannot have transition tables."
 msgstr "Las tablas foráneas no pueden tener tablas de transición."
 
-#: commands/trigger.c:453
+#: commands/trigger.c:446
 #, c-format
 msgid "Triggers on views cannot have transition tables."
 msgstr "Las triggers en vistas no pueden tener tablas de transición."
 
-#: commands/trigger.c:469
+#: commands/trigger.c:462
 #, c-format
 msgid "ROW triggers with transition tables are not supported on partitions"
 msgstr "los triggers ROW con tablas de transición no están soportados en particiones"
 
-#: commands/trigger.c:473
+#: commands/trigger.c:466
 #, c-format
 msgid "ROW triggers with transition tables are not supported on inheritance children"
 msgstr "los triggers ROW con tablas de transición no están soportados con hijas de herencia"
 
-#: commands/trigger.c:479
+#: commands/trigger.c:472
 #, c-format
 msgid "transition table name can only be specified for an AFTER trigger"
-msgstr "el nombre de la tabla de transición solo se puede especificar para un disparador AFTER"
+msgstr "el nombre de la tabla de transición solo se puede especificar para un “trigger” AFTER"
 
-#: commands/trigger.c:484
+#: commands/trigger.c:477
 #, c-format
 msgid "TRUNCATE triggers with transition tables are not supported"
 msgstr "los triggers TRUNCATE con tablas de transición no están soportados"
 
-#: commands/trigger.c:501
+#: commands/trigger.c:494
 #, c-format
 msgid "transition tables cannot be specified for triggers with more than one event"
 msgstr "las tablas de transición no pueden especificarse para triggers con más de un evento"
 
-#: commands/trigger.c:512
+#: commands/trigger.c:505
 #, c-format
 msgid "transition tables cannot be specified for triggers with column lists"
 msgstr "las tablas de transición no pueden especificarse para triggers con lista de columnas"
 
-#: commands/trigger.c:529
+#: commands/trigger.c:522
 #, c-format
 msgid "NEW TABLE can only be specified for an INSERT or UPDATE trigger"
-msgstr "NEW TABLE sólo se puede especificar para un disparador INSERT o UPDATE"
+msgstr "NEW TABLE sólo se puede especificar para un “trigger” INSERT o UPDATE"
 
-#: commands/trigger.c:534
+#: commands/trigger.c:527
 #, c-format
 msgid "NEW TABLE cannot be specified multiple times"
 msgstr "NEW TABLE no se puede especificar varias veces"
 
-#: commands/trigger.c:544
+#: commands/trigger.c:537
 #, c-format
 msgid "OLD TABLE can only be specified for a DELETE or UPDATE trigger"
-msgstr "OLD TABLE sólo se puede especificar para un disparador DELETE o UPDATE"
+msgstr "OLD TABLE sólo se puede especificar para un “trigger” DELETE o UPDATE"
 
-#: commands/trigger.c:549
+#: commands/trigger.c:542
 #, c-format
 msgid "OLD TABLE cannot be specified multiple times"
 msgstr "OLD TABLE no se puede especificar varias veces"
 
-#: commands/trigger.c:559
+#: commands/trigger.c:552
 #, c-format
 msgid "OLD TABLE name and NEW TABLE name cannot be the same"
 msgstr "el nombre de OLD TABLE y el nombre de NEW TABLE no pueden ser iguales"
 
-#: commands/trigger.c:623 commands/trigger.c:636
+#: commands/trigger.c:616 commands/trigger.c:629
 #, c-format
 msgid "statement trigger's WHEN condition cannot reference column values"
-msgstr "la condición WHEN de un disparador por sentencias no pueden referirse a los valores de las columnas"
+msgstr "la condición WHEN de un “trigger” por sentencias no pueden referirse a los valores de las columnas"
 
-#: commands/trigger.c:628
+#: commands/trigger.c:621
 #, c-format
 msgid "INSERT trigger's WHEN condition cannot reference OLD values"
-msgstr "la condición WHEN de un disparador en INSERT no puede referirse a valores OLD"
+msgstr "la condición WHEN de un “trigger” en INSERT no puede referirse a valores OLD"
 
-#: commands/trigger.c:641
+#: commands/trigger.c:634
 #, c-format
 msgid "DELETE trigger's WHEN condition cannot reference NEW values"
-msgstr "la condición WHEN de un disparador en DELETE no puede referirse a valores NEW"
+msgstr "la condición WHEN de un “trigger” en DELETE no puede referirse a valores NEW"
 
-#: commands/trigger.c:646
+#: commands/trigger.c:639
 #, c-format
 msgid "BEFORE trigger's WHEN condition cannot reference NEW system columns"
-msgstr "la condición WHEN de un disparador BEFORE no puede referirse a columnas de sistema de NEW"
+msgstr "la condición WHEN de un “trigger” BEFORE no puede referirse a columnas de sistema de NEW"
 
-#: commands/trigger.c:654 commands/trigger.c:662
+#: commands/trigger.c:647 commands/trigger.c:655
 #, c-format
 msgid "BEFORE trigger's WHEN condition cannot reference NEW generated columns"
 msgstr "la condición WHEN del trigger BEFORE no puede hacer referencia a columnas NEW generadas"
 
-#: commands/trigger.c:655
+#: commands/trigger.c:648
 #, c-format
 msgid "A whole-row reference is used and the table contains generated columns."
 msgstr "Se utiliza una referencia de la tupla completa, y la tabla contiene columnas generadas"
 
-#: commands/trigger.c:770 commands/trigger.c:1614
+#: commands/trigger.c:763 commands/trigger.c:1607
 #, c-format
 msgid "trigger \"%s\" for relation \"%s\" already exists"
 msgstr "ya existe un trigger «%s» para la relación «%s»"
 
-#: commands/trigger.c:783
-#, fuzzy, c-format
-#| msgid "trigger \"%s\" for relation \"%s\" is a constraint trigger"
+#: commands/trigger.c:776
+#, c-format
 msgid "trigger \"%s\" for relation \"%s\" is an internal or a child trigger"
-msgstr "disparador «%s» para la relación «%s» es un disparador de restricción"
+msgstr "trigger «%s» para la relación «%s» es interno o derivado"
 
-#: commands/trigger.c:802
+#: commands/trigger.c:795
 #, c-format
 msgid "trigger \"%s\" for relation \"%s\" is a constraint trigger"
-msgstr "disparador «%s» para la relación «%s» es un disparador de restricción"
+msgstr "“trigger” «%s» para la relación «%s» es un “trigger” de restricción"
 
-#: commands/trigger.c:1404 commands/trigger.c:1557 commands/trigger.c:1838
+#: commands/trigger.c:1397 commands/trigger.c:1550 commands/trigger.c:1831
 #, c-format
 msgid "trigger \"%s\" for table \"%s\" does not exist"
 msgstr "no existe el trigger «%s» para la tabla «%s»"
 
-#: commands/trigger.c:1529
-#, fuzzy, c-format
-#| msgid "no pg_constraint entry for trigger \"%s\" on table \"%s\""
+#: commands/trigger.c:1522
+#, c-format
 msgid "cannot rename trigger \"%s\" on table \"%s\""
-msgstr "no hay una entrada en pg_constraint para el trigger «%s» en tabla «%s»"
+msgstr "no se puede cambiar el nombre del trigger «%s» en tabla «%s»"
 
-#: commands/trigger.c:1531
-#, fuzzy, c-format
-#| msgid "Change the ownership of the index's table, instead."
+#: commands/trigger.c:1524
+#, c-format
 msgid "Rename the trigger on the partitioned table \"%s\" instead."
-msgstr "Considere cambiar el dueño de la tabla en vez de cambiar el dueño del índice."
+msgstr "Cambie el nombre del trigger en la tabla particionada «%s» en su lugar."
 
-#: commands/trigger.c:1631
-#, fuzzy, c-format
-#| msgid "cannot alter constraint \"%s\" on relation \"%s\""
+#: commands/trigger.c:1624
+#, c-format
 msgid "renamed trigger \"%s\" on relation \"%s\""
-msgstr "no se puede modificar la restricción «%s» en la relación «%s»"
+msgstr "se renombró el trigger «%s» en la relación «%s»"
 
-#: commands/trigger.c:1777
+#: commands/trigger.c:1770
 #, c-format
 msgid "permission denied: \"%s\" is a system trigger"
 msgstr "permiso denegado: «%s» es un trigger de sistema"
 
-#: commands/trigger.c:2386
+#: commands/trigger.c:2379
 #, c-format
 msgid "trigger function %u returned null value"
 msgstr "la función de trigger %u ha retornado un valor null"
 
-#: commands/trigger.c:2446 commands/trigger.c:2664 commands/trigger.c:2917
-#: commands/trigger.c:3252
+#: commands/trigger.c:2439 commands/trigger.c:2657 commands/trigger.c:2910
+#: commands/trigger.c:3263
 #, c-format
 msgid "BEFORE STATEMENT trigger cannot return a value"
 msgstr "un trigger BEFORE STATEMENT no puede retornar un valor"
 
-#: commands/trigger.c:2522
+#: commands/trigger.c:2515
 #, c-format
 msgid "moving row to another partition during a BEFORE FOR EACH ROW trigger is not supported"
 msgstr "mover registros a otra partición durante un trigger BEFORE FOR EACH ROW no está soportado"
 
-#: commands/trigger.c:2523
+#: commands/trigger.c:2516
 #, c-format
 msgid "Before executing trigger \"%s\", the row was to be in partition \"%s.%s\"."
 msgstr "Antes de ejecutar el trigger «%s», la fila iba a estar en la partición «%s.%s»."
 
-#: commands/trigger.c:3329 executor/nodeModifyTable.c:2363
-#: executor/nodeModifyTable.c:2446
-#, c-format
-msgid "tuple to be updated was already modified by an operation triggered by the current command"
-msgstr "el registro a ser actualizado ya fue modificado por una operación disparada por la orden actual"
-
-#: commands/trigger.c:3330 executor/nodeModifyTable.c:1531
-#: executor/nodeModifyTable.c:1605 executor/nodeModifyTable.c:2364
-#: executor/nodeModifyTable.c:2447 executor/nodeModifyTable.c:3077
+#: commands/trigger.c:3341 executor/nodeModifyTable.c:1541
+#: executor/nodeModifyTable.c:1615 executor/nodeModifyTable.c:2377
+#: executor/nodeModifyTable.c:2468 executor/nodeModifyTable.c:3132
+#: executor/nodeModifyTable.c:3302
 #, c-format
 msgid "Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows."
-msgstr "Considere usar un disparador AFTER en lugar de un disparador BEFORE para propagar cambios a otros registros."
+msgstr "Considere usar un “trigger” AFTER en lugar de un “trigger” BEFORE para propagar cambios a otros registros."
 
-#: commands/trigger.c:3371 executor/nodeLockRows.c:228
-#: executor/nodeLockRows.c:237 executor/nodeModifyTable.c:308
-#: executor/nodeModifyTable.c:1547 executor/nodeModifyTable.c:2381
-#: executor/nodeModifyTable.c:2589
+#: commands/trigger.c:3382 executor/nodeLockRows.c:228
+#: executor/nodeLockRows.c:237 executor/nodeModifyTable.c:314
+#: executor/nodeModifyTable.c:1557 executor/nodeModifyTable.c:2394
+#: executor/nodeModifyTable.c:2618
 #, c-format
 msgid "could not serialize access due to concurrent update"
 msgstr "no se pudo serializar el acceso debido a un update concurrente"
 
-#: commands/trigger.c:3379 executor/nodeModifyTable.c:1637
-#: executor/nodeModifyTable.c:2464 executor/nodeModifyTable.c:2613
-#: executor/nodeModifyTable.c:2965
+#: commands/trigger.c:3390 executor/nodeModifyTable.c:1647
+#: executor/nodeModifyTable.c:2485 executor/nodeModifyTable.c:2642
+#: executor/nodeModifyTable.c:3150
 #, c-format
 msgid "could not serialize access due to concurrent delete"
 msgstr "no se pudo serializar el acceso debido a un delete concurrente"
 
-#: commands/trigger.c:4555
+#: commands/trigger.c:4599
 #, c-format
 msgid "cannot fire deferred trigger within security-restricted operation"
-msgstr "no se puede ejecutar un disparador postergado dentro de una operación restringida por seguridad"
+msgstr "no se puede ejecutar un “trigger” postergado dentro de una operación restringida por seguridad"
 
-#: commands/trigger.c:5738
+#: commands/trigger.c:5780
 #, c-format
 msgid "constraint \"%s\" is not deferrable"
 msgstr "la restricción «%s» no es postergable"
 
-#: commands/trigger.c:5761
+#: commands/trigger.c:5803
 #, c-format
 msgid "constraint \"%s\" does not exist"
 msgstr "no existe la restricción «%s»"
 
-#: commands/tsearchcmds.c:118 commands/tsearchcmds.c:635
+#: commands/tsearchcmds.c:124 commands/tsearchcmds.c:641
 #, c-format
 msgid "function %s should return type %s"
 msgstr "la función %s debería retornar el tipo %s"
 
-#: commands/tsearchcmds.c:194
+#: commands/tsearchcmds.c:200
 #, c-format
 msgid "must be superuser to create text search parsers"
 msgstr "debe ser superusuario para crear analizadores de búsqueda en texto"
 
-#: commands/tsearchcmds.c:247
+#: commands/tsearchcmds.c:253
 #, c-format
 msgid "text search parser parameter \"%s\" not recognized"
 msgstr "el parámetro de analizador de búsqueda en texto «%s» no es reconocido"
 
-#: commands/tsearchcmds.c:257
+#: commands/tsearchcmds.c:263
 #, c-format
 msgid "text search parser start method is required"
 msgstr "el método «start» del analizador de búsqueda en texto es obligatorio"
 
-#: commands/tsearchcmds.c:262
+#: commands/tsearchcmds.c:268
 #, c-format
 msgid "text search parser gettoken method is required"
 msgstr "el método «gettoken» del analizador de búsqueda en texto es obligatorio"
 
-#: commands/tsearchcmds.c:267
+#: commands/tsearchcmds.c:273
 #, c-format
 msgid "text search parser end method is required"
 msgstr "el método «end» del analizador de búsqueda en texto es obligatorio"
 
-#: commands/tsearchcmds.c:272
+#: commands/tsearchcmds.c:278
 #, c-format
 msgid "text search parser lextypes method is required"
 msgstr "el método «lextypes» del analizador de búsqueda en texto es obligatorio"
 
-#: commands/tsearchcmds.c:366
+#: commands/tsearchcmds.c:372
 #, c-format
 msgid "text search template \"%s\" does not accept options"
 msgstr "la plantilla de búsquede en texto «%s» no acepta opciones"
 
-#: commands/tsearchcmds.c:440
+#: commands/tsearchcmds.c:446
 #, c-format
 msgid "text search template is required"
 msgstr "la plantilla de búsqueda en texto es obligatoria"
 
-#: commands/tsearchcmds.c:701
+#: commands/tsearchcmds.c:707
 #, c-format
 msgid "must be superuser to create text search templates"
 msgstr "debe ser superusuario para crear una plantilla de búsqueda en texto"
 
-#: commands/tsearchcmds.c:743
+#: commands/tsearchcmds.c:749
 #, c-format
 msgid "text search template parameter \"%s\" not recognized"
 msgstr "el parámetro de la plantilla de búsqueda en texto «%s» no es reconocido"
 
-#: commands/tsearchcmds.c:753
+#: commands/tsearchcmds.c:759
 #, c-format
 msgid "text search template lexize method is required"
 msgstr "el método «lexize» de la plantilla de búsqueda en texto es obligatorio"
 
-#: commands/tsearchcmds.c:933
+#: commands/tsearchcmds.c:939
 #, c-format
 msgid "text search configuration parameter \"%s\" not recognized"
 msgstr "el parámetro de configuración de búsqueda en texto «%s» no es reconocido"
 
-#: commands/tsearchcmds.c:940
+#: commands/tsearchcmds.c:946
 #, c-format
 msgid "cannot specify both PARSER and COPY options"
 msgstr "no se puede especificar simultáneamente las opciones PARSER y COPY"
 
-#: commands/tsearchcmds.c:976
+#: commands/tsearchcmds.c:982
 #, c-format
 msgid "text search parser is required"
 msgstr "el analizador de búsqueda en texto es obligatorio"
 
-#: commands/tsearchcmds.c:1241
+#: commands/tsearchcmds.c:1277
 #, c-format
 msgid "token type \"%s\" does not exist"
 msgstr "no existe el tipo de elemento «%s»"
 
-#: commands/tsearchcmds.c:1501
+#: commands/tsearchcmds.c:1540
 #, c-format
 msgid "mapping for token type \"%s\" does not exist"
 msgstr "no existe un mapeo para el tipo de elemento «%s»"
 
-#: commands/tsearchcmds.c:1507
+#: commands/tsearchcmds.c:1546
 #, c-format
 msgid "mapping for token type \"%s\" does not exist, skipping"
 msgstr "el mapeo para el tipo de elemento «%s» no existe, omitiendo"
 
-#: commands/tsearchcmds.c:1670 commands/tsearchcmds.c:1785
+#: commands/tsearchcmds.c:1707 commands/tsearchcmds.c:1822
 #, c-format
 msgid "invalid parameter list format: \"%s\""
 msgstr "el formato de la lista de parámetros no es válido: «%s»"
 
-#: commands/typecmds.c:217
+#: commands/typecmds.c:221
 #, c-format
 msgid "must be superuser to create a base type"
 msgstr "debe ser superusuario para crear un tipo base"
 
-#: commands/typecmds.c:275
+#: commands/typecmds.c:279
 #, c-format
 msgid "Create the type as a shell type, then create its I/O functions, then do a full CREATE TYPE."
 msgstr "Cree el tipo como un tipo inconcluso, luego cree sus funciones de I/O, luego haga un CREATE TYPE completo."
 
-#: commands/typecmds.c:327 commands/typecmds.c:1450 commands/typecmds.c:4257
+#: commands/typecmds.c:331 commands/typecmds.c:1460 commands/typecmds.c:4480
 #, c-format
 msgid "type attribute \"%s\" not recognized"
 msgstr "el atributo de tipo «%s» no es reconocido"
 
-#: commands/typecmds.c:382
+#: commands/typecmds.c:386
 #, c-format
 msgid "invalid type category \"%s\": must be simple ASCII"
 msgstr "la categoría de tipo «%s» no es válida: debe ser ASCII simple"
 
-#: commands/typecmds.c:401
+#: commands/typecmds.c:405
 #, c-format
 msgid "array element type cannot be %s"
 msgstr "el tipo de elemento de array no puede ser %s"
 
-#: commands/typecmds.c:433
+#: commands/typecmds.c:437
 #, c-format
 msgid "alignment \"%s\" not recognized"
 msgstr "el alineamiento «%s» no es reconocido"
 
-#: commands/typecmds.c:450 commands/typecmds.c:4131
+#: commands/typecmds.c:454 commands/typecmds.c:4354
 #, c-format
 msgid "storage \"%s\" not recognized"
 msgstr "el almacenamiento «%s» no es reconocido"
 
-#: commands/typecmds.c:461
+#: commands/typecmds.c:465
 #, c-format
 msgid "type input function must be specified"
 msgstr "debe especificarse la función de ingreso del tipo"
 
-#: commands/typecmds.c:465
+#: commands/typecmds.c:469
 #, c-format
 msgid "type output function must be specified"
 msgstr "debe especificarse la función de salida de tipo"
 
-#: commands/typecmds.c:470
+#: commands/typecmds.c:474
 #, c-format
 msgid "type modifier output function is useless without a type modifier input function"
 msgstr "la función de salida de modificadores de tipo es inútil sin una función de entrada de modificadores de tipo"
 
-#: commands/typecmds.c:512
+#: commands/typecmds.c:516
 #, c-format
 msgid "element type cannot be specified without a subscripting function"
 msgstr "no se puede especificar tipo de elemento sin una función de subindexación"
 
-#: commands/typecmds.c:781
+#: commands/typecmds.c:785
 #, c-format
 msgid "\"%s\" is not a valid base type for a domain"
 msgstr "«%s» no es un tipo de dato base válido para un dominio"
 
-#: commands/typecmds.c:879
+#: commands/typecmds.c:883
 #, c-format
 msgid "multiple default expressions"
 msgstr "múltiples expresiones default"
 
-#: commands/typecmds.c:942 commands/typecmds.c:951
+#: commands/typecmds.c:946 commands/typecmds.c:955
 #, c-format
 msgid "conflicting NULL/NOT NULL constraints"
 msgstr "las restricciones NULL/NOT NULL no coinciden"
 
-#: commands/typecmds.c:967
+#: commands/typecmds.c:971
 #, c-format
 msgid "check constraints for domains cannot be marked NO INHERIT"
 msgstr "las restricciones «check» en dominios no pueden ser marcadas NO INHERIT"
 
-#: commands/typecmds.c:976 commands/typecmds.c:2956
+#: commands/typecmds.c:980 commands/typecmds.c:2940
 #, c-format
 msgid "unique constraints not possible for domains"
 msgstr "no se pueden poner restricciones de unicidad a un dominio"
 
-#: commands/typecmds.c:982 commands/typecmds.c:2962
+#: commands/typecmds.c:986 commands/typecmds.c:2946
 #, c-format
 msgid "primary key constraints not possible for domains"
 msgstr "no se pueden poner restricciones de llave primaria a un dominio"
 
-#: commands/typecmds.c:988 commands/typecmds.c:2968
+#: commands/typecmds.c:992 commands/typecmds.c:2952
 #, c-format
 msgid "exclusion constraints not possible for domains"
 msgstr "las restricciones de exclusión no son posibles para los dominios"
 
-#: commands/typecmds.c:994 commands/typecmds.c:2974
+#: commands/typecmds.c:998 commands/typecmds.c:2958
 #, c-format
 msgid "foreign key constraints not possible for domains"
 msgstr "no se pueden poner restricciones de llave foránea a un dominio"
 
-#: commands/typecmds.c:1003 commands/typecmds.c:2983
+#: commands/typecmds.c:1007 commands/typecmds.c:2967
 #, c-format
 msgid "specifying constraint deferrability not supported for domains"
 msgstr "no se puede especificar la postergabilidad de las restricciones a un dominio"
 
-#: commands/typecmds.c:1317 utils/cache/typcache.c:2561
+#: commands/typecmds.c:1327 utils/cache/typcache.c:2570
 #, c-format
 msgid "%s is not an enum"
 msgstr "%s no es un enum"
 
-#: commands/typecmds.c:1458
+#: commands/typecmds.c:1468
 #, c-format
 msgid "type attribute \"subtype\" is required"
 msgstr "el atributo de tipo «subtype» es obligatorio"
 
-#: commands/typecmds.c:1463
+#: commands/typecmds.c:1473
 #, c-format
 msgid "range subtype cannot be %s"
 msgstr "el subtipo de rango no puede ser %s"
 
-#: commands/typecmds.c:1482
+#: commands/typecmds.c:1492
 #, c-format
 msgid "range collation specified but subtype does not support collation"
 msgstr "se especificó un ordenamiento (collation) al rango, pero el subtipo no soporta ordenamiento"
 
-#: commands/typecmds.c:1492
+#: commands/typecmds.c:1502
 #, c-format
 msgid "cannot specify a canonical function without a pre-created shell type"
 msgstr "no se puede especificar una función canónica sin antes crear un tipo inconcluso"
 
-#: commands/typecmds.c:1493
+#: commands/typecmds.c:1503
 #, c-format
 msgid "Create the type as a shell type, then create its canonicalization function, then do a full CREATE TYPE."
 msgstr "Cree el tipo como un tipo inconcluso, luego cree su función de canonicalización, luego haga un CREATE TYPE completo."
 
-#: commands/typecmds.c:1965
+#: commands/typecmds.c:1975
 #, c-format
 msgid "type input function %s has multiple matches"
 msgstr "la función de entrada %s del tipo tiene múltiples coincidencias"
 
-#: commands/typecmds.c:1983
+#: commands/typecmds.c:1993
 #, c-format
 msgid "type input function %s must return type %s"
 msgstr "la función de entrada %s del tipo debe retornar %s"
 
-#: commands/typecmds.c:1999
+#: commands/typecmds.c:2009
 #, c-format
 msgid "type input function %s should not be volatile"
 msgstr "la función de entrada %s no debe ser volatile"
 
-#: commands/typecmds.c:2027
+#: commands/typecmds.c:2037
 #, c-format
 msgid "type output function %s must return type %s"
 msgstr "la función de salida %s del tipo debe retornar %s"
 
-#: commands/typecmds.c:2034
+#: commands/typecmds.c:2044
 #, c-format
 msgid "type output function %s should not be volatile"
 msgstr "la función de salida %s no debe ser volatile"
 
-#: commands/typecmds.c:2063
+#: commands/typecmds.c:2073
 #, c-format
 msgid "type receive function %s has multiple matches"
 msgstr "la función de recepción %s del tipo tiene múltiples coincidencias"
 
-#: commands/typecmds.c:2081
+#: commands/typecmds.c:2091
 #, c-format
 msgid "type receive function %s must return type %s"
 msgstr "la función de recepción %s del tipo debe retornar %s"
 
-#: commands/typecmds.c:2088
+#: commands/typecmds.c:2098
 #, c-format
 msgid "type receive function %s should not be volatile"
 msgstr "la función «receive» %s del tipo no debe ser volatile"
 
-#: commands/typecmds.c:2116
+#: commands/typecmds.c:2126
 #, c-format
 msgid "type send function %s must return type %s"
 msgstr "la función «send» %s del tipo debe retornar %s"
 
-#: commands/typecmds.c:2123
+#: commands/typecmds.c:2133
 #, c-format
 msgid "type send function %s should not be volatile"
 msgstr "la función «send» %s no debe ser volatile"
 
-#: commands/typecmds.c:2150
+#: commands/typecmds.c:2160
 #, c-format
 msgid "typmod_in function %s must return type %s"
 msgstr "la función typmod_in %s debe retornar tipo %s"
 
-#: commands/typecmds.c:2157
+#: commands/typecmds.c:2167
 #, c-format
 msgid "type modifier input function %s should not be volatile"
 msgstr "la función de modificadores de tipo %s no debe ser volatile"
 
-#: commands/typecmds.c:2184
+#: commands/typecmds.c:2194
 #, c-format
 msgid "typmod_out function %s must return type %s"
 msgstr "la función typmod_out %s debe retornar tipo %s"
 
-#: commands/typecmds.c:2191
+#: commands/typecmds.c:2201
 #, c-format
 msgid "type modifier output function %s should not be volatile"
 msgstr "la función de salida de modificadores de tipo %s no debe ser volatile"
 
-#: commands/typecmds.c:2218
+#: commands/typecmds.c:2228
 #, c-format
 msgid "type analyze function %s must return type %s"
 msgstr "la función de análisis %s del tipo debe retornar %s"
 
-#: commands/typecmds.c:2247
+#: commands/typecmds.c:2257
 #, c-format
 msgid "type subscripting function %s must return type %s"
 msgstr "la función de subindexación %s del tipo debe retornar %s"
 
-#: commands/typecmds.c:2257
+#: commands/typecmds.c:2267
 #, c-format
 msgid "user-defined types cannot use subscripting function %s"
 msgstr "los tipos definidos por el usuario no pueden usar la función de subindexación %s"
 
-#: commands/typecmds.c:2303
+#: commands/typecmds.c:2313
 #, c-format
 msgid "You must specify an operator class for the range type or define a default operator class for the subtype."
 msgstr "Debe especificar una clase de operadores para el tipo de rango, o definir una clase de operadores por omisión para el subtipo."
 
-#: commands/typecmds.c:2334
+#: commands/typecmds.c:2344
 #, c-format
 msgid "range canonical function %s must return range type"
 msgstr "la función canónica %s del rango debe retornar tipo de rango"
 
-#: commands/typecmds.c:2340
+#: commands/typecmds.c:2350
 #, c-format
 msgid "range canonical function %s must be immutable"
 msgstr "la función canónica %s del rango debe ser inmutable"
 
-#: commands/typecmds.c:2376
+#: commands/typecmds.c:2386
 #, c-format
 msgid "range subtype diff function %s must return type %s"
 msgstr "la función «diff» de subtipo, %s, debe retornar tipo %s"
 
-#: commands/typecmds.c:2383
+#: commands/typecmds.c:2393
 #, c-format
 msgid "range subtype diff function %s must be immutable"
 msgstr "la función «diff» de subtipo, %s, debe ser inmutable"
 
-#: commands/typecmds.c:2410
+#: commands/typecmds.c:2420
 #, c-format
 msgid "pg_type array OID value not set when in binary upgrade mode"
 msgstr "el valor de OID de pg_type no se definió en modo de actualización binaria"
 
-#: commands/typecmds.c:2443
+#: commands/typecmds.c:2453
 #, c-format
 msgid "pg_type multirange OID value not set when in binary upgrade mode"
 msgstr "el valor de OID de multirango de pg_type no se definió en modo de actualización binaria"
 
-#: commands/typecmds.c:2476
+#: commands/typecmds.c:2486
 #, c-format
 msgid "pg_type multirange array OID value not set when in binary upgrade mode"
-msgstr "el valor de OID de arreglo de multirango de pg_type no se definió en modo de actualización binaria"
+msgstr "el valor de OID de array de multirango de pg_type no se definió en modo de actualización binaria"
 
-#: commands/typecmds.c:2772
-#, c-format
-msgid "column \"%s\" of table \"%s\" contains null values"
-msgstr "la columna «%s» de la tabla «%s» contiene valores null"
-
-#: commands/typecmds.c:2885 commands/typecmds.c:3086
+#: commands/typecmds.c:2868 commands/typecmds.c:3093
 #, c-format
 msgid "constraint \"%s\" of domain \"%s\" does not exist"
 msgstr "no existe la restricción «%s» en el dominio «%s»"
 
-#: commands/typecmds.c:2889
+#: commands/typecmds.c:2872
 #, c-format
 msgid "constraint \"%s\" of domain \"%s\" does not exist, skipping"
 msgstr "no existe la restricción «%s» en el dominio «%s», omitiendo"
 
-#: commands/typecmds.c:3093
+#: commands/typecmds.c:3100
 #, c-format
 msgid "constraint \"%s\" of domain \"%s\" is not a check constraint"
 msgstr "la restricción «%s» en el dominio «%s» no es una restricción «check»"
 
-#: commands/typecmds.c:3194
+#: commands/typecmds.c:3180
+#, c-format
+msgid "column \"%s\" of table \"%s\" contains null values"
+msgstr "la columna «%s» de la tabla «%s» contiene valores null"
+
+#: commands/typecmds.c:3269
 #, c-format
 msgid "column \"%s\" of table \"%s\" contains values that violate the new constraint"
 msgstr "la columna «%s» de la relación «%s» contiene valores que violan la nueva restricción"
 
-#: commands/typecmds.c:3423 commands/typecmds.c:3622 commands/typecmds.c:3703
-#: commands/typecmds.c:3889
+#: commands/typecmds.c:3498 commands/typecmds.c:3772 commands/typecmds.c:3857
+#: commands/typecmds.c:4073
 #, c-format
 msgid "%s is not a domain"
 msgstr "%s no es un dominio"
 
-#: commands/typecmds.c:3455
+#: commands/typecmds.c:3532 commands/typecmds.c:3686
 #, c-format
 msgid "constraint \"%s\" for domain \"%s\" already exists"
 msgstr "el dominio «%2$s» ya contiene una restricción llamada «%1$s»"
 
-#: commands/typecmds.c:3506
+#: commands/typecmds.c:3583
 #, c-format
 msgid "cannot use table references in domain check constraint"
 msgstr "no se pueden usar referencias a tablas en restricción «check» para un dominio"
 
-#: commands/typecmds.c:3634 commands/typecmds.c:3715 commands/typecmds.c:4006
+#: commands/typecmds.c:3784 commands/typecmds.c:3869 commands/typecmds.c:4223
 #, c-format
 msgid "%s is a table's row type"
 msgstr "%s es el tipo de registro de una tabla"
 
-#: commands/typecmds.c:3636 commands/typecmds.c:3717 commands/typecmds.c:4008
-#, c-format
-msgid "Use ALTER TABLE instead."
-msgstr "Considere usar ALTER TABLE."
-
-#: commands/typecmds.c:3642 commands/typecmds.c:3723 commands/typecmds.c:3921
+#: commands/typecmds.c:3794 commands/typecmds.c:3879 commands/typecmds.c:4121
 #, c-format
 msgid "cannot alter array type %s"
-msgstr "no se puede alterar el tipo de array «%s»"
+msgstr "no se puede alterar el tipo de array %s"
 
-#: commands/typecmds.c:3644 commands/typecmds.c:3725 commands/typecmds.c:3923
+#: commands/typecmds.c:3796 commands/typecmds.c:3881 commands/typecmds.c:4123
 #, c-format
 msgid "You can alter type %s, which will alter the array type as well."
 msgstr "Puede alterar el tipo %s, lo cual alterará el tipo de array también."
 
-#: commands/typecmds.c:3991
+#: commands/typecmds.c:3892
+#, c-format
+msgid "cannot alter multirange type %s"
+msgstr "no se puede alterar el tipo multirango %s"
+
+#: commands/typecmds.c:3895
+#, c-format
+msgid "You can alter type %s, which will alter the multirange type as well."
+msgstr "Puede alterar el tipo %s, lo cual alterará el tipo de multirango también."
+
+#: commands/typecmds.c:4202
 #, c-format
 msgid "type \"%s\" already exists in schema \"%s\""
 msgstr "ya existe un tipo llamado «%s» en el esquema «%s»"
 
-#: commands/typecmds.c:4159
+#: commands/typecmds.c:4382
 #, c-format
 msgid "cannot change type's storage to PLAIN"
 msgstr "no se puede cambiar el almacenamiento del tipo a PLAIN"
 
-#: commands/typecmds.c:4252
+#: commands/typecmds.c:4475
 #, c-format
 msgid "type attribute \"%s\" cannot be changed"
 msgstr "el atributo de tipo «%s» no puede ser cambiado"
 
-#: commands/typecmds.c:4270
+#: commands/typecmds.c:4493
 #, c-format
 msgid "must be superuser to alter a type"
 msgstr "debe ser superusuario para alterar un tipo"
 
-#: commands/typecmds.c:4291 commands/typecmds.c:4300
+#: commands/typecmds.c:4514 commands/typecmds.c:4523
 #, c-format
 msgid "%s is not a base type"
 msgstr "«%s» no es un tipo base"
 
-#: commands/user.c:201
+#: commands/user.c:200
 #, c-format
 msgid "SYSID can no longer be specified"
 msgstr "SYSID ya no puede ser especificado"
 
-#: commands/user.c:319 commands/user.c:325 commands/user.c:331
-#: commands/user.c:337 commands/user.c:343
+#: commands/user.c:318 commands/user.c:324 commands/user.c:330
+#: commands/user.c:336 commands/user.c:342
 #, c-format
 msgid "permission denied to create role"
 msgstr "se ha denegado el permiso para crear el rol"
 
-#: commands/user.c:320
+#: commands/user.c:319
 #, c-format
 msgid "Only roles with the %s attribute may create roles."
-msgstr ""
+msgstr "Sólo los roles con el atributo %s pueden crear roles."
 
-#: commands/user.c:326 commands/user.c:332 commands/user.c:338
-#: commands/user.c:344
+#: commands/user.c:325 commands/user.c:331 commands/user.c:337
+#: commands/user.c:343
 #, c-format
-msgid "Only roles with the %s attribute may create roles with %s."
-msgstr ""
+msgid "Only roles with the %s attribute may create roles with the %s attribute."
+msgstr "Sólo los roles con el atributo %s pueden crear roles con el atributo %s."
 
-#: commands/user.c:355 commands/user.c:1393 commands/user.c:1400
-#: utils/adt/acl.c:5409 utils/adt/acl.c:5415 gram.y:16727 gram.y:16773
+#: commands/user.c:354 commands/user.c:1386 commands/user.c:1393
+#: utils/adt/acl.c:5574 utils/adt/acl.c:5580 gram.y:17310 gram.y:17356
 #, c-format
 msgid "role name \"%s\" is reserved"
 msgstr "el nombre de rol «%s» está reservado"
 
-#: commands/user.c:357 commands/user.c:1395 commands/user.c:1402
+#: commands/user.c:356 commands/user.c:1388 commands/user.c:1395
 #, c-format
 msgid "Role names starting with \"pg_\" are reserved."
 msgstr "Los nombres de rol que empiezan con «pg_» están reservados."
 
-#: commands/user.c:378 commands/user.c:1417
+#: commands/user.c:377 commands/user.c:1410
 #, c-format
 msgid "role \"%s\" already exists"
 msgstr "el rol «%s» ya existe"
 
-#: commands/user.c:440 commands/user.c:925
+#: commands/user.c:439 commands/user.c:924
 #, c-format
 msgid "empty string is not a valid password, clearing password"
 msgstr "la cadena vacía no es una contraseña válida, limpiando la contraseña"
 
-#: commands/user.c:469
+#: commands/user.c:468
 #, c-format
 msgid "pg_authid OID value not set when in binary upgrade mode"
 msgstr "el valor de OID de pg_authid no se definió en modo de actualización binaria"
 
-#: commands/user.c:653 commands/user.c:1011
-#, fuzzy
-#| msgid "cannot alter inherited column \"%s\""
+#: commands/user.c:652 commands/user.c:1010
 msgid "Cannot alter reserved roles."
-msgstr "no se puede alterar la columna heredada «%s»"
+msgstr "No se pueden alterar roles reservados."
 
-#: commands/user.c:760 commands/user.c:766 commands/user.c:782
-#: commands/user.c:790 commands/user.c:804 commands/user.c:810
-#: commands/user.c:816 commands/user.c:825 commands/user.c:870
-#: commands/user.c:1033 commands/user.c:1044
-#, fuzzy, c-format
-#| msgid "permission denied to create role"
+#: commands/user.c:759 commands/user.c:765 commands/user.c:781
+#: commands/user.c:789 commands/user.c:803 commands/user.c:809
+#: commands/user.c:815 commands/user.c:824 commands/user.c:869
+#: commands/user.c:1032 commands/user.c:1043
+#, c-format
 msgid "permission denied to alter role"
-msgstr "se ha denegado el permiso para crear el rol"
+msgstr "se ha denegado el permiso para alterar el rol"
 
-#: commands/user.c:761 commands/user.c:1034
+#: commands/user.c:760 commands/user.c:1033
 #, c-format
-msgid "Only roles with the %s attribute may alter roles with %s."
-msgstr ""
+msgid "Only roles with the %s attribute may alter roles with the %s attribute."
+msgstr "Sólo los roles con el atributo %s pueden alterar roles con el atributo %s."
 
-#: commands/user.c:767 commands/user.c:805 commands/user.c:811
-#: commands/user.c:817
+#: commands/user.c:766 commands/user.c:804 commands/user.c:810
+#: commands/user.c:816
 #, c-format
 msgid "Only roles with the %s attribute may change the %s attribute."
-msgstr ""
+msgstr "Sólo roles con el atributo %s pueden cambiar el atributo %s."
 
-#: commands/user.c:783 commands/user.c:1045
+#: commands/user.c:782 commands/user.c:1044
 #, c-format
 msgid "Only roles with the %s attribute and the %s option on role \"%s\" may alter this role."
-msgstr ""
+msgstr "Sólo los roles con el atributo %s y la opción %s en el rol «%s» pueden alterar este rol."
 
-#: commands/user.c:791
+#: commands/user.c:790
 #, c-format
 msgid "To change another role's password, the current user must have the %s attribute and the %s option on the role."
-msgstr ""
+msgstr "Para cambiar la password de otro rol, el usuario actual debe tener el atributo %s y la opción %s en el rol."
 
-#: commands/user.c:826
+#: commands/user.c:825
 #, c-format
-msgid "Only roles with the %s option on role \"%s\" may add members."
-msgstr ""
+#| msgid "Only roles with the %s option on role \"%s\" may add members."
+msgid "Only roles with the %s option on role \"%s\" may add or drop members."
+msgstr "Sólo los roles con la opción %s en el rol «%s» pueden agregar miembros."
 
-#: commands/user.c:871
+#: commands/user.c:870
 #, c-format
-msgid "The bootstrap user must have the %s attribute."
-msgstr ""
+msgid "The bootstrap superuser must have the %s attribute."
+msgstr "El superusuario de \"bootstrap\" debe tener el atributo %s."
 
-#: commands/user.c:1076
-#, fuzzy, c-format
-#| msgid "permission denied to create role"
+#: commands/user.c:1075
+#, c-format
 msgid "permission denied to alter setting"
-msgstr "se ha denegado el permiso para crear el rol"
+msgstr "se ha denegado el permiso para modificar la configuración"
 
-#: commands/user.c:1077
+#: commands/user.c:1076
 #, c-format
 msgid "Only roles with the %s attribute may alter settings globally."
-msgstr ""
+msgstr "Sólo los roles con el atributo %s pueden modificar parámetros de configuración globalmente."
 
-#: commands/user.c:1101 commands/user.c:1173 commands/user.c:1179
+#: commands/user.c:1100 commands/user.c:1171 commands/user.c:1177
 #, c-format
 msgid "permission denied to drop role"
 msgstr "se ha denegado el permiso para eliminar el rol"
 
-#: commands/user.c:1102
+#: commands/user.c:1101
 #, c-format
 msgid "Only roles with the %s attribute and the %s option on the target roles may drop roles."
-msgstr ""
+msgstr "Sólo los roles con el atributo %s y la opción %s en los roles de destino pueden borrar roles."
 
-#: commands/user.c:1127
+#: commands/user.c:1125
 #, c-format
 msgid "cannot use special role specifier in DROP ROLE"
 msgstr "no se puede usar un especificador especial de rol en DROP ROLE"
 
-#: commands/user.c:1137 commands/user.c:1364 commands/variable.c:836
-#: commands/variable.c:839 commands/variable.c:923 commands/variable.c:926
-#: utils/adt/acl.c:359 utils/adt/acl.c:379 utils/adt/acl.c:5264
-#: utils/adt/acl.c:5312 utils/adt/acl.c:5340 utils/adt/acl.c:5359
-#: utils/adt/regproc.c:1551 utils/init/miscinit.c:757
+#: commands/user.c:1135 commands/user.c:1357 commands/variable.c:851
+#: commands/variable.c:854 commands/variable.c:971 commands/variable.c:974
+#: utils/adt/acl.c:365 utils/adt/acl.c:385 utils/adt/acl.c:5429
+#: utils/adt/acl.c:5477 utils/adt/acl.c:5505 utils/adt/acl.c:5524
+#: utils/adt/regproc.c:1571 utils/init/miscinit.c:799
 #, c-format
 msgid "role \"%s\" does not exist"
 msgstr "no existe el rol «%s»"
 
-#: commands/user.c:1142
+#: commands/user.c:1140
 #, c-format
 msgid "role \"%s\" does not exist, skipping"
 msgstr "el rol «%s» no existe, omitiendo"
 
-#: commands/user.c:1155 commands/user.c:1159
+#: commands/user.c:1153 commands/user.c:1157
 #, c-format
 msgid "current user cannot be dropped"
 msgstr "el usuario activo no puede ser eliminado"
 
-#: commands/user.c:1163
+#: commands/user.c:1161
 #, c-format
 msgid "session user cannot be dropped"
 msgstr "no se puede eliminar un usuario de la sesión"
 
-#: commands/user.c:1174
+#: commands/user.c:1172
 #, c-format
-msgid "Only roles with the %s attribute may drop roles with %s."
-msgstr ""
+msgid "Only roles with the %s attribute may drop roles with the %s attribute."
+msgstr "Sólo los roles con el atributo %s pueden borrar roles con el atributo %s."
 
-#: commands/user.c:1180
+#: commands/user.c:1178
 #, c-format
 msgid "Only roles with the %s attribute and the %s option on role \"%s\" may drop this role."
-msgstr ""
+msgstr "Sólo los roles con el atributo %s y la opción %s en el rol «%s» pueden borrar este rol."
 
-#: commands/user.c:1306
+#: commands/user.c:1299
 #, c-format
 msgid "role \"%s\" cannot be dropped because some objects depend on it"
 msgstr "no se puede eliminar el rol «%s» porque otros objetos dependen de él"
 
-#: commands/user.c:1380
+#: commands/user.c:1373
 #, c-format
 msgid "session user cannot be renamed"
 msgstr "no se puede cambiar el nombre a un usuario de la sesión"
 
-#: commands/user.c:1384
+#: commands/user.c:1377
 #, c-format
 msgid "current user cannot be renamed"
 msgstr "no se puede cambiar el nombre al usuario activo"
 
-#: commands/user.c:1428 commands/user.c:1438
+#: commands/user.c:1421 commands/user.c:1431
 #, c-format
 msgid "permission denied to rename role"
 msgstr "se ha denegado el permiso para cambiar el nombre al rol"
 
-#: commands/user.c:1429
+#: commands/user.c:1422
 #, c-format
-msgid "Only roles with the %s attribute may rename roles with %s."
-msgstr ""
+msgid "Only roles with the %s attribute may rename roles with the %s attribute."
+msgstr "Sólo los roles con el atributo %s pueden cambiar nombre a roles con el atributo %s."
 
-#: commands/user.c:1439
+#: commands/user.c:1432
 #, c-format
 msgid "Only roles with the %s attribute and the %s option on role \"%s\" may rename this role."
-msgstr ""
+msgstr "Sólo los roles con el atributo %s y la opción %s en el rol «%s» pueden cambiar nombre a este rol."
 
-#: commands/user.c:1461
+#: commands/user.c:1454
 #, c-format
 msgid "MD5 password cleared because of role rename"
 msgstr "la contraseña MD5 fue borrada debido al cambio de nombre del rol"
 
-#: commands/user.c:1525 gram.y:1263
+#: commands/user.c:1518 gram.y:1294
 #, c-format
 msgid "unrecognized role option \"%s\""
 msgstr "opción de rol «%s» no reconocida"
 
-#: commands/user.c:1530
-#, fuzzy, c-format
-#| msgid "unrecognized value for option %s: %s"
+#: commands/user.c:1523
+#, c-format
 msgid "unrecognized value for role option \"%s\": \"%s\""
-msgstr "valor no reconocido para la opción %s: %s"
+msgstr "valor no reconocido para la opción de rol «%s»: «%s»"
 
-#: commands/user.c:1563
+#: commands/user.c:1556
 #, c-format
 msgid "column names cannot be included in GRANT/REVOKE ROLE"
 msgstr "los nombres de columna no pueden ser incluidos en GRANT/REVOKE ROLE"
 
-#: commands/user.c:1603
+#: commands/user.c:1596
 #, c-format
 msgid "permission denied to drop objects"
 msgstr "se ha denegado el permiso para eliminar objetos"
 
-#: commands/user.c:1604
+#: commands/user.c:1597
 #, c-format
 msgid "Only roles with privileges of role \"%s\" may drop objects owned by it."
-msgstr ""
+msgstr "Sólo los roles con privilegios del rol «%s» pueden borrar objetos de que es dueño."
 
-#: commands/user.c:1632 commands/user.c:1643
+#: commands/user.c:1625 commands/user.c:1636
 #, c-format
 msgid "permission denied to reassign objects"
 msgstr "se ha denegado el permiso para reasignar objetos"
 
-#: commands/user.c:1633
+#: commands/user.c:1626
 #, c-format
 msgid "Only roles with privileges of role \"%s\" may reassign objects owned by it."
-msgstr ""
+msgstr "Sólo los roles con privilegios del rol «%s» pueden reasignar objetos de que es dueño."
 
-#: commands/user.c:1644
+#: commands/user.c:1637
 #, c-format
 msgid "Only roles with privileges of role \"%s\" may reassign objects to it."
-msgstr ""
+msgstr "Sólo los roles con privilegios del rol «%s» pueden reasignar objetos a él."
 
-#: commands/user.c:1740
+#: commands/user.c:1733
 #, c-format
 msgid "role \"%s\" cannot be a member of any role"
 msgstr "el rol «%s» no puede ser miembro de ningún rol"
 
-#: commands/user.c:1753
+#: commands/user.c:1746
 #, c-format
 msgid "role \"%s\" is a member of role \"%s\""
 msgstr "el rol «%s» es un miembro del rol «%s»"
 
-#: commands/user.c:1793 commands/user.c:1819
-#, fuzzy, c-format
-#| msgid "grant options cannot be granted back to your own grantor"
+#: commands/user.c:1786 commands/user.c:1812
+#, c-format
 msgid "%s option cannot be granted back to your own grantor"
-msgstr "la opción de grant no puede ser otorgada de vuelta a quien la otorgó"
+msgstr "la opción %s no puede ser otorgada de vuelta a quien la otorgó"
 
-#: commands/user.c:1896
-#, fuzzy, c-format
-#| msgid "role \"%s\" is a member of role \"%s\""
+#: commands/user.c:1889
+#, c-format
 msgid "role \"%s\" has already been granted membership in role \"%s\" by role \"%s\""
-msgstr "el rol «%s» es un miembro del rol «%s»"
+msgstr "el rol «%s» ya recibió membresía en el rol «%s» por parte del rol «%s»"
 
-#: commands/user.c:2031
-#, fuzzy, c-format
-#| msgid "role \"%s\" cannot be a member of any role"
+#: commands/user.c:2024
+#, c-format
 msgid "role \"%s\" has not been granted membership in role \"%s\" by role \"%s\""
-msgstr "el rol «%s» no puede ser miembro de ningún rol"
+msgstr "al rol «%s» no se le ha otorgado membresía en el rol «%s» por parte del rol «%s»"
 
-#: commands/user.c:2131
+#: commands/user.c:2124
 #, c-format
 msgid "role \"%s\" cannot have explicit members"
 msgstr "el rol «%s» no puede tener miembros explícitos"
 
-#: commands/user.c:2142 commands/user.c:2165
-#, fuzzy, c-format
-#| msgid "permission denied to set role \"%s\""
+#: commands/user.c:2135 commands/user.c:2158
+#, c-format
 msgid "permission denied to grant role \"%s\""
-msgstr "se ha denegado el permiso para definir el rol «%s»"
+msgstr "se ha denegado el permiso para otorgar el rol «%s»"
 
-#: commands/user.c:2144
+#: commands/user.c:2137
 #, c-format
-msgid "Only roles with the %s attribute may grant roles with %s."
-msgstr ""
+msgid "Only roles with the %s attribute may grant roles with the %s attribute."
+msgstr "Sólo los roles con el atributo %s pueden otorgar roles con el atributo %s."
 
-#: commands/user.c:2149 commands/user.c:2172
-#, fuzzy, c-format
-#| msgid "permission denied to set role \"%s\""
+#: commands/user.c:2142 commands/user.c:2165
+#, c-format
 msgid "permission denied to revoke role \"%s\""
-msgstr "se ha denegado el permiso para definir el rol «%s»"
+msgstr "se ha denegado el permiso para revocar el rol «%s»"
 
-#: commands/user.c:2151
+#: commands/user.c:2144
 #, c-format
-msgid "Only roles with the %s attribute may revoke roles with %s."
-msgstr ""
+msgid "Only roles with the %s attribute may revoke roles with the %s attribute."
+msgstr "Sólo los roles con el atributo %s pueden revocar roles con el atributo %s."
 
-#: commands/user.c:2167
+#: commands/user.c:2160
 #, c-format
 msgid "Only roles with the %s option on role \"%s\" may grant this role."
-msgstr ""
+msgstr "Sólo los roles con la opción %s en el rol «%s» pueden otorgar este rol."
 
-#: commands/user.c:2174
+#: commands/user.c:2167
 #, c-format
 msgid "Only roles with the %s option on role \"%s\" may revoke this role."
-msgstr ""
+msgstr "Sólo los roles con la opción %s en el rol «%s» pueden revocar este rol."
 
-#: commands/user.c:2254 commands/user.c:2263
-#, fuzzy, c-format
-#| msgid "permission denied to set role \"%s\""
+#: commands/user.c:2247 commands/user.c:2256
+#, c-format
 msgid "permission denied to grant privileges as role \"%s\""
-msgstr "se ha denegado el permiso para definir el rol «%s»"
+msgstr "se ha denegado el permiso para otorgar privilegio de rol «%s»"
 
-#: commands/user.c:2256
+#: commands/user.c:2249
 #, c-format
 msgid "Only roles with privileges of role \"%s\" may grant privileges as this role."
-msgstr ""
+msgstr "Sólo los roles con privilegios del rol «%s» pueden otorgar privilegios como este rol."
 
-#: commands/user.c:2265
-#, fuzzy, c-format
-#| msgid "cannot use the \"%s\" option with the \"%s\" option"
+#: commands/user.c:2258
+#, c-format
 msgid "The grantor must have the %s option on role \"%s\"."
-msgstr "no se puede usar la opción «%s» junto con la opción «%s»"
+msgstr "El otorgador debe tener la opción %s en el rol «%s»."
 
-#: commands/user.c:2273
-#, fuzzy, c-format
-#| msgid "permission denied to set role \"%s\""
+#: commands/user.c:2266
+#, c-format
 msgid "permission denied to revoke privileges granted by role \"%s\""
-msgstr "se ha denegado el permiso para definir el rol «%s»"
+msgstr "se ha denegado el permiso a revocar permisos otorgados por el rol «%s»"
 
-#: commands/user.c:2275
+#: commands/user.c:2268
 #, c-format
 msgid "Only roles with privileges of role \"%s\" may revoke privileges granted by this role."
-msgstr ""
+msgstr "Sólo los roles con privilegios del rol «%s» pueden revocar privilegios otorgados por este rol."
 
-#: commands/user.c:2498 utils/adt/acl.c:1312
+#: commands/user.c:2491 utils/adt/acl.c:1324
 #, c-format
 msgid "dependent privileges exist"
 msgstr "existen privilegios dependientes"
 
-#: commands/user.c:2499 utils/adt/acl.c:1313
+#: commands/user.c:2492 utils/adt/acl.c:1325
 #, c-format
 msgid "Use CASCADE to revoke them too."
 msgstr "Use CASCADE para revocarlos también."
 
-#: commands/vacuum.c:138
+#: commands/vacuum.c:134
 #, c-format
 msgid "\"vacuum_buffer_usage_limit\" must be 0 or between %d kB and %d kB"
-msgstr ""
+msgstr "«vacuum_buffer_usage_limit» debe ser 0 o estar entre %d kB y %d kB"
 
-#: commands/vacuum.c:210
-#, fuzzy, c-format
-#| msgid "NUMERIC precision %d must be between 1 and %d"
+#: commands/vacuum.c:209
+#, c-format
 msgid "BUFFER_USAGE_LIMIT option must be 0 or between %d kB and %d kB"
-msgstr "la precisión %d de NUMERIC debe estar entre 1 y %d"
+msgstr "la opción BUFFER_USAGE_LIMIT debe ser 0 o estar entre %d kB y %d kB"
 
-#: commands/vacuum.c:220
+#: commands/vacuum.c:219
 #, c-format
 msgid "unrecognized ANALYZE option \"%s\""
 msgstr "opción de ANALYZE «%s» no reconocida"
 
-#: commands/vacuum.c:260
+#: commands/vacuum.c:259
 #, c-format
 msgid "parallel option requires a value between 0 and %d"
 msgstr "la opción parallel requiere un valor entre 0 y %d"
 
-#: commands/vacuum.c:272
+#: commands/vacuum.c:271
 #, c-format
 msgid "parallel workers for vacuum must be between 0 and %d"
 msgstr "el número de procesos paralelos para vacuum debe estar entre 0 y %d"
 
-#: commands/vacuum.c:293
+#: commands/vacuum.c:292
 #, c-format
 msgid "unrecognized VACUUM option \"%s\""
 msgstr "opción de VACUUM «%s» no reconocida"
 
-#: commands/vacuum.c:319
+#: commands/vacuum.c:318
 #, c-format
 msgid "VACUUM FULL cannot be performed in parallel"
 msgstr "VACUUM FULL no puede ser ejecutado en paralelo"
 
-#: commands/vacuum.c:330
+#: commands/vacuum.c:329
 #, c-format
 msgid "BUFFER_USAGE_LIMIT cannot be specified for VACUUM FULL"
-msgstr ""
+msgstr "BUFFER_USAGE_LIMIT no puede ser especificado para VACUUM FULL"
 
-#: commands/vacuum.c:344
+#: commands/vacuum.c:343
 #, c-format
 msgid "ANALYZE option must be specified when a column list is provided"
 msgstr "la opción ANALYZE debe especificarse cuando se provee una lista de columnas"
 
-#: commands/vacuum.c:356
+#: commands/vacuum.c:355
 #, c-format
 msgid "VACUUM option DISABLE_PAGE_SKIPPING cannot be used with FULL"
 msgstr "la opción DISABLE_PAGE_SKIPPING de VACUUM no puede usarse con FULL"
 
-#: commands/vacuum.c:363
+#: commands/vacuum.c:362
 #, c-format
 msgid "PROCESS_TOAST required with VACUUM FULL"
 msgstr "se requiere especificar PROCESS_TOAST al hacer VACUUM FULL"
 
-#: commands/vacuum.c:372
-#, fuzzy, c-format
-#| msgid "OLD TABLE cannot be specified multiple times"
+#: commands/vacuum.c:371
+#, c-format
 msgid "ONLY_DATABASE_STATS cannot be specified with a list of tables"
-msgstr "OLD TABLE no se puede especificar varias veces"
+msgstr "ONLY_DATABASE_STATS no se puede especificar con una lista de tablas"
 
-#: commands/vacuum.c:381
-#, fuzzy, c-format
-#| msgid "option \"%s\" cannot be specified with other options"
+#: commands/vacuum.c:380
+#, c-format
 msgid "ONLY_DATABASE_STATS cannot be specified with other VACUUM options"
-msgstr "la opción «%s» no puede ser especificada con otras opciones"
+msgstr "ONLY_DATABASE_STATS no puede ser especificada con otras opciones de VACUUM"
 
-#: commands/vacuum.c:516
+#: commands/vacuum.c:515
 #, c-format
 msgid "%s cannot be executed from VACUUM or ANALYZE"
 msgstr "%s no puede ejecutarse desde VACUUM o ANALYZE"
 
-#: commands/vacuum.c:736
-#, fuzzy, c-format
-#| msgid "permission denied for column %s"
+#: commands/vacuum.c:730
+#, c-format
 msgid "permission denied to vacuum \"%s\", skipping it"
-msgstr "permiso denegado a la columna %s"
+msgstr "permiso denegado a hacer vacuum a «%s», ignorando"
 
-#: commands/vacuum.c:749
-#, fuzzy, c-format
-#| msgid "permission denied to set role \"%s\""
+#: commands/vacuum.c:743
+#, c-format
 msgid "permission denied to analyze \"%s\", skipping it"
-msgstr "se ha denegado el permiso para definir el rol «%s»"
+msgstr "se ha denegado el permiso para hacer analyze a «%s», ignorando"
 
-#: commands/vacuum.c:827 commands/vacuum.c:924
+#: commands/vacuum.c:821 commands/vacuum.c:918
 #, c-format
 msgid "skipping vacuum of \"%s\" --- lock not available"
-msgstr "omitiendo el vacuum de «%s»: el candado no está disponible"
+msgstr "omitiendo el vacuum de «%s»: el “lock” no está disponible"
 
-#: commands/vacuum.c:832
+#: commands/vacuum.c:826
 #, c-format
 msgid "skipping vacuum of \"%s\" --- relation no longer exists"
 msgstr "omitiendo el vacuum de «%s» --- la relación ya no existe"
 
-#: commands/vacuum.c:848 commands/vacuum.c:929
+#: commands/vacuum.c:842 commands/vacuum.c:923
 #, c-format
 msgid "skipping analyze of \"%s\" --- lock not available"
-msgstr "omitiendo analyze de «%s»: el candado no está disponible"
+msgstr "omitiendo analyze de «%s»: el “lock” no está disponible"
 
-#: commands/vacuum.c:853
+#: commands/vacuum.c:847
 #, c-format
 msgid "skipping analyze of \"%s\" --- relation no longer exists"
 msgstr "omitiendo analyze de «%s» --- la relación ya no existe"
 
-#: commands/vacuum.c:1164
+#: commands/vacuum.c:1139
 #, c-format
 msgid "cutoff for removing and freezing tuples is far in the past"
-msgstr ""
+msgstr "el punto de corte para eliminar y congelar tuplas es demasiado antiguo"
 
-#: commands/vacuum.c:1165 commands/vacuum.c:1170
+#: commands/vacuum.c:1140 commands/vacuum.c:1145
 #, c-format
 msgid ""
 "Close open transactions soon to avoid wraparound problems.\n"
 "You might also need to commit or roll back old prepared transactions, or drop stale replication slots."
 msgstr ""
-"Cierre transaciones abiertas pronto para impedir problemas por reciclaje de contadores.\n"
+"Cierre transaciones abiertas pronto para impedir problemas por “wraparound”.\n"
 "Puede que además necesite comprometer o abortar transacciones preparadas antiguas, o eliminar slots de replicación añejos."
 
-#: commands/vacuum.c:1169
+#: commands/vacuum.c:1144
 #, c-format
 msgid "cutoff for freezing multixacts is far in the past"
-msgstr ""
+msgstr "el punto de corte para congelar multixacts es demasiado antiguo"
 
-#: commands/vacuum.c:1897
+#: commands/vacuum.c:1900
 #, c-format
 msgid "some databases have not been vacuumed in over 2 billion transactions"
 msgstr "algunas bases de datos no han tenido VACUUM en más de 2 mil millones de transacciones"
 
-#: commands/vacuum.c:1898
+#: commands/vacuum.c:1901
 #, c-format
 msgid "You might have already suffered transaction-wraparound data loss."
-msgstr "Puede haber sufrido ya problemas de pérdida de datos por reciclaje del contador de transacciones."
+msgstr "Puede haber sufrido ya problemas de pérdida de datos por “wraparound” del contador de transacciones."
 
-#: commands/vacuum.c:2063
+#: commands/vacuum.c:2080
 #, c-format
 msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables"
 msgstr "omitiendo «%s»: no se puede aplicar VACUUM a objetos que no son tablas o a tablas especiales de sistema"
 
-#: commands/vacuum.c:2488
+#: commands/vacuum.c:2512
 #, c-format
-msgid "scanned index \"%s\" to remove %d row versions"
-msgstr "se recorrió el índice «%s» para eliminar %d versiones de filas"
+msgid "scanned index \"%s\" to remove %lld row versions"
+msgstr "se recorrió el índice «%s» para eliminar %lld versiones de filas"
 
-#: commands/vacuum.c:2507
+#: commands/vacuum.c:2531
 #, c-format
 msgid "index \"%s\" now contains %.0f row versions in %u pages"
 msgstr "el índice «%s» ahora contiene %.0f versiones de filas en %u páginas"
 
-#: commands/vacuum.c:2511
+#: commands/vacuum.c:2535
 #, c-format
 msgid ""
 "%.0f index row versions were removed.\n"
 "%u index pages were newly deleted.\n"
 "%u index pages are currently deleted, of which %u are currently reusable."
 msgstr ""
+"%.0f versiones de filas de índice fueron eliminadas.\n"
+"%u páginas de índice fueron recién eliminadas.\n"
+"%u páginas de índice están actualmente eliminadas, de las cuales %u son actualmente reusables."
 
-#: commands/vacuumparallel.c:677
+#: commands/vacuumparallel.c:707
 #, c-format
 msgid "launched %d parallel vacuum worker for index vacuuming (planned: %d)"
 msgid_plural "launched %d parallel vacuum workers for index vacuuming (planned: %d)"
 msgstr[0] "se lanzó %d proceso asistente para «vacuum» de índices (planeados: %d)"
 msgstr[1] "se lanzaron %d procesos asistentes para «vacuum» índices (planeados: %d)"
 
-#: commands/vacuumparallel.c:683
+#: commands/vacuumparallel.c:713
 #, c-format
 msgid "launched %d parallel vacuum worker for index cleanup (planned: %d)"
 msgid_plural "launched %d parallel vacuum workers for index cleanup (planned: %d)"
@@ -13033,7 +13350,7 @@ msgstr "SET TRANSACTION ISOLATION LEVEL debe ser llamado antes de cualquier cons
 msgid "SET TRANSACTION ISOLATION LEVEL must not be called in a subtransaction"
 msgstr "SET TRANSACTION ISOLATION LEVEL no debe ser llamado en una subtransacción"
 
-#: commands/variable.c:606 storage/lmgr/predicate.c:1629
+#: commands/variable.c:606 storage/lmgr/predicate.c:1685
 #, c-format
 msgid "cannot use serializable mode in a hot standby"
 msgstr "no se puede utilizar el modo serializable en un hot standby"
@@ -13065,91 +13382,100 @@ msgstr "No se puede cambiar «client_encoding» ahora."
 
 #: commands/variable.c:781
 #, c-format
-msgid "cannot change client_encoding during a parallel operation"
+msgid "cannot change \"client_encoding\" during a parallel operation"
 msgstr "no se puede cambiar «client_encoding» durante una operación paralela"
 
-#: commands/variable.c:948
+#: commands/variable.c:876
+#, c-format
+msgid "permission will be denied to set session authorization \"%s\""
+msgstr "se denegará el permiso para definir autorización de sesión «%s»"
+
+#: commands/variable.c:881
+#, c-format
+msgid "permission denied to set session authorization \"%s\""
+msgstr "se ha denegado el permiso para definir autorización de sesión «%s»"
+
+#: commands/variable.c:991
 #, c-format
 msgid "permission will be denied to set role \"%s\""
 msgstr "se denegará el permiso para definir el rol «%s»"
 
-#: commands/variable.c:953
+#: commands/variable.c:996
 #, c-format
 msgid "permission denied to set role \"%s\""
 msgstr "se ha denegado el permiso para definir el rol «%s»"
 
-#: commands/variable.c:1153
+#: commands/variable.c:1200
 #, c-format
 msgid "Bonjour is not supported by this build"
 msgstr "Bonjour no está soportado en este servidor"
 
-#: commands/variable.c:1181
+#: commands/variable.c:1228
 #, c-format
-msgid "effective_io_concurrency must be set to 0 on platforms that lack posix_fadvise()."
-msgstr "effective_io_concurrency debe ser 0 en plataformas que no tienen posix_fadvise()."
+msgid "\"effective_io_concurrency\" must be set to 0 on platforms that lack posix_fadvise()."
+msgstr "«effective_io_concurrency» debe ser 0 en plataformas que no tienen posix_fadvise()."
 
-#: commands/variable.c:1194
+#: commands/variable.c:1241
 #, c-format
-msgid "maintenance_io_concurrency must be set to 0 on platforms that lack posix_fadvise()."
-msgstr "maintenance_io_concurrency debe ser 0 en plataformas que no tienen posix_fadvise()."
+msgid "\"maintenance_io_concurrency\" must be set to 0 on platforms that lack posix_fadvise()."
+msgstr "«maintenance_io_concurrency» debe ser 0 en plataformas que no tienen posix_fadvise()."
 
-#: commands/variable.c:1207
+#: commands/variable.c:1254
 #, c-format
 msgid "SSL is not supported by this build"
 msgstr "SSL no está soportado en este servidor"
 
-#: commands/view.c:84
+#: commands/view.c:79
 #, c-format
 msgid "could not determine which collation to use for view column \"%s\""
 msgstr "no se pudo determinar el ordenamiento (collation) a usar para la columna «%s» de vista"
 
-#: commands/view.c:279 commands/view.c:290
+#: commands/view.c:274 commands/view.c:285
 #, c-format
 msgid "cannot drop columns from view"
 msgstr "no se pueden eliminar columnas de una vista"
 
-#: commands/view.c:295
+#: commands/view.c:290
 #, c-format
 msgid "cannot change name of view column \"%s\" to \"%s\""
 msgstr "no se puede cambiar el nombre de la columna «%s» de la vista a «%s»"
 
-#: commands/view.c:298
+#: commands/view.c:293
 #, c-format
 msgid "Use ALTER VIEW ... RENAME COLUMN ... to change name of view column instead."
 msgstr "Use ALTER VIEW ... RENAME COLUMN ... para cambiar el nombre de una columna de una vista."
 
-#: commands/view.c:309
+#: commands/view.c:304
 #, c-format
 msgid "cannot change data type of view column \"%s\" from %s to %s"
 msgstr "no se puede cambiar el tipo de dato de la columna «%s» de la vista de %s a %s"
 
-#: commands/view.c:323
-#, fuzzy, c-format
-#| msgid "cannot change data type of view column \"%s\" from %s to %s"
+#: commands/view.c:318
+#, c-format
 msgid "cannot change collation of view column \"%s\" from \"%s\" to \"%s\""
-msgstr "no se puede cambiar el tipo de dato de la columna «%s» de la vista de %s a %s"
+msgstr "no se puede cambiar el ordenamiento de la columna «%s» de la vista de «%s» a «%s»"
 
-#: commands/view.c:392
+#: commands/view.c:387
 #, c-format
 msgid "views must not contain SELECT INTO"
 msgstr "una vista no puede tener SELECT INTO"
 
-#: commands/view.c:404
+#: commands/view.c:399
 #, c-format
 msgid "views must not contain data-modifying statements in WITH"
 msgstr "las vistas no deben contener sentencias que modifiquen datos en WITH"
 
-#: commands/view.c:474
+#: commands/view.c:469
 #, c-format
 msgid "CREATE VIEW specifies more column names than columns"
 msgstr "CREATE VIEW especifica más nombres de columna que columnas"
 
-#: commands/view.c:482
+#: commands/view.c:477
 #, c-format
 msgid "views cannot be unlogged because they do not have storage"
 msgstr "las vistas no pueden ser «unlogged» porque no tienen almacenamiento"
 
-#: commands/view.c:496
+#: commands/view.c:491
 #, c-format
 msgid "view \"%s\" will be a temporary view"
 msgstr "la vista «%s» será una vista temporal"
@@ -13185,515 +13511,505 @@ msgstr "el cursor «%s» no está posicionado en una fila"
 msgid "cursor \"%s\" is not a simply updatable scan of table \"%s\""
 msgstr "el cursor «%s» no es un recorrido simplemente actualizable de la tabla «%s»"
 
-#: executor/execCurrent.c:280 executor/execExprInterp.c:2497
+#: executor/execCurrent.c:280 executor/execExprInterp.c:2555
 #, c-format
 msgid "type of parameter %d (%s) does not match that when preparing the plan (%s)"
 msgstr "el tipo del parámetro %d (%s) no coincide aquel con que fue preparado el plan (%s)"
 
-#: executor/execCurrent.c:292 executor/execExprInterp.c:2509
+#: executor/execCurrent.c:292 executor/execExprInterp.c:2567
 #, c-format
 msgid "no value found for parameter %d"
 msgstr "no se encontró un valor para parámetro %d"
 
-#: executor/execExpr.c:637 executor/execExpr.c:644 executor/execExpr.c:650
-#: executor/execExprInterp.c:4229 executor/execExprInterp.c:4246
-#: executor/execExprInterp.c:4345 executor/nodeModifyTable.c:197
-#: executor/nodeModifyTable.c:208 executor/nodeModifyTable.c:225
-#: executor/nodeModifyTable.c:233
+#: executor/execExpr.c:642 executor/execExpr.c:649 executor/execExpr.c:655
+#: executor/execExprInterp.c:4852 executor/execExprInterp.c:4869
+#: executor/execExprInterp.c:4968 executor/nodeModifyTable.c:203
+#: executor/nodeModifyTable.c:214 executor/nodeModifyTable.c:231
+#: executor/nodeModifyTable.c:239
 #, c-format
 msgid "table row type and query-specified row type do not match"
 msgstr "el tipo de registro de la tabla no coincide con el tipo de registro de la consulta"
 
-#: executor/execExpr.c:638 executor/nodeModifyTable.c:198
+#: executor/execExpr.c:643 executor/nodeModifyTable.c:204
 #, c-format
 msgid "Query has too many columns."
 msgstr "La consulta tiene demasiadas columnas."
 
-#: executor/execExpr.c:645 executor/nodeModifyTable.c:226
+#: executor/execExpr.c:650 executor/nodeModifyTable.c:232
 #, c-format
 msgid "Query provides a value for a dropped column at ordinal position %d."
 msgstr "La consulta entrega un valor para una columna eliminada en la posición %d."
 
-#: executor/execExpr.c:651 executor/execExprInterp.c:4247
-#: executor/nodeModifyTable.c:209
+#: executor/execExpr.c:656 executor/execExprInterp.c:4870
+#: executor/nodeModifyTable.c:215
 #, c-format
 msgid "Table has type %s at ordinal position %d, but query expects %s."
 msgstr "La tabla tiene tipo %s en posición ordinal %d, pero la consulta esperaba %s."
 
-#: executor/execExpr.c:1099 parser/parse_agg.c:827
+#: executor/execExpr.c:1104 parser/parse_agg.c:838
 #, c-format
 msgid "window function calls cannot be nested"
 msgstr "no se pueden anidar llamadas a funciones de ventana deslizante"
 
-#: executor/execExpr.c:1618
+#: executor/execExpr.c:1649
 #, c-format
 msgid "target type is not an array"
 msgstr "el tipo de destino no es un array"
 
-#: executor/execExpr.c:1958
+#: executor/execExpr.c:1989
 #, c-format
 msgid "ROW() column has type %s instead of type %s"
 msgstr "la columna de ROW() es de tipo %s en lugar de ser de tipo %s"
 
-#: executor/execExpr.c:2587 executor/execSRF.c:719 parser/parse_func.c:138
-#: parser/parse_func.c:655 parser/parse_func.c:1032
+#: executor/execExpr.c:2653 executor/execSRF.c:718 parser/parse_func.c:138
+#: parser/parse_func.c:655 parser/parse_func.c:1033
 #, c-format
 msgid "cannot pass more than %d argument to a function"
 msgid_plural "cannot pass more than %d arguments to a function"
 msgstr[0] "no se pueden pasar más de %d argumento a una función"
 msgstr[1] "no se pueden pasar más de %d argumentos a una función"
 
-#: executor/execExpr.c:2614 executor/execSRF.c:739 executor/functions.c:1066
-#: utils/adt/jsonfuncs.c:3780 utils/fmgr/funcapi.c:89 utils/fmgr/funcapi.c:143
+#: executor/execExpr.c:2680 executor/execSRF.c:738 executor/functions.c:1068
+#: utils/adt/jsonfuncs.c:4054 utils/fmgr/funcapi.c:89 utils/fmgr/funcapi.c:143
 #, c-format
 msgid "set-valued function called in context that cannot accept a set"
 msgstr "se llamó una función que retorna un conjunto en un contexto que no puede aceptarlo"
 
-#: executor/execExpr.c:3020 parser/parse_node.c:277 parser/parse_node.c:327
+#: executor/execExpr.c:3086 parser/parse_node.c:272 parser/parse_node.c:322
 #, c-format
 msgid "cannot subscript type %s because it does not support subscripting"
 msgstr "no se puede poner subíndices al tipo %s porque no soporta subíndices"
 
-#: executor/execExpr.c:3148 executor/execExpr.c:3170
+#: executor/execExpr.c:3214 executor/execExpr.c:3236
 #, c-format
 msgid "type %s does not support subscripted assignment"
 msgstr "el tipo %s no soporta asignación subindexada"
 
-#: executor/execExprInterp.c:1962
+#: executor/execExprInterp.c:2019
 #, c-format
 msgid "attribute %d of type %s has been dropped"
 msgstr "El atributo %d de tipo %s ha sido eliminado"
 
-#: executor/execExprInterp.c:1968
+#: executor/execExprInterp.c:2025
 #, c-format
 msgid "attribute %d of type %s has wrong type"
 msgstr "el atributo %d del tipo %s tiene tipo erróneo"
 
-#: executor/execExprInterp.c:1970 executor/execExprInterp.c:3103
-#: executor/execExprInterp.c:3149
+#: executor/execExprInterp.c:2027 executor/execExprInterp.c:3226
+#: executor/execExprInterp.c:3272
 #, c-format
 msgid "Table has type %s, but query expects %s."
 msgstr "La tabla tiene tipo %s, pero la consulta esperaba %s."
 
-#: executor/execExprInterp.c:2049 utils/adt/expandedrecord.c:99
-#: utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1743
-#: utils/cache/typcache.c:1902 utils/cache/typcache.c:2049
-#: utils/fmgr/funcapi.c:561
+#: executor/execExprInterp.c:2107 utils/adt/expandedrecord.c:99
+#: utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1752
+#: utils/cache/typcache.c:1911 utils/cache/typcache.c:2058
+#: utils/fmgr/funcapi.c:569
 #, c-format
 msgid "type %s is not composite"
 msgstr "el tipo %s no es compuesto"
 
-#: executor/execExprInterp.c:2587
+#: executor/execExprInterp.c:2710
 #, c-format
 msgid "WHERE CURRENT OF is not supported for this table type"
 msgstr "WHERE CURRENT OF no está soportado para este tipo de tabla"
 
-#: executor/execExprInterp.c:2800
+#: executor/execExprInterp.c:2923
 #, c-format
 msgid "cannot merge incompatible arrays"
 msgstr "no se puede mezclar arrays incompatibles"
 
-#: executor/execExprInterp.c:2801
+#: executor/execExprInterp.c:2924
 #, c-format
 msgid "Array with element type %s cannot be included in ARRAY construct with element type %s."
 msgstr "El array con tipo de elemento %s no puede ser incluido en una sentencia ARRAY con tipo de elemento %s."
 
-#: executor/execExprInterp.c:2822 utils/adt/arrayfuncs.c:265
-#: utils/adt/arrayfuncs.c:575 utils/adt/arrayfuncs.c:1329
-#: utils/adt/arrayfuncs.c:3483 utils/adt/arrayfuncs.c:5567
-#: utils/adt/arrayfuncs.c:6084 utils/adt/arraysubs.c:150
+#: executor/execExprInterp.c:2945 utils/adt/arrayfuncs.c:1305
+#: utils/adt/arrayfuncs.c:3503 utils/adt/arrayfuncs.c:5593
+#: utils/adt/arrayfuncs.c:6110 utils/adt/arraysubs.c:150
 #: utils/adt/arraysubs.c:488
 #, c-format
 msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)"
 msgstr "el número de dimensiones del array (%d) excede el máximo permitido (%d)"
 
-#: executor/execExprInterp.c:2842 executor/execExprInterp.c:2877
+#: executor/execExprInterp.c:2965 executor/execExprInterp.c:3000
 #, c-format
 msgid "multidimensional arrays must have array expressions with matching dimensions"
 msgstr "los arrays multidimensionales deben tener expresiones de arrays con dimensiones coincidentes"
 
-#: executor/execExprInterp.c:2854 utils/adt/array_expanded.c:274
-#: utils/adt/arrayfuncs.c:959 utils/adt/arrayfuncs.c:1568
-#: utils/adt/arrayfuncs.c:3285 utils/adt/arrayfuncs.c:3513
-#: utils/adt/arrayfuncs.c:6176 utils/adt/arrayfuncs.c:6517
-#: utils/adt/arrayutils.c:104 utils/adt/arrayutils.c:113
-#: utils/adt/arrayutils.c:120
+#: executor/execExprInterp.c:2977 utils/adt/array_expanded.c:274
+#: utils/adt/arrayfuncs.c:335 utils/adt/arrayfuncs.c:494
+#: utils/adt/arrayfuncs.c:727 utils/adt/arrayfuncs.c:1533
+#: utils/adt/arrayfuncs.c:2341 utils/adt/arrayfuncs.c:2356
+#: utils/adt/arrayfuncs.c:2618 utils/adt/arrayfuncs.c:2634
+#: utils/adt/arrayfuncs.c:2895 utils/adt/arrayfuncs.c:2949
+#: utils/adt/arrayfuncs.c:2964 utils/adt/arrayfuncs.c:3305
+#: utils/adt/arrayfuncs.c:3533 utils/adt/arrayfuncs.c:5365
+#: utils/adt/arrayfuncs.c:6202 utils/adt/arrayfuncs.c:6546
+#: utils/adt/arrayutils.c:83 utils/adt/arrayutils.c:92
+#: utils/adt/arrayutils.c:99
 #, c-format
 msgid "array size exceeds the maximum allowed (%d)"
 msgstr "el tamaño del array excede el máximo permitido (%d)"
 
-#: executor/execExprInterp.c:3102 executor/execExprInterp.c:3148
+#: executor/execExprInterp.c:3225 executor/execExprInterp.c:3271
 #, c-format
 msgid "attribute %d has wrong type"
 msgstr "el atributo %d tiene tipo erróneo"
 
-#: executor/execExprInterp.c:3730 utils/adt/domains.c:155
+#: executor/execExprInterp.c:3857 utils/adt/domains.c:158
 #, c-format
 msgid "domain %s does not allow null values"
 msgstr "el dominio %s no permite valores null"
 
-#: executor/execExprInterp.c:3745 utils/adt/domains.c:193
+#: executor/execExprInterp.c:3872 utils/adt/domains.c:196
 #, c-format
 msgid "value for domain %s violates check constraint \"%s\""
 msgstr "el valor para el dominio %s viola la restricción «check» «%s»"
 
-#: executor/execExprInterp.c:4230
+#: executor/execExprInterp.c:4447
+#, c-format
+msgid "no SQL/JSON item found for specified path of column \"%s\""
+msgstr "ningún ítem SQL/JSON fue encontrado para la ruta especificada de la columna «%s»"
+
+#: executor/execExprInterp.c:4452
+#, c-format
+msgid "no SQL/JSON item found for specified path"
+msgstr "ningún ítem SQL/JSON fue encontrado para la ruta especificada"
+
+#. translator: first %s is a SQL/JSON clause (e.g. ON ERROR)
+#: executor/execExprInterp.c:4652 executor/execExprInterp.c:4660
+#, c-format
+msgid "could not coerce %s expression (%s) to the RETURNING type"
+msgstr "no se pudo convertir la expresión %s (%s) al tipo RETURNING"
+
+#: executor/execExprInterp.c:4853
 #, c-format
 msgid "Table row contains %d attribute, but query expects %d."
 msgid_plural "Table row contains %d attributes, but query expects %d."
 msgstr[0] "La fila de la tabla contiene %d atributo, pero la consulta esperaba %d."
 msgstr[1] "La fila de la tabla contiene %d atributos, pero la consulta esperaba %d."
 
-#: executor/execExprInterp.c:4346 executor/execSRF.c:978
+#: executor/execExprInterp.c:4969 executor/execSRF.c:977
 #, c-format
 msgid "Physical storage mismatch on dropped attribute at ordinal position %d."
 msgstr "Discordancia de almacenamiento físico en atributo eliminado en la posición %d."
 
-#: executor/execIndexing.c:588
+#: executor/execIndexing.c:593
 #, c-format
 msgid "ON CONFLICT does not support deferrable unique constraints/exclusion constraints as arbiters"
 msgstr "ON CONFLICT no soporta las restricciones únicas o de exclusión postergables como árbitros"
 
-#: executor/execIndexing.c:865
+#: executor/execIndexing.c:870
 #, c-format
 msgid "could not create exclusion constraint \"%s\""
 msgstr "no se pudo crear la restricción de exclusión «%s»"
 
-#: executor/execIndexing.c:868
+#: executor/execIndexing.c:873
 #, c-format
 msgid "Key %s conflicts with key %s."
 msgstr "La llave %s está en conflicto con la llave %s."
 
-#: executor/execIndexing.c:870
+#: executor/execIndexing.c:875
 #, c-format
 msgid "Key conflicts exist."
 msgstr "Existe un conflicto de llave."
 
-#: executor/execIndexing.c:876
+#: executor/execIndexing.c:881
 #, c-format
 msgid "conflicting key value violates exclusion constraint \"%s\""
 msgstr "llave en conflicto viola la restricción de exclusión «%s»"
 
-#: executor/execIndexing.c:879
+#: executor/execIndexing.c:884
 #, c-format
 msgid "Key %s conflicts with existing key %s."
 msgstr "La llave %s está en conflicto con la llave existente %s."
 
-#: executor/execIndexing.c:881
+#: executor/execIndexing.c:886
 #, c-format
 msgid "Key conflicts with existing key."
 msgstr "La llave está en conflicto con una llave existente."
 
-#: executor/execMain.c:1030
+#: executor/execMain.c:1039
 #, c-format
 msgid "cannot change sequence \"%s\""
 msgstr "no se puede cambiar la secuencia «%s»"
 
-#: executor/execMain.c:1036
+#: executor/execMain.c:1045
 #, c-format
 msgid "cannot change TOAST relation \"%s\""
 msgstr "no se puede cambiar la relación TOAST «%s»"
 
-#: executor/execMain.c:1054 rewrite/rewriteHandler.c:3078
-#: rewrite/rewriteHandler.c:3965
-#, c-format
-msgid "cannot insert into view \"%s\""
-msgstr "no se puede insertar en la vista «%s»"
-
-#: executor/execMain.c:1056 rewrite/rewriteHandler.c:3081
-#: rewrite/rewriteHandler.c:3968
-#, c-format
-msgid "To enable inserting into the view, provide an INSTEAD OF INSERT trigger or an unconditional ON INSERT DO INSTEAD rule."
-msgstr "Para posibilitar las inserciones en la vista, provea un disparador INSTEAD OF INSERT o una regla incodicional ON INSERT DO INSTEAD."
-
-#: executor/execMain.c:1062 rewrite/rewriteHandler.c:3086
-#: rewrite/rewriteHandler.c:3973
-#, c-format
-msgid "cannot update view \"%s\""
-msgstr "no se puede actualizar la vista «%s»"
-
-#: executor/execMain.c:1064 rewrite/rewriteHandler.c:3089
-#: rewrite/rewriteHandler.c:3976
-#, c-format
-msgid "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule."
-msgstr "Para posibilitar las actualizaciones en la vista, provea un disparador INSTEAD OF UPDATE o una regla incondicional ON UPDATE DO INSTEAD."
-
-#: executor/execMain.c:1070 rewrite/rewriteHandler.c:3094
-#: rewrite/rewriteHandler.c:3981
-#, c-format
-msgid "cannot delete from view \"%s\""
-msgstr "no se puede eliminar de la vista «%s»"
-
-#: executor/execMain.c:1072 rewrite/rewriteHandler.c:3097
-#: rewrite/rewriteHandler.c:3984
-#, c-format
-msgid "To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an unconditional ON DELETE DO INSTEAD rule."
-msgstr "Para posibilitar las eliminaciones en la vista, provea un disparador INSTEAD OF DELETE o una regla incondicional ON DELETE DO INSTEAD."
-
-#: executor/execMain.c:1083
+#: executor/execMain.c:1064
 #, c-format
 msgid "cannot change materialized view \"%s\""
 msgstr "no se puede cambiar la vista materializada «%s»"
 
-#: executor/execMain.c:1095
+#: executor/execMain.c:1076
 #, c-format
 msgid "cannot insert into foreign table \"%s\""
 msgstr "no se puede insertar en la tabla foránea «%s»"
 
-#: executor/execMain.c:1101
+#: executor/execMain.c:1082
 #, c-format
 msgid "foreign table \"%s\" does not allow inserts"
 msgstr "la tabla foránea «%s» no permite inserciones"
 
-#: executor/execMain.c:1108
+#: executor/execMain.c:1089
 #, c-format
 msgid "cannot update foreign table \"%s\""
 msgstr "no se puede actualizar la tabla foránea «%s»"
 
-#: executor/execMain.c:1114
+#: executor/execMain.c:1095
 #, c-format
 msgid "foreign table \"%s\" does not allow updates"
 msgstr "la tabla foránea «%s» no permite actualizaciones"
 
-#: executor/execMain.c:1121
+#: executor/execMain.c:1102
 #, c-format
 msgid "cannot delete from foreign table \"%s\""
 msgstr "no se puede eliminar desde la tabla foránea «%s»"
 
-#: executor/execMain.c:1127
+#: executor/execMain.c:1108
 #, c-format
 msgid "foreign table \"%s\" does not allow deletes"
 msgstr "la tabla foránea «%s» no permite eliminaciones"
 
-#: executor/execMain.c:1138
+#: executor/execMain.c:1119
 #, c-format
 msgid "cannot change relation \"%s\""
 msgstr "no se puede cambiar la relación «%s»"
 
-#: executor/execMain.c:1165
+#: executor/execMain.c:1146
 #, c-format
 msgid "cannot lock rows in sequence \"%s\""
 msgstr "no se puede bloquear registros de la secuencia «%s»"
 
-#: executor/execMain.c:1172
+#: executor/execMain.c:1153
 #, c-format
 msgid "cannot lock rows in TOAST relation \"%s\""
 msgstr "no se puede bloquear registros en la relación TOAST «%s»"
 
-#: executor/execMain.c:1179
+#: executor/execMain.c:1160
 #, c-format
 msgid "cannot lock rows in view \"%s\""
 msgstr "no se puede bloquear registros en la vista «%s»"
 
-#: executor/execMain.c:1187
+#: executor/execMain.c:1168
 #, c-format
 msgid "cannot lock rows in materialized view \"%s\""
 msgstr "no se puede bloquear registros en la vista materializada «%s»"
 
-#: executor/execMain.c:1196 executor/execMain.c:2699
+#: executor/execMain.c:1177 executor/execMain.c:2689
 #: executor/nodeLockRows.c:135
 #, c-format
 msgid "cannot lock rows in foreign table \"%s\""
 msgstr "no se puede bloquear registros en la tabla foránea «%s»"
 
-#: executor/execMain.c:1202
+#: executor/execMain.c:1183
 #, c-format
 msgid "cannot lock rows in relation \"%s\""
 msgstr "no se puede bloquear registros en la tabla «%s»"
 
-#: executor/execMain.c:1913
+#: executor/execMain.c:1901
 #, c-format
 msgid "new row for relation \"%s\" violates partition constraint"
 msgstr "el nuevo registro para la relación «%s» viola la restricción de partición"
 
-#: executor/execMain.c:1915 executor/execMain.c:1999 executor/execMain.c:2050
-#: executor/execMain.c:2160
+#: executor/execMain.c:1903 executor/execMain.c:1987 executor/execMain.c:2038
+#: executor/execMain.c:2148
 #, c-format
 msgid "Failing row contains %s."
 msgstr "La fila que falla contiene %s."
 
-#: executor/execMain.c:1996
+#: executor/execMain.c:1984
 #, c-format
 msgid "null value in column \"%s\" of relation \"%s\" violates not-null constraint"
 msgstr "el valor nulo en la columna «%s» de la relación «%s» viola la restricción de no nulo"
 
-#: executor/execMain.c:2048
+#: executor/execMain.c:2036
 #, c-format
 msgid "new row for relation \"%s\" violates check constraint \"%s\""
 msgstr "el nuevo registro para la relación «%s» viola la restricción «check» «%s»"
 
-#: executor/execMain.c:2158
+#: executor/execMain.c:2146
 #, c-format
 msgid "new row violates check option for view \"%s\""
 msgstr "el nuevo registro para la vista «%s» viola la opción check"
 
-#: executor/execMain.c:2168
+#: executor/execMain.c:2156
 #, c-format
 msgid "new row violates row-level security policy \"%s\" for table \"%s\""
 msgstr "el nuevo registro viola la política de seguridad de registros «%s» para la tabla «%s»"
 
-#: executor/execMain.c:2173
+#: executor/execMain.c:2161
 #, c-format
 msgid "new row violates row-level security policy for table \"%s\""
 msgstr "el nuevo registro viola la política de seguridad de registros para la tabla «%s»"
 
-#: executor/execMain.c:2181
-#, fuzzy, c-format
-#| msgid "new row violates row-level security policy \"%s\" (USING expression) for table \"%s\""
+#: executor/execMain.c:2169
+#, c-format
 msgid "target row violates row-level security policy \"%s\" (USING expression) for table \"%s\""
-msgstr "el nuevo registro viola la política de seguridad de registros «%s» (expresión USING) para la tabla «%s»"
+msgstr "el registro destino viola la política de seguridad de registros «%s» (expresión USING) para la tabla «%s»"
 
-#: executor/execMain.c:2186
-#, fuzzy, c-format
-#| msgid "new row violates row-level security policy (USING expression) for table \"%s\""
+#: executor/execMain.c:2174
+#, c-format
 msgid "target row violates row-level security policy (USING expression) for table \"%s\""
-msgstr "el nuevo registro viola la política de seguridad de registros (expresión USING) para la tabla «%s»"
+msgstr "el registro destino viola la política de seguridad de registros (expresión USING) para la tabla «%s»"
 
-#: executor/execMain.c:2193
+#: executor/execMain.c:2181
 #, c-format
 msgid "new row violates row-level security policy \"%s\" (USING expression) for table \"%s\""
 msgstr "el nuevo registro viola la política de seguridad de registros «%s» (expresión USING) para la tabla «%s»"
 
-#: executor/execMain.c:2198
+#: executor/execMain.c:2186
 #, c-format
 msgid "new row violates row-level security policy (USING expression) for table \"%s\""
 msgstr "el nuevo registro viola la política de seguridad de registros (expresión USING) para la tabla «%s»"
 
-#: executor/execPartition.c:330
+#: executor/execPartition.c:327
 #, c-format
 msgid "no partition of relation \"%s\" found for row"
 msgstr "no se encontró una partición de «%s» para el registro"
 
-#: executor/execPartition.c:333
+#: executor/execPartition.c:330
 #, c-format
 msgid "Partition key of the failing row contains %s."
 msgstr "La llave de particionamiento de la fila que falla contiene %s."
 
-#: executor/execReplication.c:240 executor/execReplication.c:424
+#: executor/execReplication.c:272 executor/execReplication.c:456
 #, c-format
 msgid "tuple to be locked was already moved to another partition due to concurrent update, retrying"
 msgstr "el registro a ser bloqueado ya fue movido a otra partición debido a un update concurrente, reintentando"
 
-#: executor/execReplication.c:244 executor/execReplication.c:428
+#: executor/execReplication.c:276 executor/execReplication.c:460
 #, c-format
 msgid "concurrent update, retrying"
 msgstr "actualización simultánea, reintentando"
 
-#: executor/execReplication.c:250 executor/execReplication.c:434
+#: executor/execReplication.c:282 executor/execReplication.c:466
 #, c-format
 msgid "concurrent delete, retrying"
 msgstr "eliminacón concurrente, reintentando"
 
-#: executor/execReplication.c:320 parser/parse_cte.c:308
-#: parser/parse_oper.c:233 utils/adt/array_userfuncs.c:1348
-#: utils/adt/array_userfuncs.c:1491 utils/adt/arrayfuncs.c:3832
-#: utils/adt/arrayfuncs.c:4387 utils/adt/arrayfuncs.c:6397
-#: utils/adt/rowtypes.c:1230
+#: executor/execReplication.c:352 parser/parse_cte.c:302
+#: parser/parse_oper.c:221 utils/adt/array_userfuncs.c:1334
+#: utils/adt/array_userfuncs.c:1477 utils/adt/arrayfuncs.c:3852
+#: utils/adt/arrayfuncs.c:4407 utils/adt/arrayfuncs.c:6426
+#: utils/adt/rowtypes.c:1220
 #, c-format
 msgid "could not identify an equality operator for type %s"
 msgstr "no se pudo identificar un operador de igualdad para el tipo %s"
 
-#: executor/execReplication.c:651 executor/execReplication.c:657
-#, fuzzy, c-format
-#| msgid "cannot update foreign table \"%s\""
+#: executor/execReplication.c:687 executor/execReplication.c:693
+#, c-format
 msgid "cannot update table \"%s\""
-msgstr "no se puede actualizar la tabla foránea «%s»"
+msgstr "no se puede actualizar la tabla «%s»"
 
-#: executor/execReplication.c:653 executor/execReplication.c:665
+#: executor/execReplication.c:689 executor/execReplication.c:701
 #, c-format
 msgid "Column used in the publication WHERE expression is not part of the replica identity."
 msgstr "La columna usada en la expresión WHERE de la publicación no es parte de la identidad de replicación."
 
-#: executor/execReplication.c:659 executor/execReplication.c:671
+#: executor/execReplication.c:695 executor/execReplication.c:707
 #, c-format
 msgid "Column list used by the publication does not cover the replica identity."
 msgstr "La lista de columnas usada por la publicación no incluye la identidad de replicación."
 
-#: executor/execReplication.c:663 executor/execReplication.c:669
-#, fuzzy, c-format
-#| msgid "cannot delete from foreign table \"%s\""
+#: executor/execReplication.c:699 executor/execReplication.c:705
+#, c-format
 msgid "cannot delete from table \"%s\""
-msgstr "no se puede eliminar desde la tabla foránea «%s»"
+msgstr "no se puede eliminar desde la tabla «%s»"
 
-#: executor/execReplication.c:689
+#: executor/execReplication.c:725
 #, c-format
 msgid "cannot update table \"%s\" because it does not have a replica identity and publishes updates"
 msgstr "no se puede actualizar la tabla «%s» porque no tiene identidad de replicación y publica updates"
 
-#: executor/execReplication.c:691
+#: executor/execReplication.c:727
 #, c-format
 msgid "To enable updating the table, set REPLICA IDENTITY using ALTER TABLE."
 msgstr "Para habilitar la actualización de la tabla, configure REPLICA IDENTITY utilizando ALTER TABLE."
 
-#: executor/execReplication.c:695
+#: executor/execReplication.c:731
 #, c-format
 msgid "cannot delete from table \"%s\" because it does not have a replica identity and publishes deletes"
 msgstr "no se puede eliminar de la tabla «%s» porque no tiene una identidad de replicación y publica deletes"
 
-#: executor/execReplication.c:697
+#: executor/execReplication.c:733
 #, c-format
 msgid "To enable deleting from the table, set REPLICA IDENTITY using ALTER TABLE."
 msgstr "para habilitar la eliminación en la tabla, configure REPLICA IDENTITY utilizando ALTER TABLE."
 
-#: executor/execReplication.c:713
+#: executor/execReplication.c:749
 #, c-format
 msgid "cannot use relation \"%s.%s\" as logical replication target"
 msgstr "no se puede usar la relación «%s.%s» como destino de replicación lógica"
 
-#: executor/execSRF.c:316
+#: executor/execSRF.c:315
 #, c-format
 msgid "rows returned by function are not all of the same row type"
 msgstr "las filas retornadas por la función no tienen todas el mismo tipo de registro"
 
-#: executor/execSRF.c:366
+#: executor/execSRF.c:365
 #, c-format
 msgid "table-function protocol for value-per-call mode was not followed"
 msgstr "no se siguió el protocolo de función tabular para el modo de valor por llamada"
 
-#: executor/execSRF.c:374 executor/execSRF.c:668
+#: executor/execSRF.c:373 executor/execSRF.c:667
 #, c-format
 msgid "table-function protocol for materialize mode was not followed"
 msgstr "no se siguió el protocolo de función tabular para el modo de materialización"
 
-#: executor/execSRF.c:381 executor/execSRF.c:686
+#: executor/execSRF.c:380 executor/execSRF.c:685
 #, c-format
 msgid "unrecognized table-function returnMode: %d"
 msgstr "modo de retorno de la función tabular no es reconocido: %d"
 
-#: executor/execSRF.c:895
+#: executor/execSRF.c:894
 #, c-format
 msgid "function returning setof record called in context that cannot accept type record"
 msgstr "se llamó una función que retorna «setof record» en un contexto que no puede aceptar el tipo record"
 
-#: executor/execSRF.c:951 executor/execSRF.c:967 executor/execSRF.c:977
+#: executor/execSRF.c:950 executor/execSRF.c:966 executor/execSRF.c:976
 #, c-format
 msgid "function return row and query-specified return row do not match"
 msgstr "la fila de retorno especificada en la consulta no coincide con fila de retorno de la función"
 
-#: executor/execSRF.c:952
+#: executor/execSRF.c:951
 #, c-format
 msgid "Returned row contains %d attribute, but query expects %d."
 msgid_plural "Returned row contains %d attributes, but query expects %d."
 msgstr[0] "Fila retornada contiene %d atributo, pero la consulta esperaba %d."
 msgstr[1] "Fila retornada contiene %d atributos, pero la consulta esperaba %d."
 
-#: executor/execSRF.c:968
+#: executor/execSRF.c:967
 #, c-format
 msgid "Returned type %s at ordinal position %d, but query expects %s."
 msgstr "Tipo retornado %s en posición ordinal %d, pero la consulta esperaba %s."
 
-#: executor/execTuples.c:146 executor/execTuples.c:353
-#: executor/execTuples.c:521 executor/execTuples.c:713
+#: executor/execTuples.c:147 executor/execTuples.c:368
+#: executor/execTuples.c:563 executor/execTuples.c:772
 #, c-format
 msgid "cannot retrieve a system column in this context"
 msgstr "no se puede obtener una columna de sistema en este contexto"
 
-#: executor/execUtils.c:744
+#: executor/execTuples.c:163 executor/execTuples.c:580
+#, c-format
+msgid "don't have transaction information for this type of tuple"
+msgstr "no se tiene información de transacción para este tipo de tupla"
+
+#: executor/execTuples.c:390 executor/execTuples.c:794
+#, c-format
+msgid "don't have a storage tuple in this context"
+msgstr "no se tiene una tupla de almacenamiento en este contexto"
+
+#: executor/execUtils.c:713
 #, c-format
 msgid "materialized view \"%s\" has not been populated"
 msgstr "la vista materializada «%s» no ha sido poblada"
 
-#: executor/execUtils.c:746
+#: executor/execUtils.c:715
 #, c-format
 msgid "Use the REFRESH MATERIALIZED VIEW command."
 msgstr "Use la orden REFRESH MATERIALIZED VIEW."
@@ -13703,111 +14019,111 @@ msgstr "Use la orden REFRESH MATERIALIZED VIEW."
 msgid "could not determine actual type of argument declared %s"
 msgstr "no se pudo determinar el tipo de argumento declarado %s"
 
-#: executor/functions.c:512
+#: executor/functions.c:513
 #, c-format
 msgid "cannot COPY to/from client in an SQL function"
 msgstr "no se puede ejecutar COPY desde/a un cliente en una función SQL"
 
 #. translator: %s is a SQL statement name
-#: executor/functions.c:518
+#: executor/functions.c:519
 #, c-format
 msgid "%s is not allowed in an SQL function"
 msgstr "%s no está permitido en una función SQL"
 
 #. translator: %s is a SQL statement name
-#: executor/functions.c:526 executor/spi.c:1742 executor/spi.c:2635
+#: executor/functions.c:527 executor/spi.c:1744 executor/spi.c:2657
 #, c-format
 msgid "%s is not allowed in a non-volatile function"
 msgstr "%s no está permitido en una función no-«volatile»"
 
-#: executor/functions.c:1450
+#: executor/functions.c:1452
 #, c-format
 msgid "SQL function \"%s\" statement %d"
 msgstr "función SQL «%s» en la sentencia %d"
 
-#: executor/functions.c:1476
+#: executor/functions.c:1478
 #, c-format
 msgid "SQL function \"%s\" during startup"
 msgstr "función SQL «%s» durante el inicio"
 
-#: executor/functions.c:1561
+#: executor/functions.c:1563
 #, c-format
 msgid "calling procedures with output arguments is not supported in SQL functions"
 msgstr "no está permitido invocar procedimientos con argumentos de salida en funciones SQL"
 
-#: executor/functions.c:1694 executor/functions.c:1732
-#: executor/functions.c:1746 executor/functions.c:1836
-#: executor/functions.c:1869 executor/functions.c:1883
+#: executor/functions.c:1698 executor/functions.c:1736
+#: executor/functions.c:1750 executor/functions.c:1845
+#: executor/functions.c:1878 executor/functions.c:1892
 #, c-format
 msgid "return type mismatch in function declared to return %s"
 msgstr "el tipo de retorno de función declarada para retornar %s no concuerda"
 
-#: executor/functions.c:1696
+#: executor/functions.c:1700
 #, c-format
-msgid "Function's final statement must be SELECT or INSERT/UPDATE/DELETE RETURNING."
-msgstr "La sentencia final de la función debe ser un SELECT o INSERT/UPDATE/DELETE RETURNING."
+msgid "Function's final statement must be SELECT or INSERT/UPDATE/DELETE/MERGE RETURNING."
+msgstr "La sentencia final de la función debe ser un SELECT o INSERT/UPDATE/DELETE/MERGE RETURNING."
 
-#: executor/functions.c:1734
+#: executor/functions.c:1738
 #, c-format
 msgid "Final statement must return exactly one column."
 msgstr "La sentencia final debe retornar exactamente una columna."
 
-#: executor/functions.c:1748
+#: executor/functions.c:1752
 #, c-format
 msgid "Actual return type is %s."
 msgstr "El verdadero tipo de retorno es %s."
 
-#: executor/functions.c:1838
+#: executor/functions.c:1847
 #, c-format
 msgid "Final statement returns too many columns."
 msgstr "La sentencia final retorna demasiadas columnas."
 
-#: executor/functions.c:1871
+#: executor/functions.c:1880
 #, c-format
 msgid "Final statement returns %s instead of %s at column %d."
 msgstr "La sentencia final retorna %s en lugar de %s en la columna %d."
 
-#: executor/functions.c:1885
+#: executor/functions.c:1894
 #, c-format
 msgid "Final statement returns too few columns."
 msgstr "La sentencia final retorna muy pocas columnas."
 
-#: executor/functions.c:1913
+#: executor/functions.c:1922
 #, c-format
 msgid "return type %s is not supported for SQL functions"
 msgstr "el tipo de retorno %s no es soportado en funciones SQL"
 
-#: executor/nodeAgg.c:3937 executor/nodeWindowAgg.c:2993
+#: executor/nodeAgg.c:3936 executor/nodeWindowAgg.c:2975
 #, c-format
 msgid "aggregate %u needs to have compatible input type and transition type"
 msgstr "la función de agregación %u necesita tener tipos de entrada y transición compatibles"
 
-#: executor/nodeAgg.c:3967 parser/parse_agg.c:669 parser/parse_agg.c:697
+#: executor/nodeAgg.c:3966 parser/parse_agg.c:680 parser/parse_agg.c:708
 #, c-format
 msgid "aggregate function calls cannot be nested"
 msgstr "no se pueden anidar llamadas a funciones de agregación"
 
-#: executor/nodeCustom.c:154 executor/nodeCustom.c:165
+#: executor/nodeCustom.c:144 executor/nodeCustom.c:155
 #, c-format
 msgid "custom scan \"%s\" does not support MarkPos"
 msgstr "el scan personalizado «%s» no soporta MarkPos"
 
-#: executor/nodeHashjoin.c:1143 executor/nodeHashjoin.c:1173
+#: executor/nodeHashjoin.c:1131 executor/nodeHashjoin.c:1161
 #, c-format
 msgid "could not rewind hash-join temporary file"
 msgstr "no se puede rebobinar el archivo temporal del hash-join"
 
-#: executor/nodeIndexonlyscan.c:238
+#: executor/nodeIndexonlyscan.c:239
 #, c-format
 msgid "lossy distance functions are not supported in index-only scans"
 msgstr "no se permiten funciones de ventana deslizante en predicados de índice"
 
-#: executor/nodeLimit.c:374
+#: executor/nodeLimit.c:373
 #, c-format
 msgid "OFFSET must not be negative"
 msgstr "OFFSET no debe ser negativo"
 
-#: executor/nodeLimit.c:400
+#: executor/nodeLimit.c:399
 #, c-format
 msgid "LIMIT must not be negative"
 msgstr "LIMIT no debe ser negativo"
@@ -13822,76 +14138,74 @@ msgstr "RIGHT JOIN sólo está soportado con condiciones que se pueden usar con
 msgid "FULL JOIN is only supported with merge-joinable join conditions"
 msgstr "FULL JOIN sólo está soportado con condiciones que se pueden usar con merge join"
 
-#: executor/nodeModifyTable.c:234
+#: executor/nodeModifyTable.c:240
 #, c-format
 msgid "Query has too few columns."
 msgstr "La consulta tiene muy pocas columnas."
 
-#: executor/nodeModifyTable.c:1530 executor/nodeModifyTable.c:1604
+#: executor/nodeModifyTable.c:1540 executor/nodeModifyTable.c:1614
 #, c-format
 msgid "tuple to be deleted was already modified by an operation triggered by the current command"
 msgstr "el registro a ser eliminado ya fue modificado por una operación disparada por la orden actual"
 
-#: executor/nodeModifyTable.c:1758
+#: executor/nodeModifyTable.c:1769
 #, c-format
 msgid "invalid ON UPDATE specification"
 msgstr "especificación ON UPDATE no válida"
 
-#: executor/nodeModifyTable.c:1759
+#: executor/nodeModifyTable.c:1770
 #, c-format
 msgid "The result tuple would appear in a different partition than the original tuple."
 msgstr "La tupla de resultado aparecería en una partición diferente que la tupla original."
 
-#: executor/nodeModifyTable.c:2217
+#: executor/nodeModifyTable.c:2226
 #, c-format
 msgid "cannot move tuple across partitions when a non-root ancestor of the source partition is directly referenced in a foreign key"
 msgstr "no se puede mover una tupla entre particiones cuando un ancestro no-raíz de la partición de origen es referenciada directamente en una llave foránea"
 
-#: executor/nodeModifyTable.c:2218
+#: executor/nodeModifyTable.c:2227
 #, c-format
 msgid "A foreign key points to ancestor \"%s\" but not the root ancestor \"%s\"."
-msgstr ""
+msgstr "Una llave foránea apunta al ancestro «%s» pero no al ancestro raíz «%s»."
 
-#: executor/nodeModifyTable.c:2221
-#, fuzzy, c-format
-#| msgid "cannot insert into foreign table \"%s\""
+#: executor/nodeModifyTable.c:2230
+#, c-format
 msgid "Consider defining the foreign key on table \"%s\"."
-msgstr "no se puede insertar en la tabla foránea «%s»"
+msgstr "Considere definir una llave foránea en la tabla «%s»."
 
 #. translator: %s is a SQL command name
-#: executor/nodeModifyTable.c:2567 executor/nodeModifyTable.c:2954
+#: executor/nodeModifyTable.c:2596 executor/nodeModifyTable.c:3138
+#: executor/nodeModifyTable.c:3308
 #, c-format
 msgid "%s command cannot affect row a second time"
-msgstr ""
+msgstr "la orden %s no puede afectar una fila por segunda vez"
 
-#: executor/nodeModifyTable.c:2569
+#: executor/nodeModifyTable.c:2598
 #, c-format
 msgid "Ensure that no rows proposed for insertion within the same command have duplicate constrained values."
 msgstr "Asegúrese de que ningún registro propuesto para inserción dentro de la misma orden tenga valores duplicados restringidos."
 
-#: executor/nodeModifyTable.c:2956
+#: executor/nodeModifyTable.c:3131 executor/nodeModifyTable.c:3301
+#, c-format
+msgid "tuple to be updated or deleted was already modified by an operation triggered by the current command"
+msgstr "la tupla a ser actualizada o borrada ya fue modificada por una operación disparada por la orden actual"
+
+#: executor/nodeModifyTable.c:3140 executor/nodeModifyTable.c:3310
 #, c-format
 msgid "Ensure that not more than one source row matches any one target row."
 msgstr "Asegúrese que no más de un registro de origen coincide con cada registro de destino."
 
-#: executor/nodeModifyTable.c:3037
-#, fuzzy, c-format
-#| msgid "tuple to be locked was already moved to another partition due to concurrent update"
-msgid "tuple to be deleted was already moved to another partition due to concurrent update"
-msgstr "el registro a ser bloqueado ya fue movido a otra partición por un update concurrente"
-
-#: executor/nodeModifyTable.c:3076
-#, fuzzy, c-format
-#| msgid "tuple to be updated was already modified by an operation triggered by the current command"
-msgid "tuple to be updated or deleted was already modified by an operation triggered by the current command"
-msgstr "el registro a ser actualizado ya fue modificado por una operación disparada por la orden actual"
+#: executor/nodeModifyTable.c:3209
+#, c-format
+msgid "tuple to be merged was already moved to another partition due to concurrent update"
+msgstr "la tupla a ser mezclada ya fue movida a otra partición por un update concurrente"
 
-#: executor/nodeSamplescan.c:260
+#: executor/nodeSamplescan.c:244
 #, c-format
 msgid "TABLESAMPLE parameter cannot be null"
 msgstr "el parámetro TABLESAMPLE no puede ser null"
 
-#: executor/nodeSamplescan.c:272
+#: executor/nodeSamplescan.c:256
 #, c-format
 msgid "TABLESAMPLE REPEATABLE parameter cannot be null"
 msgstr "el parámetro TABLESAMPLE REPEATABLE no puede ser null"
@@ -13902,7 +14216,7 @@ msgstr "el parámetro TABLESAMPLE REPEATABLE no puede ser null"
 msgid "more than one row returned by a subquery used as an expression"
 msgstr "una subconsulta utilizada como expresión retornó más de un registro"
 
-#: executor/nodeTableFuncscan.c:375
+#: executor/nodeTableFuncscan.c:370
 #, c-format
 msgid "namespace URI must not be null"
 msgstr "la URI del espacio de nombres no debe ser null"
@@ -13912,17 +14226,17 @@ msgstr "la URI del espacio de nombres no debe ser null"
 msgid "row filter expression must not be null"
 msgstr "la expresión filtro de filas no debe ser null"
 
-#: executor/nodeTableFuncscan.c:415
+#: executor/nodeTableFuncscan.c:416
 #, c-format
 msgid "column filter expression must not be null"
 msgstr "la expresión filtro de columnas no debe ser null"
 
-#: executor/nodeTableFuncscan.c:416
+#: executor/nodeTableFuncscan.c:417
 #, c-format
 msgid "Filter for column \"%s\" is null."
 msgstr "El filtro para la columna «%s» es null."
 
-#: executor/nodeTableFuncscan.c:506
+#: executor/nodeTableFuncscan.c:507
 #, c-format
 msgid "null is not allowed in column \"%s\""
 msgstr "null no está permitido en la columna «%s»"
@@ -13952,84 +14266,84 @@ msgstr "la posición final del marco no debe ser null"
 msgid "frame ending offset must not be negative"
 msgstr "la posición final del marco no debe ser negativa"
 
-#: executor/nodeWindowAgg.c:2909
+#: executor/nodeWindowAgg.c:2891
 #, c-format
 msgid "aggregate function %s does not support use as a window function"
 msgstr "la función de agregación %s no permite ser usada como función ventana"
 
-#: executor/spi.c:242 executor/spi.c:342
+#: executor/spi.c:241 executor/spi.c:341
 #, c-format
 msgid "invalid transaction termination"
 msgstr "terminación de transacción no válida"
 
-#: executor/spi.c:257
+#: executor/spi.c:256
 #, c-format
 msgid "cannot commit while a subtransaction is active"
 msgstr "no se puede comprometer mientras hay una subtransacción activa"
 
-#: executor/spi.c:348
+#: executor/spi.c:347
 #, c-format
 msgid "cannot roll back while a subtransaction is active"
 msgstr "no se puede hacer rollback mientras hay una subtransacción activa"
 
-#: executor/spi.c:472
+#: executor/spi.c:471
 #, c-format
 msgid "transaction left non-empty SPI stack"
 msgstr "transacción dejó un stack SPI no vacío"
 
-#: executor/spi.c:473 executor/spi.c:533
+#: executor/spi.c:472 executor/spi.c:532
 #, c-format
 msgid "Check for missing \"SPI_finish\" calls."
 msgstr "Revise llamadas a «SPI_finish» faltantes."
 
-#: executor/spi.c:532
+#: executor/spi.c:531
 #, c-format
 msgid "subtransaction left non-empty SPI stack"
 msgstr "subtransacción dejó un stack SPI no vacío"
 
-#: executor/spi.c:1600
+#: executor/spi.c:1602
 #, c-format
 msgid "cannot open multi-query plan as cursor"
 msgstr "no se puede abrir plan de varias consultas como cursor"
 
 #. translator: %s is name of a SQL command, eg INSERT
-#: executor/spi.c:1610
+#: executor/spi.c:1612
 #, c-format
 msgid "cannot open %s query as cursor"
 msgstr "no se puede abrir consulta %s como cursor"
 
-#: executor/spi.c:1716
+#: executor/spi.c:1718
 #, c-format
 msgid "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported"
 msgstr "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE no está soportado"
 
-#: executor/spi.c:1717 parser/analyze.c:2874
+#: executor/spi.c:1719 parser/analyze.c:2928
 #, c-format
 msgid "Scrollable cursors must be READ ONLY."
 msgstr "Los cursores declarados SCROLL deben ser READ ONLY."
 
-#: executor/spi.c:2474
+#: executor/spi.c:2496
 #, c-format
 msgid "empty query does not return tuples"
 msgstr "la consulta vacía no retorna tuplas"
 
 #. translator: %s is name of a SQL command, eg INSERT
-#: executor/spi.c:2548
+#: executor/spi.c:2570
 #, c-format
 msgid "%s query does not return tuples"
 msgstr "la consulta «%s» no retorna tuplas"
 
-#: executor/spi.c:2963
+#: executor/spi.c:2987
 #, c-format
 msgid "SQL expression \"%s\""
 msgstr "expresión SQL «%s»"
 
-#: executor/spi.c:2968
+#: executor/spi.c:2992
 #, c-format
 msgid "PL/pgSQL assignment \"%s\""
 msgstr "asignación PL/pgSQL «%s»"
 
-#: executor/spi.c:2971
+#: executor/spi.c:2995
 #, c-format
 msgid "SQL statement \"%s\""
 msgstr "sentencia SQL: «%s»"
@@ -14039,35 +14353,34 @@ msgstr "sentencia SQL: «%s»"
 msgid "could not send tuple to shared-memory queue"
 msgstr "no se pudo enviar la tupla a la cola en memoria compartida"
 
-#: foreign/foreign.c:222
+#: foreign/foreign.c:225
+#, c-format
+msgid "user mapping not found for user \"%s\", server \"%s\""
+msgstr "no se encontró un mapeo para el usuario «%s», servidor «%s»"
+
+#: foreign/foreign.c:336 optimizer/plan/createplan.c:7153
+#: optimizer/util/plancat.c:540
 #, c-format
-msgid "user mapping not found for \"%s\""
-msgstr "no se encontró un mapeo para el usuario «%s»"
+msgid "access to non-system foreign table is restricted"
+msgstr "el acceso a la tabla foránea no de sistema está restringido"
 
-#: foreign/foreign.c:647 storage/file/fd.c:3881
+#: foreign/foreign.c:660
 #, c-format
 msgid "invalid option \"%s\""
 msgstr "el nombre de opción «%s» no es válido"
 
-#: foreign/foreign.c:649
-#, fuzzy, c-format
-#| msgid "Perhaps you meant to reference the column \"%s.%s\"."
+#: foreign/foreign.c:662
+#, c-format
 msgid "Perhaps you meant the option \"%s\"."
-msgstr "Probablemente quiera hacer referencia a la columna «%s.%s»."
-
-#: foreign/foreign.c:651
-#, fuzzy, c-format
-#| msgid "There are no old transactions anymore."
-msgid "There are no valid options in this context."
-msgstr "Ya no hay transacciones antiguas en ejecución."
+msgstr "Quizás se refiere a la opción «%s»."
 
-#: jit/jit.c:205 utils/fmgr/dfmgr.c:209 utils/fmgr/dfmgr.c:415
+#: foreign/foreign.c:664
 #, c-format
-msgid "could not access file \"%s\": %m"
-msgstr "no se pudo acceder al archivo «%s»: %m"
+msgid "There are no valid options in this context."
+msgstr "No hay opciones válidas en este contexto."
 
-#: lib/dshash.c:254 utils/mmgr/dsa.c:714 utils/mmgr/dsa.c:736
-#: utils/mmgr/dsa.c:817
+#: lib/dshash.c:254 utils/mmgr/dsa.c:708 utils/mmgr/dsa.c:730
+#: utils/mmgr/dsa.c:811
 #, c-format
 msgid "Failed on DSA request of size %zu."
 msgstr "Falla en petición DSA de tamaño %zu."
@@ -14077,708 +14390,700 @@ msgstr "Falla en petición DSA de tamaño %zu."
 msgid "expected SASL response, got message type %d"
 msgstr "se esperaba una respuesta SASL, se obtuvo mensaje de tipo %d"
 
-#: libpq/auth-scram.c:270
+#: libpq/auth-scram.c:263
 #, c-format
 msgid "client selected an invalid SASL authentication mechanism"
 msgstr "cliente eligió un mecanismo de autentificación SASL no válido"
 
-#: libpq/auth-scram.c:294 libpq/auth-scram.c:543 libpq/auth-scram.c:554
+#: libpq/auth-scram.c:287 libpq/auth-scram.c:536 libpq/auth-scram.c:547
 #, c-format
 msgid "invalid SCRAM secret for user \"%s\""
 msgstr "el secreto SCRAM para el usuario «%s» no es válido"
 
-#: libpq/auth-scram.c:305
+#: libpq/auth-scram.c:298
 #, c-format
 msgid "User \"%s\" does not have a valid SCRAM secret."
 msgstr "El usuario «%s» no tiene un secreto SCRAM válido."
 
-#: libpq/auth-scram.c:385 libpq/auth-scram.c:390 libpq/auth-scram.c:744
-#: libpq/auth-scram.c:752 libpq/auth-scram.c:857 libpq/auth-scram.c:870
-#: libpq/auth-scram.c:880 libpq/auth-scram.c:988 libpq/auth-scram.c:995
-#: libpq/auth-scram.c:1010 libpq/auth-scram.c:1025 libpq/auth-scram.c:1039
-#: libpq/auth-scram.c:1057 libpq/auth-scram.c:1072 libpq/auth-scram.c:1386
-#: libpq/auth-scram.c:1394
+#: libpq/auth-scram.c:378 libpq/auth-scram.c:383 libpq/auth-scram.c:737
+#: libpq/auth-scram.c:745 libpq/auth-scram.c:850 libpq/auth-scram.c:863
+#: libpq/auth-scram.c:873 libpq/auth-scram.c:981 libpq/auth-scram.c:988
+#: libpq/auth-scram.c:1003 libpq/auth-scram.c:1018 libpq/auth-scram.c:1032
+#: libpq/auth-scram.c:1050 libpq/auth-scram.c:1065 libpq/auth-scram.c:1379
+#: libpq/auth-scram.c:1387
 #, c-format
 msgid "malformed SCRAM message"
 msgstr "mensaje SCRAM mal formado"
 
-#: libpq/auth-scram.c:386
+#: libpq/auth-scram.c:379
 #, c-format
 msgid "The message is empty."
 msgstr "El mensaje está vacío."
 
-#: libpq/auth-scram.c:391
+#: libpq/auth-scram.c:384
 #, c-format
 msgid "Message length does not match input length."
 msgstr "El largo del mensaje no coincide con el largo de entrada."
 
-#: libpq/auth-scram.c:423
+#: libpq/auth-scram.c:416
 #, c-format
 msgid "invalid SCRAM response"
 msgstr "respuesta SCRAM no válida"
 
-#: libpq/auth-scram.c:424
+#: libpq/auth-scram.c:417
 #, c-format
 msgid "Nonce does not match."
 msgstr "El «nonce» no coincide."
 
-#: libpq/auth-scram.c:500
+#: libpq/auth-scram.c:493
 #, c-format
 msgid "could not generate random salt"
 msgstr "no se pudo generar una sal aleatoria"
 
-#: libpq/auth-scram.c:745
+#: libpq/auth-scram.c:738
 #, c-format
 msgid "Expected attribute \"%c\" but found \"%s\"."
 msgstr "Se esperaba un atributo «%c» pero se encontró «%s»."
 
-#: libpq/auth-scram.c:753 libpq/auth-scram.c:881
+#: libpq/auth-scram.c:746 libpq/auth-scram.c:874
 #, c-format
 msgid "Expected character \"=\" for attribute \"%c\"."
 msgstr "Se esperaba el carácter «=» para el atributo «%c»."
 
-#: libpq/auth-scram.c:858
+#: libpq/auth-scram.c:851
 #, c-format
 msgid "Attribute expected, but found end of string."
 msgstr "Se esperaba un atributo, se encontró el fin de la cadena."
 
-#: libpq/auth-scram.c:871
+#: libpq/auth-scram.c:864
 #, c-format
 msgid "Attribute expected, but found invalid character \"%s\"."
 msgstr "Se esperaba un atributo, se encontró el carácter no válido «%s»."
 
-#: libpq/auth-scram.c:989 libpq/auth-scram.c:1011
+#: libpq/auth-scram.c:982 libpq/auth-scram.c:1004
 #, c-format
 msgid "The client selected SCRAM-SHA-256-PLUS, but the SCRAM message does not include channel binding data."
 msgstr "El cliente seleccionó SCRAM-SHA-256-PLUS, pero el mensaje SCRAM no incluye los datos de enlazado (binding) del canal."
 
-#: libpq/auth-scram.c:996 libpq/auth-scram.c:1026
+#: libpq/auth-scram.c:989 libpq/auth-scram.c:1019
 #, c-format
 msgid "Comma expected, but found character \"%s\"."
 msgstr "Se esperaba una coma, se encontró el carácter «%s»."
 
-#: libpq/auth-scram.c:1017
+#: libpq/auth-scram.c:1010
 #, c-format
 msgid "SCRAM channel binding negotiation error"
 msgstr "error de negociación de enlazado (binding) de canal SCRAM"
 
-#: libpq/auth-scram.c:1018
+#: libpq/auth-scram.c:1011
 #, c-format
 msgid "The client supports SCRAM channel binding but thinks the server does not.  However, this server does support channel binding."
 msgstr "El cliente soporta enlazado (binding) de canal SCRAM, pero piensa que el servidor no. Sin embargo, este servidor sí soporta enlazado de canal."
 
-#: libpq/auth-scram.c:1040
+#: libpq/auth-scram.c:1033
 #, c-format
 msgid "The client selected SCRAM-SHA-256 without channel binding, but the SCRAM message includes channel binding data."
 msgstr "El cliente seleccionó SCRAM-SHA-256 sin enlazado de canal, pero el mensaje SCRAM incluye datos de enlazado de canal."
 
-#: libpq/auth-scram.c:1051
+#: libpq/auth-scram.c:1044
 #, c-format
 msgid "unsupported SCRAM channel-binding type \"%s\""
 msgstr "tipo de enlazado de canal SCRAM «%s» no soportado"
 
-#: libpq/auth-scram.c:1058
+#: libpq/auth-scram.c:1051
 #, c-format
 msgid "Unexpected channel-binding flag \"%s\"."
 msgstr "Indicador de enlazado de canal «%s» inesperado."
 
-#: libpq/auth-scram.c:1068
+#: libpq/auth-scram.c:1061
 #, c-format
 msgid "client uses authorization identity, but it is not supported"
 msgstr "el cliente usa identidad de autorización, pero no está soportada"
 
-#: libpq/auth-scram.c:1073
+#: libpq/auth-scram.c:1066
 #, c-format
 msgid "Unexpected attribute \"%s\" in client-first-message."
 msgstr "Atributo inesperado \"%s\" en client-first-message."
 
-#: libpq/auth-scram.c:1089
+#: libpq/auth-scram.c:1082
 #, c-format
 msgid "client requires an unsupported SCRAM extension"
 msgstr "el cliente requiere una extensión SCRAM no soportada"
 
-#: libpq/auth-scram.c:1103
+#: libpq/auth-scram.c:1096
 #, c-format
 msgid "non-printable characters in SCRAM nonce"
 msgstr "caracteres no imprimibles en el «nonce» SCRAM"
 
-#: libpq/auth-scram.c:1234
+#: libpq/auth-scram.c:1227
 #, c-format
 msgid "could not generate random nonce"
 msgstr "no se pudo generar un «nonce» aleatorio"
 
-#: libpq/auth-scram.c:1244
+#: libpq/auth-scram.c:1237
 #, c-format
 msgid "could not encode random nonce"
 msgstr "no se pudo codificar un «nonce» aleatorio"
 
-#: libpq/auth-scram.c:1350
+#: libpq/auth-scram.c:1343
 #, c-format
 msgid "SCRAM channel binding check failed"
 msgstr "la verificación de enlazado (binding) de canal SCRAM falló"
 
-#: libpq/auth-scram.c:1368
+#: libpq/auth-scram.c:1361
 #, c-format
 msgid "unexpected SCRAM channel-binding attribute in client-final-message"
 msgstr "atributo de enlazado de canal SCRAM inesperado en client-final-message"
 
-#: libpq/auth-scram.c:1387
+#: libpq/auth-scram.c:1380
 #, c-format
 msgid "Malformed proof in client-final-message."
 msgstr "Prueba (proof) mal formada en client-final-message."
 
-#: libpq/auth-scram.c:1395
+#: libpq/auth-scram.c:1388
 #, c-format
 msgid "Garbage found at the end of client-final-message."
 msgstr "Basura encontrada al final de client-final-message."
 
-#: libpq/auth.c:271
+#: libpq/auth.c:269
 #, c-format
 msgid "authentication failed for user \"%s\": host rejected"
 msgstr "la autentificación falló para el usuario «%s»: anfitrión rechazado"
 
-#: libpq/auth.c:274
+#: libpq/auth.c:272
 #, c-format
 msgid "\"trust\" authentication failed for user \"%s\""
 msgstr "la autentificación «trust» falló para el usuario «%s»"
 
-#: libpq/auth.c:277
+#: libpq/auth.c:275
 #, c-format
 msgid "Ident authentication failed for user \"%s\""
 msgstr "la autentificación Ident falló para el usuario «%s»"
 
-#: libpq/auth.c:280
+#: libpq/auth.c:278
 #, c-format
 msgid "Peer authentication failed for user \"%s\""
 msgstr "la autentificación Peer falló para el usuario «%s»"
 
-#: libpq/auth.c:285
+#: libpq/auth.c:283
 #, c-format
 msgid "password authentication failed for user \"%s\""
 msgstr "la autentificación password falló para el usuario «%s»"
 
-#: libpq/auth.c:290
+#: libpq/auth.c:288
 #, c-format
 msgid "GSSAPI authentication failed for user \"%s\""
 msgstr "la autentificación GSSAPI falló para el usuario «%s»"
 
-#: libpq/auth.c:293
+#: libpq/auth.c:291
 #, c-format
 msgid "SSPI authentication failed for user \"%s\""
 msgstr "la autentificación SSPI falló para el usuario «%s»"
 
-#: libpq/auth.c:296
+#: libpq/auth.c:294
 #, c-format
 msgid "PAM authentication failed for user \"%s\""
 msgstr "la autentificación PAM falló para el usuario «%s»"
 
-#: libpq/auth.c:299
+#: libpq/auth.c:297
 #, c-format
 msgid "BSD authentication failed for user \"%s\""
 msgstr "la autentificación BSD falló para el usuario «%s»"
 
-#: libpq/auth.c:302
+#: libpq/auth.c:300
 #, c-format
 msgid "LDAP authentication failed for user \"%s\""
 msgstr "la autentificación LDAP falló para el usuario «%s»"
 
-#: libpq/auth.c:305
+#: libpq/auth.c:303
 #, c-format
 msgid "certificate authentication failed for user \"%s\""
 msgstr "la autentificación por certificado falló para el usuario «%s»"
 
-#: libpq/auth.c:308
+#: libpq/auth.c:306
 #, c-format
 msgid "RADIUS authentication failed for user \"%s\""
 msgstr "la autentificación RADIUS falló para el usuario «%s»"
 
-#: libpq/auth.c:311
+#: libpq/auth.c:309
 #, c-format
 msgid "authentication failed for user \"%s\": invalid authentication method"
 msgstr "la autentificación falló para el usuario «%s»: método de autentificación no válido"
 
-#: libpq/auth.c:315
-#, fuzzy, c-format
-#| msgid "reconnection failed: %s"
-msgid "Connection matched %s line %d: \"%s\""
-msgstr "falló la reconexión: %s"
+#: libpq/auth.c:313
+#, c-format
+msgid "Connection matched file \"%s\" line %d: \"%s\""
+msgstr "La conexión coincidió con el archivo «%s» línea %d: «%s»"
 
-#: libpq/auth.c:359
+#: libpq/auth.c:357
 #, c-format
 msgid "authentication identifier set more than once"
 msgstr "identificador de autentificación establecido más de una vez"
 
-#: libpq/auth.c:360
+#: libpq/auth.c:358
 #, c-format
 msgid "previous identifier: \"%s\"; new identifier: \"%s\""
 msgstr "identificador anterior: «%s»; nuevo identificador: «%s»"
 
-#: libpq/auth.c:370
+#: libpq/auth.c:368
 #, c-format
 msgid "connection authenticated: identity=\"%s\" method=%s (%s:%d)"
 msgstr "conexión autenticada: identidad=«%s» método=%s (%s:%d)"
 
-#: libpq/auth.c:410
+#: libpq/auth.c:408
 #, c-format
 msgid "client certificates can only be checked if a root certificate store is available"
 msgstr "los certificados de cliente sólo pueden verificarse si un almacén de certificado raíz está disponible"
 
-#: libpq/auth.c:421
+#: libpq/auth.c:419
 #, c-format
 msgid "connection requires a valid client certificate"
 msgstr "la conexión requiere un certificado de cliente válido"
 
-#: libpq/auth.c:452 libpq/auth.c:498
+#: libpq/auth.c:450 libpq/auth.c:496
 msgid "GSS encryption"
 msgstr "cifrado GSS"
 
-#: libpq/auth.c:455 libpq/auth.c:501
+#: libpq/auth.c:453 libpq/auth.c:499
 msgid "SSL encryption"
 msgstr "cifrado SSL"
 
-#: libpq/auth.c:457 libpq/auth.c:503
+#: libpq/auth.c:455 libpq/auth.c:501
 msgid "no encryption"
 msgstr "sin cifrado"
 
 #. translator: last %s describes encryption state
-#: libpq/auth.c:463
+#: libpq/auth.c:461
 #, c-format
 msgid "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\", %s"
 msgstr "pg_hba.conf rechaza la conexión de replicación para el servidor «%s», usuario «%s», %s"
 
 #. translator: last %s describes encryption state
-#: libpq/auth.c:470
+#: libpq/auth.c:468
 #, c-format
 msgid "pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\", %s"
 msgstr "pg_hba.conf rechaza la conexión para el servidor «%s», usuario «%s», base de datos «%s», %s"
 
-#: libpq/auth.c:508
+#: libpq/auth.c:506
 #, c-format
 msgid "Client IP address resolved to \"%s\", forward lookup matches."
 msgstr "La dirección IP del cliente fue resuelta a «%s», este resultado es coincidente."
 
-#: libpq/auth.c:511
+#: libpq/auth.c:509
 #, c-format
 msgid "Client IP address resolved to \"%s\", forward lookup not checked."
 msgstr "La dirección IP del cliente fue resuelta a «%s», este resultado no fue verificado."
 
-#: libpq/auth.c:514
+#: libpq/auth.c:512
 #, c-format
 msgid "Client IP address resolved to \"%s\", forward lookup does not match."
 msgstr "La dirección IP del cliente fue resuelta a «%s», este resultado no es coincidente."
 
-#: libpq/auth.c:517
+#: libpq/auth.c:515
 #, c-format
 msgid "Could not translate client host name \"%s\" to IP address: %s."
 msgstr "No se pudo traducir el nombre de host del cliente «%s» a una dirección IP: %s."
 
-#: libpq/auth.c:522
+#: libpq/auth.c:520
 #, c-format
 msgid "Could not resolve client IP address to a host name: %s."
 msgstr "No se pudo obtener la dirección IP del cliente a un nombre de host: %s."
 
 #. translator: last %s describes encryption state
-#: libpq/auth.c:530
+#: libpq/auth.c:528
 #, c-format
 msgid "no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\", %s"
 msgstr "no hay una línea en pg_hba.conf para la conexión de replicación desde el servidor «%s», usuario «%s», %s"
 
 #. translator: last %s describes encryption state
-#: libpq/auth.c:538
+#: libpq/auth.c:536
 #, c-format
 msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\", %s"
 msgstr "no hay una línea en pg_hba.conf para «%s», usuario «%s», base de datos «%s», %s"
 
-#: libpq/auth.c:711
+#: libpq/auth.c:656
+#, c-format
+msgid "connection authenticated: user=\"%s\" method=%s (%s:%d)"
+msgstr "conexión autenticada: usuario=«%s» método=%s (%s:%d)"
+
+#: libpq/auth.c:725
 #, c-format
 msgid "expected password response, got message type %d"
 msgstr "se esperaba una respuesta de contraseña, se obtuvo mensaje de tipo %d"
 
-#: libpq/auth.c:732
+#: libpq/auth.c:746
 #, c-format
 msgid "invalid password packet size"
 msgstr "el tamaño del paquete de contraseña no es válido"
 
-#: libpq/auth.c:750
+#: libpq/auth.c:764
 #, c-format
 msgid "empty password returned by client"
 msgstr "el cliente retornó una contraseña vacía"
 
-#: libpq/auth.c:879 libpq/hba.c:1749
-#, c-format
-msgid "MD5 authentication is not supported when \"db_user_namespace\" is enabled"
-msgstr "la autentificación MD5 no está soportada cuando «db_user_namespace» está activo"
-
-#: libpq/auth.c:885
+#: libpq/auth.c:892
 #, c-format
 msgid "could not generate random MD5 salt"
 msgstr "no se pudo generar una sal MD5 aleatoria"
 
-#: libpq/auth.c:936 libpq/be-secure-gssapi.c:540
+#: libpq/auth.c:943 libpq/be-secure-gssapi.c:540
 #, c-format
 msgid "could not set environment: %m"
 msgstr "no se pudo establecer el ambiente: %m"
 
-#: libpq/auth.c:975
+#: libpq/auth.c:982
 #, c-format
 msgid "expected GSS response, got message type %d"
 msgstr "se esperaba una respuesta GSS, se obtuvo mensaje de tipo %d"
 
-#: libpq/auth.c:1041
+#: libpq/auth.c:1048
 msgid "accepting GSS security context failed"
 msgstr "falló la aceptación del contexto de seguridad GSS"
 
-#: libpq/auth.c:1082
+#: libpq/auth.c:1089
 msgid "retrieving GSS user name failed"
 msgstr "falló la obtención del nombre de usuario GSS"
 
-#: libpq/auth.c:1228
+#: libpq/auth.c:1235
 msgid "could not acquire SSPI credentials"
 msgstr "no se pudo obtener las credenciales SSPI"
 
-#: libpq/auth.c:1253
+#: libpq/auth.c:1260
 #, c-format
 msgid "expected SSPI response, got message type %d"
 msgstr "se esperaba una respuesta SSPI, se obtuvo mensaje de tipo %d"
 
-#: libpq/auth.c:1331
+#: libpq/auth.c:1338
 msgid "could not accept SSPI security context"
 msgstr "no se pudo aceptar un contexto SSPI"
 
-#: libpq/auth.c:1372
+#: libpq/auth.c:1379
 msgid "could not get token from SSPI security context"
 msgstr "no se pudo obtener un testigo (token) desde el contexto de seguridad SSPI"
 
-#: libpq/auth.c:1508 libpq/auth.c:1527
+#: libpq/auth.c:1515 libpq/auth.c:1534
 #, c-format
 msgid "could not translate name"
 msgstr "no se pudo traducir el nombre"
 
-#: libpq/auth.c:1540
+#: libpq/auth.c:1547
 #, c-format
 msgid "realm name too long"
 msgstr "nombre de «realm» demasiado largo"
 
-#: libpq/auth.c:1555
+#: libpq/auth.c:1562
 #, c-format
 msgid "translated account name too long"
 msgstr "nombre de cuenta traducido demasiado largo"
 
-#: libpq/auth.c:1734
+#: libpq/auth.c:1741
 #, c-format
 msgid "could not create socket for Ident connection: %m"
 msgstr "no se pudo crear un socket para conexión Ident: %m"
 
-#: libpq/auth.c:1749
+#: libpq/auth.c:1756
 #, c-format
 msgid "could not bind to local address \"%s\": %m"
 msgstr "no se pudo enlazar a la dirección local «%s»: %m"
 
-#: libpq/auth.c:1761
+#: libpq/auth.c:1768
 #, c-format
 msgid "could not connect to Ident server at address \"%s\", port %s: %m"
 msgstr "no se pudo conectar al servidor Ident en dirección «%s», port %s: %m"
 
-#: libpq/auth.c:1783
+#: libpq/auth.c:1790
 #, c-format
 msgid "could not send query to Ident server at address \"%s\", port %s: %m"
 msgstr "no se pudo enviar consulta Ident al servidor «%s», port %s: %m"
 
-#: libpq/auth.c:1800
+#: libpq/auth.c:1807
 #, c-format
 msgid "could not receive response from Ident server at address \"%s\", port %s: %m"
 msgstr "no se pudo recibir respuesta Ident desde el servidor «%s», port %s: %m"
 
-#: libpq/auth.c:1810
+#: libpq/auth.c:1817
 #, c-format
 msgid "invalidly formatted response from Ident server: \"%s\""
 msgstr "respuesta del servidor Ident en formato no válido: «%s»"
 
-#: libpq/auth.c:1863
+#: libpq/auth.c:1870
 #, c-format
 msgid "peer authentication is not supported on this platform"
 msgstr "método de autentificación peer no está soportado en esta plataforma"
 
-#: libpq/auth.c:1867
+#: libpq/auth.c:1874
 #, c-format
 msgid "could not get peer credentials: %m"
 msgstr "no se pudo recibir credenciales: %m"
 
-#: libpq/auth.c:1879
+#: libpq/auth.c:1886
 #, c-format
 msgid "could not look up local user ID %ld: %s"
 msgstr "no se pudo encontrar el ID del usuario local %ld: %s"
 
-#: libpq/auth.c:1981
+#: libpq/auth.c:1988
 #, c-format
 msgid "error from underlying PAM layer: %s"
 msgstr "se ha recibido un error de la biblioteca PAM: %s"
 
-#: libpq/auth.c:1992
+#: libpq/auth.c:1999
 #, c-format
 msgid "unsupported PAM conversation %d/\"%s\""
 msgstr "conversación PAM no soportada: %d/«%s»"
 
-#: libpq/auth.c:2049
+#: libpq/auth.c:2056
 #, c-format
 msgid "could not create PAM authenticator: %s"
 msgstr "no se pudo crear autenticador PAM: %s"
 
-#: libpq/auth.c:2060
+#: libpq/auth.c:2067
 #, c-format
 msgid "pam_set_item(PAM_USER) failed: %s"
 msgstr "pam_set_item(PAM_USER) falló: %s"
 
-#: libpq/auth.c:2092
+#: libpq/auth.c:2099
 #, c-format
 msgid "pam_set_item(PAM_RHOST) failed: %s"
 msgstr "pam_set_item(PAM_RHOST) falló: %s"
 
-#: libpq/auth.c:2104
+#: libpq/auth.c:2111
 #, c-format
 msgid "pam_set_item(PAM_CONV) failed: %s"
 msgstr "pam_set_item(PAM_CONV) falló: %s"
 
-#: libpq/auth.c:2117
+#: libpq/auth.c:2124
 #, c-format
 msgid "pam_authenticate failed: %s"
 msgstr "pam_authenticate falló: %s"
 
-#: libpq/auth.c:2130
+#: libpq/auth.c:2137
 #, c-format
 msgid "pam_acct_mgmt failed: %s"
 msgstr "pam_acct_mgmt falló: %s"
 
-#: libpq/auth.c:2141
+#: libpq/auth.c:2148
 #, c-format
 msgid "could not release PAM authenticator: %s"
 msgstr "no se pudo liberar autenticador PAM: %s"
 
-#: libpq/auth.c:2221
+#: libpq/auth.c:2228
 #, c-format
 msgid "could not initialize LDAP: error code %d"
 msgstr "no se pudo inicializar LDAP: código de error %d"
 
-#: libpq/auth.c:2258
+#: libpq/auth.c:2265
 #, c-format
 msgid "could not extract domain name from ldapbasedn"
 msgstr "no se pudo extraer el nombre de dominio de ldapbasedn"
 
-#: libpq/auth.c:2266
+#: libpq/auth.c:2273
 #, c-format
 msgid "LDAP authentication could not find DNS SRV records for \"%s\""
 msgstr "la autentificación LDAP no pudo encontrar registros DNS SRV para «%s»"
 
-#: libpq/auth.c:2268
+#: libpq/auth.c:2275
 #, c-format
 msgid "Set an LDAP server name explicitly."
 msgstr "Defina un nombre de servidor LDAP explícitamente."
 
-#: libpq/auth.c:2320
+#: libpq/auth.c:2327
 #, c-format
 msgid "could not initialize LDAP: %s"
 msgstr "no se pudo inicializar LDAP: %s"
 
-#: libpq/auth.c:2330
+#: libpq/auth.c:2337
 #, c-format
 msgid "ldaps not supported with this LDAP library"
 msgstr "ldaps no está soportado con esta biblioteca LDAP"
 
-#: libpq/auth.c:2338
+#: libpq/auth.c:2345
 #, c-format
 msgid "could not initialize LDAP: %m"
 msgstr "no se pudo inicializar LDAP: %m"
 
-#: libpq/auth.c:2348
+#: libpq/auth.c:2355
 #, c-format
 msgid "could not set LDAP protocol version: %s"
 msgstr "no se pudo definir la versión de protocolo LDAP: %s"
 
-#: libpq/auth.c:2364
+#: libpq/auth.c:2371
 #, c-format
 msgid "could not start LDAP TLS session: %s"
 msgstr "no se pudo iniciar sesión de LDAP TLS: %s"
 
-#: libpq/auth.c:2441
+#: libpq/auth.c:2448
 #, c-format
 msgid "LDAP server not specified, and no ldapbasedn"
 msgstr "servidor LDAP no especificado, y no hay ldapbasedn"
 
-#: libpq/auth.c:2448
+#: libpq/auth.c:2455
 #, c-format
 msgid "LDAP server not specified"
 msgstr "servidor LDAP no especificado"
 
-#: libpq/auth.c:2510
+#: libpq/auth.c:2517
 #, c-format
 msgid "invalid character in user name for LDAP authentication"
 msgstr "carácter no válido en nombre de usuario para autentificación LDAP"
 
-#: libpq/auth.c:2527
+#: libpq/auth.c:2534
 #, c-format
 msgid "could not perform initial LDAP bind for ldapbinddn \"%s\" on server \"%s\": %s"
 msgstr "no se pudo hacer el enlace LDAP inicial para el ldapbinddb «%s» en el servidor «%s»: %s"
 
-#: libpq/auth.c:2557
+#: libpq/auth.c:2564
 #, c-format
 msgid "could not search LDAP for filter \"%s\" on server \"%s\": %s"
 msgstr "no se pudo hacer la búsqueda LDAP para el filtro «%s» en el servidor «%s»: %s"
 
-#: libpq/auth.c:2573
+#: libpq/auth.c:2580
 #, c-format
 msgid "LDAP user \"%s\" does not exist"
 msgstr "no existe el usuario LDAP «%s»"
 
-#: libpq/auth.c:2574
+#: libpq/auth.c:2581
 #, c-format
 msgid "LDAP search for filter \"%s\" on server \"%s\" returned no entries."
 msgstr "La búsqueda LDAP para el filtro «%s» en el servidor «%s» no retornó elementos."
 
-#: libpq/auth.c:2578
+#: libpq/auth.c:2585
 #, c-format
 msgid "LDAP user \"%s\" is not unique"
 msgstr "el usuario LDAP «%s» no es única"
 
-#: libpq/auth.c:2579
+#: libpq/auth.c:2586
 #, c-format
 msgid "LDAP search for filter \"%s\" on server \"%s\" returned %d entry."
 msgid_plural "LDAP search for filter \"%s\" on server \"%s\" returned %d entries."
 msgstr[0] "La búsqueda LDAP para el filtro «%s» en el servidor «%s» retornó %d elemento."
 msgstr[1] "La búsqueda LDAP para el filtro «%s» en el servidor «%s» retornó %d elementos."
 
-#: libpq/auth.c:2599
+#: libpq/auth.c:2606
 #, c-format
 msgid "could not get dn for the first entry matching \"%s\" on server \"%s\": %s"
 msgstr "no se pudo obtener el dn para la primera entrada que coincide con «%s» en el servidor «%s»: %s"
 
-#: libpq/auth.c:2620
-#, c-format
-msgid "could not unbind after searching for user \"%s\" on server \"%s\""
-msgstr "no se pudo desconectar (unbind) después de buscar al usuario «%s» en el servidor «%s»"
-
-#: libpq/auth.c:2651
+#: libpq/auth.c:2633
 #, c-format
 msgid "LDAP login failed for user \"%s\" on server \"%s\": %s"
 msgstr "falló el inicio de sesión LDAP para el usuario «%s» en el servidor «%s»: %s"
 
-#: libpq/auth.c:2683
+#: libpq/auth.c:2665
 #, c-format
 msgid "LDAP diagnostics: %s"
 msgstr "Diagnóstico LDAP: %s"
 
-#: libpq/auth.c:2721
+#: libpq/auth.c:2703
 #, c-format
 msgid "certificate authentication failed for user \"%s\": client certificate contains no user name"
 msgstr "la autentificación con certificado falló para el usuario «%s»: el certificado de cliente no contiene un nombre de usuario"
 
-#: libpq/auth.c:2742
+#: libpq/auth.c:2724
 #, c-format
 msgid "certificate authentication failed for user \"%s\": unable to retrieve subject DN"
 msgstr "la autentificación por certificado falló para el usuario «%s»: no se pudo obtener el DN del sujeto"
 
-#: libpq/auth.c:2765
+#: libpq/auth.c:2747
 #, c-format
 msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": DN mismatch"
 msgstr "la validación de certificado (clientcert=verify-full) falló para el usuario «%s»: discordancia de DN"
 
-#: libpq/auth.c:2770
+#: libpq/auth.c:2752
 #, c-format
 msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": CN mismatch"
 msgstr "la validación de certificado (clientcert=verify-full) falló para el usuario «%s»: discordancia de CN"
 
-#: libpq/auth.c:2872
+#: libpq/auth.c:2854
 #, c-format
 msgid "RADIUS server not specified"
 msgstr "servidor RADIUS no especificado"
 
-#: libpq/auth.c:2879
+#: libpq/auth.c:2861
 #, c-format
 msgid "RADIUS secret not specified"
 msgstr "secreto RADIUS no especificado"
 
-#: libpq/auth.c:2893
+#: libpq/auth.c:2875
 #, c-format
 msgid "RADIUS authentication does not support passwords longer than %d characters"
 msgstr "la autentificación RADIUS no soporta contraseñas más largas de %d caracteres"
 
-#: libpq/auth.c:2995 libpq/hba.c:2391
+#: libpq/auth.c:2977 libpq/hba.c:2352
 #, c-format
 msgid "could not translate RADIUS server name \"%s\" to address: %s"
 msgstr "no se pudo traducir el nombre de servidor RADIUS «%s» a dirección: %s"
 
-#: libpq/auth.c:3009
+#: libpq/auth.c:2991
 #, c-format
 msgid "could not generate random encryption vector"
 msgstr "no se pudo generar un vector aleatorio de encriptación"
 
-#: libpq/auth.c:3046
-#, fuzzy, c-format
-#| msgid "could not encrypt password: %s"
+#: libpq/auth.c:3028
+#, c-format
 msgid "could not perform MD5 encryption of password: %s"
-msgstr "no se pudo cifrar contraseña: %s"
+msgstr "no se pudo efectuar cifrado MD5 de contraseña: %s"
 
-#: libpq/auth.c:3073
+#: libpq/auth.c:3055
 #, c-format
 msgid "could not create RADIUS socket: %m"
 msgstr "no se pudo crear el socket RADIUS: %m"
 
-#: libpq/auth.c:3089
+#: libpq/auth.c:3071
 #, c-format
 msgid "could not bind local RADIUS socket: %m"
 msgstr "no se pudo enlazar el socket RADIUS local: %m"
 
-#: libpq/auth.c:3099
+#: libpq/auth.c:3081
 #, c-format
 msgid "could not send RADIUS packet: %m"
 msgstr "no se pudo enviar el paquete RADIUS: %m"
 
-#: libpq/auth.c:3133 libpq/auth.c:3159
+#: libpq/auth.c:3115 libpq/auth.c:3141
 #, c-format
 msgid "timeout waiting for RADIUS response from %s"
 msgstr "se agotó el tiempo de espera de la respuesta RADIUS desde %s"
 
-#: libpq/auth.c:3152
+#: libpq/auth.c:3134
 #, c-format
 msgid "could not check status on RADIUS socket: %m"
 msgstr "no se pudo verificar el estado en el socket %m"
 
-#: libpq/auth.c:3182
+#: libpq/auth.c:3164
 #, c-format
 msgid "could not read RADIUS response: %m"
 msgstr "no se pudo leer la respuesta RADIUS: %m"
 
-#: libpq/auth.c:3190
+#: libpq/auth.c:3172
 #, c-format
 msgid "RADIUS response from %s was sent from incorrect port: %d"
 msgstr "la respuesta RADIUS desde %s fue enviada desde el port incorrecto: %d"
 
-#: libpq/auth.c:3198
+#: libpq/auth.c:3180
 #, c-format
 msgid "RADIUS response from %s too short: %d"
 msgstr "la respuesta RADIUS desde %s es demasiado corta: %d"
 
-#: libpq/auth.c:3205
+#: libpq/auth.c:3187
 #, c-format
 msgid "RADIUS response from %s has corrupt length: %d (actual length %d)"
 msgstr "la respuesta RADIUS desde %ss tiene largo corrupto: %d (largo real %d)"
 
-#: libpq/auth.c:3213
+#: libpq/auth.c:3195
 #, c-format
 msgid "RADIUS response from %s is to a different request: %d (should be %d)"
 msgstr "la respuesta RADIUS desde %s es a una petición diferente: %d (debería ser %d)"
 
-#: libpq/auth.c:3238
-#, fuzzy, c-format
-#| msgid "could not send feedback packet: %s"
+#: libpq/auth.c:3220
+#, c-format
 msgid "could not perform MD5 encryption of received packet: %s"
-msgstr "no se pudo enviar el paquete de retroalimentación: %s"
+msgstr "no se pudo efectuar cifrado MD5 del paquete recibido: %s"
 
-#: libpq/auth.c:3248
+#: libpq/auth.c:3230
 #, c-format
 msgid "RADIUS response from %s has incorrect MD5 signature"
 msgstr "la respuesta RADIUS desde %s tiene firma MD5 incorrecta"
 
-#: libpq/auth.c:3266
+#: libpq/auth.c:3248
 #, c-format
 msgid "RADIUS response from %s has invalid code (%d) for user \"%s\""
 msgstr "la respuesta RADIUS desde %s tiene código no válido (%d) para el usuario «%s»"
@@ -14835,64 +15140,51 @@ msgstr "no se pudo escribir el archivo del servidor «%s»: %m"
 msgid "large object read request is too large"
 msgstr "el tamaño de petición de lectura de objeto grande es muy grande"
 
-#: libpq/be-fsstubs.c:816 utils/adt/genfile.c:262 utils/adt/genfile.c:294
-#: utils/adt/genfile.c:315
+#: libpq/be-fsstubs.c:816 utils/adt/genfile.c:248 utils/adt/genfile.c:269
 #, c-format
 msgid "requested length cannot be negative"
 msgstr "el tamaño solicitado no puede ser negativo"
 
-#: libpq/be-fsstubs.c:871 storage/large_object/inv_api.c:299
-#: storage/large_object/inv_api.c:311 storage/large_object/inv_api.c:508
-#: storage/large_object/inv_api.c:619 storage/large_object/inv_api.c:809
-#, c-format
-msgid "permission denied for large object %u"
-msgstr "permiso denegado al objeto grande %u"
-
-#: libpq/be-secure-common.c:71
-#, c-format
-msgid "could not read from command \"%s\": %m"
-msgstr "no se pudo leer desde la orden «%s»: %m"
-
-#: libpq/be-secure-common.c:91
+#: libpq/be-secure-common.c:94
 #, c-format
 msgid "command \"%s\" failed"
 msgstr "la orden «%s» falló"
 
-#: libpq/be-secure-common.c:119
+#: libpq/be-secure-common.c:123
 #, c-format
 msgid "could not access private key file \"%s\": %m"
 msgstr "no se pudo acceder al archivo de la llave privada «%s»: %m"
 
-#: libpq/be-secure-common.c:129
+#: libpq/be-secure-common.c:133
 #, c-format
 msgid "private key file \"%s\" is not a regular file"
 msgstr "el archivo de llave privada «%s» no es un archivo regular"
 
-#: libpq/be-secure-common.c:155
+#: libpq/be-secure-common.c:159
 #, c-format
 msgid "private key file \"%s\" must be owned by the database user or root"
 msgstr "el archivo de llave privada «%s» debe ser de propiedad del usuario de base de datos o root"
 
-#: libpq/be-secure-common.c:165
+#: libpq/be-secure-common.c:169
 #, c-format
 msgid "private key file \"%s\" has group or world access"
 msgstr "el archivo de la llave privada «%s» tiene acceso para el grupo u otros"
 
-#: libpq/be-secure-common.c:167
+#: libpq/be-secure-common.c:171
 #, c-format
 msgid "File must have permissions u=rw (0600) or less if owned by the database user, or permissions u=rw,g=r (0640) or less if owned by root."
 msgstr "El archivo debe tener permisos u=rw (0600) o menos si es de propiedad del usuario de base deatos, o permisos u=rw,g=r (0640) o menos si es de root."
 
-#: libpq/be-secure-gssapi.c:204
+#: libpq/be-secure-gssapi.c:201
 msgid "GSSAPI wrap error"
 msgstr "error de «wrap» de GSSAPI"
 
-#: libpq/be-secure-gssapi.c:211
+#: libpq/be-secure-gssapi.c:208
 #, c-format
 msgid "outgoing GSSAPI message would not use confidentiality"
 msgstr "mensaje saliente GSSAPI no proveería confidencialidad"
 
-#: libpq/be-secure-gssapi.c:218 libpq/be-secure-gssapi.c:634
+#: libpq/be-secure-gssapi.c:215 libpq/be-secure-gssapi.c:634
 #, c-format
 msgid "server tried to send oversize GSSAPI packet (%zu > %zu)"
 msgstr "el servidor intentó enviar un paquete GSSAPI demasiado grande (%zu > %zu)"
@@ -14924,819 +15216,810 @@ msgstr "no se pudo aceptar un contexto de seguridad GSSAPI"
 msgid "GSSAPI size check error"
 msgstr "error de verificación de tamaño GSSAPI"
 
-#: libpq/be-secure-openssl.c:125
+#: libpq/be-secure-openssl.c:131
 #, c-format
 msgid "could not create SSL context: %s"
 msgstr "no se pudo crear un contexto SSL: %s"
 
-#: libpq/be-secure-openssl.c:151
+#: libpq/be-secure-openssl.c:157
 #, c-format
 msgid "could not load server certificate file \"%s\": %s"
 msgstr "no se pudo cargar el archivo de certificado de servidor «%s»: %s"
 
-#: libpq/be-secure-openssl.c:171
+#: libpq/be-secure-openssl.c:177
 #, c-format
 msgid "private key file \"%s\" cannot be reloaded because it requires a passphrase"
 msgstr "el archivo de clave privada \"%s\" no se puede volver a cargar porque requiere una contraseña"
 
-#: libpq/be-secure-openssl.c:176
+#: libpq/be-secure-openssl.c:182
 #, c-format
 msgid "could not load private key file \"%s\": %s"
 msgstr "no se pudo cargar el archivo de la llave privada «%s»: %s"
 
-#: libpq/be-secure-openssl.c:185
+#: libpq/be-secure-openssl.c:191
 #, c-format
 msgid "check of private key failed: %s"
 msgstr "falló la revisión de la llave privada: %s"
 
 #. translator: first %s is a GUC option name, second %s is its value
-#: libpq/be-secure-openssl.c:198 libpq/be-secure-openssl.c:221
+#: libpq/be-secure-openssl.c:204 libpq/be-secure-openssl.c:227
 #, c-format
 msgid "\"%s\" setting \"%s\" not supported by this build"
 msgstr "el valor «%2$s» para la opción «%1$s» no está soportado en este servidor"
 
-#: libpq/be-secure-openssl.c:208
+#: libpq/be-secure-openssl.c:214
 #, c-format
 msgid "could not set minimum SSL protocol version"
 msgstr "no se pudo definir la versión mínima de protocolo SSL"
 
-#: libpq/be-secure-openssl.c:231
+#: libpq/be-secure-openssl.c:237
 #, c-format
 msgid "could not set maximum SSL protocol version"
 msgstr "no se pudo definir la versión máxima de protocolo SSL"
 
-#: libpq/be-secure-openssl.c:247
+#: libpq/be-secure-openssl.c:253
 #, c-format
 msgid "could not set SSL protocol version range"
 msgstr "no se pudo definir el rango de versión de protocolo SSL"
 
-#: libpq/be-secure-openssl.c:248
+#: libpq/be-secure-openssl.c:254
 #, c-format
 msgid "\"%s\" cannot be higher than \"%s\""
 msgstr "«%s» no puede ser más alto que «%s»"
 
-#: libpq/be-secure-openssl.c:285
+#: libpq/be-secure-openssl.c:307
 #, c-format
 msgid "could not set the cipher list (no valid ciphers available)"
 msgstr "no se pudo establecer la lista de cifrado (no hay cifradores disponibles)"
 
-#: libpq/be-secure-openssl.c:305
+#: libpq/be-secure-openssl.c:327
 #, c-format
 msgid "could not load root certificate file \"%s\": %s"
 msgstr "no se pudo cargar el archivo del certificado raíz «%s»: %s"
 
-#: libpq/be-secure-openssl.c:354
+#: libpq/be-secure-openssl.c:376
 #, c-format
 msgid "could not load SSL certificate revocation list file \"%s\": %s"
 msgstr "no se pudo cargar el archivo de lista de revocación de certificados SSL «%s»: %s"
 
-#: libpq/be-secure-openssl.c:362
+#: libpq/be-secure-openssl.c:384
 #, c-format
 msgid "could not load SSL certificate revocation list directory \"%s\": %s"
 msgstr "no se pudo cargar el directorio de lista de revocación de certificados SSL «%s»: %s"
 
-#: libpq/be-secure-openssl.c:370
+#: libpq/be-secure-openssl.c:392
 #, c-format
 msgid "could not load SSL certificate revocation list file \"%s\" or directory \"%s\": %s"
 msgstr "no se pudo cargar el archivo de lista de revocación de certificados SSL «%s» o directorio «%s»: %s"
 
-#: libpq/be-secure-openssl.c:428
+#: libpq/be-secure-openssl.c:450
 #, c-format
 msgid "could not initialize SSL connection: SSL context not set up"
 msgstr "no se pudo inicializar la conexión SSL: el contexto SSL no está instalado"
 
-#: libpq/be-secure-openssl.c:439
+#: libpq/be-secure-openssl.c:464
 #, c-format
 msgid "could not initialize SSL connection: %s"
 msgstr "no se pudo inicializar la conexión SSL: %s"
 
-#: libpq/be-secure-openssl.c:447
+#: libpq/be-secure-openssl.c:472
 #, c-format
 msgid "could not set SSL socket: %s"
 msgstr "no se definir un socket SSL: %s"
 
-#: libpq/be-secure-openssl.c:502
+#: libpq/be-secure-openssl.c:528
 #, c-format
 msgid "could not accept SSL connection: %m"
 msgstr "no se pudo aceptar una conexión SSL: %m"
 
-#: libpq/be-secure-openssl.c:506 libpq/be-secure-openssl.c:561
+#: libpq/be-secure-openssl.c:532 libpq/be-secure-openssl.c:589
 #, c-format
 msgid "could not accept SSL connection: EOF detected"
 msgstr "no se pudo aceptar una conexión SSL: se detectó EOF"
 
-#: libpq/be-secure-openssl.c:545
+#: libpq/be-secure-openssl.c:573
 #, c-format
 msgid "could not accept SSL connection: %s"
 msgstr "no se pudo aceptar una conexión SSL: %s"
 
-#: libpq/be-secure-openssl.c:549
+#: libpq/be-secure-openssl.c:577
 #, c-format
 msgid "This may indicate that the client does not support any SSL protocol version between %s and %s."
 msgstr "Esto puede indicar que el cliente no soporta ninguna versión del protocolo SSL entre %s y %s."
 
-#: libpq/be-secure-openssl.c:566 libpq/be-secure-openssl.c:746
-#: libpq/be-secure-openssl.c:810
+#: libpq/be-secure-openssl.c:594 libpq/be-secure-openssl.c:809
+#: libpq/be-secure-openssl.c:879
 #, c-format
 msgid "unrecognized SSL error code: %d"
 msgstr "código de error SSL no reconocido: %d"
 
-#: libpq/be-secure-openssl.c:612
+#: libpq/be-secure-openssl.c:622
+#, c-format
+msgid "received SSL connection request with unexpected ALPN protocol"
+msgstr "recibido una solicitud de conexión SSL con protocolo ALPN inesperado"
+
+#: libpq/be-secure-openssl.c:666
 #, c-format
 msgid "SSL certificate's common name contains embedded null"
 msgstr "el «common name» del certificado SSL contiene un carácter null"
 
-#: libpq/be-secure-openssl.c:652
+#: libpq/be-secure-openssl.c:712
 #, c-format
 msgid "SSL certificate's distinguished name contains embedded null"
 msgstr "el elemento de nombre distinguido en el certificado SSL contiene un carácter null"
 
-#: libpq/be-secure-openssl.c:735 libpq/be-secure-openssl.c:794
+#: libpq/be-secure-openssl.c:798 libpq/be-secure-openssl.c:863
 #, c-format
 msgid "SSL error: %s"
 msgstr "error de SSL: %s"
 
-#: libpq/be-secure-openssl.c:976
+#: libpq/be-secure-openssl.c:1038
 #, c-format
 msgid "could not open DH parameters file \"%s\": %m"
 msgstr "no se pudo abrir el archivo de parámetros DH «%s»: %m"
 
-#: libpq/be-secure-openssl.c:988
+#: libpq/be-secure-openssl.c:1050
 #, c-format
 msgid "could not load DH parameters file: %s"
 msgstr "no se pudo cargar el archivo de parámetros DH: %s"
 
-#: libpq/be-secure-openssl.c:998
+#: libpq/be-secure-openssl.c:1060
 #, c-format
 msgid "invalid DH parameters: %s"
 msgstr "parámetros DH no válidos: %s"
 
-#: libpq/be-secure-openssl.c:1007
+#: libpq/be-secure-openssl.c:1069
 #, c-format
 msgid "invalid DH parameters: p is not prime"
 msgstr "parámetros DH no válidos: p no es primo"
 
-#: libpq/be-secure-openssl.c:1016
+#: libpq/be-secure-openssl.c:1078
 #, c-format
 msgid "invalid DH parameters: neither suitable generator or safe prime"
 msgstr "parámetros DH no válidos: no hay generador apropiado o primo seguro"
 
-#: libpq/be-secure-openssl.c:1152
-#, fuzzy, c-format
-#| msgid "certificate authentication failed for user \"%s\""
+#: libpq/be-secure-openssl.c:1214
+#, c-format
 msgid "Client certificate verification failed at depth %d: %s."
-msgstr "la autentificación por certificado falló para el usuario «%s»"
+msgstr "La autentificación por certificado de cliente falló en la profundidad %d: %s."
 
-#: libpq/be-secure-openssl.c:1189
+#: libpq/be-secure-openssl.c:1251
 #, c-format
 msgid "Failed certificate data (unverified): subject \"%s\", serial number %s, issuer \"%s\"."
-msgstr ""
+msgstr "Datos del certificado fallido (sin verificar): sujeto «%s», número de serie %s, emisor «%s»."
 
-#: libpq/be-secure-openssl.c:1190
+#: libpq/be-secure-openssl.c:1252
 msgid "unknown"
 msgstr "desconocido"
 
-#: libpq/be-secure-openssl.c:1281
+#: libpq/be-secure-openssl.c:1389
 #, c-format
 msgid "DH: could not load DH parameters"
 msgstr "DH: no se pudo cargar los parámetros DH"
 
-#: libpq/be-secure-openssl.c:1289
+#: libpq/be-secure-openssl.c:1397
 #, c-format
 msgid "DH: could not set DH parameters: %s"
 msgstr "DH: no se pudo definir los parámetros DH: %s"
 
-#: libpq/be-secure-openssl.c:1316
+#: libpq/be-secure-openssl.c:1424
 #, c-format
 msgid "ECDH: unrecognized curve name: %s"
 msgstr "ECDH: nombre de curva no reconocida: %s"
 
-#: libpq/be-secure-openssl.c:1325
+#: libpq/be-secure-openssl.c:1433
 #, c-format
 msgid "ECDH: could not create key"
 msgstr "ECDH: no se pudo crear la llave"
 
-#: libpq/be-secure-openssl.c:1353
+#: libpq/be-secure-openssl.c:1461
 msgid "no SSL error reported"
 msgstr "código de error SSL no reportado"
 
-#: libpq/be-secure-openssl.c:1357
+#: libpq/be-secure-openssl.c:1479
 #, c-format
 msgid "SSL error code %lu"
 msgstr "código de error SSL %lu"
 
-#: libpq/be-secure-openssl.c:1516
+#: libpq/be-secure-openssl.c:1636
 #, c-format
 msgid "could not create BIO"
 msgstr "no se pudo crear BIO"
 
-#: libpq/be-secure-openssl.c:1526
+#: libpq/be-secure-openssl.c:1646
 #, c-format
 msgid "could not get NID for ASN1_OBJECT object"
 msgstr "no se pudo obtener NID para objeto ASN1_OBJECT"
 
-#: libpq/be-secure-openssl.c:1534
+#: libpq/be-secure-openssl.c:1654
 #, c-format
 msgid "could not convert NID %d to an ASN1_OBJECT structure"
 msgstr "no se pudo convertir NID %d en una estructura ASN1_OBJECT"
 
-#: libpq/be-secure.c:207 libpq/be-secure.c:303
-#, c-format
-msgid "terminating connection due to unexpected postmaster exit"
-msgstr "terminando la conexión debido al término inesperado de postmaster"
-
-#: libpq/crypt.c:49
+#: libpq/crypt.c:48
 #, c-format
 msgid "Role \"%s\" does not exist."
 msgstr "No existe el rol «%s»."
 
-#: libpq/crypt.c:59
+#: libpq/crypt.c:58
 #, c-format
 msgid "User \"%s\" has no password assigned."
 msgstr "El usuario «%s» no tiene una contraseña asignada."
 
-#: libpq/crypt.c:77
+#: libpq/crypt.c:76
 #, c-format
 msgid "User \"%s\" has an expired password."
 msgstr "El usuario «%s» tiene contraseña expirada."
 
-#: libpq/crypt.c:183
+#: libpq/crypt.c:182
 #, c-format
 msgid "User \"%s\" has a password that cannot be used with MD5 authentication."
 msgstr "El usuario \"%s\" tiene una contraseña que no se puede usar con la autentificación MD5."
 
-#: libpq/crypt.c:204 libpq/crypt.c:246 libpq/crypt.c:266
+#: libpq/crypt.c:203 libpq/crypt.c:245 libpq/crypt.c:265
 #, c-format
 msgid "Password does not match for user \"%s\"."
 msgstr "La contraseña no coincide para el usuario «%s»."
 
-#: libpq/crypt.c:285
+#: libpq/crypt.c:284
 #, c-format
 msgid "Password of user \"%s\" is in unrecognized format."
 msgstr "La contraseña del usuario \"%s\" está en un formato no reconocido."
 
-#: libpq/hba.c:234
-#, c-format
-msgid "authentication file token too long, skipping: \"%s\""
-msgstr "una palabra en el archivo de autentificación es demasiado larga, omitiendo: «%s»"
-
-#: libpq/hba.c:357
+#: libpq/hba.c:327
 #, c-format
 msgid "invalid regular expression \"%s\": %s"
 msgstr "la expresión regular «%s» no es válida: %s"
 
-#: libpq/hba.c:359 libpq/hba.c:688 libpq/hba.c:1272 libpq/hba.c:1292
-#: libpq/hba.c:1315 libpq/hba.c:1328 libpq/hba.c:1381 libpq/hba.c:1409
-#: libpq/hba.c:1417 libpq/hba.c:1429 libpq/hba.c:1450 libpq/hba.c:1463
-#: libpq/hba.c:1488 libpq/hba.c:1515 libpq/hba.c:1527 libpq/hba.c:1586
-#: libpq/hba.c:1606 libpq/hba.c:1620 libpq/hba.c:1640 libpq/hba.c:1651
-#: libpq/hba.c:1666 libpq/hba.c:1685 libpq/hba.c:1701 libpq/hba.c:1713
-#: libpq/hba.c:1750 libpq/hba.c:1791 libpq/hba.c:1804 libpq/hba.c:1826
-#: libpq/hba.c:1838 libpq/hba.c:1856 libpq/hba.c:1906 libpq/hba.c:1950
-#: libpq/hba.c:1961 libpq/hba.c:1977 libpq/hba.c:1994 libpq/hba.c:2005
-#: libpq/hba.c:2024 libpq/hba.c:2040 libpq/hba.c:2056 libpq/hba.c:2115
-#: libpq/hba.c:2132 libpq/hba.c:2145 libpq/hba.c:2157 libpq/hba.c:2176
-#: libpq/hba.c:2262 libpq/hba.c:2280 libpq/hba.c:2374 libpq/hba.c:2393
-#: libpq/hba.c:2422 libpq/hba.c:2435 libpq/hba.c:2458 libpq/hba.c:2480
-#: libpq/hba.c:2494 tsearch/ts_locale.c:243
+#: libpq/hba.c:329 libpq/hba.c:661 libpq/hba.c:1245 libpq/hba.c:1265
+#: libpq/hba.c:1288 libpq/hba.c:1301 libpq/hba.c:1354 libpq/hba.c:1382
+#: libpq/hba.c:1390 libpq/hba.c:1402 libpq/hba.c:1423 libpq/hba.c:1436
+#: libpq/hba.c:1461 libpq/hba.c:1488 libpq/hba.c:1500 libpq/hba.c:1559
+#: libpq/hba.c:1579 libpq/hba.c:1593 libpq/hba.c:1613 libpq/hba.c:1624
+#: libpq/hba.c:1639 libpq/hba.c:1658 libpq/hba.c:1674 libpq/hba.c:1686
+#: libpq/hba.c:1752 libpq/hba.c:1765 libpq/hba.c:1787 libpq/hba.c:1799
+#: libpq/hba.c:1817 libpq/hba.c:1867 libpq/hba.c:1911 libpq/hba.c:1922
+#: libpq/hba.c:1938 libpq/hba.c:1955 libpq/hba.c:1966 libpq/hba.c:1985
+#: libpq/hba.c:2001 libpq/hba.c:2017 libpq/hba.c:2076 libpq/hba.c:2093
+#: libpq/hba.c:2106 libpq/hba.c:2118 libpq/hba.c:2137 libpq/hba.c:2223
+#: libpq/hba.c:2241 libpq/hba.c:2335 libpq/hba.c:2354 libpq/hba.c:2383
+#: libpq/hba.c:2396 libpq/hba.c:2419 libpq/hba.c:2441 libpq/hba.c:2455
+#: tsearch/ts_locale.c:241
 #, c-format
 msgid "line %d of configuration file \"%s\""
 msgstr "línea %d del archivo de configuración «%s»"
 
-#: libpq/hba.c:484
-#, fuzzy, c-format
-#| msgid "skipping missing configuration file \"%s\""
+#: libpq/hba.c:457
+#, c-format
 msgid "skipping missing authentication file \"%s\""
-msgstr "omitiendo el archivo de configuración faltante «%s»"
+msgstr "omitiendo el archivo de autentificación faltante «%s»"
 
-#: libpq/hba.c:636
-#, fuzzy, c-format
-#| msgid "could not open configuration file \"%s\": maximum nesting depth exceeded"
+#: libpq/hba.c:609
+#, c-format
 msgid "could not open file \"%s\": maximum nesting depth exceeded"
-msgstr "no se pudo abrir el archivo de configuración «%s»: nivel de anidamiento máximo excedido"
+msgstr "no se pudo abrir el archivo «%s»: nivel de anidamiento máximo excedido"
 
-#: libpq/hba.c:1243
+#: libpq/hba.c:1216
 #, c-format
 msgid "error enumerating network interfaces: %m"
 msgstr "error al enumerar interfaces de red: %m"
 
 #. translator: the second %s is a list of auth methods
-#: libpq/hba.c:1270
+#: libpq/hba.c:1243
 #, c-format
 msgid "authentication option \"%s\" is only valid for authentication methods %s"
 msgstr "la opción de autentificación «%s» sólo es válida para los métodos de autentificación %s"
 
-#: libpq/hba.c:1290
+#: libpq/hba.c:1263
 #, c-format
 msgid "authentication method \"%s\" requires argument \"%s\" to be set"
 msgstr "el método de autentificación «%s» requiere que el argumento «%s» esté definido"
 
-#: libpq/hba.c:1314
-#, fuzzy, c-format
-#| msgid "missing \"%s\" at end of SQL expression"
+#: libpq/hba.c:1287
+#, c-format
 msgid "missing entry at end of line"
-msgstr "falta «%s» al final de la expresión SQL"
+msgstr "falta una entrada al final de la línea"
 
-#: libpq/hba.c:1327
+#: libpq/hba.c:1300
 #, c-format
 msgid "multiple values in ident field"
 msgstr "múltiples valores en campo «ident»"
 
-#: libpq/hba.c:1379
+#: libpq/hba.c:1352
 #, c-format
 msgid "multiple values specified for connection type"
 msgstr "múltiples valores especificados para tipo de conexión"
 
-#: libpq/hba.c:1380
+#: libpq/hba.c:1353
 #, c-format
 msgid "Specify exactly one connection type per line."
 msgstr "Especifique exactamente un tipo de conexión por línea."
 
-#: libpq/hba.c:1407
+#: libpq/hba.c:1380
 #, c-format
 msgid "hostssl record cannot match because SSL is disabled"
 msgstr "el registro hostssl no puede coincidir porque SSL está deshabilitado"
 
-#: libpq/hba.c:1408
+#: libpq/hba.c:1381
 #, c-format
-msgid "Set ssl = on in postgresql.conf."
+msgid "Set \"ssl = on\" in postgresql.conf."
 msgstr "Defina «ssl = on» en postgresql.conf."
 
-#: libpq/hba.c:1416
+#: libpq/hba.c:1389
 #, c-format
 msgid "hostssl record cannot match because SSL is not supported by this build"
 msgstr "el registro hostssl no puede coincidir porque SSL no está soportado en esta instalación"
 
-#: libpq/hba.c:1428
+#: libpq/hba.c:1401
 #, c-format
 msgid "hostgssenc record cannot match because GSSAPI is not supported by this build"
 msgstr "el registro hostgssenc no puede coincidir porque GSSAPI no está soportado en esta instalación"
 
-#: libpq/hba.c:1448
+#: libpq/hba.c:1421
 #, c-format
 msgid "invalid connection type \"%s\""
 msgstr "tipo de conexión «%s» no válido"
 
-#: libpq/hba.c:1462
+#: libpq/hba.c:1435
 #, c-format
 msgid "end-of-line before database specification"
 msgstr "fin de línea antes de especificación de base de datos"
 
-#: libpq/hba.c:1487
+#: libpq/hba.c:1460
 #, c-format
 msgid "end-of-line before role specification"
 msgstr "fin de línea antes de especificación de rol"
 
-#: libpq/hba.c:1514
+#: libpq/hba.c:1487
 #, c-format
 msgid "end-of-line before IP address specification"
 msgstr "fin de línea antes de especificación de dirección IP"
 
-#: libpq/hba.c:1525
+#: libpq/hba.c:1498
 #, c-format
 msgid "multiple values specified for host address"
 msgstr "múltiples valores especificados para la dirección de anfitrión"
 
-#: libpq/hba.c:1526
+#: libpq/hba.c:1499
 #, c-format
 msgid "Specify one address range per line."
 msgstr "Especifique un rango de direcciones por línea."
 
-#: libpq/hba.c:1584
+#: libpq/hba.c:1557
 #, c-format
 msgid "invalid IP address \"%s\": %s"
 msgstr "dirección IP «%s» no válida: %s"
 
-#: libpq/hba.c:1604
+#: libpq/hba.c:1577
 #, c-format
 msgid "specifying both host name and CIDR mask is invalid: \"%s\""
 msgstr "especificar tanto el nombre de host como la máscara CIDR no es válido: «%s»"
 
-#: libpq/hba.c:1618
+#: libpq/hba.c:1591
 #, c-format
 msgid "invalid CIDR mask in address \"%s\""
 msgstr "máscara CIDR no válida en dirección «%s»"
 
-#: libpq/hba.c:1638
+#: libpq/hba.c:1611
 #, c-format
 msgid "end-of-line before netmask specification"
 msgstr "fin de línea antes de especificación de máscara de red"
 
-#: libpq/hba.c:1639
+#: libpq/hba.c:1612
 #, c-format
 msgid "Specify an address range in CIDR notation, or provide a separate netmask."
 msgstr "Especifique un rango de direcciones en notación CIDR, o provea una netmask separadamente."
 
-#: libpq/hba.c:1650
+#: libpq/hba.c:1623
 #, c-format
 msgid "multiple values specified for netmask"
 msgstr "múltiples valores especificados para la máscara de red"
 
-#: libpq/hba.c:1664
+#: libpq/hba.c:1637
 #, c-format
 msgid "invalid IP mask \"%s\": %s"
 msgstr "máscara IP «%s» no válida: %s"
 
-#: libpq/hba.c:1684
+#: libpq/hba.c:1657
 #, c-format
 msgid "IP address and mask do not match"
 msgstr "La dirección y máscara IP no coinciden"
 
-#: libpq/hba.c:1700
+#: libpq/hba.c:1673
 #, c-format
 msgid "end-of-line before authentication method"
 msgstr "fin de línea antes de especificación de método de autentificación"
 
-#: libpq/hba.c:1711
+#: libpq/hba.c:1684
 #, c-format
 msgid "multiple values specified for authentication type"
 msgstr "múltiples valores especificados para el tipo de autentificación"
 
-#: libpq/hba.c:1712
+#: libpq/hba.c:1685
 #, c-format
 msgid "Specify exactly one authentication type per line."
 msgstr "Especifique exactamente un tipo de autentificación por línea."
 
-#: libpq/hba.c:1789
+#: libpq/hba.c:1750
 #, c-format
 msgid "invalid authentication method \"%s\""
 msgstr "método de autentificación «%s» no válido"
 
-#: libpq/hba.c:1802
+#: libpq/hba.c:1763
 #, c-format
 msgid "invalid authentication method \"%s\": not supported by this build"
 msgstr "método de autentificación «%s» no válido: este servidor no lo soporta"
 
-#: libpq/hba.c:1825
+#: libpq/hba.c:1786
 #, c-format
 msgid "gssapi authentication is not supported on local sockets"
 msgstr "la autentificación gssapi no está soportada en conexiones locales"
 
-#: libpq/hba.c:1837
+#: libpq/hba.c:1798
 #, c-format
 msgid "peer authentication is only supported on local sockets"
 msgstr "la autentificación peer sólo está soportada en conexiones locales"
 
-#: libpq/hba.c:1855
+#: libpq/hba.c:1816
 #, c-format
 msgid "cert authentication is only supported on hostssl connections"
 msgstr "la autentificación cert sólo está soportada en conexiones hostssl"
 
-#: libpq/hba.c:1905
+#: libpq/hba.c:1866
 #, c-format
 msgid "authentication option not in name=value format: %s"
 msgstr "opción de autentificación en formato nombre=valor: %s"
 
-#: libpq/hba.c:1949
+#: libpq/hba.c:1910
 #, c-format
 msgid "cannot use ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, ldapsearchfilter, or ldapurl together with ldapprefix"
 msgstr "no se puede usar ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, ldapsearchfilter o ldapurl junto con ldapprefix"
 
-#: libpq/hba.c:1960
+#: libpq/hba.c:1921
 #, c-format
 msgid "authentication method \"ldap\" requires argument \"ldapbasedn\", \"ldapprefix\", or \"ldapsuffix\" to be set"
 msgstr "el método de autentificación «ldap» requiere que los argumento «ldapbasedn», «ldapprefix» o «ldapsuffix» estén definidos"
 
-#: libpq/hba.c:1976
+#: libpq/hba.c:1937
 #, c-format
 msgid "cannot use ldapsearchattribute together with ldapsearchfilter"
 msgstr "no se puede usar ldapsearchattribute junto con ldapsearchfilter"
 
-#: libpq/hba.c:1993
+#: libpq/hba.c:1954
 #, c-format
 msgid "list of RADIUS servers cannot be empty"
 msgstr "la lista de servidores RADIUS no puede ser vacía"
 
-#: libpq/hba.c:2004
+#: libpq/hba.c:1965
 #, c-format
 msgid "list of RADIUS secrets cannot be empty"
 msgstr "la lista de secretos RADIUS no puede ser vacía"
 
-#: libpq/hba.c:2021
+#: libpq/hba.c:1982
 #, c-format
 msgid "the number of RADIUS secrets (%d) must be 1 or the same as the number of RADIUS servers (%d)"
 msgstr "el número de secretos RADIUS (%d) debe ser 1 o igual al número de servidores RADIUS (%d)"
 
-#: libpq/hba.c:2037
+#: libpq/hba.c:1998
 #, c-format
 msgid "the number of RADIUS ports (%d) must be 1 or the same as the number of RADIUS servers (%d)"
 msgstr "el número de puertos RADIUS (%d) debe ser 1 o igual al número de servidores RADIUS (%d)"
 
-#: libpq/hba.c:2053
+#: libpq/hba.c:2014
 #, c-format
 msgid "the number of RADIUS identifiers (%d) must be 1 or the same as the number of RADIUS servers (%d)"
 msgstr "el número de identificadores RADIUS (%d) debe ser 1 o igual al número de servidores RADIUS (%d)"
 
-#: libpq/hba.c:2105
+#: libpq/hba.c:2066
 msgid "ident, peer, gssapi, sspi, and cert"
 msgstr "ident, peer, gssapi, sspi y cert"
 
-#: libpq/hba.c:2114
+#: libpq/hba.c:2075
 #, c-format
 msgid "clientcert can only be configured for \"hostssl\" rows"
 msgstr "clientcert sólo puede ser configurado en líneas «hostssl»"
 
-#: libpq/hba.c:2131
+#: libpq/hba.c:2092
 #, c-format
 msgid "clientcert only accepts \"verify-full\" when using \"cert\" authentication"
 msgstr "clientcert solo acepta «verify-full» cuando se emplea autentificación «cert»"
 
-#: libpq/hba.c:2144
+#: libpq/hba.c:2105
 #, c-format
 msgid "invalid value for clientcert: \"%s\""
 msgstr "valor no válido para el parámetro clientcert: «%s»"
 
-#: libpq/hba.c:2156
+#: libpq/hba.c:2117
 #, c-format
 msgid "clientname can only be configured for \"hostssl\" rows"
 msgstr "clientname solo puede ser configurado en líneas «hostssl»"
 
-#: libpq/hba.c:2175
+#: libpq/hba.c:2136
 #, c-format
 msgid "invalid value for clientname: \"%s\""
 msgstr "valor no válido para el parámetro clientname: «%s»"
 
-#: libpq/hba.c:2208
+#: libpq/hba.c:2169
 #, c-format
 msgid "could not parse LDAP URL \"%s\": %s"
 msgstr "no se pudo interpretar la URL LDAP «%s»: %s"
 
-#: libpq/hba.c:2219
+#: libpq/hba.c:2180
 #, c-format
 msgid "unsupported LDAP URL scheme: %s"
 msgstr "esquema de URL LDAP no soportado: %s"
 
-#: libpq/hba.c:2243
+#: libpq/hba.c:2204
 #, c-format
 msgid "LDAP URLs not supported on this platform"
 msgstr "las URLs LDAP no está soportado en esta plataforma"
 
-#: libpq/hba.c:2261
+#: libpq/hba.c:2222
 #, c-format
 msgid "invalid ldapscheme value: \"%s\""
 msgstr "valor ldapscheme no válido: «%s»"
 
-#: libpq/hba.c:2279
+#: libpq/hba.c:2240
 #, c-format
 msgid "invalid LDAP port number: \"%s\""
 msgstr "número de puerto LDAP no válido: «%s»"
 
-#: libpq/hba.c:2325 libpq/hba.c:2332
+#: libpq/hba.c:2286 libpq/hba.c:2293
 msgid "gssapi and sspi"
 msgstr "gssapi y sspi"
 
-#: libpq/hba.c:2341 libpq/hba.c:2350
+#: libpq/hba.c:2302 libpq/hba.c:2311
 msgid "sspi"
 msgstr "sspi"
 
-#: libpq/hba.c:2372
+#: libpq/hba.c:2333
 #, c-format
 msgid "could not parse RADIUS server list \"%s\""
 msgstr "no se pudo interpretar la lista de servidores RADIUS «%s»"
 
-#: libpq/hba.c:2420
+#: libpq/hba.c:2381
 #, c-format
 msgid "could not parse RADIUS port list \"%s\""
 msgstr "no se pudo interpretar la lista de port RADIUS «%s»"
 
-#: libpq/hba.c:2434
+#: libpq/hba.c:2395
 #, c-format
 msgid "invalid RADIUS port number: \"%s\""
 msgstr "número de puerto RADIUS no válido: «%s»"
 
-#: libpq/hba.c:2456
+#: libpq/hba.c:2417
 #, c-format
 msgid "could not parse RADIUS secret list \"%s\""
 msgstr "no se pudo interpretar la lista de secretos RADIUS «%s»"
 
-#: libpq/hba.c:2478
+#: libpq/hba.c:2439
 #, c-format
 msgid "could not parse RADIUS identifiers list \"%s\""
 msgstr "no se pudo interpretar la lista de identificadores RADIUS «%s»"
 
-#: libpq/hba.c:2492
+#: libpq/hba.c:2453
 #, c-format
 msgid "unrecognized authentication option name: \"%s\""
 msgstr "nombre de opción de autentificación desconocido: «%s»"
 
-#: libpq/hba.c:2684
+#: libpq/hba.c:2645
 #, c-format
 msgid "configuration file \"%s\" contains no entries"
 msgstr "el archivo de configuración «%s» no contiene líneas"
 
-#: libpq/hba.c:2838
+#: libpq/hba.c:2798
 #, c-format
 msgid "regular expression match for \"%s\" failed: %s"
 msgstr "la coincidencia de expresión regular para «%s» falló: %s"
 
-#: libpq/hba.c:2862
+#: libpq/hba.c:2822
 #, c-format
 msgid "regular expression \"%s\" has no subexpressions as requested by backreference in \"%s\""
 msgstr "la expresión regular «%s» no tiene subexpresiones según lo requiere la referencia hacia atrás en «%s»"
 
-#: libpq/hba.c:2965
+#: libpq/hba.c:2925
 #, c-format
 msgid "provided user name (%s) and authenticated user name (%s) do not match"
 msgstr "el nombre de usuario entregado (%s) y el nombre de usuario autentificado (%s) no coinciden"
 
-#: libpq/hba.c:2985
+#: libpq/hba.c:2945
 #, c-format
 msgid "no match in usermap \"%s\" for user \"%s\" authenticated as \"%s\""
 msgstr "no hay coincidencia en el mapa «%s» para el usuario «%s» autentificado como «%s»"
 
-#: libpq/pqcomm.c:200
+#: libpq/pqcomm.c:211 libpq/pqcomm.c:219 libpq/pqcomm.c:250 libpq/pqcomm.c:259
+#: libpq/pqcomm.c:1648 libpq/pqcomm.c:1693 libpq/pqcomm.c:1733
+#: libpq/pqcomm.c:1777 libpq/pqcomm.c:1816 libpq/pqcomm.c:1855
+#: libpq/pqcomm.c:1891 libpq/pqcomm.c:1930
+#, c-format
+msgid "%s(%s) failed: %m"
+msgstr "%s(%s) falló: %m"
+
+#: libpq/pqcomm.c:296
 #, c-format
 msgid "could not set socket to nonblocking mode: %m"
 msgstr "no se pudo establecer el socket en modo no bloqueante: %m"
 
-#: libpq/pqcomm.c:361
+#: libpq/pqcomm.c:456
 #, c-format
 msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)"
 msgstr "la ruta al socket de dominio Unix «%s» es demasiado larga (máximo %d bytes)"
 
-#: libpq/pqcomm.c:381
+#: libpq/pqcomm.c:476
 #, c-format
 msgid "could not translate host name \"%s\", service \"%s\" to address: %s"
 msgstr "no se pudo traducir el nombre de host «%s», servicio «%s» a dirección: %s"
 
-#: libpq/pqcomm.c:385
+#: libpq/pqcomm.c:480
 #, c-format
 msgid "could not translate service \"%s\" to address: %s"
 msgstr "no se pudo traducir el servicio «%s» a dirección: %s"
 
-#: libpq/pqcomm.c:412
+#: libpq/pqcomm.c:502
 #, c-format
 msgid "could not bind to all requested addresses: MAXLISTEN (%d) exceeded"
 msgstr "no se pudo enlazar a todas las direcciones pedidas: MAXLISTEN (%d) fue excedido"
 
-#: libpq/pqcomm.c:421
+#: libpq/pqcomm.c:511
 msgid "IPv4"
 msgstr "IPv4"
 
-#: libpq/pqcomm.c:424
+#: libpq/pqcomm.c:514
 msgid "IPv6"
 msgstr "IPv6"
 
-#: libpq/pqcomm.c:427
+#: libpq/pqcomm.c:517
 msgid "Unix"
 msgstr "Unix"
 
-#: libpq/pqcomm.c:431
+#: libpq/pqcomm.c:521
 #, c-format
 msgid "unrecognized address family %d"
 msgstr "la familia de direcciones %d no reconocida"
 
 #. translator: first %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:455
+#: libpq/pqcomm.c:545
 #, c-format
 msgid "could not create %s socket for address \"%s\": %m"
 msgstr "no se pudo crear el socket %s de escucha para la dirección «%s»: %m"
 
 #. translator: third %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:481 libpq/pqcomm.c:499
+#: libpq/pqcomm.c:574 libpq/pqcomm.c:592
 #, c-format
 msgid "%s(%s) failed for %s address \"%s\": %m"
 msgstr "%s(%s) falló para la dirección %s «%s»: %m"
 
 #. translator: first %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:522
+#: libpq/pqcomm.c:615
 #, c-format
 msgid "could not bind %s address \"%s\": %m"
 msgstr "no se pudo enlazar a la dirección %s «%s»: %m"
 
-#: libpq/pqcomm.c:526
+#: libpq/pqcomm.c:619
 #, c-format
 msgid "Is another postmaster already running on port %d?"
 msgstr "¿Hay otro postmaster en ejecución en el puerto %d?"
 
-#: libpq/pqcomm.c:528
+#: libpq/pqcomm.c:621
 #, c-format
 msgid "Is another postmaster already running on port %d? If not, wait a few seconds and retry."
 msgstr "¿Hay otro postmaster en ejecución en el puerto %d? Si no, aguarde unos segundos y reintente."
 
 #. translator: first %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:557
+#: libpq/pqcomm.c:650
 #, c-format
 msgid "could not listen on %s address \"%s\": %m"
 msgstr "no se pudo escuchar en la dirección %s «%s»: %m"
 
-#: libpq/pqcomm.c:565
+#: libpq/pqcomm.c:658
 #, c-format
 msgid "listening on Unix socket \"%s\""
 msgstr "escuchando en el socket Unix «%s»"
 
 #. translator: first %s is IPv4 or IPv6
-#: libpq/pqcomm.c:570
+#: libpq/pqcomm.c:663
 #, c-format
 msgid "listening on %s address \"%s\", port %d"
 msgstr "escuchando en la dirección %s «%s», port %d"
 
-#: libpq/pqcomm.c:659
+#: libpq/pqcomm.c:753
 #, c-format
 msgid "group \"%s\" does not exist"
 msgstr "no existe el grupo «%s»"
 
-#: libpq/pqcomm.c:669
+#: libpq/pqcomm.c:763
 #, c-format
 msgid "could not set group of file \"%s\": %m"
 msgstr "no se pudo definir el grupo del archivo «%s»: %m"
 
-#: libpq/pqcomm.c:680
+#: libpq/pqcomm.c:774
 #, c-format
 msgid "could not set permissions of file \"%s\": %m"
 msgstr "no se pudo definir los permisos del archivo «%s»: %m"
 
-#: libpq/pqcomm.c:708
+#: libpq/pqcomm.c:803
 #, c-format
 msgid "could not accept new connection: %m"
 msgstr "no se pudo aceptar una nueva conexión: %m"
 
-#: libpq/pqcomm.c:748 libpq/pqcomm.c:757 libpq/pqcomm.c:789 libpq/pqcomm.c:799
-#: libpq/pqcomm.c:1624 libpq/pqcomm.c:1669 libpq/pqcomm.c:1709
-#: libpq/pqcomm.c:1753 libpq/pqcomm.c:1792 libpq/pqcomm.c:1831
-#: libpq/pqcomm.c:1867 libpq/pqcomm.c:1906
-#, c-format
-msgid "%s(%s) failed: %m"
-msgstr "%s(%s) falló: %m"
-
-#: libpq/pqcomm.c:903
+#: libpq/pqcomm.c:885
 #, c-format
 msgid "there is no client connection"
 msgstr "no hay conexión de cliente"
 
-#: libpq/pqcomm.c:954 libpq/pqcomm.c:1050
+#: libpq/pqcomm.c:941 libpq/pqcomm.c:1042
 #, c-format
 msgid "could not receive data from client: %m"
 msgstr "no se pudo recibir datos del cliente: %m"
 
-#: libpq/pqcomm.c:1155 tcop/postgres.c:4403
+#: libpq/pqcomm.c:1149 tcop/postgres.c:4533
 #, c-format
 msgid "terminating connection because protocol synchronization was lost"
 msgstr "terminando la conexión por pérdida de sincronía del protocolo"
 
-#: libpq/pqcomm.c:1221
+#: libpq/pqcomm.c:1215
 #, c-format
 msgid "unexpected EOF within message length word"
 msgstr "EOF inesperado dentro de la palabra de tamaño del mensaje"
 
-#: libpq/pqcomm.c:1231
+#: libpq/pqcomm.c:1225
 #, c-format
 msgid "invalid message length"
 msgstr "el largo de mensaje no es válido"
 
-#: libpq/pqcomm.c:1253 libpq/pqcomm.c:1266
+#: libpq/pqcomm.c:1247 libpq/pqcomm.c:1260
 #, c-format
 msgid "incomplete message from client"
 msgstr "mensaje incompleto del cliente"
 
-#: libpq/pqcomm.c:1377
+#: libpq/pqcomm.c:1401
 #, c-format
 msgid "could not send data to client: %m"
 msgstr "no se pudo enviar datos al cliente: %m"
 
-#: libpq/pqcomm.c:1592
+#: libpq/pqcomm.c:1616
 #, c-format
 msgid "%s(%s) failed: error code %d"
 msgstr "%s(%s) falló: código de error %d"
 
-#: libpq/pqcomm.c:1681
+#: libpq/pqcomm.c:1705
 #, c-format
 msgid "setting the keepalive idle time is not supported"
 msgstr "establecer el tiempo de inactividad para keepalive no está soportado"
 
-#: libpq/pqcomm.c:1765 libpq/pqcomm.c:1840 libpq/pqcomm.c:1915
+#: libpq/pqcomm.c:1789 libpq/pqcomm.c:1864 libpq/pqcomm.c:1939
 #, c-format
 msgid "%s(%s) not supported"
 msgstr "%s(%s) no está soportado"
 
-#: libpq/pqformat.c:407
+#: libpq/pqformat.c:404
 #, c-format
 msgid "no data left in message"
 msgstr "no hay datos restantes en el mensaje"
 
-#: libpq/pqformat.c:518 libpq/pqformat.c:536 libpq/pqformat.c:557
-#: utils/adt/array_userfuncs.c:799 utils/adt/arrayfuncs.c:1506
-#: utils/adt/rowtypes.c:615
+#: libpq/pqformat.c:515 libpq/pqformat.c:533 libpq/pqformat.c:554
+#: utils/adt/array_userfuncs.c:797 utils/adt/arrayfuncs.c:1481
+#: utils/adt/rowtypes.c:613
 #, c-format
 msgid "insufficient data left in message"
 msgstr "los datos restantes del mensaje son insuficientes"
 
-#: libpq/pqformat.c:598 libpq/pqformat.c:627
+#: libpq/pqformat.c:595 libpq/pqformat.c:624
 #, c-format
 msgid "invalid string in message"
 msgstr "cadena no válida en el mensaje"
 
-#: libpq/pqformat.c:643
+#: libpq/pqformat.c:640
 #, c-format
 msgid "invalid message format"
 msgstr "formato de mensaje no válido"
 
-#: main/main.c:235
+#: main/main.c:236
 #, c-format
 msgid "%s: WSAStartup failed: %d\n"
 msgstr "%s: WSAStartup falló: %d\n"
 
-#: main/main.c:329
+#: main/main.c:324
 #, c-format
 msgid ""
 "%s is the PostgreSQL server.\n"
@@ -15745,7 +16028,7 @@ msgstr ""
 "%s es el servidor PostgreSQL.\n"
 "\n"
 
-#: main/main.c:330
+#: main/main.c:325
 #, c-format
 msgid ""
 "Usage:\n"
@@ -15756,110 +16039,109 @@ msgstr ""
 "  %s [OPCION]...\n"
 "\n"
 
-#: main/main.c:331
+#: main/main.c:326
 #, c-format
 msgid "Options:\n"
 msgstr "Opciones:\n"
 
-#: main/main.c:332
+#: main/main.c:327
 #, c-format
 msgid "  -B NBUFFERS        number of shared buffers\n"
 msgstr "  -B NBUFFERS     número de búfers de memoria compartida\n"
 
-#: main/main.c:333
+#: main/main.c:328
 #, c-format
 msgid "  -c NAME=VALUE      set run-time parameter\n"
 msgstr "  -c VAR=VALOR    definir parámetro de ejecución\n"
 
-#: main/main.c:334
+#: main/main.c:329
 #, c-format
 msgid "  -C NAME            print value of run-time parameter, then exit\n"
 msgstr "  -C NOMBRE       imprimir valor de parámetro de configuración, luego salir\n"
 
-#: main/main.c:335
+#: main/main.c:330
 #, c-format
 msgid "  -d 1-5             debugging level\n"
 msgstr "  -d 1-5          nivel de depuración\n"
 
-#: main/main.c:336
+#: main/main.c:331
 #, c-format
 msgid "  -D DATADIR         database directory\n"
 msgstr "  -D DATADIR      directorio de bases de datos\n"
 
-#: main/main.c:337
+#: main/main.c:332
 #, c-format
 msgid "  -e                 use European date input format (DMY)\n"
 msgstr "  -e              usar estilo europeo de fechas (DMY)\n"
 
-#: main/main.c:338
+#: main/main.c:333
 #, c-format
 msgid "  -F                 turn fsync off\n"
 msgstr "  -F              desactivar fsync\n"
 
-#: main/main.c:339
+#: main/main.c:334
 #, c-format
 msgid "  -h HOSTNAME        host name or IP address to listen on\n"
 msgstr "  -h NOMBRE       nombre de host o dirección IP en que escuchar\n"
 
-#: main/main.c:340
-#, fuzzy, c-format
-#| msgid "  -l                 enable SSL connections\n"
+#: main/main.c:335
+#, c-format
 msgid "  -i                 enable TCP/IP connections (deprecated)\n"
-msgstr "  -l              activar conexiones SSL\n"
+msgstr "  -i              activar conexiones TCP/IP (obsoleto)\n"
 
-#: main/main.c:341
+#: main/main.c:336
 #, c-format
 msgid "  -k DIRECTORY       Unix-domain socket location\n"
 msgstr "  -k DIRECTORIO   ubicación del socket Unix\n"
 
-#: main/main.c:343
+#: main/main.c:338
 #, c-format
 msgid "  -l                 enable SSL connections\n"
 msgstr "  -l              activar conexiones SSL\n"
 
-#: main/main.c:345
+#: main/main.c:340
 #, c-format
 msgid "  -N MAX-CONNECT     maximum number of allowed connections\n"
 msgstr "  -N MAX-CONN     número máximo de conexiones permitidas\n"
 
-#: main/main.c:346
+#: main/main.c:341
 #, c-format
 msgid "  -p PORT            port number to listen on\n"
 msgstr "  -p PUERTO       número de puerto en el cual escuchar\n"
 
-#: main/main.c:347
+#: main/main.c:342
 #, c-format
 msgid "  -s                 show statistics after each query\n"
 msgstr "  -s              mostrar estadísticas después de cada consulta\n"
 
-#: main/main.c:348
+#: main/main.c:343
 #, c-format
 msgid "  -S WORK-MEM        set amount of memory for sorts (in kB)\n"
 msgstr "  -S WORK-MEM     definir cantidad de memoria para ordenamientos (en kB)\n"
 
-#: main/main.c:349
+#: main/main.c:344
 #, c-format
 msgid "  -V, --version      output version information, then exit\n"
 msgstr "  -V, --version   mostrar información de la versión, luego salir\n"
 
-#: main/main.c:350
+#: main/main.c:345
 #, c-format
 msgid "  --NAME=VALUE       set run-time parameter\n"
 msgstr "  --NOMBRE=VALOR  definir parámetro de ejecución\n"
 
-#: main/main.c:351
+#: main/main.c:346
 #, c-format
 msgid "  --describe-config  describe configuration parameters, then exit\n"
 msgstr ""
 "  --describe-config\n"
 "                  mostrar parámetros de configuración y salir\n"
 
-#: main/main.c:352
+#: main/main.c:347
 #, c-format
 msgid "  -?, --help         show this help, then exit\n"
 msgstr "  -?, --help      muestra esta ayuda, luego sale\n"
 
-#: main/main.c:354
+#: main/main.c:349
 #, c-format
 msgid ""
 "\n"
@@ -15868,38 +16150,37 @@ msgstr ""
 "\n"
 "Opciones de desarrollador:\n"
 
-#: main/main.c:355
+#: main/main.c:350
 #, c-format
 msgid "  -f s|i|o|b|t|n|m|h forbid use of some plan types\n"
-msgstr ""
+msgstr "  -f s|i|o|b|t|n|m|h impedir el uso de algunos tipos de planes\n"
 
-#: main/main.c:356
+#: main/main.c:351
 #, c-format
 msgid "  -O                 allow system table structure changes\n"
 msgstr "  -O              permitir cambios en estructura de tablas de sistema\n"
 
-#: main/main.c:357
+#: main/main.c:352
 #, c-format
 msgid "  -P                 disable system indexes\n"
 msgstr "  -P              desactivar índices de sistema\n"
 
-#: main/main.c:358
+#: main/main.c:353
 #, c-format
 msgid "  -t pa|pl|ex        show timings after each query\n"
 msgstr "  -t pa|pl|ex     mostrar tiempos después de cada consulta\n"
 
-#: main/main.c:359
-#, fuzzy, c-format
-#| msgid "  -P                 disable system indexes\n"
+#: main/main.c:354
+#, c-format
 msgid "  -T                 send SIGABRT to all backend processes if one dies\n"
-msgstr "  -P              desactivar índices de sistema\n"
+msgstr "  -T              enviar SIGABRT a todos los procesos backend si uno muere\n"
 
-#: main/main.c:360
+#: main/main.c:355
 #, c-format
 msgid "  -W NUM             wait NUM seconds to allow attach from a debugger\n"
 msgstr "  -W NÚM          espera NÚM segundos para permitir acoplar un depurador\n"
 
-#: main/main.c:362
+#: main/main.c:357
 #, c-format
 msgid ""
 "\n"
@@ -15908,37 +16189,37 @@ msgstr ""
 "\n"
 "Opciones para modo mono-usuario:\n"
 
-#: main/main.c:363
+#: main/main.c:358
 #, c-format
 msgid "  --single           selects single-user mode (must be first argument)\n"
 msgstr "  --single        selecciona modo mono-usuario (debe ser el primer argumento)\n"
 
-#: main/main.c:364
+#: main/main.c:359
 #, c-format
 msgid "  DBNAME             database name (defaults to user name)\n"
 msgstr "  DBNAME          nombre de base de datos (el valor por omisión es el nombre de usuario)\n"
 
-#: main/main.c:365
+#: main/main.c:360
 #, c-format
 msgid "  -d 0-5             override debugging level\n"
 msgstr "  -d 0-5          nivel de depuración\n"
 
-#: main/main.c:366
+#: main/main.c:361
 #, c-format
 msgid "  -E                 echo statement before execution\n"
 msgstr "  -E              mostrar las consultas antes de su ejecución\n"
 
-#: main/main.c:367
+#: main/main.c:362
 #, c-format
 msgid "  -j                 do not use newline as interactive query delimiter\n"
 msgstr "  -j              no usar saltos de línea como delimitadores de consulta\n"
 
-#: main/main.c:368 main/main.c:374
+#: main/main.c:363 main/main.c:369
 #, c-format
 msgid "  -r FILENAME        send stdout and stderr to given file\n"
 msgstr "  -r ARCHIVO      enviar salida estándar y de error a ARCHIVO\n"
 
-#: main/main.c:370
+#: main/main.c:365
 #, c-format
 msgid ""
 "\n"
@@ -15947,23 +16228,22 @@ msgstr ""
 "\n"
 "Opciones para modo de inicio (bootstrapping):\n"
 
-#: main/main.c:371
+#: main/main.c:366
 #, c-format
 msgid "  --boot             selects bootstrapping mode (must be first argument)\n"
 msgstr "  --boot          selecciona modo de inicio (debe ser el primer argumento)\n"
 
-#: main/main.c:372
-#, fuzzy, c-format
-#| msgid "  --single           selects single-user mode (must be first argument)\n"
+#: main/main.c:367
+#, c-format
 msgid "  --check            selects check mode (must be first argument)\n"
-msgstr "  --single        selecciona modo mono-usuario (debe ser el primer argumento)\n"
+msgstr "  --check         selecciona modo de verificación (debe ser el primer argumento)\n"
 
-#: main/main.c:373
+#: main/main.c:368
 #, c-format
 msgid "  DBNAME             database name (mandatory argument in bootstrapping mode)\n"
 msgstr "  DBNAME          nombre de base de datos (argumento obligatorio en modo de inicio)\n"
 
-#: main/main.c:376
+#: main/main.c:371
 #, c-format
 msgid ""
 "\n"
@@ -15980,12 +16260,12 @@ msgstr ""
 "\n"
 "Reporte errores a <%s>.\n"
 
-#: main/main.c:380
+#: main/main.c:375
 #, c-format
 msgid "%s home page: <%s>\n"
 msgstr "Sitio web de %s: <%s>\n"
 
-#: main/main.c:391
+#: main/main.c:386
 #, c-format
 msgid ""
 "\"root\" execution of the PostgreSQL server is not permitted.\n"
@@ -15999,12 +16279,12 @@ msgstr ""
 "Vea la documentación para obtener más información acerca de cómo\n"
 "iniciar correctamente el servidor.\n"
 
-#: main/main.c:408
+#: main/main.c:403
 #, c-format
 msgid "%s: real and effective user IDs must match\n"
 msgstr "%s: los IDs de usuario real y efectivo deben coincidir\n"
 
-#: main/main.c:415
+#: main/main.c:410
 #, c-format
 msgid ""
 "Execution of PostgreSQL by a user with administrative permissions is not\n"
@@ -16029,21 +16309,15 @@ msgstr "el tipo de nodo extensible «%s» ya existe"
 msgid "ExtensibleNodeMethods \"%s\" was not registered"
 msgstr "ExtensibleNodeMethods «%s» no fue registrado"
 
-#: nodes/makefuncs.c:153 statistics/extended_stats.c:2335
+#: nodes/makefuncs.c:152 statistics/extended_stats.c:2310
 #, c-format
 msgid "relation \"%s\" does not have a composite type"
 msgstr "la relación «%s» no tiene un tipo compuesto"
 
-#: nodes/makefuncs.c:878
-#, fuzzy, c-format
-#| msgid "unrecognized encoding: \"%s\""
-msgid "unrecognized JSON encoding: %s"
-msgstr "no se reconoce la codificación: «%s»"
-
-#: nodes/nodeFuncs.c:116 nodes/nodeFuncs.c:147 parser/parse_coerce.c:2567
-#: parser/parse_coerce.c:2705 parser/parse_coerce.c:2752
-#: parser/parse_expr.c:2049 parser/parse_func.c:710 parser/parse_oper.c:883
-#: utils/fmgr/funcapi.c:661
+#: nodes/nodeFuncs.c:118 nodes/nodeFuncs.c:149 parser/parse_coerce.c:2604
+#: parser/parse_coerce.c:2742 parser/parse_coerce.c:2789
+#: parser/parse_expr.c:2112 parser/parse_func.c:710 parser/parse_oper.c:869
+#: utils/fmgr/funcapi.c:669
 #, c-format
 msgid "could not find array type for data type %s"
 msgstr "no se pudo encontrar un tipo de array para el tipo de dato %s"
@@ -16058,938 +16332,936 @@ msgstr "portal «%s» con parámetros: %s"
 msgid "unnamed portal with parameters: %s"
 msgstr "portal sin nombre con parámetros: %s"
 
-#: optimizer/path/joinrels.c:973
+#: optimizer/path/joinrels.c:972
 #, c-format
 msgid "FULL JOIN is only supported with merge-joinable or hash-joinable join conditions"
 msgstr "FULL JOIN sólo está soportado con condiciones que se pueden usar con merge join o hash join"
 
-#: optimizer/plan/createplan.c:7111 parser/parse_merge.c:182
-#: parser/parse_merge.c:189
-#, fuzzy, c-format
-#| msgid "cannot change relation \"%s\""
+#: optimizer/plan/createplan.c:7175 parser/parse_merge.c:203
+#: rewrite/rewriteHandler.c:1680
+#, c-format
 msgid "cannot execute MERGE on relation \"%s\""
-msgstr "no se puede cambiar la relación «%s»"
+msgstr "no se puede ejecutar MERGE en la relación «%s»"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: optimizer/plan/initsplan.c:1392
+#: optimizer/plan/initsplan.c:1407
 #, c-format
 msgid "%s cannot be applied to the nullable side of an outer join"
 msgstr "%s no puede ser aplicado al lado nulable de un outer join"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: optimizer/plan/planner.c:1359 parser/analyze.c:1723 parser/analyze.c:1980
-#: parser/analyze.c:3193
+#: optimizer/plan/planner.c:1380 parser/analyze.c:1771 parser/analyze.c:2029
+#: parser/analyze.c:3247
 #, c-format
 msgid "%s is not allowed with UNION/INTERSECT/EXCEPT"
 msgstr "%s no está permitido con UNION/INTERSECT/EXCEPT"
 
-#: optimizer/plan/planner.c:2080 optimizer/plan/planner.c:4038
+#: optimizer/plan/planner.c:2121 optimizer/plan/planner.c:4108
 #, c-format
 msgid "could not implement GROUP BY"
 msgstr "no se pudo implementar GROUP BY"
 
-#: optimizer/plan/planner.c:2081 optimizer/plan/planner.c:4039
-#: optimizer/plan/planner.c:4679 optimizer/prep/prepunion.c:1053
+#: optimizer/plan/planner.c:2122 optimizer/plan/planner.c:4109
+#: optimizer/plan/planner.c:4790 optimizer/prep/prepunion.c:1320
 #, c-format
 msgid "Some of the datatypes only support hashing, while others only support sorting."
 msgstr "Algunos de los tipos sólo soportan hashing, mientras que otros sólo soportan ordenamiento."
 
-#: optimizer/plan/planner.c:4678
+#: optimizer/plan/planner.c:4789
 #, c-format
 msgid "could not implement DISTINCT"
 msgstr "no se pudo implementar DISTINCT"
 
-#: optimizer/plan/planner.c:6017
+#: optimizer/plan/planner.c:6134
 #, c-format
 msgid "could not implement window PARTITION BY"
 msgstr "No se pudo implementar PARTITION BY de ventana"
 
-#: optimizer/plan/planner.c:6018
+#: optimizer/plan/planner.c:6135
 #, c-format
 msgid "Window partitioning columns must be of sortable datatypes."
 msgstr "Las columnas de particionamiento de ventana deben de tipos que se puedan ordenar."
 
-#: optimizer/plan/planner.c:6022
+#: optimizer/plan/planner.c:6139
 #, c-format
 msgid "could not implement window ORDER BY"
 msgstr "no se pudo implementar ORDER BY de ventana"
 
-#: optimizer/plan/planner.c:6023
+#: optimizer/plan/planner.c:6140
 #, c-format
 msgid "Window ordering columns must be of sortable datatypes."
 msgstr "Las columnas de ordenamiento de ventana debe ser de tipos que se puedan ordenar."
 
-#: optimizer/prep/prepunion.c:516
+#: optimizer/prep/prepunion.c:467
 #, c-format
 msgid "could not implement recursive UNION"
 msgstr "no se pudo implementar UNION recursivo"
 
-#: optimizer/prep/prepunion.c:517
+#: optimizer/prep/prepunion.c:468
 #, c-format
 msgid "All column datatypes must be hashable."
 msgstr "Todos los tipos de dato de las columnas deben ser tipos de los que se puedan hacer un hash."
 
 #. translator: %s is UNION, INTERSECT, or EXCEPT
-#: optimizer/prep/prepunion.c:1052
+#: optimizer/prep/prepunion.c:1319
 #, c-format
 msgid "could not implement %s"
 msgstr "no se pudo implementar %s"
 
-#: optimizer/util/clauses.c:4869
+#: optimizer/util/clauses.c:4963
 #, c-format
 msgid "SQL function \"%s\" during inlining"
 msgstr "función SQL «%s», durante expansión en línea"
 
-#: optimizer/util/plancat.c:154
+#: optimizer/util/plancat.c:153
 #, c-format
 msgid "cannot access temporary or unlogged relations during recovery"
 msgstr "no se puede acceder a tablas temporales o «unlogged» durante la recuperación"
 
-#: optimizer/util/plancat.c:726
+#: optimizer/util/plancat.c:768
 #, c-format
 msgid "whole row unique index inference specifications are not supported"
 msgstr "no están soportadas las especificaciones de inferencia de índice único de registro completo"
 
-#: optimizer/util/plancat.c:743
+#: optimizer/util/plancat.c:785
 #, c-format
 msgid "constraint in ON CONFLICT clause has no associated index"
 msgstr "la restricción en la cláusula ON CONFLICT no tiene un índice asociado"
 
-#: optimizer/util/plancat.c:793
+#: optimizer/util/plancat.c:835
 #, c-format
 msgid "ON CONFLICT DO UPDATE not supported with exclusion constraints"
 msgstr "ON CONFLICT DO UPDATE no está soportado con restricciones de exclusión"
 
-#: optimizer/util/plancat.c:898
+#: optimizer/util/plancat.c:945
 #, c-format
 msgid "there is no unique or exclusion constraint matching the ON CONFLICT specification"
 msgstr "no hay restricción única o de exclusión que coincida con la especificación ON CONFLICT"
 
-#: parser/analyze.c:788 parser/analyze.c:1502
+#: parser/analyze.c:824 parser/analyze.c:1550
 #, c-format
 msgid "VALUES lists must all be the same length"
 msgstr "las listas VALUES deben ser todas de la misma longitud"
 
-#: parser/analyze.c:990
+#: parser/analyze.c:1027
 #, c-format
 msgid "INSERT has more expressions than target columns"
 msgstr "INSERT tiene más expresiones que columnas de destino"
 
-#: parser/analyze.c:1008
+#: parser/analyze.c:1045
 #, c-format
 msgid "INSERT has more target columns than expressions"
 msgstr "INSERT tiene más columnas de destino que expresiones"
 
-#: parser/analyze.c:1012
+#: parser/analyze.c:1049
 #, c-format
 msgid "The insertion source is a row expression containing the same number of columns expected by the INSERT. Did you accidentally use extra parentheses?"
 msgstr "La fuente de inserción es una expresión de fila que contiene la misma cantidad de columnas que esperaba el INSERT. ¿Usó accidentalmente paréntesis extra?"
 
-#: parser/analyze.c:1309 parser/analyze.c:1696
+#: parser/analyze.c:1357 parser/analyze.c:1744
 #, c-format
 msgid "SELECT ... INTO is not allowed here"
 msgstr "SELECT ... INTO no está permitido aquí"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:1625 parser/analyze.c:3425
+#: parser/analyze.c:1673 parser/analyze.c:3479
 #, c-format
 msgid "%s cannot be applied to VALUES"
 msgstr "%s no puede ser aplicado a VALUES"
 
-#: parser/analyze.c:1862
+#: parser/analyze.c:1911
 #, c-format
 msgid "invalid UNION/INTERSECT/EXCEPT ORDER BY clause"
 msgstr "cláusula UNION/INTERSECT/EXCEPT ORDER BY no válida"
 
-#: parser/analyze.c:1863
+#: parser/analyze.c:1912
 #, c-format
 msgid "Only result column names can be used, not expressions or functions."
 msgstr "Sólo nombres de columna del resultado pueden usarse, no expresiones o funciones."
 
-#: parser/analyze.c:1864
+#: parser/analyze.c:1913
 #, c-format
 msgid "Add the expression/function to every SELECT, or move the UNION into a FROM clause."
 msgstr "Agregue la función o expresión a todos los SELECT, o mueva el UNION dentro de una cláusula FROM."
 
-#: parser/analyze.c:1970
+#: parser/analyze.c:2019
 #, c-format
 msgid "INTO is only allowed on first SELECT of UNION/INTERSECT/EXCEPT"
 msgstr "sólo se permite INTO en el primer SELECT de UNION/INTERSECT/EXCEPT"
 
-#: parser/analyze.c:2042
+#: parser/analyze.c:2091
 #, c-format
 msgid "UNION/INTERSECT/EXCEPT member statement cannot refer to other relations of same query level"
 msgstr "una sentencia miembro de UNION/INSERT/EXCEPT no puede referirse a otras relaciones del mismo nivel de la consulta"
 
-#: parser/analyze.c:2129
+#: parser/analyze.c:2178
 #, c-format
 msgid "each %s query must have the same number of columns"
 msgstr "cada consulta %s debe tener el mismo número de columnas"
 
 #: parser/analyze.c:2535
 #, c-format
+msgid "SET target columns cannot be qualified with the relation name."
+msgstr "Las columnas de destino SET no pueden ser calificadas con el nombre de relación."
+
+#: parser/analyze.c:2589
+#, c-format
 msgid "RETURNING must have at least one column"
 msgstr "RETURNING debe tener al menos una columna"
 
-#: parser/analyze.c:2638
+#: parser/analyze.c:2692
 #, c-format
 msgid "assignment source returned %d column"
 msgid_plural "assignment source returned %d columns"
 msgstr[0] "fuente de asignación retornó %d columna"
 msgstr[1] "fuente de asignación retornó %d columnas"
 
-#: parser/analyze.c:2699
+#: parser/analyze.c:2753
 #, c-format
 msgid "variable \"%s\" is of type %s but expression is of type %s"
 msgstr "la variable «%s» es de tipo %s pero la expresión es de tipo %s"
 
 #. translator: %s is a SQL keyword
-#: parser/analyze.c:2824 parser/analyze.c:2832
+#: parser/analyze.c:2878 parser/analyze.c:2886
 #, c-format
 msgid "cannot specify both %s and %s"
 msgstr "no se puede especificar %s junto con %s"
 
-#: parser/analyze.c:2852
+#: parser/analyze.c:2906
 #, c-format
 msgid "DECLARE CURSOR must not contain data-modifying statements in WITH"
 msgstr "DECLARE CURSOR no debe contener sentencias que modifiquen datos en WITH"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2860
+#: parser/analyze.c:2914
 #, c-format
 msgid "DECLARE CURSOR WITH HOLD ... %s is not supported"
 msgstr "DECLARE CURSOR WITH HOLD ... %s no está soportado"
 
-#: parser/analyze.c:2863
+#: parser/analyze.c:2917
 #, c-format
 msgid "Holdable cursors must be READ ONLY."
 msgstr "Los cursores declarados HOLD deben ser READ ONLY."
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2871
+#: parser/analyze.c:2925
 #, c-format
 msgid "DECLARE SCROLL CURSOR ... %s is not supported"
 msgstr "DECLARE SCROLL CURSOR ... %s no está soportado"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2882
+#: parser/analyze.c:2936
 #, c-format
 msgid "DECLARE INSENSITIVE CURSOR ... %s is not valid"
 msgstr "DECLARE INSENSITIVE CURSOR ... %s no es válido"
 
-#: parser/analyze.c:2885
+#: parser/analyze.c:2939
 #, c-format
 msgid "Insensitive cursors must be READ ONLY."
 msgstr "Los cursores insensitivos deben ser READ ONLY."
 
-#: parser/analyze.c:2979
+#: parser/analyze.c:3033
 #, c-format
 msgid "materialized views must not use data-modifying statements in WITH"
 msgstr "las vistas materializadas no deben usar sentencias que modifiquen datos en WITH"
 
-#: parser/analyze.c:2989
+#: parser/analyze.c:3043
 #, c-format
 msgid "materialized views must not use temporary tables or views"
 msgstr "las vistas materializadas no deben usar tablas temporales o vistas"
 
-#: parser/analyze.c:2999
+#: parser/analyze.c:3053
 #, c-format
 msgid "materialized views may not be defined using bound parameters"
 msgstr "las vistas materializadas no pueden definirse usando parámetros enlazados"
 
-#: parser/analyze.c:3011
+#: parser/analyze.c:3065
 #, c-format
 msgid "materialized views cannot be unlogged"
 msgstr "las vistas materializadas no pueden ser «unlogged»"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:3200
+#: parser/analyze.c:3254
 #, c-format
 msgid "%s is not allowed with DISTINCT clause"
 msgstr "%s no está permitido con cláusulas DISTINCT"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:3207
+#: parser/analyze.c:3261
 #, c-format
 msgid "%s is not allowed with GROUP BY clause"
 msgstr "%s no está permitido con cláusulas GROUP BY"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:3214
+#: parser/analyze.c:3268
 #, c-format
 msgid "%s is not allowed with HAVING clause"
 msgstr "%s no está permitido con cláusulas HAVING"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:3221
+#: parser/analyze.c:3275
 #, c-format
 msgid "%s is not allowed with aggregate functions"
 msgstr "%s no está permitido con funciones de agregación"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:3228
+#: parser/analyze.c:3282
 #, c-format
 msgid "%s is not allowed with window functions"
 msgstr "%s no está permitido con funciones de ventana deslizante"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:3235
+#: parser/analyze.c:3289
 #, c-format
 msgid "%s is not allowed with set-returning functions in the target list"
 msgstr "%s no está permitido con funciones que retornan conjuntos en la lista de resultados"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:3334
+#: parser/analyze.c:3388
 #, c-format
 msgid "%s must specify unqualified relation names"
 msgstr "%s debe especificar nombres de relaciones sin calificar"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:3398
+#: parser/analyze.c:3452
 #, c-format
 msgid "%s cannot be applied to a join"
 msgstr "%s no puede ser aplicado a un join"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:3407
+#: parser/analyze.c:3461
 #, c-format
 msgid "%s cannot be applied to a function"
 msgstr "%s no puede ser aplicado a una función"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:3416
+#: parser/analyze.c:3470
 #, c-format
 msgid "%s cannot be applied to a table function"
 msgstr "%s no puede ser aplicado a una función de tabla"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:3434
+#: parser/analyze.c:3488
 #, c-format
 msgid "%s cannot be applied to a WITH query"
 msgstr "%s no puede ser aplicado a una consulta WITH"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:3443
+#: parser/analyze.c:3497
 #, c-format
 msgid "%s cannot be applied to a named tuplestore"
 msgstr "%s no puede ser aplicado a un «tuplestore» con nombre"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:3463
+#: parser/analyze.c:3517
 #, c-format
 msgid "relation \"%s\" in %s clause not found in FROM clause"
 msgstr "la relación «%s» en la cláusula %s no fue encontrada en la cláusula FROM"
 
-#: parser/parse_agg.c:221 parser/parse_oper.c:227
+#: parser/parse_agg.c:210 parser/parse_oper.c:215
 #, c-format
 msgid "could not identify an ordering operator for type %s"
 msgstr "no se pudo identificar un operador de ordenamiento para el tipo %s"
 
-#: parser/parse_agg.c:223
+#: parser/parse_agg.c:212
 #, c-format
 msgid "Aggregates with DISTINCT must be able to sort their inputs."
 msgstr "Las funciones de agregación con DISTINCT deben ser capaces de ordenar sus valores de entrada."
 
-#: parser/parse_agg.c:258
+#: parser/parse_agg.c:270
 #, c-format
 msgid "GROUPING must have fewer than 32 arguments"
 msgstr "GROUPING debe tener menos de 32 argumentos"
 
-#: parser/parse_agg.c:361
+#: parser/parse_agg.c:373
 msgid "aggregate functions are not allowed in JOIN conditions"
 msgstr "no se permiten funciones de agregación en las condiciones de JOIN"
 
-#: parser/parse_agg.c:363
+#: parser/parse_agg.c:375
 msgid "grouping operations are not allowed in JOIN conditions"
 msgstr "no se permiten las operaciones «grouping» en condiciones JOIN"
 
-#: parser/parse_agg.c:375
+#: parser/parse_agg.c:385
 msgid "aggregate functions are not allowed in FROM clause of their own query level"
 msgstr "las funciones de agregación no están permitidas en la cláusula FROM de su mismo nivel de consulta"
 
-#: parser/parse_agg.c:377
+#: parser/parse_agg.c:387
 msgid "grouping operations are not allowed in FROM clause of their own query level"
 msgstr "las operaciones «grouping» no están permitidas en la cláusula FROM de su mismo nivel de consulta"
 
-#: parser/parse_agg.c:382
+#: parser/parse_agg.c:392
 msgid "aggregate functions are not allowed in functions in FROM"
 msgstr "no se permiten funciones de agregación en una función en FROM"
 
-#: parser/parse_agg.c:384
+#: parser/parse_agg.c:394
 msgid "grouping operations are not allowed in functions in FROM"
 msgstr "no se permiten operaciones «grouping» en funciones en FROM"
 
-#: parser/parse_agg.c:392
+#: parser/parse_agg.c:402
 msgid "aggregate functions are not allowed in policy expressions"
 msgstr "no se permiten funciones de agregación en expresiones de políticas"
 
-#: parser/parse_agg.c:394
+#: parser/parse_agg.c:404
 msgid "grouping operations are not allowed in policy expressions"
 msgstr "no se permiten operaciones «grouping» en expresiones de políticas"
 
-#: parser/parse_agg.c:411
+#: parser/parse_agg.c:421
 msgid "aggregate functions are not allowed in window RANGE"
 msgstr "no se permiten funciones de agregación en RANGE de ventana deslizante"
 
-#: parser/parse_agg.c:413
+#: parser/parse_agg.c:423
 msgid "grouping operations are not allowed in window RANGE"
 msgstr "no se permiten operaciones «grouping» en RANGE de ventana deslizante"
 
-#: parser/parse_agg.c:418
+#: parser/parse_agg.c:428
 msgid "aggregate functions are not allowed in window ROWS"
 msgstr "no se permiten funciones de agregación en ROWS de ventana deslizante"
 
-#: parser/parse_agg.c:420
+#: parser/parse_agg.c:430
 msgid "grouping operations are not allowed in window ROWS"
 msgstr "no se permiten operaciones «grouping» en ROWS de ventana deslizante"
 
-#: parser/parse_agg.c:425
+#: parser/parse_agg.c:435
 msgid "aggregate functions are not allowed in window GROUPS"
 msgstr "no se permiten funciones de agregación en GROUPS de ventana deslizante"
 
-#: parser/parse_agg.c:427
+#: parser/parse_agg.c:437
 msgid "grouping operations are not allowed in window GROUPS"
 msgstr "no se permiten operaciones «grouping» en GROUPS de ventana deslizante"
 
-#: parser/parse_agg.c:440
-#, fuzzy
-#| msgid "aggregate functions are not allowed in trigger WHEN conditions"
+#: parser/parse_agg.c:450
 msgid "aggregate functions are not allowed in MERGE WHEN conditions"
-msgstr "no se permiten funciones de agregación en condición WHEN de un disparador"
+msgstr "no se permiten funciones de agregación en condiciones MERGE WHEN"
 
-#: parser/parse_agg.c:442
-#, fuzzy
-#| msgid "grouping operations are not allowed in trigger WHEN conditions"
+#: parser/parse_agg.c:452
 msgid "grouping operations are not allowed in MERGE WHEN conditions"
-msgstr "no se permiten operaciones «grouping» en condiciones WHEN de un disparador"
+msgstr "no se permiten operaciones «grouping» en condiciones MERGE WHEN"
 
-#: parser/parse_agg.c:468
+#: parser/parse_agg.c:479
 msgid "aggregate functions are not allowed in check constraints"
 msgstr "no se permiten funciones de agregación en restricciones «check»"
 
-#: parser/parse_agg.c:470
+#: parser/parse_agg.c:481
 msgid "grouping operations are not allowed in check constraints"
 msgstr "no se permiten operaciones «grouping» en restricciones «check»"
 
-#: parser/parse_agg.c:477
+#: parser/parse_agg.c:488
 msgid "aggregate functions are not allowed in DEFAULT expressions"
 msgstr "no se permiten funciones de agregación en expresiones DEFAULT"
 
-#: parser/parse_agg.c:479
+#: parser/parse_agg.c:490
 msgid "grouping operations are not allowed in DEFAULT expressions"
 msgstr "no se permiten operaciones «grouping» en expresiones DEFAULT"
 
-#: parser/parse_agg.c:484
+#: parser/parse_agg.c:495
 msgid "aggregate functions are not allowed in index expressions"
 msgstr "no se permiten funciones de agregación en una expresión de índice"
 
-#: parser/parse_agg.c:486
+#: parser/parse_agg.c:497
 msgid "grouping operations are not allowed in index expressions"
 msgstr "no se permiten operaciones «grouping» en expresiones de índice"
 
-#: parser/parse_agg.c:491
+#: parser/parse_agg.c:502
 msgid "aggregate functions are not allowed in index predicates"
 msgstr "no se permiten funciones de agregación en predicados de índice"
 
-#: parser/parse_agg.c:493
+#: parser/parse_agg.c:504
 msgid "grouping operations are not allowed in index predicates"
 msgstr "no se permiten operaciones «grouping» en predicados de índice"
 
-#: parser/parse_agg.c:498
+#: parser/parse_agg.c:509
 msgid "aggregate functions are not allowed in statistics expressions"
 msgstr "no se permiten funciones de agregación en expresiones de estadísticas"
 
-#: parser/parse_agg.c:500
+#: parser/parse_agg.c:511
 msgid "grouping operations are not allowed in statistics expressions"
 msgstr "no se permiten operaciones «grouping» en expresiones de estadísticas"
 
-#: parser/parse_agg.c:505
+#: parser/parse_agg.c:516
 msgid "aggregate functions are not allowed in transform expressions"
 msgstr "no se permiten funciones de agregación en una expresión de transformación"
 
-#: parser/parse_agg.c:507
+#: parser/parse_agg.c:518
 msgid "grouping operations are not allowed in transform expressions"
 msgstr "no se permiten operaciones «grouping» en expresiones de transformación"
 
-#: parser/parse_agg.c:512
+#: parser/parse_agg.c:523
 msgid "aggregate functions are not allowed in EXECUTE parameters"
 msgstr "no se permiten funciones de agregación en un parámetro a EXECUTE"
 
-#: parser/parse_agg.c:514
+#: parser/parse_agg.c:525
 msgid "grouping operations are not allowed in EXECUTE parameters"
 msgstr "no se permiten operaciones «grouping» en parámetros a EXECUTE"
 
-#: parser/parse_agg.c:519
+#: parser/parse_agg.c:530
 msgid "aggregate functions are not allowed in trigger WHEN conditions"
-msgstr "no se permiten funciones de agregación en condición WHEN de un disparador"
+msgstr "no se permiten funciones de agregación en condición WHEN de un “trigger”"
 
-#: parser/parse_agg.c:521
+#: parser/parse_agg.c:532
 msgid "grouping operations are not allowed in trigger WHEN conditions"
-msgstr "no se permiten operaciones «grouping» en condiciones WHEN de un disparador"
+msgstr "no se permiten operaciones «grouping» en condiciones WHEN de un “trigger”"
 
-#: parser/parse_agg.c:526
+#: parser/parse_agg.c:537
 msgid "aggregate functions are not allowed in partition bound"
 msgstr "no se permiten funciones de agregación en borde de partición"
 
-#: parser/parse_agg.c:528
+#: parser/parse_agg.c:539
 msgid "grouping operations are not allowed in partition bound"
 msgstr "no se permiten operaciones «grouping» en borde de partición"
 
-#: parser/parse_agg.c:533
+#: parser/parse_agg.c:544
 msgid "aggregate functions are not allowed in partition key expressions"
 msgstr "no se permiten funciones de agregación en una expresión de llave de particionamiento"
 
-#: parser/parse_agg.c:535
+#: parser/parse_agg.c:546
 msgid "grouping operations are not allowed in partition key expressions"
 msgstr "no se permiten operaciones «grouping» en expresiones de llave de particionamiento"
 
-#: parser/parse_agg.c:541
+#: parser/parse_agg.c:552
 msgid "aggregate functions are not allowed in column generation expressions"
 msgstr "no se permiten funciones de agregación en expresiones de generación de columna"
 
-#: parser/parse_agg.c:543
+#: parser/parse_agg.c:554
 msgid "grouping operations are not allowed in column generation expressions"
 msgstr "no se permiten operaciones «grouping» en expresiones de generación de columna"
 
-#: parser/parse_agg.c:549
+#: parser/parse_agg.c:560
 msgid "aggregate functions are not allowed in CALL arguments"
 msgstr "no se permiten funciones de agregación en argumentos de CALL"
 
-#: parser/parse_agg.c:551
+#: parser/parse_agg.c:562
 msgid "grouping operations are not allowed in CALL arguments"
 msgstr "no se permiten operaciones «grouping» en argumentos de CALL"
 
-#: parser/parse_agg.c:557
+#: parser/parse_agg.c:568
 msgid "aggregate functions are not allowed in COPY FROM WHERE conditions"
 msgstr "no se permiten funciones de agregación en las condiciones WHERE de COPY FROM"
 
-#: parser/parse_agg.c:559
+#: parser/parse_agg.c:570
 msgid "grouping operations are not allowed in COPY FROM WHERE conditions"
 msgstr "no se permiten las operaciones «grouping» en condiciones WHERE de COPY FROM"
 
 #. translator: %s is name of a SQL construct, eg GROUP BY
-#: parser/parse_agg.c:586 parser/parse_clause.c:1955
+#: parser/parse_agg.c:597 parser/parse_clause.c:1962
 #, c-format
 msgid "aggregate functions are not allowed in %s"
 msgstr "no se permiten funciones de agregación en %s"
 
 #. translator: %s is name of a SQL construct, eg GROUP BY
-#: parser/parse_agg.c:589
+#: parser/parse_agg.c:600
 #, c-format
 msgid "grouping operations are not allowed in %s"
 msgstr "no se permiten operaciones «grouping» en %s"
 
-#: parser/parse_agg.c:690
+#: parser/parse_agg.c:701
 #, c-format
 msgid "outer-level aggregate cannot contain a lower-level variable in its direct arguments"
 msgstr "una función de agregación de nivel exterior no puede contener una variable de nivel inferior en sus argumentos directos"
 
-#: parser/parse_agg.c:768
+#: parser/parse_agg.c:779
 #, c-format
 msgid "aggregate function calls cannot contain set-returning function calls"
 msgstr "las llamadas a funciones de agregación no pueden contener llamadas a funciones que retornan conjuntos"
 
-#: parser/parse_agg.c:769 parser/parse_expr.c:1700 parser/parse_expr.c:2182
-#: parser/parse_func.c:884
+#: parser/parse_agg.c:780 parser/parse_expr.c:1762 parser/parse_expr.c:2245
+#: parser/parse_func.c:885
 #, c-format
 msgid "You might be able to move the set-returning function into a LATERAL FROM item."
 msgstr "Puede intentar mover la función que retorna conjuntos a un elemento LATERAL FROM."
 
-#: parser/parse_agg.c:774
+#: parser/parse_agg.c:785
 #, c-format
 msgid "aggregate function calls cannot contain window function calls"
 msgstr "las llamadas a funciones de agregación no pueden contener llamadas a funciones de ventana deslizante"
 
-#: parser/parse_agg.c:853
+#: parser/parse_agg.c:864
 msgid "window functions are not allowed in JOIN conditions"
 msgstr "no se permiten funciones de ventana deslizante en condiciones JOIN"
 
-#: parser/parse_agg.c:860
+#: parser/parse_agg.c:871
 msgid "window functions are not allowed in functions in FROM"
 msgstr "no se permiten funciones de ventana deslizante en funciones en FROM"
 
-#: parser/parse_agg.c:866
+#: parser/parse_agg.c:877
 msgid "window functions are not allowed in policy expressions"
 msgstr "no se permiten funciones de ventana deslizante en expresiones de políticas"
 
-#: parser/parse_agg.c:879
+#: parser/parse_agg.c:890
 msgid "window functions are not allowed in window definitions"
 msgstr "no se permiten funciones de ventana deslizante en definiciones de ventana deslizante"
 
-#: parser/parse_agg.c:890
-#, fuzzy
-#| msgid "window functions are not allowed in trigger WHEN conditions"
+#: parser/parse_agg.c:901
 msgid "window functions are not allowed in MERGE WHEN conditions"
-msgstr "no se permiten funciones de ventana deslizante en condiciones WHEN de un disparador"
+msgstr "no se permiten funciones de ventana deslizante en condiciones MERGE WHEN"
 
-#: parser/parse_agg.c:914
+#: parser/parse_agg.c:926
 msgid "window functions are not allowed in check constraints"
 msgstr "no se permiten funciones de ventana deslizante en restricciones «check»"
 
-#: parser/parse_agg.c:918
+#: parser/parse_agg.c:930
 msgid "window functions are not allowed in DEFAULT expressions"
 msgstr "no se permiten funciones de ventana deslizante en expresiones DEFAULT"
 
-#: parser/parse_agg.c:921
+#: parser/parse_agg.c:933
 msgid "window functions are not allowed in index expressions"
 msgstr "no se permiten funciones de ventana deslizante en expresiones de índice"
 
-#: parser/parse_agg.c:924
+#: parser/parse_agg.c:936
 msgid "window functions are not allowed in statistics expressions"
 msgstr "no se permiten funciones de ventana deslizante en expresiones de estadísticas"
 
-#: parser/parse_agg.c:927
+#: parser/parse_agg.c:939
 msgid "window functions are not allowed in index predicates"
 msgstr "no se permiten funciones de ventana deslizante en predicados de índice"
 
-#: parser/parse_agg.c:930
+#: parser/parse_agg.c:942
 msgid "window functions are not allowed in transform expressions"
 msgstr "no se permiten funciones de ventana deslizante en expresiones de transformación"
 
-#: parser/parse_agg.c:933
+#: parser/parse_agg.c:945
 msgid "window functions are not allowed in EXECUTE parameters"
 msgstr "no se permiten funciones de ventana deslizante en parámetros a EXECUTE"
 
-#: parser/parse_agg.c:936
+#: parser/parse_agg.c:948
 msgid "window functions are not allowed in trigger WHEN conditions"
-msgstr "no se permiten funciones de ventana deslizante en condiciones WHEN de un disparador"
+msgstr "no se permiten funciones de ventana deslizante en condiciones WHEN de un “trigger”"
 
-#: parser/parse_agg.c:939
+#: parser/parse_agg.c:951
 msgid "window functions are not allowed in partition bound"
 msgstr "no se permiten funciones de ventana deslizante en borde de partición"
 
-#: parser/parse_agg.c:942
+#: parser/parse_agg.c:954
 msgid "window functions are not allowed in partition key expressions"
 msgstr "no se permiten funciones de ventana deslizante en expresiones de llave de particionamiento"
 
-#: parser/parse_agg.c:945
+#: parser/parse_agg.c:957
 msgid "window functions are not allowed in CALL arguments"
 msgstr "no se permiten funciones de ventana deslizante en argumentos de CALL"
 
-#: parser/parse_agg.c:948
+#: parser/parse_agg.c:960
 msgid "window functions are not allowed in COPY FROM WHERE conditions"
 msgstr "no se permiten funciones de ventana deslizante en las condiciones WHERE de COPY FROM"
 
-#: parser/parse_agg.c:951
+#: parser/parse_agg.c:963
 msgid "window functions are not allowed in column generation expressions"
 msgstr "no se permiten funciones de ventana deslizante en expresiones de generación de columna"
 
 #. translator: %s is name of a SQL construct, eg GROUP BY
-#: parser/parse_agg.c:974 parser/parse_clause.c:1964
+#: parser/parse_agg.c:986 parser/parse_clause.c:1971
 #, c-format
 msgid "window functions are not allowed in %s"
 msgstr "no se permiten funciones de ventana deslizante en %s"
 
-#: parser/parse_agg.c:1008 parser/parse_clause.c:2797
+#: parser/parse_agg.c:1020 parser/parse_clause.c:2804
 #, c-format
 msgid "window \"%s\" does not exist"
 msgstr "la ventana «%s» no existe"
 
-#: parser/parse_agg.c:1096
+#: parser/parse_agg.c:1108
 #, c-format
 msgid "too many grouping sets present (maximum 4096)"
 msgstr "demasiados conjuntos «grouping» presentes (máximo 4096)"
 
-#: parser/parse_agg.c:1236
+#: parser/parse_agg.c:1248
 #, c-format
 msgid "aggregate functions are not allowed in a recursive query's recursive term"
 msgstr "no se permiten funciones de agregación en el término recursivo de una consulta recursiva"
 
-#: parser/parse_agg.c:1429
+#: parser/parse_agg.c:1441
 #, c-format
 msgid "column \"%s.%s\" must appear in the GROUP BY clause or be used in an aggregate function"
 msgstr "la columna «%s.%s» debe aparecer en la cláusula GROUP BY o ser usada en una función de agregación"
 
-#: parser/parse_agg.c:1432
+#: parser/parse_agg.c:1444
 #, c-format
 msgid "Direct arguments of an ordered-set aggregate must use only grouped columns."
 msgstr "Argumentos directos de una función de agregación de conjuntos ordenados debe usar sólo columnas agrupadas."
 
-#: parser/parse_agg.c:1437
+#: parser/parse_agg.c:1449
 #, c-format
 msgid "subquery uses ungrouped column \"%s.%s\" from outer query"
 msgstr "la subconsulta usa la columna «%s.%s» no agrupada de una consulta exterior"
 
-#: parser/parse_agg.c:1601
+#: parser/parse_agg.c:1613
 #, c-format
 msgid "arguments to GROUPING must be grouping expressions of the associated query level"
 msgstr "los argumentos de GROUPING deben ser expresiones agrupantes del nivel de consulta asociado"
 
-#: parser/parse_clause.c:195
+#: parser/parse_clause.c:193
 #, c-format
 msgid "relation \"%s\" cannot be the target of a modifying statement"
 msgstr "relación «%s» no puede ser destino de una sentencia modificadora"
 
-#: parser/parse_clause.c:571 parser/parse_clause.c:599 parser/parse_func.c:2552
+#: parser/parse_clause.c:569 parser/parse_clause.c:597 parser/parse_func.c:2553
 #, c-format
 msgid "set-returning functions must appear at top level of FROM"
 msgstr "las funciones que retornan conjuntos deben aparecer en el nivel más externo del FROM"
 
-#: parser/parse_clause.c:611
+#: parser/parse_clause.c:609
 #, c-format
 msgid "multiple column definition lists are not allowed for the same function"
 msgstr "no se permiten múltiples definiciones de columnas para la misma función"
 
-#: parser/parse_clause.c:644
+#: parser/parse_clause.c:642
 #, c-format
 msgid "ROWS FROM() with multiple functions cannot have a column definition list"
 msgstr "ROWS FROM() con varias funciones no puede tener una lista de definición de columnas"
 
-#: parser/parse_clause.c:645
+#: parser/parse_clause.c:643
 #, c-format
 msgid "Put a separate column definition list for each function inside ROWS FROM()."
 msgstr "Ponga una lista de columnas separada para cada función dentro de ROWS FROM()."
 
-#: parser/parse_clause.c:651
+#: parser/parse_clause.c:649
 #, c-format
 msgid "UNNEST() with multiple arguments cannot have a column definition list"
 msgstr "UNNEST() con varios argumentos no puede tener una lista de definición de columnas"
 
-#: parser/parse_clause.c:652
+#: parser/parse_clause.c:650
 #, c-format
 msgid "Use separate UNNEST() calls inside ROWS FROM(), and attach a column definition list to each one."
 msgstr "Use llamadas a UNNEST() separadas dentro de ROWS FROM() y adjunte una lista de columnas a cada una."
 
-#: parser/parse_clause.c:659
+#: parser/parse_clause.c:657
 #, c-format
 msgid "WITH ORDINALITY cannot be used with a column definition list"
 msgstr "WITH ORDINALITY no puede usarse con una lista de definición de columnas"
 
-#: parser/parse_clause.c:660
+#: parser/parse_clause.c:658
 #, c-format
 msgid "Put the column definition list inside ROWS FROM()."
 msgstr "Ponga una lista de columnas dentro de ROWS FROM()."
 
-#: parser/parse_clause.c:760
+#: parser/parse_clause.c:762 parser/parse_jsontable.c:295
 #, c-format
 msgid "only one FOR ORDINALITY column is allowed"
 msgstr "sólo se permite una columna FOR ORDINALITY"
 
-#: parser/parse_clause.c:821
+#: parser/parse_clause.c:823
 #, c-format
 msgid "column name \"%s\" is not unique"
 msgstr "el nombre de columna «%s» no es único"
 
-#: parser/parse_clause.c:863
+#: parser/parse_clause.c:865
 #, c-format
 msgid "namespace name \"%s\" is not unique"
 msgstr "el espacio de nombres «%s» no es único"
 
-#: parser/parse_clause.c:873
+#: parser/parse_clause.c:875
 #, c-format
 msgid "only one default namespace is allowed"
 msgstr "sólo se permite un espacio de nombres predeterminado"
 
-#: parser/parse_clause.c:933
+#: parser/parse_clause.c:935
 #, c-format
 msgid "tablesample method %s does not exist"
 msgstr "no existe el método de tablesample «%s»"
 
-#: parser/parse_clause.c:955
+#: parser/parse_clause.c:957
 #, c-format
 msgid "tablesample method %s requires %d argument, not %d"
 msgid_plural "tablesample method %s requires %d arguments, not %d"
 msgstr[0] "el método de tablesample «%s» requiere %d argumento, no %d"
 msgstr[1] "el método de tablesample «%s» requiere %d argumentos, no %d"
 
-#: parser/parse_clause.c:989
+#: parser/parse_clause.c:991
 #, c-format
 msgid "tablesample method %s does not support REPEATABLE"
 msgstr "el método de tablesample «%s» no soporta la opción REPEATABLE"
 
-#: parser/parse_clause.c:1138
+#: parser/parse_clause.c:1144
 #, c-format
 msgid "TABLESAMPLE clause can only be applied to tables and materialized views"
 msgstr "la cláusula TABLESAMPLE sólo puede aplicarse a tablas y vistas materializadas"
 
-#: parser/parse_clause.c:1325
+#: parser/parse_clause.c:1331
 #, c-format
 msgid "column name \"%s\" appears more than once in USING clause"
 msgstr "la columna «%s» aparece más de una vez en la cláusula USING"
 
-#: parser/parse_clause.c:1340
+#: parser/parse_clause.c:1346
 #, c-format
 msgid "common column name \"%s\" appears more than once in left table"
 msgstr "la columna común «%s» aparece más de una vez en la tabla izquierda"
 
-#: parser/parse_clause.c:1349
+#: parser/parse_clause.c:1355
 #, c-format
 msgid "column \"%s\" specified in USING clause does not exist in left table"
 msgstr "la columna «%s» especificada en la cláusula USING no existe en la tabla izquierda"
 
-#: parser/parse_clause.c:1364
+#: parser/parse_clause.c:1370
 #, c-format
 msgid "common column name \"%s\" appears more than once in right table"
 msgstr "la columna común «%s» aparece más de una vez en la tabla derecha"
 
-#: parser/parse_clause.c:1373
+#: parser/parse_clause.c:1379
 #, c-format
 msgid "column \"%s\" specified in USING clause does not exist in right table"
 msgstr "la columna «%s» especificada en la cláusula USING no existe en la tabla derecha"
 
-#: parser/parse_clause.c:1900
+#: parser/parse_clause.c:1907
 #, c-format
 msgid "row count cannot be null in FETCH FIRST ... WITH TIES clause"
 msgstr "la cantidad de registros no puede ser NULL en la cláusula FETCH FIRST ... WITH TIES"
 
 #. translator: %s is name of a SQL construct, eg LIMIT
-#: parser/parse_clause.c:1925
+#: parser/parse_clause.c:1932
 #, c-format
 msgid "argument of %s must not contain variables"
 msgstr "el argumento de %s no puede contener variables"
 
 #. translator: first %s is name of a SQL construct, eg ORDER BY
-#: parser/parse_clause.c:2090
+#: parser/parse_clause.c:2097
 #, c-format
 msgid "%s \"%s\" is ambiguous"
 msgstr "%s «%s» es ambiguo"
 
 #. translator: %s is name of a SQL construct, eg ORDER BY
-#: parser/parse_clause.c:2118
+#: parser/parse_clause.c:2125
 #, c-format
 msgid "non-integer constant in %s"
 msgstr "constante no entera en %s"
 
 #. translator: %s is name of a SQL construct, eg ORDER BY
-#: parser/parse_clause.c:2140
+#: parser/parse_clause.c:2147
 #, c-format
 msgid "%s position %d is not in select list"
 msgstr "la posición %2$d de %1$s no está en la lista de resultados"
 
-#: parser/parse_clause.c:2579
+#: parser/parse_clause.c:2586
 #, c-format
 msgid "CUBE is limited to 12 elements"
 msgstr "CUBE está limitado a 12 elementos"
 
-#: parser/parse_clause.c:2785
+#: parser/parse_clause.c:2792
 #, c-format
 msgid "window \"%s\" is already defined"
 msgstr "la ventana «%s» ya está definida"
 
-#: parser/parse_clause.c:2846
+#: parser/parse_clause.c:2853
 #, c-format
 msgid "cannot override PARTITION BY clause of window \"%s\""
 msgstr "no se puede pasar a llevar la cláusula PARTITION BY de la ventana «%s»"
 
-#: parser/parse_clause.c:2858
+#: parser/parse_clause.c:2865
 #, c-format
 msgid "cannot override ORDER BY clause of window \"%s\""
 msgstr "no se puede pasar a llevar la cláusula ORDER BY de la ventana «%s»"
 
-#: parser/parse_clause.c:2888 parser/parse_clause.c:2894
+#: parser/parse_clause.c:2895 parser/parse_clause.c:2901
 #, c-format
 msgid "cannot copy window \"%s\" because it has a frame clause"
 msgstr "no se puede copiar la ventana «%s» porque tiene una cláusula «frame»"
 
-#: parser/parse_clause.c:2896
+#: parser/parse_clause.c:2903
 #, c-format
 msgid "Omit the parentheses in this OVER clause."
 msgstr "Omita el uso de paréntesis en esta cláusula OVER."
 
-#: parser/parse_clause.c:2916
+#: parser/parse_clause.c:2923
 #, c-format
 msgid "RANGE with offset PRECEDING/FOLLOWING requires exactly one ORDER BY column"
 msgstr "RANGE con desplazamiento PRECEDING/FOLLOWING requiere exactamente una columna ORDER BY"
 
-#: parser/parse_clause.c:2939
+#: parser/parse_clause.c:2946
 #, c-format
 msgid "GROUPS mode requires an ORDER BY clause"
 msgstr "el modo GROUPS requiere una cláusula ORDER BY"
 
-#: parser/parse_clause.c:3010
+#: parser/parse_clause.c:3016
 #, c-format
 msgid "in an aggregate with DISTINCT, ORDER BY expressions must appear in argument list"
 msgstr "en una agregación con DISTINCT, las expresiones en ORDER BY deben aparecer en la lista de argumentos"
 
-#: parser/parse_clause.c:3011
+#: parser/parse_clause.c:3017
 #, c-format
 msgid "for SELECT DISTINCT, ORDER BY expressions must appear in select list"
 msgstr "para SELECT DISTINCT, las expresiones en ORDER BY deben aparecer en la lista de resultados"
 
-#: parser/parse_clause.c:3043
+#: parser/parse_clause.c:3049
 #, c-format
 msgid "an aggregate with DISTINCT must have at least one argument"
 msgstr "una función de agregación con DISTINCT debe tener al menos un argumento"
 
-#: parser/parse_clause.c:3044
+#: parser/parse_clause.c:3050
 #, c-format
 msgid "SELECT DISTINCT must have at least one column"
 msgstr "SELECT DISTINCT debe tener al menos una columna"
 
-#: parser/parse_clause.c:3110 parser/parse_clause.c:3142
+#: parser/parse_clause.c:3116 parser/parse_clause.c:3148
 #, c-format
 msgid "SELECT DISTINCT ON expressions must match initial ORDER BY expressions"
 msgstr "las expresiones de SELECT DISTINCT ON deben coincidir con las expresiones iniciales de ORDER BY"
 
-#: parser/parse_clause.c:3220
+#: parser/parse_clause.c:3226
 #, c-format
 msgid "ASC/DESC is not allowed in ON CONFLICT clause"
 msgstr "ASC/DESC no están permitidos en cláusulas ON CONFLICT"
 
-#: parser/parse_clause.c:3226
+#: parser/parse_clause.c:3232
 #, c-format
 msgid "NULLS FIRST/LAST is not allowed in ON CONFLICT clause"
 msgstr "NULLS FIRST/LAST no están permitidos en cláusulas ON CONFLICT"
 
-#: parser/parse_clause.c:3305
+#: parser/parse_clause.c:3311
 #, c-format
 msgid "ON CONFLICT DO UPDATE requires inference specification or constraint name"
 msgstr "ON CONFLICT DO UPDATE requiere una especificación de inferencia o nombre de restricción"
 
-#: parser/parse_clause.c:3306
+#: parser/parse_clause.c:3312
 #, c-format
 msgid "For example, ON CONFLICT (column_name)."
 msgstr "Por ejemplo, ON CONFLICT (nombre_de_columna)."
 
-#: parser/parse_clause.c:3317
+#: parser/parse_clause.c:3323
 #, c-format
 msgid "ON CONFLICT is not supported with system catalog tables"
 msgstr "ON CONFLICT no está soportado con tablas que son catálogos de sistema"
 
-#: parser/parse_clause.c:3325
+#: parser/parse_clause.c:3331
 #, c-format
 msgid "ON CONFLICT is not supported on table \"%s\" used as a catalog table"
 msgstr "ON CONFLICT no está soportado en la tabla «%s» usada como catálogo de sistema"
 
-#: parser/parse_clause.c:3456
+#: parser/parse_clause.c:3462
 #, c-format
 msgid "operator %s is not a valid ordering operator"
 msgstr "el operador «%s» no es un operador válido de ordenamiento"
 
-#: parser/parse_clause.c:3458
+#: parser/parse_clause.c:3464
 #, c-format
 msgid "Ordering operators must be \"<\" or \">\" members of btree operator families."
 msgstr "Los operadores de ordenamiento deben ser miembros «<» o «>» de una familia de operadores btree."
 
-#: parser/parse_clause.c:3769
+#: parser/parse_clause.c:3775
 #, c-format
 msgid "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s"
 msgstr "RANGE con desplazamiento PRECEDING/FOLLOWING no está soportado para la columna de tipo %s"
 
-#: parser/parse_clause.c:3775
+#: parser/parse_clause.c:3781
 #, c-format
 msgid "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s and offset type %s"
 msgstr "RANGE con desplazamiento PRECEDING/FOLLOWING no está soportado para la columna de tipo %s y tipo de desplazamiento %s"
 
-#: parser/parse_clause.c:3778
+#: parser/parse_clause.c:3784
 #, c-format
 msgid "Cast the offset value to an appropriate type."
 msgstr "Convierta el valor de desplazamiento a un tipo apropiado."
 
-#: parser/parse_clause.c:3783
+#: parser/parse_clause.c:3789
 #, c-format
 msgid "RANGE with offset PRECEDING/FOLLOWING has multiple interpretations for column type %s and offset type %s"
 msgstr "RANGE con desplazamiento PRECEDING/FOLLOWING tiene múltiples interpretaciones para la columna de tipo %s y tipo de desplazamiento %s"
 
-#: parser/parse_clause.c:3786
+#: parser/parse_clause.c:3792
 #, c-format
 msgid "Cast the offset value to the exact intended type."
 msgstr "Convierta el valor de desplazamiento al tipo deseado exacto."
 
 #: parser/parse_coerce.c:1050 parser/parse_coerce.c:1088
 #: parser/parse_coerce.c:1106 parser/parse_coerce.c:1121
-#: parser/parse_expr.c:2083 parser/parse_expr.c:2691 parser/parse_expr.c:3516
-#: parser/parse_target.c:985
+#: parser/parse_expr.c:2146 parser/parse_expr.c:2754 parser/parse_expr.c:3405
+#: parser/parse_expr.c:3634 parser/parse_target.c:998
 #, c-format
 msgid "cannot cast type %s to %s"
 msgstr "no se puede convertir el tipo %s a %s"
@@ -17024,121 +17296,121 @@ msgid "argument of %s must not return a set"
 msgstr "el argumento de %s no debe retornar un conjunto"
 
 #. translator: first %s is name of a SQL construct, eg CASE
-#: parser/parse_coerce.c:1383
+#: parser/parse_coerce.c:1420
 #, c-format
 msgid "%s types %s and %s cannot be matched"
 msgstr "los tipos %2$s y %3$s no son coincidentes en %1$s"
 
-#: parser/parse_coerce.c:1499
+#: parser/parse_coerce.c:1536
 #, c-format
 msgid "argument types %s and %s cannot be matched"
 msgstr "los tipos de argumento %s y %s no pueden hacerse coincidir"
 
 #. translator: first %s is name of a SQL construct, eg CASE
-#: parser/parse_coerce.c:1551
+#: parser/parse_coerce.c:1588
 #, c-format
 msgid "%s could not convert type %s to %s"
 msgstr "%s no pudo convertir el tipo %s a %s"
 
-#: parser/parse_coerce.c:2154 parser/parse_coerce.c:2174
-#: parser/parse_coerce.c:2194 parser/parse_coerce.c:2215
-#: parser/parse_coerce.c:2270 parser/parse_coerce.c:2304
+#: parser/parse_coerce.c:2191 parser/parse_coerce.c:2211
+#: parser/parse_coerce.c:2231 parser/parse_coerce.c:2252
+#: parser/parse_coerce.c:2307 parser/parse_coerce.c:2341
 #, c-format
 msgid "arguments declared \"%s\" are not all alike"
 msgstr "los argumentos declarados «%s» no son de tipos compatibles"
 
-#: parser/parse_coerce.c:2249 parser/parse_coerce.c:2362
-#: utils/fmgr/funcapi.c:592
+#: parser/parse_coerce.c:2286 parser/parse_coerce.c:2399
+#: utils/fmgr/funcapi.c:600
 #, c-format
 msgid "argument declared %s is not an array but type %s"
 msgstr "el argumento declarado %s no es un array sino de tipo %s"
 
-#: parser/parse_coerce.c:2282 parser/parse_coerce.c:2432
-#: utils/fmgr/funcapi.c:606
+#: parser/parse_coerce.c:2319 parser/parse_coerce.c:2469
+#: utils/fmgr/funcapi.c:614
 #, c-format
 msgid "argument declared %s is not a range type but type %s"
 msgstr "el argumento declarado %s no es un tipo de rango sino tipo %s"
 
-#: parser/parse_coerce.c:2316 parser/parse_coerce.c:2396
-#: parser/parse_coerce.c:2529 utils/fmgr/funcapi.c:624 utils/fmgr/funcapi.c:689
+#: parser/parse_coerce.c:2353 parser/parse_coerce.c:2433
+#: parser/parse_coerce.c:2566 utils/fmgr/funcapi.c:632 utils/fmgr/funcapi.c:697
 #, c-format
 msgid "argument declared %s is not a multirange type but type %s"
 msgstr "el argumento declarado %s no es un tipo de multirango sino tipo %s"
 
-#: parser/parse_coerce.c:2353
+#: parser/parse_coerce.c:2390
 #, c-format
 msgid "cannot determine element type of \"anyarray\" argument"
 msgstr "no se puede determinar el tipo del argumento «anyarray»"
 
-#: parser/parse_coerce.c:2379 parser/parse_coerce.c:2410
-#: parser/parse_coerce.c:2449 parser/parse_coerce.c:2515
+#: parser/parse_coerce.c:2416 parser/parse_coerce.c:2447
+#: parser/parse_coerce.c:2486 parser/parse_coerce.c:2552
 #, c-format
 msgid "argument declared %s is not consistent with argument declared %s"
 msgstr "el argumento declarado %s no es consistente con el argumento declarado %s"
 
-#: parser/parse_coerce.c:2474
+#: parser/parse_coerce.c:2511
 #, c-format
 msgid "could not determine polymorphic type because input has type %s"
 msgstr "no se pudo determinar el tipo polimórfico porque la entrada es de tipo %s"
 
-#: parser/parse_coerce.c:2488
+#: parser/parse_coerce.c:2525
 #, c-format
 msgid "type matched to anynonarray is an array type: %s"
 msgstr "el argumento emparejado con anynonarray es un array: %s"
 
-#: parser/parse_coerce.c:2498
+#: parser/parse_coerce.c:2535
 #, c-format
 msgid "type matched to anyenum is not an enum type: %s"
 msgstr "el tipo emparejado con anyenum no es un tipo enum: %s"
 
-#: parser/parse_coerce.c:2559
+#: parser/parse_coerce.c:2596
 #, c-format
 msgid "arguments of anycompatible family cannot be cast to a common type"
 msgstr "los argumentos de la familia anycompatible no pueden ser convertidos a un tipo común"
 
-#: parser/parse_coerce.c:2577 parser/parse_coerce.c:2598
-#: parser/parse_coerce.c:2648 parser/parse_coerce.c:2653
-#: parser/parse_coerce.c:2717 parser/parse_coerce.c:2729
+#: parser/parse_coerce.c:2614 parser/parse_coerce.c:2635
+#: parser/parse_coerce.c:2685 parser/parse_coerce.c:2690
+#: parser/parse_coerce.c:2754 parser/parse_coerce.c:2766
 #, c-format
 msgid "could not determine polymorphic type %s because input has type %s"
 msgstr "no se pudo determinar el tipo polimórfico %s porque la entrada es de tipo %s"
 
-#: parser/parse_coerce.c:2587
+#: parser/parse_coerce.c:2624
 #, c-format
 msgid "anycompatiblerange type %s does not match anycompatible type %s"
 msgstr "el tipo anycompatiblerange %s no coincide con el tipo anycompatible %s"
 
-#: parser/parse_coerce.c:2608
+#: parser/parse_coerce.c:2645
 #, c-format
 msgid "anycompatiblemultirange type %s does not match anycompatible type %s"
 msgstr "el tipo anycompatiblemultirange %s no coincide con el tipo anycompatible %s"
 
-#: parser/parse_coerce.c:2622
+#: parser/parse_coerce.c:2659
 #, c-format
 msgid "type matched to anycompatiblenonarray is an array type: %s"
 msgstr "el argumento emparejado a anycompatiblenonarray es un array: %s"
 
-#: parser/parse_coerce.c:2857
+#: parser/parse_coerce.c:2894
 #, c-format
 msgid "A result of type %s requires at least one input of type anyrange or anymultirange."
 msgstr "Un resultado de tipo %s requiere al menos una entrada de tipo anyrange o anymultirange."
 
-#: parser/parse_coerce.c:2874
+#: parser/parse_coerce.c:2911
 #, c-format
 msgid "A result of type %s requires at least one input of type anycompatiblerange or anycompatiblemultirange."
 msgstr "Un resultado de tipo %s requiere al menos una entrada de tipo anycompatiblerange o anycompatiblemultirange."
 
-#: parser/parse_coerce.c:2886
+#: parser/parse_coerce.c:2923
 #, c-format
 msgid "A result of type %s requires at least one input of type anyelement, anyarray, anynonarray, anyenum, anyrange, or anymultirange."
 msgstr "Un resultado de tipo %s requiere al menos una entrada de tipo anyelement, anyarray, anynonarray, anyenum, anyrange o anymultirange."
 
-#: parser/parse_coerce.c:2898
+#: parser/parse_coerce.c:2935
 #, c-format
 msgid "A result of type %s requires at least one input of type anycompatible, anycompatiblearray, anycompatiblenonarray, anycompatiblerange, or anycompatiblemultirange."
 msgstr "Un resultado de tipo %s requiere al menos una entrada de tipo anycompatible, anycompatiblearray, anycompatiblenonarray, anycompatiblerange o anycompatiblemultirange."
 
-#: parser/parse_coerce.c:2928
+#: parser/parse_coerce.c:2965
 msgid "A result of type internal requires at least one input of type internal."
 msgstr "Un resultado de tipo internal requiere al menos una entrada de tipo internal."
 
@@ -17184,442 +17456,553 @@ msgstr "la referencia recursiva a la consulta «%s» no debe aparecer dentro de
 msgid "recursive reference to query \"%s\" must not appear within EXCEPT"
 msgstr "la referencia recursiva a la consulta «%s» no debe aparecer dentro de EXCEPT"
 
-#: parser/parse_cte.c:133
-#, fuzzy, c-format
-#| msgid "\"EEEE\" not supported for input"
-msgid "MERGE not supported in WITH query"
-msgstr "«EEEE» no está soportado en la entrada"
-
-#: parser/parse_cte.c:143
+#: parser/parse_cte.c:136
 #, c-format
 msgid "WITH query name \"%s\" specified more than once"
 msgstr "el nombre de consulta WITH «%s» fue especificado más de una vez"
 
-#: parser/parse_cte.c:314
+#: parser/parse_cte.c:308
 #, c-format
 msgid "could not identify an inequality operator for type %s"
 msgstr "no se pudo identificar un operador de desigualdad para el tipo %s"
 
-#: parser/parse_cte.c:341
+#: parser/parse_cte.c:335
 #, c-format
 msgid "WITH clause containing a data-modifying statement must be at the top level"
 msgstr "la cláusula WITH que contiene las sentencias que modifican datos debe estar en el nivel más externo"
 
-#: parser/parse_cte.c:390
+#: parser/parse_cte.c:384
 #, c-format
 msgid "recursive query \"%s\" column %d has type %s in non-recursive term but type %s overall"
 msgstr "la columna %2$d en la consulta recursiva «%1$s» tiene tipo %3$s en el término no recursivo, pero %4$s en general"
 
-#: parser/parse_cte.c:396
+#: parser/parse_cte.c:390
 #, c-format
 msgid "Cast the output of the non-recursive term to the correct type."
 msgstr "Aplique una conversión de tipo a la salida del término no recursivo al tipo correcto."
 
-#: parser/parse_cte.c:401
+#: parser/parse_cte.c:395
 #, c-format
 msgid "recursive query \"%s\" column %d has collation \"%s\" in non-recursive term but collation \"%s\" overall"
 msgstr "la columna %2$d en la consulta recursiva «%1$s» tiene ordenamiento (collation) %3$s en el término no recursivo, pero %4$s en general"
 
-#: parser/parse_cte.c:405
+#: parser/parse_cte.c:399
 #, c-format
 msgid "Use the COLLATE clause to set the collation of the non-recursive term."
 msgstr "Use la clásula COLLATE para definir el ordenamiento del término no-recursivo."
 
-#: parser/parse_cte.c:426
+#: parser/parse_cte.c:420
 #, c-format
 msgid "WITH query is not recursive"
 msgstr "la consulta WITH no es recursiva"
 
-#: parser/parse_cte.c:457
+#: parser/parse_cte.c:451
 #, c-format
 msgid "with a SEARCH or CYCLE clause, the left side of the UNION must be a SELECT"
 msgstr "con una cláusula SEARCH o CYCLE, el lado izquierdo de UNION debe ser un SELECT"
 
-#: parser/parse_cte.c:462
+#: parser/parse_cte.c:456
 #, c-format
 msgid "with a SEARCH or CYCLE clause, the right side of the UNION must be a SELECT"
 msgstr "con una cláusula SEARCH o CYCLE, el lado derecho de UNION debe ser un SELECT"
 
-#: parser/parse_cte.c:477
+#: parser/parse_cte.c:471
 #, c-format
 msgid "search column \"%s\" not in WITH query column list"
 msgstr "columna de búsqueda «%s» no se encuentra en la lista de columnas de la consulta WITH"
 
-#: parser/parse_cte.c:484
+#: parser/parse_cte.c:478
 #, c-format
 msgid "search column \"%s\" specified more than once"
 msgstr "columna de búsqueda «%s» fue especificada más de una vez"
 
-#: parser/parse_cte.c:493
+#: parser/parse_cte.c:487
 #, c-format
 msgid "search sequence column name \"%s\" already used in WITH query column list"
 msgstr "el nombre para la columna de secuencia de búsqueda «%s» ya ha sido utilizado en la lista de columnas de la consulta WITH"
 
-#: parser/parse_cte.c:510
+#: parser/parse_cte.c:504
 #, c-format
 msgid "cycle column \"%s\" not in WITH query column list"
 msgstr "la columna de ciclo «%s» no se encuentra en la lista de columnas de la consulta WITH"
 
-#: parser/parse_cte.c:517
+#: parser/parse_cte.c:511
 #, c-format
 msgid "cycle column \"%s\" specified more than once"
 msgstr "columna de ciclo «%s» fue especificada más de una vez"
 
-#: parser/parse_cte.c:526
+#: parser/parse_cte.c:520
 #, c-format
 msgid "cycle mark column name \"%s\" already used in WITH query column list"
 msgstr "el nombre para la columna de marca de ciclo «%s» ya ha sido utilizada en la lista de columnas de la consulta WITH"
 
-#: parser/parse_cte.c:533
+#: parser/parse_cte.c:527
 #, c-format
 msgid "cycle path column name \"%s\" already used in WITH query column list"
 msgstr "el nombre para la columna de ruta de ciclo «%s» ya ha sido utilizada en la lista de columnas de la consulta WITH"
 
-#: parser/parse_cte.c:541
+#: parser/parse_cte.c:535
 #, c-format
 msgid "cycle mark column name and cycle path column name are the same"
 msgstr "el nombre para la columna de marca de ciclo es igual que el nombre para la columna de ruta de ciclo"
 
-#: parser/parse_cte.c:551
+#: parser/parse_cte.c:545
 #, c-format
 msgid "search sequence column name and cycle mark column name are the same"
 msgstr "el nombre para la columna de secuencia de búsqueda es igual que el nombre para la columna de marca de ciclo"
 
-#: parser/parse_cte.c:558
+#: parser/parse_cte.c:552
 #, c-format
 msgid "search sequence column name and cycle path column name are the same"
 msgstr "el nombre para la columna de secuencia de búsqueda es igual que el nombre para la columna de ruta de ciclo"
 
-#: parser/parse_cte.c:642
+#: parser/parse_cte.c:636
 #, c-format
 msgid "WITH query \"%s\" has %d columns available but %d columns specified"
 msgstr "la consulta WITH «%s» tiene %d columnas disponibles pero se especificaron %d"
 
-#: parser/parse_cte.c:822
+#: parser/parse_cte.c:816
 #, c-format
 msgid "mutual recursion between WITH items is not implemented"
 msgstr "la recursión mutua entre elementos de WITH no está implementada"
 
-#: parser/parse_cte.c:874
+#: parser/parse_cte.c:868
 #, c-format
 msgid "recursive query \"%s\" must not contain data-modifying statements"
 msgstr "la consulta recursiva «%s» no debe contener sentencias que modifiquen datos"
 
-#: parser/parse_cte.c:882
+#: parser/parse_cte.c:876
 #, c-format
 msgid "recursive query \"%s\" does not have the form non-recursive-term UNION [ALL] recursive-term"
 msgstr "la consulta recursiva «%s» no tiene la forma término-no-recursivo UNION [ALL] término-recursivo"
 
-#: parser/parse_cte.c:926
+#: parser/parse_cte.c:911
 #, c-format
 msgid "ORDER BY in a recursive query is not implemented"
 msgstr "ORDER BY no está implementado en una consulta recursiva"
 
-#: parser/parse_cte.c:932
+#: parser/parse_cte.c:917
 #, c-format
 msgid "OFFSET in a recursive query is not implemented"
 msgstr "OFFSET no está implementado en una consulta recursiva"
 
-#: parser/parse_cte.c:938
+#: parser/parse_cte.c:923
 #, c-format
 msgid "LIMIT in a recursive query is not implemented"
 msgstr "LIMIT no está implementado en una consulta recursiva"
 
-#: parser/parse_cte.c:944
+#: parser/parse_cte.c:929
 #, c-format
 msgid "FOR UPDATE/SHARE in a recursive query is not implemented"
 msgstr "FOR UPDATE/SHARE no está implementado en una consulta recursiva"
 
-#: parser/parse_cte.c:1001
+#: parser/parse_cte.c:1008
 #, c-format
 msgid "recursive reference to query \"%s\" must not appear more than once"
 msgstr "la referencia recursiva a la consulta «%s» no debe aparecer más de una vez"
 
-#: parser/parse_expr.c:294
+#: parser/parse_expr.c:313
 #, c-format
 msgid "DEFAULT is not allowed in this context"
 msgstr "DEFAULT no está permitido en este contexto"
 
-#: parser/parse_expr.c:371 parser/parse_relation.c:3687
-#: parser/parse_relation.c:3697 parser/parse_relation.c:3715
-#: parser/parse_relation.c:3722 parser/parse_relation.c:3736
+#: parser/parse_expr.c:406 parser/parse_relation.c:3691
+#: parser/parse_relation.c:3701 parser/parse_relation.c:3719
+#: parser/parse_relation.c:3726 parser/parse_relation.c:3740
 #, c-format
 msgid "column %s.%s does not exist"
 msgstr "no existe la columna %s.%s"
 
-#: parser/parse_expr.c:383
+#: parser/parse_expr.c:418
 #, c-format
 msgid "column \"%s\" not found in data type %s"
 msgstr "la columna «%s» no fue encontrado en el tipo %s"
 
-#: parser/parse_expr.c:389
+#: parser/parse_expr.c:424
 #, c-format
 msgid "could not identify column \"%s\" in record data type"
 msgstr "no se pudo identificar la columna «%s» en el tipo de dato record"
 
-#: parser/parse_expr.c:395
+#: parser/parse_expr.c:430
 #, c-format
 msgid "column notation .%s applied to type %s, which is not a composite type"
 msgstr "la notación de columna .%s fue aplicada al tipo %s, que no es un tipo compuesto"
 
-#: parser/parse_expr.c:426 parser/parse_target.c:733
+#: parser/parse_expr.c:461 parser/parse_target.c:732
 #, c-format
 msgid "row expansion via \"*\" is not supported here"
 msgstr "la expansión de filas a través de «*» no está soportado aquí"
 
-#: parser/parse_expr.c:548
+#: parser/parse_expr.c:584
 msgid "cannot use column reference in DEFAULT expression"
 msgstr "no se pueden usar referencias a columnas en una cláusula DEFAULT"
 
-#: parser/parse_expr.c:551
+#: parser/parse_expr.c:587
 msgid "cannot use column reference in partition bound expression"
 msgstr "no se pueden usar referencias a columnas en expresión de borde de partición"
 
-#: parser/parse_expr.c:810 parser/parse_relation.c:833
-#: parser/parse_relation.c:915 parser/parse_target.c:1225
+#: parser/parse_expr.c:846 parser/parse_relation.c:833
+#: parser/parse_relation.c:915 parser/parse_target.c:1238
 #, c-format
 msgid "column reference \"%s\" is ambiguous"
 msgstr "la referencia a la columna «%s» es ambigua"
 
-#: parser/parse_expr.c:866 parser/parse_param.c:110 parser/parse_param.c:142
+#: parser/parse_expr.c:902 parser/parse_param.c:110 parser/parse_param.c:142
 #: parser/parse_param.c:204 parser/parse_param.c:303
 #, c-format
 msgid "there is no parameter $%d"
 msgstr "no hay parámetro $%d"
 
-#: parser/parse_expr.c:1066
+#. translator: %s is name of a SQL construct, eg NULLIF
+#: parser/parse_expr.c:1103 parser/parse_expr.c:3065
 #, c-format
-msgid "NULLIF requires = operator to yield boolean"
-msgstr "NULLIF requiere que el operador = retorne boolean"
+msgid "%s requires = operator to yield boolean"
+msgstr "%s requiere que el operador = retorne boolean"
 
 #. translator: %s is name of a SQL construct, eg NULLIF
-#: parser/parse_expr.c:1072 parser/parse_expr.c:3007
+#: parser/parse_expr.c:1109 parser/parse_expr.c:3072
 #, c-format
 msgid "%s must not return a set"
 msgstr "%s no debe retornar un conjunto"
 
-#: parser/parse_expr.c:1457 parser/parse_expr.c:1489
+#: parser/parse_expr.c:1395
+#, c-format
+msgid "MERGE_ACTION() can only be used in the RETURNING list of a MERGE command"
+msgstr "MERGE_ACTION() sólo puede usarse en la lista RETURNING de una orden MERGE"
+
+#: parser/parse_expr.c:1519 parser/parse_expr.c:1551
 #, c-format
 msgid "number of columns does not match number of values"
 msgstr "el número de columnas no coincide con el número de valores"
 
-#: parser/parse_expr.c:1503
+#: parser/parse_expr.c:1565
 #, c-format
 msgid "source for a multiple-column UPDATE item must be a sub-SELECT or ROW() expression"
 msgstr "el origen para un UPDATE de varias columnas debe ser una expresión sub-SELECT o ROW ()"
 
 #. translator: %s is name of a SQL construct, eg GROUP BY
-#: parser/parse_expr.c:1698 parser/parse_expr.c:2180 parser/parse_func.c:2677
+#: parser/parse_expr.c:1760 parser/parse_expr.c:2243 parser/parse_func.c:2679
 #, c-format
 msgid "set-returning functions are not allowed in %s"
 msgstr "no se permiten funciones que retornan conjuntos en %s"
 
-#: parser/parse_expr.c:1761
+#: parser/parse_expr.c:1824
 msgid "cannot use subquery in check constraint"
 msgstr "no se pueden usar subconsultas en una restricción «check»"
 
-#: parser/parse_expr.c:1765
+#: parser/parse_expr.c:1828
 msgid "cannot use subquery in DEFAULT expression"
 msgstr "no se puede usar una subconsulta en una expresión DEFAULT"
 
-#: parser/parse_expr.c:1768
+#: parser/parse_expr.c:1831
 msgid "cannot use subquery in index expression"
 msgstr "no se puede usar una subconsulta en una expresión de índice"
 
-#: parser/parse_expr.c:1771
+#: parser/parse_expr.c:1834
 msgid "cannot use subquery in index predicate"
 msgstr "no se puede usar una subconsulta en un predicado de índice"
 
-#: parser/parse_expr.c:1774
+#: parser/parse_expr.c:1837
 msgid "cannot use subquery in statistics expression"
 msgstr "no se puede usar una subconsulta en una expresión de estadísticas"
 
-#: parser/parse_expr.c:1777
+#: parser/parse_expr.c:1840
 msgid "cannot use subquery in transform expression"
 msgstr "no se puede usar una subconsulta en una expresión de transformación"
 
-#: parser/parse_expr.c:1780
+#: parser/parse_expr.c:1843
 msgid "cannot use subquery in EXECUTE parameter"
 msgstr "no se puede usar una subconsulta en un parámetro a EXECUTE"
 
-#: parser/parse_expr.c:1783
+#: parser/parse_expr.c:1846
 msgid "cannot use subquery in trigger WHEN condition"
-msgstr "no se puede usar una subconsulta en la condición WHEN de un disparador"
+msgstr "no se puede usar una subconsulta en la condición WHEN de un “trigger”"
 
-#: parser/parse_expr.c:1786
+#: parser/parse_expr.c:1849
 msgid "cannot use subquery in partition bound"
 msgstr "no se puede usar una subconsulta en un borde de partición"
 
-#: parser/parse_expr.c:1789
+#: parser/parse_expr.c:1852
 msgid "cannot use subquery in partition key expression"
 msgstr "no se puede usar una subconsulta en una expresión de llave de partición"
 
-#: parser/parse_expr.c:1792
+#: parser/parse_expr.c:1855
 msgid "cannot use subquery in CALL argument"
 msgstr "no se puede usar una subconsulta en un argumento a CALL"
 
-#: parser/parse_expr.c:1795
+#: parser/parse_expr.c:1858
 msgid "cannot use subquery in COPY FROM WHERE condition"
 msgstr "no se puede usar una subconsulta en la condición WHERE de COPY FROM"
 
-#: parser/parse_expr.c:1798
+#: parser/parse_expr.c:1861
 msgid "cannot use subquery in column generation expression"
 msgstr "no se puede usar una subconsulta en una expresión de generación de columna"
 
-#: parser/parse_expr.c:1851 parser/parse_expr.c:3632
+#: parser/parse_expr.c:1914 parser/parse_expr.c:3764
 #, c-format
 msgid "subquery must return only one column"
 msgstr "la subconsulta debe retornar sólo una columna"
 
-#: parser/parse_expr.c:1922
+#: parser/parse_expr.c:1985
 #, c-format
 msgid "subquery has too many columns"
 msgstr "la subconsulta tiene demasiadas columnas"
 
-#: parser/parse_expr.c:1927
+#: parser/parse_expr.c:1990
 #, c-format
 msgid "subquery has too few columns"
 msgstr "la subconsulta tiene muy pocas columnas"
 
-#: parser/parse_expr.c:2023
+#: parser/parse_expr.c:2086
 #, c-format
 msgid "cannot determine type of empty array"
 msgstr "no se puede determinar el tipo de un array vacío"
 
-#: parser/parse_expr.c:2024
+#: parser/parse_expr.c:2087
 #, c-format
 msgid "Explicitly cast to the desired type, for example ARRAY[]::integer[]."
 msgstr "Agregue una conversión de tipo explícita al tipo deseado, por ejemplo ARRAY[]::integer[]."
 
-#: parser/parse_expr.c:2038
+#: parser/parse_expr.c:2101
 #, c-format
 msgid "could not find element type for data type %s"
 msgstr "no se pudo encontrar el tipo de dato de elemento para el tipo de dato %s"
 
-#: parser/parse_expr.c:2121
-#, fuzzy, c-format
-#| msgid "target lists can have at most %d entries"
+#: parser/parse_expr.c:2184
+#, c-format
 msgid "ROW expressions can have at most %d entries"
-msgstr "las listas de resultados pueden tener a lo más %d entradas"
+msgstr "las expresiones ROW pueden tener a lo más %d entradas"
 
-#: parser/parse_expr.c:2326
+#: parser/parse_expr.c:2389
 #, c-format
 msgid "unnamed XML attribute value must be a column reference"
 msgstr "el valor del atributo XML sin nombre debe ser una referencia a una columna"
 
-#: parser/parse_expr.c:2327
+#: parser/parse_expr.c:2390
 #, c-format
 msgid "unnamed XML element value must be a column reference"
 msgstr "el valor del elemento XML sin nombre debe ser una referencia a una columna"
 
-#: parser/parse_expr.c:2342
+#: parser/parse_expr.c:2405
 #, c-format
 msgid "XML attribute name \"%s\" appears more than once"
 msgstr "el nombre de atributo XML «%s» aparece más de una vez"
 
-#: parser/parse_expr.c:2450
+#: parser/parse_expr.c:2513
 #, c-format
 msgid "cannot cast XMLSERIALIZE result to %s"
 msgstr "no se puede convertir el resultado de XMLSERIALIZE a %s"
 
-#: parser/parse_expr.c:2764 parser/parse_expr.c:2960
+#: parser/parse_expr.c:2827 parser/parse_expr.c:3023
 #, c-format
 msgid "unequal number of entries in row expressions"
 msgstr "número desigual de entradas en expresiones de registro"
 
-#: parser/parse_expr.c:2774
+#: parser/parse_expr.c:2837
 #, c-format
 msgid "cannot compare rows of zero length"
 msgstr "no se pueden comparar registros de largo cero"
 
-#: parser/parse_expr.c:2799
+#: parser/parse_expr.c:2862
 #, c-format
 msgid "row comparison operator must yield type boolean, not type %s"
 msgstr "el operador de comparación de registros debe retornar tipo boolean, no tipo %s"
 
-#: parser/parse_expr.c:2806
+#: parser/parse_expr.c:2869
 #, c-format
 msgid "row comparison operator must not return a set"
 msgstr "el operador de comparación de registros no puede retornar un conjunto"
 
-#: parser/parse_expr.c:2865 parser/parse_expr.c:2906
+#: parser/parse_expr.c:2928 parser/parse_expr.c:2969
 #, c-format
 msgid "could not determine interpretation of row comparison operator %s"
 msgstr "no se pudo determinar la interpretación del operador de comparación de registros %s"
 
-#: parser/parse_expr.c:2867
+#: parser/parse_expr.c:2930
 #, c-format
 msgid "Row comparison operators must be associated with btree operator families."
 msgstr "Los operadores de comparación de registros deben estar asociados a una familia de operadores btree."
 
-#: parser/parse_expr.c:2908
+#: parser/parse_expr.c:2971
 #, c-format
 msgid "There are multiple equally-plausible candidates."
 msgstr "Hay múltiples candidatos igualmente plausibles."
 
-#: parser/parse_expr.c:3001
-#, c-format
-msgid "IS DISTINCT FROM requires = operator to yield boolean"
-msgstr "IS DISTINCT FROM requiere que el operador = retorne boolean"
-
-#: parser/parse_expr.c:3254
+#: parser/parse_expr.c:3306
 #, c-format
 msgid "JSON ENCODING clause is only allowed for bytea input type"
-msgstr ""
+msgstr "la cláusula ENCODING de JSON sólo está permitida para el tipo de entrada bytea"
 
-#: parser/parse_expr.c:3261
+#: parser/parse_expr.c:3370
 #, c-format
-msgid "FORMAT JSON has no effect for json and jsonb types"
-msgstr ""
+msgid "cannot use non-string types with implicit FORMAT JSON clause"
+msgstr "no se puede usar tipos que no son string con la cláusula implícita FORMAT JSON"
 
-#: parser/parse_expr.c:3284
+#: parser/parse_expr.c:3371
 #, c-format
-msgid "cannot use non-string types with implicit FORMAT JSON clause"
-msgstr ""
+msgid "cannot use non-string types with explicit FORMAT JSON clause"
+msgstr "no se puede usar tipos que no son string con la cláusula explítica FORMAT JSON"
 
-#: parser/parse_expr.c:3354
-#, fuzzy, c-format
-#| msgid "cannot cast jsonb string to type %s"
+#: parser/parse_expr.c:3460
+#, c-format
 msgid "cannot use JSON format with non-string output types"
-msgstr "no se puede convertir un string jsonb a tipo %s"
+msgstr "no se puede usar formato JSON con tipos de salida que no son string"
 
-#: parser/parse_expr.c:3367
+#: parser/parse_expr.c:3473
 #, c-format
 msgid "cannot set JSON encoding for non-bytea output types"
-msgstr ""
+msgstr "no se puede definir codificación JSON para tipos de salida que no sea bytea"
 
-#: parser/parse_expr.c:3372
-#, fuzzy, c-format
-#| msgid "unsupported format code: %d"
+#: parser/parse_expr.c:3478
+#, c-format
 msgid "unsupported JSON encoding"
-msgstr "código de formato no soportado: %d"
+msgstr "codificación JSON no soportada"
 
-#: parser/parse_expr.c:3373
+#: parser/parse_expr.c:3479
 #, c-format
 msgid "Only UTF8 JSON encoding is supported."
-msgstr ""
+msgstr "Sólo la codificación JSON UTF8 está soportada."
 
-#: parser/parse_expr.c:3410
-#, fuzzy, c-format
-#| msgid "return type %s is not supported for SQL functions"
+#: parser/parse_expr.c:3516
+#, c-format
 msgid "returning SETOF types is not supported in SQL/JSON functions"
-msgstr "el tipo de retorno %s no es soportado en funciones SQL"
+msgstr "retornar tipos SETOF no está soportado en funciones SQL/JSON"
+
+#: parser/parse_expr.c:3521
+#, c-format
+msgid "returning pseudo-types is not supported in SQL/JSON functions"
+msgstr "retornar pseudo-tipos no está soportado en funciones SQL/JSON"
 
-#: parser/parse_expr.c:3711 parser/parse_func.c:865
+#: parser/parse_expr.c:3849 parser/parse_func.c:866
 #, c-format
 msgid "aggregate ORDER BY is not implemented for window functions"
 msgstr "el ORDER BY de funciones de agregación no está implementado para funciones de ventana deslizante"
 
-#: parser/parse_expr.c:3930
+#: parser/parse_expr.c:4072
 #, c-format
 msgid "cannot use JSON FORMAT ENCODING clause for non-bytea input types"
-msgstr ""
+msgstr "no se puede usar la cláusula FORMAT ENCODING de JSON para tipos de entrada que no son bytea"
 
-#: parser/parse_expr.c:3950
-#, fuzzy, c-format
-#| msgid "cannot use subquery in index predicate"
+#: parser/parse_expr.c:4092
+#, c-format
 msgid "cannot use type %s in IS JSON predicate"
-msgstr "no se puede usar una subconsulta en un predicado de índice"
+msgstr "no se puede tipo %s en predicado IS JSON"
+
+#: parser/parse_expr.c:4118 parser/parse_expr.c:4239
+#, c-format
+#| msgid "cannot specify FORMAT JSON in RETURNING clause of %s()"
+msgid "cannot use type %s in RETURNING clause of %s"
+msgstr "no se puede usar el tipo %s en la cláusula RETURNING de %s"
+
+#: parser/parse_expr.c:4120
+#, c-format
+#| msgid "Try returning a string type or bytea."
+msgid "Try returning json or jsonb."
+msgstr "Intente retornando tipo json o jsonb."
+
+#: parser/parse_expr.c:4168
+#, c-format
+msgid "cannot use non-string types with WITH UNIQUE KEYS clause"
+msgstr "no se puede usar tipos que no sean strings con cláusula WITH UNIQUE KEYS"
+
+#: parser/parse_expr.c:4242
+#, c-format
+msgid "Try returning a string type or bytea."
+msgstr "Intente retornando un tipo de string o bytea."
+
+#: parser/parse_expr.c:4307
+#, c-format
+msgid "cannot specify FORMAT JSON in RETURNING clause of %s()"
+msgstr "no se puede especificar FORMAT JSON en la cláusula RETURNING de %s()"
+
+#: parser/parse_expr.c:4320
+#, c-format
+msgid "SQL/JSON QUOTES behavior must not be specified when WITH WRAPPER is used"
+msgstr "el comportamiento QUOTES de SQL/JSON no debe ser especificado cuando se usa WITH WRAPPER"
+
+#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY)
+#: parser/parse_expr.c:4334 parser/parse_expr.c:4363 parser/parse_expr.c:4394
+#: parser/parse_expr.c:4420 parser/parse_expr.c:4446
+#: parser/parse_jsontable.c:94
+#, c-format
+msgid "invalid %s behavior"
+msgstr "especificación %s no válida"
+
+#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY),
+#. second %s is a SQL/JSON function name (e.g. JSON_QUERY)
+#: parser/parse_expr.c:4337 parser/parse_expr.c:4366
+#, c-format
+msgid "Only ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT, or DEFAULT expression is allowed in %s for %s."
+msgstr "Sólo ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT o expresión DEFAULT se permite en %s para %s."
+
+#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY)
+#. translator: first %s is name a SQL/JSON clause (eg. ON EMPTY)
+#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY)
+#: parser/parse_expr.c:4344 parser/parse_expr.c:4373 parser/parse_expr.c:4402
+#: parser/parse_expr.c:4430 parser/parse_expr.c:4456
+#, c-format
+msgid "invalid %s behavior for column \"%s\""
+msgstr "comportamiento %s no válido para la columna «%s»"
+
+#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY)
+#: parser/parse_expr.c:4347 parser/parse_expr.c:4376
+#, c-format
+msgid "Only ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT, or DEFAULT expression is allowed in %s for formatted columns."
+msgstr "Sólo ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT o expresión DEFAULT se permite en %s para columnas con formato."
+
+#: parser/parse_expr.c:4395
+#, c-format
+msgid "Only ERROR, TRUE, FALSE, or UNKNOWN is allowed in %s for %s."
+msgstr "Sólo ERROR, TRUE, FALSE o UNKNOWN están permitidos en %s para %s."
+
+#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY)
+#: parser/parse_expr.c:4405
+#, c-format
+msgid "Only ERROR, TRUE, FALSE, or UNKNOWN is allowed in %s for EXISTS columns."
+msgstr "Sólo ERROR, TRUE, FALSE o UNKNOWN están permitidos en %s para columnas EXISTS."
+
+#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY),
+#. second %s is a SQL/JSON function name (e.g. JSON_QUERY)
+#: parser/parse_expr.c:4423 parser/parse_expr.c:4449
+#, c-format
+msgid "Only ERROR, NULL, or DEFAULT expression is allowed in %s for %s."
+msgstr "Sólo ERROR, NULL o expresión DEFAULT se permite en %s para %s."
+
+#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY)
+#: parser/parse_expr.c:4433 parser/parse_expr.c:4459
+#, c-format
+msgid "Only ERROR, NULL, or DEFAULT expression is allowed in %s for scalar columns."
+msgstr "Sólo ERROR, NULL o expresión DEFAULT se permite en %s para columnas escalares."
+
+#: parser/parse_expr.c:4489
+#, c-format
+msgid "JSON path expression must be of type %s, not of type %s"
+msgstr "la expresión de ruta JSON debe ser de tipo %s, no tipo %s"
+
+#: parser/parse_expr.c:4707
+#, c-format
+msgid "can only specify a constant, non-aggregate function, or operator expression for DEFAULT"
+msgstr "sólo se puede especificar constantes, funciones no de agregación, o expresión de operador para DEFAULT"
+
+#: parser/parse_expr.c:4712
+#, c-format
+msgid "DEFAULT expression must not contain column references"
+msgstr "las expresiones DEFAULT no pueden contener referencias a columnas"
+
+#: parser/parse_expr.c:4717
+#, c-format
+msgid "DEFAULT expression must not return a set"
+msgstr "las expresiones DEFAULT no deben retornar un conjunto"
+
+#: parser/parse_expr.c:4793 parser/parse_expr.c:4802
+#, c-format
+msgid "cannot cast behavior expression of type %s to %s"
+msgstr "no se puede convertir la expresión de tipo %s a %s"
+
+#: parser/parse_expr.c:4796
+#, c-format
+msgid "You will need to explicitly cast the expression to type %s."
+msgstr "Necesitará aplicar una conversión de la expresión a tipo %s."
 
 #: parser/parse_func.c:194
 #, c-format
@@ -17631,7 +18014,7 @@ msgstr "nombre de argumento «%s» especificado más de una vez"
 msgid "positional argument cannot follow named argument"
 msgstr "un argumento posicional no puede seguir a un argumento con nombre"
 
-#: parser/parse_func.c:287 parser/parse_func.c:2367
+#: parser/parse_func.c:287 parser/parse_func.c:2368
 #, c-format
 msgid "%s is not a procedure"
 msgstr "%s no es un procedimiento"
@@ -17750,7 +18133,7 @@ msgstr "No se pudo escoger la función más adecuada. Puede ser necesario agrega
 msgid "No aggregate function matches the given name and argument types. Perhaps you misplaced ORDER BY; ORDER BY must appear after all regular arguments of the aggregate."
 msgstr "Ninguna función coincide en el nombre y tipos de argumentos. Quizás puso ORDER BY en una mala posición; ORDER BY debe aparecer después de todos los argumentos normales de la función de agregación."
 
-#: parser/parse_func.c:622 parser/parse_func.c:2410
+#: parser/parse_func.c:622 parser/parse_func.c:2411
 #, c-format
 msgid "procedure %s does not exist"
 msgstr "no existe el procedimiento «%s»"
@@ -17770,7 +18153,7 @@ msgstr "Ninguna función coincide en el nombre y tipos de argumentos. Puede ser
 msgid "VARIADIC argument must be an array"
 msgstr "el parámetro VARIADIC debe ser un array"
 
-#: parser/parse_func.c:791 parser/parse_func.c:855
+#: parser/parse_func.c:791 parser/parse_func.c:856
 #, c-format
 msgid "%s(*) must be used to call a parameterless aggregate function"
 msgstr "%s(*) debe ser usado para invocar una función de agregación sin parámetros"
@@ -17785,267 +18168,257 @@ msgstr "las funciones de agregación no pueden retornar conjuntos"
 msgid "aggregates cannot use named arguments"
 msgstr "las funciones de agregación no pueden usar argumentos con nombre"
 
-#: parser/parse_func.c:845
+#: parser/parse_func.c:846
 #, c-format
 msgid "DISTINCT is not implemented for window functions"
 msgstr "DISTINCT no está implementado para funciones de ventana deslizante"
 
-#: parser/parse_func.c:874
+#: parser/parse_func.c:875
 #, c-format
 msgid "FILTER is not implemented for non-aggregate window functions"
 msgstr "FILTER no está implementado para funciones de ventana deslizante"
 
-#: parser/parse_func.c:883
+#: parser/parse_func.c:884
 #, c-format
 msgid "window function calls cannot contain set-returning function calls"
 msgstr "las llamadas a funciones de ventana no pueden contener llamadas a funciones que retornan conjuntos"
 
-#: parser/parse_func.c:891
+#: parser/parse_func.c:892
 #, c-format
 msgid "window functions cannot return sets"
 msgstr "las funciones de ventana deslizante no pueden retornar conjuntos"
 
-#: parser/parse_func.c:2166 parser/parse_func.c:2439
+#: parser/parse_func.c:2167 parser/parse_func.c:2440
 #, c-format
 msgid "could not find a function named \"%s\""
 msgstr "no se pudo encontrar una función llamada «%s»"
 
-#: parser/parse_func.c:2180 parser/parse_func.c:2457
+#: parser/parse_func.c:2181 parser/parse_func.c:2458
 #, c-format
 msgid "function name \"%s\" is not unique"
 msgstr "el nombre de función «%s» no es único"
 
-#: parser/parse_func.c:2182 parser/parse_func.c:2460
+#: parser/parse_func.c:2183 parser/parse_func.c:2461
 #, c-format
 msgid "Specify the argument list to select the function unambiguously."
 msgstr "Especifique la lista de argumentos para seleccionar la función sin ambigüedad."
 
-#: parser/parse_func.c:2226
+#: parser/parse_func.c:2227
 #, c-format
 msgid "procedures cannot have more than %d argument"
 msgid_plural "procedures cannot have more than %d arguments"
 msgstr[0] "los procedimientos no pueden tener más de %d argumento"
 msgstr[1] "los procedimientos no pueden tener más de %d argumentos"
 
-#: parser/parse_func.c:2357
+#: parser/parse_func.c:2358
 #, c-format
 msgid "%s is not a function"
 msgstr "«%s» no es una función"
 
-#: parser/parse_func.c:2377
+#: parser/parse_func.c:2378
 #, c-format
 msgid "function %s is not an aggregate"
 msgstr "la función %s no es una función de agregación"
 
-#: parser/parse_func.c:2405
+#: parser/parse_func.c:2406
 #, c-format
 msgid "could not find a procedure named \"%s\""
 msgstr "no se pudo encontrar un procedimiento llamado «%s»"
 
-#: parser/parse_func.c:2419
+#: parser/parse_func.c:2420
 #, c-format
 msgid "could not find an aggregate named \"%s\""
 msgstr "no se pudo encontrar una función de agregación llamada «%s»"
 
-#: parser/parse_func.c:2424
+#: parser/parse_func.c:2425
 #, c-format
 msgid "aggregate %s(*) does not exist"
 msgstr "no existe la función de agregación %s(*)"
 
-#: parser/parse_func.c:2429
+#: parser/parse_func.c:2430
 #, c-format
 msgid "aggregate %s does not exist"
 msgstr "no existe la función de agregación %s"
 
-#: parser/parse_func.c:2465
+#: parser/parse_func.c:2466
 #, c-format
 msgid "procedure name \"%s\" is not unique"
 msgstr "el nombre de procedimiento «%s» no es única"
 
-#: parser/parse_func.c:2468
+#: parser/parse_func.c:2469
 #, c-format
 msgid "Specify the argument list to select the procedure unambiguously."
 msgstr "Especifique la lista de argumentos para seleccionar el procedimiento sin ambigüedad."
 
-#: parser/parse_func.c:2473
+#: parser/parse_func.c:2474
 #, c-format
 msgid "aggregate name \"%s\" is not unique"
 msgstr "el atributo de la función de agregación «%s» no es único"
 
-#: parser/parse_func.c:2476
+#: parser/parse_func.c:2477
 #, c-format
 msgid "Specify the argument list to select the aggregate unambiguously."
 msgstr "Especifique la lista de argumentos para seleccionar la función de agregación sin ambigüedad."
 
-#: parser/parse_func.c:2481
+#: parser/parse_func.c:2482
 #, c-format
 msgid "routine name \"%s\" is not unique"
 msgstr "el nombre de rutina «%s» no es único"
 
-#: parser/parse_func.c:2484
+#: parser/parse_func.c:2485
 #, c-format
 msgid "Specify the argument list to select the routine unambiguously."
 msgstr "Especifique la lista de argumentos para seleccionar la rutina sin ambigüedad."
 
-#: parser/parse_func.c:2539
+#: parser/parse_func.c:2540
 msgid "set-returning functions are not allowed in JOIN conditions"
 msgstr "no se permiten funciones que retornan conjuntos en condiciones JOIN"
 
-#: parser/parse_func.c:2560
+#: parser/parse_func.c:2561
 msgid "set-returning functions are not allowed in policy expressions"
 msgstr "no se permiten funciones que retornan conjuntos en expresiones de política"
 
-#: parser/parse_func.c:2576
+#: parser/parse_func.c:2577
 msgid "set-returning functions are not allowed in window definitions"
 msgstr "no se permiten funciones que retornan conjuntos definiciones de ventana deslizante"
 
-#: parser/parse_func.c:2613
-#, fuzzy
-#| msgid "set-returning functions are not allowed in trigger WHEN conditions"
+#: parser/parse_func.c:2615
 msgid "set-returning functions are not allowed in MERGE WHEN conditions"
-msgstr "no se permiten funciones que retornan conjuntos en condiciones WHEN de un disparador"
+msgstr "no se permiten funciones que retornan conjuntos en condiciones MERGE WHEN"
 
-#: parser/parse_func.c:2617
+#: parser/parse_func.c:2619
 msgid "set-returning functions are not allowed in check constraints"
 msgstr "no se permiten funciones de que retornan conjuntos en restricciones «check»"
 
-#: parser/parse_func.c:2621
+#: parser/parse_func.c:2623
 msgid "set-returning functions are not allowed in DEFAULT expressions"
 msgstr "no se permiten funciones que retornan conjuntos en expresiones DEFAULT"
 
-#: parser/parse_func.c:2624
+#: parser/parse_func.c:2626
 msgid "set-returning functions are not allowed in index expressions"
 msgstr "no se permiten funciones que retornan conjuntos en expresiones de índice"
 
-#: parser/parse_func.c:2627
+#: parser/parse_func.c:2629
 msgid "set-returning functions are not allowed in index predicates"
 msgstr "no se permiten funciones que retornan conjuntos en predicados de índice"
 
-#: parser/parse_func.c:2630
+#: parser/parse_func.c:2632
 msgid "set-returning functions are not allowed in statistics expressions"
 msgstr "no se permiten funciones que retornan conjuntos en expresiones de estadísticas"
 
-#: parser/parse_func.c:2633
+#: parser/parse_func.c:2635
 msgid "set-returning functions are not allowed in transform expressions"
 msgstr "no se permiten funciones que retornan conjuntos en expresiones de transformación"
 
-#: parser/parse_func.c:2636
+#: parser/parse_func.c:2638
 msgid "set-returning functions are not allowed in EXECUTE parameters"
 msgstr "no se permiten funciones que retornan conjuntos en parámetros a EXECUTE"
 
-#: parser/parse_func.c:2639
+#: parser/parse_func.c:2641
 msgid "set-returning functions are not allowed in trigger WHEN conditions"
-msgstr "no se permiten funciones que retornan conjuntos en condiciones WHEN de un disparador"
+msgstr "no se permiten funciones que retornan conjuntos en condiciones WHEN de un “trigger”"
 
-#: parser/parse_func.c:2642
+#: parser/parse_func.c:2644
 msgid "set-returning functions are not allowed in partition bound"
 msgstr "no se permiten funciones que retornan conjuntos en bordes de partición"
 
-#: parser/parse_func.c:2645
+#: parser/parse_func.c:2647
 msgid "set-returning functions are not allowed in partition key expressions"
 msgstr "no se permiten funciones que retornan conjuntos en expresiones de llave de particionamiento"
 
-#: parser/parse_func.c:2648
+#: parser/parse_func.c:2650
 msgid "set-returning functions are not allowed in CALL arguments"
 msgstr "no se permiten funciones que retornan conjuntos en argumentos de CALL"
 
-#: parser/parse_func.c:2651
+#: parser/parse_func.c:2653
 msgid "set-returning functions are not allowed in COPY FROM WHERE conditions"
 msgstr "no se permiten funciones que retornan conjuntos en las condiciones WHERE de COPY FROM"
 
-#: parser/parse_func.c:2654
+#: parser/parse_func.c:2656
 msgid "set-returning functions are not allowed in column generation expressions"
 msgstr "no se permiten funciones que retornan conjuntos en expresiones de generación de columna"
 
-#: parser/parse_merge.c:119
-#, fuzzy, c-format
-#| msgid "WHERE CURRENT OF is not supported for this table type"
+#: parser/parse_jsontable.c:95
+#, c-format
+msgid "Only EMPTY [ ARRAY ] or ERROR is allowed in the top-level ON ERROR clause."
+msgstr "Sólo EMPTY [ ARRAY ] o ERROR son permitidos en la cláusula ON ERROR de nivel superior."
+
+#: parser/parse_jsontable.c:189 parser/parse_jsontable.c:203
+#, c-format
+msgid "duplicate JSON_TABLE column or path name: %s"
+msgstr "nombre de columna o de “path” duplicada en JSON_TABLE: %s"
+
+#: parser/parse_merge.c:129
+#, c-format
 msgid "WITH RECURSIVE is not supported for MERGE statement"
-msgstr "WHERE CURRENT OF no está soportado para este tipo de tabla"
+msgstr "WITH RECURSIVE no está soportado para la sentencia MERGE"
 
-#: parser/parse_merge.c:161
+#: parser/parse_merge.c:176
 #, c-format
 msgid "unreachable WHEN clause specified after unconditional WHEN clause"
 msgstr "se especificó una cláusula WHEN no alcanzable después de una cláusula WHEN incondicional"
 
-#: parser/parse_merge.c:191
-#, fuzzy, c-format
-#| msgid "LIKE is not supported for creating foreign tables"
-msgid "MERGE is not supported for relations with rules."
-msgstr "LIKE no está soportado para la creación de tablas foráneas"
-
-#: parser/parse_merge.c:208
+#: parser/parse_merge.c:222
 #, c-format
 msgid "name \"%s\" specified more than once"
 msgstr "el nombre «%s» fue especificado más de una vez"
 
-#: parser/parse_merge.c:210
+#: parser/parse_merge.c:224
 #, c-format
 msgid "The name is used both as MERGE target table and data source."
 msgstr "El nombre es usado tanto como tabla de destino de MERGE como como tabla de origen."
 
-#: parser/parse_node.c:87
+#: parser/parse_node.c:82
 #, c-format
 msgid "target lists can have at most %d entries"
 msgstr "las listas de resultados pueden tener a lo más %d entradas"
 
-#: parser/parse_oper.c:123 parser/parse_oper.c:690
+#: parser/parse_oper.c:114 parser/parse_oper.c:678
 #, c-format
 msgid "postfix operators are not supported"
 msgstr "los operadores postfix no están soportados"
 
-#: parser/parse_oper.c:130 parser/parse_oper.c:649 utils/adt/regproc.c:509
-#: utils/adt/regproc.c:683
-#, c-format
-msgid "operator does not exist: %s"
-msgstr "el operador no existe: %s"
-
-#: parser/parse_oper.c:229
+#: parser/parse_oper.c:217
 #, c-format
 msgid "Use an explicit ordering operator or modify the query."
 msgstr "Use un operador de ordenamiento explícito o modifique la consulta."
 
-#: parser/parse_oper.c:485
+#: parser/parse_oper.c:473
 #, c-format
 msgid "operator requires run-time type coercion: %s"
 msgstr "el operador requiere conversión explícita de tipos: %s"
 
-#: parser/parse_oper.c:641
+#: parser/parse_oper.c:629
 #, c-format
 msgid "operator is not unique: %s"
 msgstr "el operador no es único: %s"
 
-#: parser/parse_oper.c:643
+#: parser/parse_oper.c:631
 #, c-format
 msgid "Could not choose a best candidate operator. You might need to add explicit type casts."
 msgstr "No se pudo escoger el operador más adecuado. Puede ser necesario agregar conversiones explícitas de tipos."
 
-#: parser/parse_oper.c:652
+#: parser/parse_oper.c:640
 #, c-format
 msgid "No operator matches the given name and argument type. You might need to add an explicit type cast."
 msgstr "Ningún operador coincide en el nombre y tipo de argumento. Puede ser necesario agregar conversión explícita de tipos."
 
-#: parser/parse_oper.c:654
+#: parser/parse_oper.c:642
 #, c-format
 msgid "No operator matches the given name and argument types. You might need to add explicit type casts."
 msgstr "Ningún operador coincide en el nombre y tipos de argumentos. Puede ser necesario agregar conversión explícita de tipos."
 
-#: parser/parse_oper.c:714 parser/parse_oper.c:828
-#, c-format
-msgid "operator is only a shell: %s"
-msgstr "el operador está inconcluso: %s"
-
-#: parser/parse_oper.c:816
+#: parser/parse_oper.c:803
 #, c-format
 msgid "op ANY/ALL (array) requires array on right side"
 msgstr "op ANY/ALL (array) requiere un array al lado derecho"
 
-#: parser/parse_oper.c:858
+#: parser/parse_oper.c:844
 #, c-format
 msgid "op ANY/ALL (array) requires operator to yield boolean"
 msgstr "op ANY/ALL (array) requiere un operador que entregue boolean"
 
-#: parser/parse_oper.c:863
+#: parser/parse_oper.c:849
 #, c-format
 msgid "op ANY/ALL (array) requires operator not to return a set"
 msgstr "op ANY/ALL (array) requiere un operador que no retorne un conjunto"
@@ -18055,7 +18428,7 @@ msgstr "op ANY/ALL (array) requiere un operador que no retorne un conjunto"
 msgid "inconsistent types deduced for parameter $%d"
 msgstr "para el parámetro $%d se dedujeron tipos de dato inconsistentes"
 
-#: parser/parse_param.c:309 tcop/postgres.c:740
+#: parser/parse_param.c:309 tcop/postgres.c:744
 #, c-format
 msgid "could not determine data type of parameter $%d"
 msgstr "no se pudo determinar el tipo del parámetro $%d"
@@ -18075,13 +18448,13 @@ msgstr "la referencia a la tabla %u es ambigua"
 msgid "table name \"%s\" specified more than once"
 msgstr "el nombre de tabla «%s» fue especificado más de una vez"
 
-#: parser/parse_relation.c:494 parser/parse_relation.c:3629
-#: parser/parse_relation.c:3638
+#: parser/parse_relation.c:494 parser/parse_relation.c:3633
+#: parser/parse_relation.c:3642
 #, c-format
 msgid "invalid reference to FROM-clause entry for table \"%s\""
 msgstr "referencia a la entrada de la cláusula FROM para la tabla «%s» no válida"
 
-#: parser/parse_relation.c:498 parser/parse_relation.c:3640
+#: parser/parse_relation.c:498 parser/parse_relation.c:3644
 #, c-format
 msgid "There is an entry for table \"%s\", but it cannot be referenced from this part of the query."
 msgstr "Hay una entrada para la tabla «%s», pero no puede ser referenciada desde esta parte de la consulta."
@@ -18102,23 +18475,22 @@ msgid "cannot use system column \"%s\" in column generation expression"
 msgstr "no se puede usar la columna de sistema «%s» en una expresión de generación de columna"
 
 #: parser/parse_relation.c:723
-#, fuzzy, c-format
-#| msgid "cannot use system column \"%s\" in partition key"
+#, c-format
 msgid "cannot use system column \"%s\" in MERGE WHEN condition"
-msgstr "no se puede usar la columna de sistema «%s» en llave de particionamiento"
+msgstr "no se puede usar la columna de sistema «%s» en condición MERGE WHEN"
 
-#: parser/parse_relation.c:1236 parser/parse_relation.c:1690
-#: parser/parse_relation.c:2387
+#: parser/parse_relation.c:1236 parser/parse_relation.c:1691
+#: parser/parse_relation.c:2384
 #, c-format
 msgid "table \"%s\" has %d columns available but %d columns specified"
 msgstr "la tabla «%s» tiene %d columnas pero se especificaron %d"
 
-#: parser/parse_relation.c:1444
+#: parser/parse_relation.c:1445
 #, c-format
 msgid "There is a WITH item named \"%s\", but it cannot be referenced from this part of the query."
 msgstr "Hay un elemento WITH llamado «%s», pero no puede ser referenciada desde esta parte de la consulta."
 
-#: parser/parse_relation.c:1446
+#: parser/parse_relation.c:1447
 #, c-format
 msgid "Use WITH RECURSIVE, or re-order the WITH items to remove forward references."
 msgstr "Use WITH RECURSIVE, o reordene los elementos de WITH para eliminar referencias hacia adelante."
@@ -18144,141 +18516,136 @@ msgid "a column definition list is required for functions returning \"record\""
 msgstr "la lista de definición de columnas es obligatoria para funciones que retornan «record»"
 
 #: parser/parse_relation.c:1894
-#, fuzzy, c-format
-#| msgid "target lists can have at most %d entries"
+#, c-format
 msgid "column definition lists can have at most %d entries"
-msgstr "las listas de resultados pueden tener a lo más %d entradas"
+msgstr "las listas de definición de columnas pueden tener a lo más %d entradas"
 
 #: parser/parse_relation.c:1954
 #, c-format
 msgid "function \"%s\" in FROM has unsupported return type %s"
 msgstr "la función «%s» en FROM tiene el tipo de retorno no soportado %s"
 
-#: parser/parse_relation.c:1981 parser/parse_relation.c:2067
-#, fuzzy, c-format
-#| msgid "joins can have at most %d columns"
+#: parser/parse_relation.c:1981 parser/parse_relation.c:2066
+#, c-format
 msgid "functions in FROM can return at most %d columns"
-msgstr "los joins pueden tener a lo más %d columnas"
+msgstr "las funciones en FROM pueden tener a lo más %d columnas"
 
-#: parser/parse_relation.c:2097
-#, fuzzy, c-format
-#| msgid "table \"%s\" has %d columns available but %d columns specified"
+#: parser/parse_relation.c:2096
+#, c-format
 msgid "%s function has %d columns available but %d columns specified"
-msgstr "la tabla «%s» tiene %d columnas pero se especificaron %d"
+msgstr "la función %s tiene %d columnas disponibles pero se especificaron %d"
 
-#: parser/parse_relation.c:2179
+#: parser/parse_relation.c:2177
 #, c-format
 msgid "VALUES lists \"%s\" have %d columns available but %d columns specified"
 msgstr "la lista VALUES «%s» tiene %d columnas disponibles pero se especificaron %d"
 
-#: parser/parse_relation.c:2245
+#: parser/parse_relation.c:2242
 #, c-format
 msgid "joins can have at most %d columns"
 msgstr "los joins pueden tener a lo más %d columnas"
 
-#: parser/parse_relation.c:2270
-#, fuzzy, c-format
-#| msgid "table \"%s\" has %d columns available but %d columns specified"
+#: parser/parse_relation.c:2267
+#, c-format
 msgid "join expression \"%s\" has %d columns available but %d columns specified"
-msgstr "la tabla «%s» tiene %d columnas pero se especificaron %d"
+msgstr "la expresión de join «%s» tiene %d columnas disponibles pero se especificaron %d"
 
-#: parser/parse_relation.c:2360
+#: parser/parse_relation.c:2357
 #, c-format
 msgid "WITH query \"%s\" does not have a RETURNING clause"
 msgstr "la consulta WITH «%s» no tiene una cláusula RETURNING"
 
-#: parser/parse_relation.c:3631
+#: parser/parse_relation.c:3635
 #, c-format
 msgid "Perhaps you meant to reference the table alias \"%s\"."
 msgstr "Probablemente quiera hacer referencia al alias de la tabla «%s»."
 
-#: parser/parse_relation.c:3643
+#: parser/parse_relation.c:3647
 #, c-format
 msgid "To reference that table, you must mark this subquery with LATERAL."
-msgstr ""
+msgstr "Para hacer referencia a esa tabla, debe marcar esta subconsulta con LATERAL."
 
-#: parser/parse_relation.c:3649
+#: parser/parse_relation.c:3653
 #, c-format
 msgid "missing FROM-clause entry for table \"%s\""
 msgstr "falta una entrada para la tabla «%s» en la cláusula FROM"
 
-#: parser/parse_relation.c:3689
-#, fuzzy, c-format
-#| msgid "There is a column named \"%s\" in table \"%s\", but it cannot be referenced from this part of the query."
+#: parser/parse_relation.c:3693
+#, c-format
 msgid "There are columns named \"%s\", but they are in tables that cannot be referenced from this part of the query."
-msgstr "Hay una columna llamada «%s» en la tabla «%s», pero no puede ser referenciada desde esta parte de la consulta."
+msgstr "Hay columnas llamadas «%s», pero están en tablas que no pueden ser referenciadas desde esta parte de la consulta."
 
-#: parser/parse_relation.c:3691
+#: parser/parse_relation.c:3695
 #, c-format
 msgid "Try using a table-qualified name."
-msgstr ""
+msgstr "Intente usar un nombre calificado con nombre de tabla."
 
-#: parser/parse_relation.c:3699
+#: parser/parse_relation.c:3703
 #, c-format
 msgid "There is a column named \"%s\" in table \"%s\", but it cannot be referenced from this part of the query."
 msgstr "Hay una columna llamada «%s» en la tabla «%s», pero no puede ser referenciada desde esta parte de la consulta."
 
-#: parser/parse_relation.c:3702
+#: parser/parse_relation.c:3706
 #, c-format
 msgid "To reference that column, you must mark this subquery with LATERAL."
-msgstr ""
+msgstr "Para hacer referencia a esa columna, debe marcar esta subconsulta con LATERAL."
 
-#: parser/parse_relation.c:3704
+#: parser/parse_relation.c:3708
 #, c-format
 msgid "To reference that column, you must use a table-qualified name."
-msgstr ""
+msgstr "Para hacer referencia a esa columna, debe usar un nombre calificado con nombre de tabla."
 
-#: parser/parse_relation.c:3724
+#: parser/parse_relation.c:3728
 #, c-format
 msgid "Perhaps you meant to reference the column \"%s.%s\"."
 msgstr "Probablemente quiera hacer referencia a la columna «%s.%s»."
 
-#: parser/parse_relation.c:3738
+#: parser/parse_relation.c:3742
 #, c-format
 msgid "Perhaps you meant to reference the column \"%s.%s\" or the column \"%s.%s\"."
 msgstr "Probablemente quiera hacer referencia a la columna «%s.%s» o la columna «%s.%s»."
 
-#: parser/parse_target.c:481 parser/parse_target.c:796
+#: parser/parse_target.c:480 parser/parse_target.c:795
 #, c-format
 msgid "cannot assign to system column \"%s\""
 msgstr "no se puede asignar a la columna de sistema «%s»"
 
-#: parser/parse_target.c:509
+#: parser/parse_target.c:508
 #, c-format
 msgid "cannot set an array element to DEFAULT"
 msgstr "no se puede definir un elemento de array a DEFAULT"
 
-#: parser/parse_target.c:514
+#: parser/parse_target.c:513
 #, c-format
 msgid "cannot set a subfield to DEFAULT"
 msgstr "no se puede definir un subcampo a DEFAULT"
 
-#: parser/parse_target.c:588
+#: parser/parse_target.c:587
 #, c-format
 msgid "column \"%s\" is of type %s but expression is of type %s"
 msgstr "la columna «%s» es de tipo %s pero la expresión es de tipo %s"
 
-#: parser/parse_target.c:780
+#: parser/parse_target.c:779
 #, c-format
 msgid "cannot assign to field \"%s\" of column \"%s\" because its type %s is not a composite type"
 msgstr "no se puede asignar al campo «%s» de la columna «%s» porque su tipo %s no es un tipo compuesto"
 
-#: parser/parse_target.c:789
+#: parser/parse_target.c:788
 #, c-format
 msgid "cannot assign to field \"%s\" of column \"%s\" because there is no such column in data type %s"
 msgstr "no se puede asignar al campo «%s» de la columna «%s» porque no existe esa columna en el tipo de dato %s"
 
-#: parser/parse_target.c:869
+#: parser/parse_target.c:877
 #, c-format
 msgid "subscripted assignment to \"%s\" requires type %s but expression is of type %s"
 msgstr "la asignación subindexada a «%s» requiere tipo %s pero la expresión es de tipo %s"
 
-#: parser/parse_target.c:879
+#: parser/parse_target.c:887
 #, c-format
 msgid "subfield \"%s\" is of type %s but expression is of type %s"
 msgstr "el subcampo «%s» es de tipo %s pero la expresión es de tipo %s"
 
-#: parser/parse_target.c:1314
+#: parser/parse_target.c:1327
 #, c-format
 msgid "SELECT * with no tables specified is not valid"
 msgstr "SELECT * sin especificar tablas no es válido"
@@ -18298,8 +18665,8 @@ msgstr "la referencia a %%TYPE es inapropiada (demasiados nombres con punto): %s
 msgid "type reference %s converted to %s"
 msgstr "la referencia al tipo %s convertida a %s"
 
-#: parser/parse_type.c:278 parser/parse_type.c:813 utils/cache/typcache.c:390
-#: utils/cache/typcache.c:445
+#: parser/parse_type.c:278 parser/parse_type.c:813 utils/cache/typcache.c:397
+#: utils/cache/typcache.c:452
 #, c-format
 msgid "type \"%s\" is only a shell"
 msgstr "el tipo «%s» está inconcluso"
@@ -18319,336 +18686,330 @@ msgstr "los modificadores de tipo deben ser constantes simples o identificadores
 msgid "invalid type name \"%s\""
 msgstr "el nombre de tipo «%s» no es válido"
 
-#: parser/parse_utilcmd.c:264
+#: parser/parse_utilcmd.c:263
 #, c-format
 msgid "cannot create partitioned table as inheritance child"
 msgstr "no se puede crear una tabla particionada como hija de herencia"
 
-#: parser/parse_utilcmd.c:580
+#: parser/parse_utilcmd.c:475
+#, c-format
+msgid "cannot set logged status of a temporary sequence"
+msgstr "no se puede cambiar el estado «logged» de una secuencia temporal"
+
+#: parser/parse_utilcmd.c:611
 #, c-format
 msgid "array of serial is not implemented"
 msgstr "array de serial no está implementado"
 
-#: parser/parse_utilcmd.c:659 parser/parse_utilcmd.c:671
-#: parser/parse_utilcmd.c:730
+#: parser/parse_utilcmd.c:690 parser/parse_utilcmd.c:702
+#: parser/parse_utilcmd.c:761
 #, c-format
 msgid "conflicting NULL/NOT NULL declarations for column \"%s\" of table \"%s\""
 msgstr "las declaraciones NULL/NOT NULL no son coincidentes para la columna «%s» de la tabla «%s»"
 
-#: parser/parse_utilcmd.c:683
+#: parser/parse_utilcmd.c:714
 #, c-format
 msgid "multiple default values specified for column \"%s\" of table \"%s\""
 msgstr "múltiples valores default especificados para columna «%s» de tabla «%s»"
 
-#: parser/parse_utilcmd.c:700
+#: parser/parse_utilcmd.c:731
 #, c-format
 msgid "identity columns are not supported on typed tables"
 msgstr "las columnas identidad no está soportadas en tablas tipadas"
 
-#: parser/parse_utilcmd.c:704
+#: parser/parse_utilcmd.c:735
 #, c-format
 msgid "identity columns are not supported on partitions"
 msgstr "las columnas identidad no están soportadas en particiones"
 
-#: parser/parse_utilcmd.c:713
+#: parser/parse_utilcmd.c:744
 #, c-format
 msgid "multiple identity specifications for column \"%s\" of table \"%s\""
 msgstr "múltiples especificaciones de identidad para columna «%s» de tabla «%s»"
 
-#: parser/parse_utilcmd.c:743
+#: parser/parse_utilcmd.c:774
 #, c-format
 msgid "generated columns are not supported on typed tables"
 msgstr "las columnas generadas no están soportadas en tablas tipadas"
 
-#: parser/parse_utilcmd.c:747
+#: parser/parse_utilcmd.c:778
 #, c-format
 msgid "multiple generation clauses specified for column \"%s\" of table \"%s\""
 msgstr "múltiples cláusulas de generación especificadas para columna «%s» de tabla «%s»"
 
-#: parser/parse_utilcmd.c:765 parser/parse_utilcmd.c:880
+#: parser/parse_utilcmd.c:796 parser/parse_utilcmd.c:911
 #, c-format
 msgid "primary key constraints are not supported on foreign tables"
 msgstr "las restricciones de llave primaria no están soportadas en tablas foráneas"
 
-#: parser/parse_utilcmd.c:774 parser/parse_utilcmd.c:890
+#: parser/parse_utilcmd.c:805 parser/parse_utilcmd.c:921
 #, c-format
 msgid "unique constraints are not supported on foreign tables"
 msgstr "las restricciones unique no están soportadas en tablas foráneas"
 
-#: parser/parse_utilcmd.c:819
+#: parser/parse_utilcmd.c:850
 #, c-format
 msgid "both default and identity specified for column \"%s\" of table \"%s\""
 msgstr "tanto el valor por omisión como identidad especificados para columna «%s» de tabla «%s»"
 
-#: parser/parse_utilcmd.c:827
+#: parser/parse_utilcmd.c:858
 #, c-format
 msgid "both default and generation expression specified for column \"%s\" of table \"%s\""
 msgstr "tanto el valor por omisión como expresión de generación especificados para columna «%s» de tabla «%s»"
 
-#: parser/parse_utilcmd.c:835
+#: parser/parse_utilcmd.c:866
 #, c-format
 msgid "both identity and generation expression specified for column \"%s\" of table \"%s\""
 msgstr "tanto identidad como expresión de generación especificados para columna «%s» de tabla «%s»"
 
-#: parser/parse_utilcmd.c:900
+#: parser/parse_utilcmd.c:931
 #, c-format
 msgid "exclusion constraints are not supported on foreign tables"
 msgstr "las restricciones de exclusión no están soportadas en tablas foráneas"
 
-#: parser/parse_utilcmd.c:906
-#, c-format
-msgid "exclusion constraints are not supported on partitioned tables"
-msgstr "las restricciones de exclusión no están soportadas en tablas particionadas"
-
-#: parser/parse_utilcmd.c:971
+#: parser/parse_utilcmd.c:996
 #, c-format
 msgid "LIKE is not supported for creating foreign tables"
 msgstr "LIKE no está soportado para la creación de tablas foráneas"
 
-#: parser/parse_utilcmd.c:984
-#, fuzzy, c-format
-#| msgid "relation \"%s\" in %s clause not found in FROM clause"
+#: parser/parse_utilcmd.c:1009
+#, c-format
 msgid "relation \"%s\" is invalid in LIKE clause"
-msgstr "la relación «%s» en la cláusula %s no fue encontrada en la cláusula FROM"
+msgstr "la relación «%s» no es válida en cláusula LIKE"
 
-#: parser/parse_utilcmd.c:1741 parser/parse_utilcmd.c:1849
+#: parser/parse_utilcmd.c:1736 parser/parse_utilcmd.c:1844
 #, c-format
 msgid "Index \"%s\" contains a whole-row table reference."
 msgstr "El índice «%s» contiene una referencia a la fila completa (whole-row)."
 
-#: parser/parse_utilcmd.c:2236
+#: parser/parse_utilcmd.c:2242
 #, c-format
 msgid "cannot use an existing index in CREATE TABLE"
 msgstr "no se puede usar un índice existente en CREATE TABLE"
 
-#: parser/parse_utilcmd.c:2256
+#: parser/parse_utilcmd.c:2262
 #, c-format
 msgid "index \"%s\" is already associated with a constraint"
 msgstr "el índice «%s» ya está asociado a una restricción"
 
-#: parser/parse_utilcmd.c:2271
-#, c-format
-msgid "index \"%s\" is not valid"
-msgstr "el índice «%s» no es válido"
-
-#: parser/parse_utilcmd.c:2277
+#: parser/parse_utilcmd.c:2283
 #, c-format
 msgid "\"%s\" is not a unique index"
 msgstr "«%s» no es un índice único"
 
-#: parser/parse_utilcmd.c:2278 parser/parse_utilcmd.c:2285
-#: parser/parse_utilcmd.c:2292 parser/parse_utilcmd.c:2369
+#: parser/parse_utilcmd.c:2284 parser/parse_utilcmd.c:2291
+#: parser/parse_utilcmd.c:2298 parser/parse_utilcmd.c:2375
 #, c-format
 msgid "Cannot create a primary key or unique constraint using such an index."
 msgstr "No se puede crear una restricción de llave primaria o única usando un índice así."
 
-#: parser/parse_utilcmd.c:2284
+#: parser/parse_utilcmd.c:2290
 #, c-format
 msgid "index \"%s\" contains expressions"
 msgstr "el índice «%s» contiene expresiones"
 
-#: parser/parse_utilcmd.c:2291
+#: parser/parse_utilcmd.c:2297
 #, c-format
 msgid "\"%s\" is a partial index"
 msgstr "«%s» es un índice parcial"
 
-#: parser/parse_utilcmd.c:2303
+#: parser/parse_utilcmd.c:2309
 #, c-format
 msgid "\"%s\" is a deferrable index"
 msgstr "«%s» no es un índice postergable (deferrable)"
 
-#: parser/parse_utilcmd.c:2304
+#: parser/parse_utilcmd.c:2310
 #, c-format
 msgid "Cannot create a non-deferrable constraint using a deferrable index."
 msgstr "No se puede crear una restricción no postergable usando un índice postergable."
 
-#: parser/parse_utilcmd.c:2368
+#: parser/parse_utilcmd.c:2374
 #, c-format
 msgid "index \"%s\" column number %d does not have default sorting behavior"
 msgstr "el índice «%s» columna número %d no tiene comportamiento de ordenamiento por omisión"
 
-#: parser/parse_utilcmd.c:2525
+#: parser/parse_utilcmd.c:2531
 #, c-format
 msgid "column \"%s\" appears twice in primary key constraint"
 msgstr "la columna «%s» aparece dos veces en llave primaria"
 
-#: parser/parse_utilcmd.c:2531
+#: parser/parse_utilcmd.c:2537
 #, c-format
 msgid "column \"%s\" appears twice in unique constraint"
 msgstr "la columna «%s» aparece dos veces en restricción unique"
 
-#: parser/parse_utilcmd.c:2878
+#: parser/parse_utilcmd.c:2871
 #, c-format
 msgid "index expressions and predicates can refer only to the table being indexed"
 msgstr "las expresiones y predicados de índice sólo pueden referirse a la tabla en indexación"
 
-#: parser/parse_utilcmd.c:2950
+#: parser/parse_utilcmd.c:2943
 #, c-format
 msgid "statistics expressions can refer only to the table being referenced"
 msgstr "las expresiones estadísticas sólo pueden referirse a la tabla que está siendo referida"
 
-#: parser/parse_utilcmd.c:2993
+#: parser/parse_utilcmd.c:2986
 #, c-format
 msgid "rules on materialized views are not supported"
 msgstr "las reglas en vistas materializadas no están soportadas"
 
-#: parser/parse_utilcmd.c:3053
+#: parser/parse_utilcmd.c:3046
 #, c-format
 msgid "rule WHERE condition cannot contain references to other relations"
 msgstr "la condición WHERE de la regla no puede contener referencias a otras relaciones"
 
-#: parser/parse_utilcmd.c:3125
+#: parser/parse_utilcmd.c:3118
 #, c-format
 msgid "rules with WHERE conditions can only have SELECT, INSERT, UPDATE, or DELETE actions"
 msgstr "las reglas con condiciones WHERE sólo pueden tener acciones SELECT, INSERT, UPDATE o DELETE"
 
-#: parser/parse_utilcmd.c:3143 parser/parse_utilcmd.c:3244
-#: rewrite/rewriteHandler.c:537 rewrite/rewriteManip.c:1082
+#: parser/parse_utilcmd.c:3136 parser/parse_utilcmd.c:3237
+#: rewrite/rewriteHandler.c:544 rewrite/rewriteManip.c:1096
 #, c-format
 msgid "conditional UNION/INTERSECT/EXCEPT statements are not implemented"
 msgstr "las sentencias UNION/INTERSECT/EXCEPT condicionales no están implementadas"
 
-#: parser/parse_utilcmd.c:3161
+#: parser/parse_utilcmd.c:3154
 #, c-format
 msgid "ON SELECT rule cannot use OLD"
 msgstr "una regla ON SELECT no puede usar OLD"
 
-#: parser/parse_utilcmd.c:3165
+#: parser/parse_utilcmd.c:3158
 #, c-format
 msgid "ON SELECT rule cannot use NEW"
 msgstr "una regla ON SELECT no puede usar NEW"
 
-#: parser/parse_utilcmd.c:3174
+#: parser/parse_utilcmd.c:3167
 #, c-format
 msgid "ON INSERT rule cannot use OLD"
 msgstr "una regla ON INSERT no puede usar OLD"
 
-#: parser/parse_utilcmd.c:3180
+#: parser/parse_utilcmd.c:3173
 #, c-format
 msgid "ON DELETE rule cannot use NEW"
 msgstr "una regla ON DELETE no puede usar NEW"
 
-#: parser/parse_utilcmd.c:3208
+#: parser/parse_utilcmd.c:3201
 #, c-format
 msgid "cannot refer to OLD within WITH query"
 msgstr "no se puede hacer referencia a OLD dentro de una consulta WITH"
 
-#: parser/parse_utilcmd.c:3215
+#: parser/parse_utilcmd.c:3208
 #, c-format
 msgid "cannot refer to NEW within WITH query"
 msgstr "no se puede hacer referencia a NEW dentro de una consulta WITH"
 
-#: parser/parse_utilcmd.c:3667
+#: parser/parse_utilcmd.c:3664
 #, c-format
 msgid "misplaced DEFERRABLE clause"
 msgstr "cláusula DEFERRABLE mal puesta"
 
-#: parser/parse_utilcmd.c:3672 parser/parse_utilcmd.c:3687
+#: parser/parse_utilcmd.c:3669 parser/parse_utilcmd.c:3684
 #, c-format
 msgid "multiple DEFERRABLE/NOT DEFERRABLE clauses not allowed"
 msgstr "no se permiten múltiples cláusulas DEFERRABLE/NOT DEFERRABLE"
 
-#: parser/parse_utilcmd.c:3682
+#: parser/parse_utilcmd.c:3679
 #, c-format
 msgid "misplaced NOT DEFERRABLE clause"
 msgstr "la cláusula NOT DEFERRABLE está mal puesta"
 
-#: parser/parse_utilcmd.c:3695 parser/parse_utilcmd.c:3721 gram.y:5993
+#: parser/parse_utilcmd.c:3692 parser/parse_utilcmd.c:3718 gram.y:6114
 #, c-format
 msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE"
 msgstr "una restricción declarada INITIALLY DEFERRED debe ser DEFERRABLE"
 
-#: parser/parse_utilcmd.c:3703
+#: parser/parse_utilcmd.c:3700
 #, c-format
 msgid "misplaced INITIALLY DEFERRED clause"
 msgstr "la cláusula INITIALLY DEFERRED está mal puesta"
 
-#: parser/parse_utilcmd.c:3708 parser/parse_utilcmd.c:3734
+#: parser/parse_utilcmd.c:3705 parser/parse_utilcmd.c:3731
 #, c-format
 msgid "multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed"
 msgstr "no se permiten múltiples cláusulas INITIALLY IMMEDIATE/DEFERRED"
 
-#: parser/parse_utilcmd.c:3729
+#: parser/parse_utilcmd.c:3726
 #, c-format
 msgid "misplaced INITIALLY IMMEDIATE clause"
 msgstr "la cláusula INITIALLY IMMEDIATE está mal puesta"
 
-#: parser/parse_utilcmd.c:3922
+#: parser/parse_utilcmd.c:3919
 #, c-format
 msgid "CREATE specifies a schema (%s) different from the one being created (%s)"
 msgstr "CREATE especifica un esquema (%s) diferente del que se está creando (%s)"
 
-#: parser/parse_utilcmd.c:3957
+#: parser/parse_utilcmd.c:3954
 #, c-format
 msgid "\"%s\" is not a partitioned table"
 msgstr "«%s» no es una tabla particionada"
 
-#: parser/parse_utilcmd.c:3964
+#: parser/parse_utilcmd.c:3961
 #, c-format
 msgid "table \"%s\" is not partitioned"
-msgstr "«la tabla %s» no está particionada"
+msgstr "la tabla «%s» no está particionada"
 
-#: parser/parse_utilcmd.c:3971
+#: parser/parse_utilcmd.c:3968
 #, c-format
 msgid "index \"%s\" is not partitioned"
 msgstr "el índice «%s» no está particionado"
 
-#: parser/parse_utilcmd.c:4011
+#: parser/parse_utilcmd.c:4008
 #, c-format
 msgid "a hash-partitioned table may not have a default partition"
 msgstr "una tabla particionada por hash no puede tener una partición default"
 
-#: parser/parse_utilcmd.c:4028
+#: parser/parse_utilcmd.c:4025
 #, c-format
 msgid "invalid bound specification for a hash partition"
 msgstr "especificación de borde no válida para partición de hash"
 
-#: parser/parse_utilcmd.c:4034 partitioning/partbounds.c:4803
+#: parser/parse_utilcmd.c:4031 partitioning/partbounds.c:4802
 #, c-format
 msgid "modulus for hash partition must be an integer value greater than zero"
 msgstr "el módulo para una partición hash debe ser un valor entero mayor que cero"
 
-#: parser/parse_utilcmd.c:4041 partitioning/partbounds.c:4811
+#: parser/parse_utilcmd.c:4038 partitioning/partbounds.c:4810
 #, c-format
 msgid "remainder for hash partition must be less than modulus"
 msgstr "remanente en partición hash debe ser menor que el módulo"
 
-#: parser/parse_utilcmd.c:4054
+#: parser/parse_utilcmd.c:4051
 #, c-format
 msgid "invalid bound specification for a list partition"
 msgstr "especificación de borde no válida para partición de lista"
 
-#: parser/parse_utilcmd.c:4107
+#: parser/parse_utilcmd.c:4104
 #, c-format
 msgid "invalid bound specification for a range partition"
 msgstr "especificación de borde no válida para partición de rango"
 
-#: parser/parse_utilcmd.c:4113
+#: parser/parse_utilcmd.c:4110
 #, c-format
 msgid "FROM must specify exactly one value per partitioning column"
 msgstr "FROM debe especificar exactamente un valor por cada columna de particionado"
 
-#: parser/parse_utilcmd.c:4117
+#: parser/parse_utilcmd.c:4114
 #, c-format
 msgid "TO must specify exactly one value per partitioning column"
 msgstr "TO debe especificar exactamente un valor por cada columna de particionado"
 
-#: parser/parse_utilcmd.c:4231
+#: parser/parse_utilcmd.c:4228
 #, c-format
 msgid "cannot specify NULL in range bound"
 msgstr "no se puede especificar NULL en borde de rango"
 
-#: parser/parse_utilcmd.c:4280
+#: parser/parse_utilcmd.c:4277
 #, c-format
 msgid "every bound following MAXVALUE must also be MAXVALUE"
 msgstr "cada borde que sigue a un MAXVALUE debe ser también MAXVALUE"
 
-#: parser/parse_utilcmd.c:4287
+#: parser/parse_utilcmd.c:4284
 #, c-format
 msgid "every bound following MINVALUE must also be MINVALUE"
 msgstr "cada borde que siga a un MINVALUE debe ser también MINVALUE"
 
-#: parser/parse_utilcmd.c:4330
+#: parser/parse_utilcmd.c:4327
 #, c-format
 msgid "specified value cannot be cast to type %s for column \"%s\""
 msgstr "el valor especificado no puede ser convertido al tipo %s para la columna «%s»"
@@ -18661,12 +19022,12 @@ msgstr "UESCAPE debe ser seguido por un literal de cadena simple"
 msgid "invalid Unicode escape character"
 msgstr "carácter de escape Unicode no válido"
 
-#: parser/parser.c:347 scan.l:1390
+#: parser/parser.c:347 scan.l:1393
 #, c-format
 msgid "invalid Unicode escape value"
 msgstr "valor de escape Unicode no válido"
 
-#: parser/parser.c:494 utils/adt/varlena.c:6505 scan.l:701
+#: parser/parser.c:494 utils/adt/varlena.c:6640 scan.l:716
 #, c-format
 msgid "invalid Unicode escape"
 msgstr "valor de escape Unicode no válido"
@@ -18676,8 +19037,8 @@ msgstr "valor de escape Unicode no válido"
 msgid "Unicode escapes must be \\XXXX or \\+XXXXXX."
 msgstr "Los escapes Unicode deben ser \\XXXX o \\+XXXXXX."
 
-#: parser/parser.c:523 utils/adt/varlena.c:6530 scan.l:662 scan.l:678
-#: scan.l:694
+#: parser/parser.c:523 utils/adt/varlena.c:6665 scan.l:677 scan.l:693
+#: scan.l:709
 #, c-format
 msgid "invalid Unicode surrogate pair"
 msgstr "par sustituto (surrogate) Unicode no válido"
@@ -18687,89 +19048,89 @@ msgstr "par sustituto (surrogate) Unicode no válido"
 msgid "identifier \"%s\" will be truncated to \"%.*s\""
 msgstr "el identificador «%s» se truncará a «%.*s»"
 
-#: partitioning/partbounds.c:2921
+#: partitioning/partbounds.c:2920
 #, c-format
 msgid "partition \"%s\" conflicts with existing default partition \"%s\""
 msgstr "la partición «%s» está en conflicto con la partición default «%s» existente"
 
-#: partitioning/partbounds.c:2973 partitioning/partbounds.c:2992
-#: partitioning/partbounds.c:3014
+#: partitioning/partbounds.c:2972 partitioning/partbounds.c:2991
+#: partitioning/partbounds.c:3013
 #, c-format
 msgid "every hash partition modulus must be a factor of the next larger modulus"
 msgstr "cada módulo de partición hash debe ser un factor del próximo mayor módulo"
 
-#: partitioning/partbounds.c:2974 partitioning/partbounds.c:3015
+#: partitioning/partbounds.c:2973 partitioning/partbounds.c:3014
 #, c-format
 msgid "The new modulus %d is not a factor of %d, the modulus of existing partition \"%s\"."
 msgstr "El nuevo módulo %d no es un factor de %d, el módulo de la partición existente «%s»."
 
-#: partitioning/partbounds.c:2993
+#: partitioning/partbounds.c:2992
 #, c-format
 msgid "The new modulus %d is not divisible by %d, the modulus of existing partition \"%s\"."
 msgstr "El nuevo módulo %d no es divisible para %d, el módulo de la partición existente «%s»."
 
-#: partitioning/partbounds.c:3128
+#: partitioning/partbounds.c:3127
 #, c-format
 msgid "empty range bound specified for partition \"%s\""
 msgstr "borde de rango vació especificado para la partición «%s»"
 
-#: partitioning/partbounds.c:3130
+#: partitioning/partbounds.c:3129
 #, c-format
 msgid "Specified lower bound %s is greater than or equal to upper bound %s."
 msgstr "El límite inferior %s especificado es mayor o igual al límite superior %s."
 
-#: partitioning/partbounds.c:3238
+#: partitioning/partbounds.c:3237
 #, c-format
 msgid "partition \"%s\" would overlap partition \"%s\""
 msgstr "la partición «%s» traslaparía con la partición «%s»"
 
-#: partitioning/partbounds.c:3355
+#: partitioning/partbounds.c:3354
 #, c-format
 msgid "skipped scanning foreign table \"%s\" which is a partition of default partition \"%s\""
 msgstr "se omitió recorrer la tabla foránea «%s» que es una partición de la partición default «%s»"
 
-#: partitioning/partbounds.c:4807
+#: partitioning/partbounds.c:4806
 #, c-format
 msgid "remainder for hash partition must be an integer value greater than or equal to zero"
 msgstr "remanente en partición hash debe ser un valor entero mayor que o igual a cero"
 
-#: partitioning/partbounds.c:4831
+#: partitioning/partbounds.c:4830
 #, c-format
 msgid "\"%s\" is not a hash partitioned table"
 msgstr "«%s» es una tabla particionada por hash"
 
-#: partitioning/partbounds.c:4842 partitioning/partbounds.c:4959
+#: partitioning/partbounds.c:4841 partitioning/partbounds.c:4958
 #, c-format
 msgid "number of partitioning columns (%d) does not match number of partition keys provided (%d)"
 msgstr "el número de columnas de particionamiento (%d) no coincide con el número de llaves de particionamiento provistas (%d)"
 
-#: partitioning/partbounds.c:4864
+#: partitioning/partbounds.c:4863
 #, c-format
 msgid "column %d of the partition key has type %s, but supplied value is of type %s"
 msgstr "la columna %d de la llave de particionamiento tiene tipo «%s», pero el valor dado es de tipo «%s»"
 
-#: partitioning/partbounds.c:4896
+#: partitioning/partbounds.c:4895
 #, c-format
 msgid "column %d of the partition key has type \"%s\", but supplied value is of type \"%s\""
 msgstr "la columna %d de la llave de particionamiento tiene tipo «%s», pero el valor dado es de tipo «%s»"
 
-#: port/pg_sema.c:209 port/pg_shmem.c:708 port/posix_sema.c:209
-#: port/sysv_sema.c:323 port/sysv_shmem.c:708
+#: port/pg_sema.c:209 port/pg_shmem.c:717 port/posix_sema.c:209
+#: port/sysv_sema.c:329 port/sysv_shmem.c:717
 #, c-format
 msgid "could not stat data directory \"%s\": %m"
 msgstr "no se pudo hacer stat al directorio de datos «%s»: %m"
 
-#: port/pg_shmem.c:223 port/sysv_shmem.c:223
+#: port/pg_shmem.c:224 port/sysv_shmem.c:224
 #, c-format
 msgid "could not create shared memory segment: %m"
 msgstr "no se pudo crear el segmento de memoria compartida: %m"
 
-#: port/pg_shmem.c:224 port/sysv_shmem.c:224
+#: port/pg_shmem.c:225 port/sysv_shmem.c:225
 #, c-format
 msgid "Failed system call was shmget(key=%lu, size=%zu, 0%o)."
 msgstr "La llamada a sistema fallida fue shmget(key=%lu, size=%zu, 0%o)."
 
-#: port/pg_shmem.c:228 port/sysv_shmem.c:228
+#: port/pg_shmem.c:229 port/sysv_shmem.c:229
 #, c-format
 msgid ""
 "This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter, or possibly that it is less than your kernel's SHMMIN parameter.\n"
@@ -18778,7 +19139,7 @@ msgstr ""
 "Este error normalmente significa que la petición de un segmento de memoria compartida de PostgreSQL excedió el parámetro SHMMAX del kernel, o posiblemente que es menor que el parámetro SHMMIN del kernel.\n"
 "La documentación de PostgreSQL contiene más información acerca de la configuración de memoria compartida."
 
-#: port/pg_shmem.c:235 port/sysv_shmem.c:235
+#: port/pg_shmem.c:236 port/sysv_shmem.c:236
 #, c-format
 msgid ""
 "This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMALL parameter.  You might need to reconfigure the kernel with larger SHMALL.\n"
@@ -18787,7 +19148,7 @@ msgstr ""
 "Este error normalmente significa que la petición de un segmento de memoria compartida de PostgreSQL excedió el parámetro SHMALL del kernel.  Puede ser necesario reconfigurar el kernel con un SHMALL mayor.\n"
 "La documentación de PostgreSQL contiene más información acerca de la configuración de memoria compartida."
 
-#: port/pg_shmem.c:241 port/sysv_shmem.c:241
+#: port/pg_shmem.c:242 port/sysv_shmem.c:242
 #, c-format
 msgid ""
 "This error does *not* mean that you have run out of disk space.  It occurs either if all available shared memory IDs have been taken, in which case you need to raise the SHMMNI parameter in your kernel, or because the system's overall limit for shared memory has been reached.\n"
@@ -18796,62 +19157,62 @@ msgstr ""
 "Este error *no* significa que se haya quedado sin espacio en disco.  Ocurre cuando se han usado todos los IDs de memoria compartida disponibles, en cuyo caso puede incrementar el parámetro SHMMNI del kernel, o bien porque se ha alcanzado el límite total de memoria compartida.\n"
 "La documentación de PostgreSQL contiene más información acerca de la configuración de memoria compartida."
 
-#: port/pg_shmem.c:583 port/sysv_shmem.c:583 port/win32_shmem.c:641
+#: port/pg_shmem.c:584 port/sysv_shmem.c:584 port/win32_shmem.c:646
 #, c-format
-msgid "huge_page_size must be 0 on this platform."
-msgstr "huge_page_size debe ser 0 en esta plataforma."
+msgid "\"huge_page_size\" must be 0 on this platform."
+msgstr "«huge_page_size» debe ser 0 en esta plataforma."
 
-#: port/pg_shmem.c:646 port/sysv_shmem.c:646
+#: port/pg_shmem.c:655 port/sysv_shmem.c:655
 #, c-format
 msgid "could not map anonymous shared memory: %m"
 msgstr "no se pudo mapear memoria compartida anónima: %m"
 
-#: port/pg_shmem.c:648 port/sysv_shmem.c:648
+#: port/pg_shmem.c:657 port/sysv_shmem.c:657
 #, c-format
-msgid "This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory, swap space, or huge pages. To reduce the request size (currently %zu bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections."
-msgstr "Este error normalmente significa que la petición de un segmento de memoria compartida de PostgreSQL excedía la memoria disponible, el espacio de intercambio (swap), o las huge pages.  Para reducir el tamaño de la petición (actualmente %zu bytes), reduzca el uso de memoria compartida de PostgreSQL, quizás reduciendo el parámetro shared_buffers o el parámetro max_connections."
+msgid "This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory, swap space, or huge pages. To reduce the request size (currently %zu bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing \"shared_buffers\" or \"max_connections\"."
+msgstr "Este error normalmente significa que la petición de un segmento de memoria compartida de PostgreSQL excedía la memoria disponible, el espacio de intercambio (swap), o las huge pages.  Para reducir el tamaño de la petición (actualmente %zu bytes), reduzca el uso de memoria compartida de PostgreSQL, quizás reduciendo el parámetro «shared_buffers» o el parámetro «max_connections»."
 
-#: port/pg_shmem.c:716 port/sysv_shmem.c:716
+#: port/pg_shmem.c:725 port/sysv_shmem.c:725
 #, c-format
 msgid "huge pages not supported on this platform"
 msgstr "las huge pages no están soportadas en esta plataforma"
 
-#: port/pg_shmem.c:723 port/sysv_shmem.c:723
+#: port/pg_shmem.c:732 port/sysv_shmem.c:732
 #, c-format
-msgid "huge pages not supported with the current shared_memory_type setting"
-msgstr "las huge pages no están soportadas con la configuración actual de shared_memory_type"
+msgid "huge pages not supported with the current \"shared_memory_type\" setting"
+msgstr "las huge pages no están soportadas con la configuración actual de «shared_memory_type»"
 
-#: port/pg_shmem.c:783 port/sysv_shmem.c:783 utils/init/miscinit.c:1351
+#: port/pg_shmem.c:798 port/sysv_shmem.c:798 utils/init/miscinit.c:1401
 #, c-format
 msgid "pre-existing shared memory block (key %lu, ID %lu) is still in use"
 msgstr "el bloque de memoria compartida preexistente (clave %lu, ID %lu) aún está en uso"
 
-#: port/pg_shmem.c:786 port/sysv_shmem.c:786 utils/init/miscinit.c:1353
+#: port/pg_shmem.c:801 port/sysv_shmem.c:801 utils/init/miscinit.c:1403
 #, c-format
 msgid "Terminate any old server processes associated with data directory \"%s\"."
 msgstr "Termine cualquier proceso de servidor asociado al directorio de datos «%s»."
 
-#: port/sysv_sema.c:120
+#: port/sysv_sema.c:126
 #, c-format
 msgid "could not create semaphores: %m"
 msgstr "no se pudo crear semáforos: %m"
 
-#: port/sysv_sema.c:121
+#: port/sysv_sema.c:127
 #, c-format
 msgid "Failed system call was semget(%lu, %d, 0%o)."
 msgstr "La llamada a sistema fallida fue semget(%lu, %d, 0%o)."
 
-#: port/sysv_sema.c:125
+#: port/sysv_sema.c:131
 #, c-format
 msgid ""
-"This error does *not* mean that you have run out of disk space.  It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be exceeded.  You need to raise the respective kernel parameter.  Alternatively, reduce PostgreSQL's consumption of semaphores by reducing its max_connections parameter.\n"
+"This error does *not* mean that you have run out of disk space.  It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be exceeded.  You need to raise the respective kernel parameter.  Alternatively, reduce PostgreSQL's consumption of semaphores by reducing its \"max_connections\" parameter.\n"
 "The PostgreSQL documentation contains more information about configuring your system for PostgreSQL."
 msgstr ""
 "Este error *no* significa que se haya quedado sin espacio en disco.\n"
-"Ocurre cuando se alcanza el límite del sistema del número de semáforos (SEMMNI), o bien cuando se excede el total de semáforos del sistema (SEMMNS).Necesita incrementar el parámetro respectivo del kernel.  Alternativamente, reduzca el consumo de semáforos de PostgreSQL reduciendo el parámetro max_connections.\n"
+"Ocurre cuando se alcanza el límite del sistema del número de semáforos (SEMMNI), o bien cuando se excede el total de semáforos del sistema (SEMMNS).  Necesita incrementar el parámetro respectivo del kernel.  Alternativamente, reduzca el consumo de semáforos de PostgreSQL reduciendo el parámetro «max_connections».\n"
 "La documentación de PostgreSQL contiene más información acerca de cómo configurar su sistema para PostgreSQL."
 
-#: port/sysv_sema.c:155
+#: port/sysv_sema.c:161
 #, c-format
 msgid "You possibly need to raise your kernel's SEMVMX value to be at least %d.  Look into the PostgreSQL documentation for details."
 msgstr "Probablemente necesita incrementar el valor SEMVMX del kernel hasta al menos %d.  Examine la documentación de PostgreSQL para obtener más detalles."
@@ -18976,1185 +19337,1079 @@ msgstr "La llamada a sistema fallida fue DuplicateHandle."
 msgid "Failed system call was MapViewOfFileEx."
 msgstr "La llamada a sistema fallida fue MapViewOfFileEx."
 
-#: postmaster/autovacuum.c:417
-#, c-format
-msgid "could not fork autovacuum launcher process: %m"
-msgstr "no se pudo iniciar el lanzador autovacuum: %m"
-
-#: postmaster/autovacuum.c:764
+#: postmaster/autovacuum.c:686
 #, c-format
 msgid "autovacuum worker took too long to start; canceled"
 msgstr "proceso ayudante autovacuum tomó demasiado tiempo para iniciarse; cancelado"
 
-#: postmaster/autovacuum.c:1489
-#, c-format
-msgid "could not fork autovacuum worker process: %m"
-msgstr "no se pudo lanzar el proceso «autovacuum worker»: %m"
-
-#: postmaster/autovacuum.c:2322
+#: postmaster/autovacuum.c:2203
 #, c-format
 msgid "autovacuum: dropping orphan temp table \"%s.%s.%s\""
 msgstr "autovacuum: eliminando tabla temporal huérfana «%s.%s.%s»"
 
-#: postmaster/autovacuum.c:2558
+#: postmaster/autovacuum.c:2439
 #, c-format
 msgid "automatic vacuum of table \"%s.%s.%s\""
 msgstr "vacuum automático de la tabla «%s.%s.%s»"
 
-#: postmaster/autovacuum.c:2561
+#: postmaster/autovacuum.c:2442
 #, c-format
 msgid "automatic analyze of table \"%s.%s.%s\""
 msgstr "análisis automático de la tabla «%s.%s.%s»"
 
-#: postmaster/autovacuum.c:2755
+#: postmaster/autovacuum.c:2636
 #, c-format
 msgid "processing work entry for relation \"%s.%s.%s\""
 msgstr "procesando elemento de tarea de la tabla «%s.%s.%s»"
 
-#: postmaster/autovacuum.c:3369
+#: postmaster/autovacuum.c:3254
 #, c-format
 msgid "autovacuum not started because of misconfiguration"
 msgstr "autovacuum no fue iniciado debido a un error de configuración"
 
-#: postmaster/autovacuum.c:3370
+#: postmaster/autovacuum.c:3255
 #, c-format
 msgid "Enable the \"track_counts\" option."
 msgstr "Active la opción «track_counts»."
 
-#: postmaster/bgworker.c:259
+#: postmaster/bgworker.c:260
 #, c-format
 msgid "inconsistent background worker state (max_worker_processes=%d, total_slots=%d)"
 msgstr "estado inconsistente de proceso ayudante (max_worker_processes=%d, total_slots=%d)"
 
-#: postmaster/bgworker.c:669
-#, fuzzy, c-format
-#| msgid "background worker \"%s\": only dynamic background workers can request notification"
+#: postmaster/bgworker.c:651
+#, c-format
 msgid "background worker \"%s\": background workers without shared memory access are not supported"
-msgstr "proceso ayudante «%s»: sólo los ayudantes dinámicos pueden pedir notificaciones"
+msgstr "proceso ayudante «%s»: los ayudantes sin acceso a memoria compartida no están soportdos"
 
-#: postmaster/bgworker.c:680
+#: postmaster/bgworker.c:662
 #, c-format
 msgid "background worker \"%s\": cannot request database access if starting at postmaster start"
 msgstr "proceso ayudante «%s»: no se puede solicitar una conexión a base de datos si está iniciando en el momento de inicio de postmaster"
 
-#: postmaster/bgworker.c:694
+#: postmaster/bgworker.c:676
 #, c-format
 msgid "background worker \"%s\": invalid restart interval"
 msgstr "proceso ayudante «%s»: intervalo de reinicio no válido"
 
-#: postmaster/bgworker.c:709
+#: postmaster/bgworker.c:691
 #, c-format
 msgid "background worker \"%s\": parallel workers may not be configured for restart"
 msgstr "proceso ayudante «%s»: los ayudantes paralelos no pueden ser configurados «restart»"
 
-#: postmaster/bgworker.c:733 tcop/postgres.c:3255
+#: postmaster/bgworker.c:715 tcop/postgres.c:3312
 #, c-format
 msgid "terminating background worker \"%s\" due to administrator command"
 msgstr "terminando el proceso ayudante «%s» debido a una orden del administrador"
 
-#: postmaster/bgworker.c:890
+#: postmaster/bgworker.c:888
 #, c-format
-msgid "background worker \"%s\": must be registered in shared_preload_libraries"
-msgstr "proceso ayudante «%s»: debe ser registrado en shared_preload_libraries"
+msgid "background worker \"%s\": must be registered in \"shared_preload_libraries\""
+msgstr "proceso ayudante «%s»: debe ser registrado en «shared_preload_libraries»"
 
-#: postmaster/bgworker.c:902
+#: postmaster/bgworker.c:911
 #, c-format
 msgid "background worker \"%s\": only dynamic background workers can request notification"
 msgstr "proceso ayudante «%s»: sólo los ayudantes dinámicos pueden pedir notificaciones"
 
-#: postmaster/bgworker.c:917
+#: postmaster/bgworker.c:926
 #, c-format
 msgid "too many background workers"
 msgstr "demasiados procesos ayudantes"
 
-#: postmaster/bgworker.c:918
+#: postmaster/bgworker.c:927
 #, c-format
 msgid "Up to %d background worker can be registered with the current settings."
 msgid_plural "Up to %d background workers can be registered with the current settings."
 msgstr[0] "Hasta %d proceso ayudante puede registrarse con la configuración actual."
 msgstr[1] "Hasta %d procesos ayudantes pueden registrarse con la configuración actual."
 
-# FIXME a %s would be nice here
-#: postmaster/bgworker.c:922
+#: postmaster/bgworker.c:931 postmaster/checkpointer.c:445
 #, c-format
-msgid "Consider increasing the configuration parameter \"max_worker_processes\"."
-msgstr "Considere incrementar el parámetro de configuración «max_worker_processes»."
+msgid "Consider increasing the configuration parameter \"%s\"."
+msgstr "Considere incrementar el parámetro de configuración «%s»."
 
-#: postmaster/checkpointer.c:431
+#: postmaster/checkpointer.c:441
 #, c-format
 msgid "checkpoints are occurring too frequently (%d second apart)"
 msgid_plural "checkpoints are occurring too frequently (%d seconds apart)"
 msgstr[0] "los puntos de control están ocurriendo con demasiada frecuencia (cada %d segundo)"
 msgstr[1] "los puntos de control están ocurriendo con demasiada frecuencia (cada %d segundos)"
 
-# FIXME a %s would be nice here
-#: postmaster/checkpointer.c:435
-#, c-format
-msgid "Consider increasing the configuration parameter \"max_wal_size\"."
-msgstr "Considere incrementar el parámetro de configuración «max_wal_size»."
-
-#: postmaster/checkpointer.c:1059
+#: postmaster/checkpointer.c:1067
 #, c-format
 msgid "checkpoint request failed"
-msgstr "falló la petición de punto de control"
+msgstr "falló la petición de checkpoint"
 
-#: postmaster/checkpointer.c:1060
+#: postmaster/checkpointer.c:1068
 #, c-format
 msgid "Consult recent messages in the server log for details."
 msgstr "Vea los mensajes recientes en el registro del servidor para obtener más detalles."
 
-#: postmaster/pgarch.c:416
+#: postmaster/launch_backend.c:381
 #, c-format
-msgid "archive_mode enabled, yet archiving is not configured"
-msgstr ""
+msgid "could not execute server process \"%s\": %m"
+msgstr "no se pudo lanzar el proceso servidor «%s»: %m"
+
+#: postmaster/launch_backend.c:434
+#, c-format
+msgid "could not create backend parameter file mapping: error code %lu"
+msgstr "no se pudo crear mapeo de archivo de parámetros de servidor: código de error %lu"
+
+#: postmaster/launch_backend.c:442
+#, c-format
+msgid "could not map backend parameter memory: error code %lu"
+msgstr "no se pudo mapear memoria para parámetros de servidor: código de error %lu"
+
+#: postmaster/launch_backend.c:459
+#, c-format
+msgid "subprocess command line too long"
+msgstr "orden de subproceso demasiado larga"
+
+#: postmaster/launch_backend.c:477
+#, c-format
+msgid "CreateProcess() call failed: %m (error code %lu)"
+msgstr "llamada a CreateProcess() falló: %m (código de error %lu)"
+
+#: postmaster/launch_backend.c:504
+#, c-format
+msgid "could not unmap view of backend parameter file: error code %lu"
+msgstr "no se pudo desmapear la vista del archivo de parámetros de servidor: código de error %lu"
+
+#: postmaster/launch_backend.c:508
+#, c-format
+msgid "could not close handle to backend parameter file: error code %lu"
+msgstr "no se pudo cerrar el archivo de parámetros de servidor: código de error %lu"
+
+#: postmaster/launch_backend.c:530
+#, c-format
+msgid "giving up after too many tries to reserve shared memory"
+msgstr "renunciar después de demasiados intentos de reservar memoria compartida"
+
+#: postmaster/launch_backend.c:531
+#, c-format
+msgid "This might be caused by ASLR or antivirus software."
+msgstr "Esto podría deberse a ASLR o un software antivirus."
+
+#: postmaster/launch_backend.c:834
+#, c-format
+msgid "could not duplicate socket %d for use in backend: error code %d"
+msgstr "no se pudo duplicar el socket %d para su empleo en el backend: código de error %d"
+
+#: postmaster/launch_backend.c:866
+#, c-format
+msgid "could not create inherited socket: error code %d\n"
+msgstr "no se pudo crear el socket heradado: código de error %d\n"
+
+#: postmaster/launch_backend.c:895
+#, c-format
+msgid "could not open backend variables file \"%s\": %m\n"
+msgstr "no se pudo abrir el archivo de variables de servidor «%s»: %m\n"
+
+#: postmaster/launch_backend.c:901
+#, c-format
+msgid "could not read from backend variables file \"%s\": %m\n"
+msgstr "no se pudo leer el archivo de variables de servidor «%s»: %m\n"
 
-#: postmaster/pgarch.c:438
+#: postmaster/launch_backend.c:912
+#, c-format
+msgid "could not read startup data from backend variables file \"%s\": %m\n"
+msgstr "no se pudo leer el archivo de variables de servidor «%s»: %m\n"
+
+#: postmaster/launch_backend.c:924
+#, c-format
+msgid "could not remove file \"%s\": %m\n"
+msgstr "no se pudo eliminar el archivo «%s»: %m\n"
+
+#: postmaster/launch_backend.c:940
+#, c-format
+msgid "could not map view of backend variables: error code %lu\n"
+msgstr "no se pudo mapear la vista del archivo de variables: código de error %lu\n"
+
+#: postmaster/launch_backend.c:959
+#, c-format
+msgid "could not unmap view of backend variables: error code %lu\n"
+msgstr "no se pudo desmapear la vista del archivo de variables: código de error %lu\n"
+
+#: postmaster/launch_backend.c:966
+#, c-format
+msgid "could not close handle to backend parameter variables: error code %lu\n"
+msgstr "no se pudo cerrar el archivo de variables de servidor: código de error %lu\n"
+
+#: postmaster/pgarch.c:428
+#, c-format
+msgid "\"archive_mode\" enabled, yet archiving is not configured"
+msgstr "«archive_mode» está activado, pero el archivado no está configurado"
+
+#: postmaster/pgarch.c:452
 #, c-format
 msgid "removed orphan archive status file \"%s\""
 msgstr "eliminando archivo de estado huérfano «%s»"
 
-#: postmaster/pgarch.c:448
+#: postmaster/pgarch.c:462
 #, c-format
 msgid "removal of orphan archive status file \"%s\" failed too many times, will try again later"
 msgstr "la eliminación del archivo de estado huérfano «%s» falló demasiadas veces, se tratará de nuevo después"
 
-#: postmaster/pgarch.c:484
+#: postmaster/pgarch.c:498
 #, c-format
 msgid "archiving write-ahead log file \"%s\" failed too many times, will try again later"
 msgstr "el archivado del archivo de WAL «%s» falló demasiadas veces, se tratará de nuevo más tarde"
 
-#: postmaster/pgarch.c:791 postmaster/pgarch.c:830
+#: postmaster/pgarch.c:879 postmaster/pgarch.c:918
 #, c-format
-msgid "both archive_command and archive_library set"
-msgstr ""
+msgid "both \"archive_command\" and \"archive_library\" set"
+msgstr "tanto «archive_command» como «archive_library» están definidos"
 
-#: postmaster/pgarch.c:792 postmaster/pgarch.c:831
+#: postmaster/pgarch.c:880 postmaster/pgarch.c:919
 #, c-format
-msgid "Only one of archive_command, archive_library may be set."
-msgstr ""
+msgid "Only one of \"archive_command\", \"archive_library\" may be set."
+msgstr "Sólo uno de «archive_command», «archive_library» puede ser definido."
 
-#: postmaster/pgarch.c:809
+#: postmaster/pgarch.c:897
 #, c-format
 msgid "restarting archiver process because value of \"archive_library\" was changed"
 msgstr "reiniciando el proceso archivador porque el valor de «archive_library» cambió"
 
-#: postmaster/pgarch.c:846
+#: postmaster/pgarch.c:934
 #, c-format
 msgid "archive modules have to define the symbol %s"
-msgstr ""
+msgstr "los módulos de archivado tienen que definir el símbolo %s"
 
-#: postmaster/pgarch.c:852
+#: postmaster/pgarch.c:940
 #, c-format
 msgid "archive modules must register an archive callback"
 msgstr "los módulos de archivado deben registrar un callback de archivado"
 
-#: postmaster/postmaster.c:759
+#: postmaster/postmaster.c:661
 #, c-format
 msgid "%s: invalid argument for option -f: \"%s\"\n"
 msgstr "%s: argumento no válido para la opción -f: «%s»\n"
 
-#: postmaster/postmaster.c:832
+#: postmaster/postmaster.c:734
 #, c-format
 msgid "%s: invalid argument for option -t: \"%s\"\n"
 msgstr "%s: argumento no válido para la opción -t: «%s»\n"
 
-#: postmaster/postmaster.c:855
+#: postmaster/postmaster.c:757
 #, c-format
 msgid "%s: invalid argument: \"%s\"\n"
 msgstr "%s: argumento no válido: «%s»\n"
 
-#: postmaster/postmaster.c:923
+#: postmaster/postmaster.c:825
 #, c-format
-msgid "%s: superuser_reserved_connections (%d) plus reserved_connections (%d) must be less than max_connections (%d)\n"
-msgstr ""
+msgid "%s: \"superuser_reserved_connections\" (%d) plus \"reserved_connections\" (%d) must be less than \"max_connections\" (%d)\n"
+msgstr "%s: «superuser_reserved_connections» (%d) más «reserved_connections» (%d) debe ser menor que «max_connections» (%d)\n"
+
+#: postmaster/postmaster.c:833
+#, c-format
+msgid "WAL archival cannot be enabled when \"wal_level\" is \"minimal\""
+msgstr "el archivador de WAL no puede activarse cuando «wal_level» es «minimal»"
 
-#: postmaster/postmaster.c:931
+#: postmaster/postmaster.c:836
 #, c-format
-msgid "WAL archival cannot be enabled when wal_level is \"minimal\""
-msgstr "el archivador de WAL no puede activarse cuando wal_level es «minimal»"
+msgid "WAL streaming (\"max_wal_senders\" > 0) requires \"wal_level\" to be \"replica\" or \"logical\""
+msgstr "el flujo de WAL («max_wal_senders» > 0) requiere que «wal_level» sea «replica» o «logical»"
 
-#: postmaster/postmaster.c:934
+#: postmaster/postmaster.c:839
 #, c-format
-msgid "WAL streaming (max_wal_senders > 0) requires wal_level \"replica\" or \"logical\""
-msgstr "el flujo de WAL (max_wal_senders > 0) requiere wal_level «replica» o «logical»"
+msgid "WAL cannot be summarized when \"wal_level\" is \"minimal\""
+msgstr "no se puede sumarizar WAL cuando «wal_level» es «minimal»"
 
-#: postmaster/postmaster.c:942
+#: postmaster/postmaster.c:847
 #, c-format
 msgid "%s: invalid datetoken tables, please fix\n"
 msgstr "%s: las tablas de palabras clave de fecha no son válidas, arréglelas\n"
 
-#: postmaster/postmaster.c:1099
+#: postmaster/postmaster.c:1004
 #, c-format
 msgid "could not create I/O completion port for child queue"
 msgstr "no se pudo crear el port E/S de reporte de completitud para la cola de procesos hijos"
 
-#: postmaster/postmaster.c:1164
+#: postmaster/postmaster.c:1069
 #, c-format
 msgid "ending log output to stderr"
 msgstr "terminando la salida de registro a stderr"
 
-#: postmaster/postmaster.c:1165
+#: postmaster/postmaster.c:1070
 #, c-format
 msgid "Future log output will go to log destination \"%s\"."
 msgstr "La salida futura del registro será enviada al destino de log «%s»."
 
-#: postmaster/postmaster.c:1176
+#: postmaster/postmaster.c:1081
 #, c-format
 msgid "starting %s"
 msgstr "iniciando %s"
 
-#: postmaster/postmaster.c:1236
+#: postmaster/postmaster.c:1143
 #, c-format
 msgid "could not create listen socket for \"%s\""
 msgstr "no se pudo crear el socket de escucha para «%s»"
 
-#: postmaster/postmaster.c:1242
+#: postmaster/postmaster.c:1149
 #, c-format
 msgid "could not create any TCP/IP sockets"
 msgstr "no se pudo crear ningún socket TCP/IP"
 
-#: postmaster/postmaster.c:1274
+#: postmaster/postmaster.c:1181
 #, c-format
 msgid "DNSServiceRegister() failed: error code %ld"
 msgstr "DNSServiceRegister() falló: código de error %ld"
 
-#: postmaster/postmaster.c:1325
+#: postmaster/postmaster.c:1234
 #, c-format
 msgid "could not create Unix-domain socket in directory \"%s\""
 msgstr "no se pudo crear el socket de dominio Unix en el directorio «%s»"
 
-#: postmaster/postmaster.c:1331
+#: postmaster/postmaster.c:1240
 #, c-format
 msgid "could not create any Unix-domain sockets"
 msgstr "no se pudo crear ningún socket de dominio Unix"
 
-#: postmaster/postmaster.c:1342
+#: postmaster/postmaster.c:1251
 #, c-format
 msgid "no socket created for listening"
 msgstr "no se creó el socket de atención"
 
-#: postmaster/postmaster.c:1373
+#: postmaster/postmaster.c:1282
 #, c-format
-msgid "%s: could not change permissions of external PID file \"%s\": %s\n"
-msgstr "%s: no se pudo cambiar los permisos del archivo de PID externo «%s»: %s\n"
+msgid "%s: could not change permissions of external PID file \"%s\": %m\n"
+msgstr "%s: no se pudo cambiar los permisos del archivo de PID externo «%s»: %m\n"
 
-#: postmaster/postmaster.c:1377
+#: postmaster/postmaster.c:1286
 #, c-format
-msgid "%s: could not write external PID file \"%s\": %s\n"
-msgstr "%s: no pudo escribir en el archivo externo de PID «%s»: %s\n"
+msgid "%s: could not write external PID file \"%s\": %m\n"
+msgstr "%s: no pudo escribir en el archivo externo de PID «%s»: %m\n"
 
 #. translator: %s is a configuration file
-#: postmaster/postmaster.c:1405 utils/init/postinit.c:221
-#, fuzzy, c-format
-#| msgid "could not load locale \"%s\""
+#: postmaster/postmaster.c:1314 utils/init/postinit.c:221
+#, c-format
 msgid "could not load %s"
-msgstr "no se pudo cargar la configuración regional «%s»"
+msgstr "no se pudo cargar %s"
 
-#: postmaster/postmaster.c:1431
+#: postmaster/postmaster.c:1342
 #, c-format
 msgid "postmaster became multithreaded during startup"
 msgstr "postmaster se volvió multi-hilo durante la partida"
 
-#: postmaster/postmaster.c:1432
+#: postmaster/postmaster.c:1343 postmaster/postmaster.c:3684
 #, c-format
 msgid "Set the LC_ALL environment variable to a valid locale."
 msgstr "Defina la variable de ambiente LC_ALL a un valor válido."
 
-#: postmaster/postmaster.c:1533
+#: postmaster/postmaster.c:1442
 #, c-format
 msgid "%s: could not locate my own executable path"
 msgstr "%s: no se pudo localizar la ruta de mi propio ejecutable"
 
-#: postmaster/postmaster.c:1540
+#: postmaster/postmaster.c:1449
 #, c-format
 msgid "%s: could not locate matching postgres executable"
 msgstr "%s: no se pudo localizar el ejecutable postgres correspondiente"
 
-#: postmaster/postmaster.c:1563 utils/misc/tzparser.c:340
+#: postmaster/postmaster.c:1472 utils/misc/tzparser.c:341
 #, c-format
 msgid "This may indicate an incomplete PostgreSQL installation, or that the file \"%s\" has been moved away from its proper location."
 msgstr "Esto puede indicar una instalación de PostgreSQL incompleta, o que el archivo «%s» ha sido movido de la ubicación adecuada."
 
-#: postmaster/postmaster.c:1590
+#: postmaster/postmaster.c:1499
 #, c-format
 msgid ""
 "%s: could not find the database system\n"
 "Expected to find it in the directory \"%s\",\n"
-"but could not open file \"%s\": %s\n"
+"but could not open file \"%s\": %m\n"
 msgstr ""
 "%s: no se pudo encontrar el sistema de base de datos\n"
 "Se esperaba encontrar en el directorio PGDATA «%s»,\n"
-"pero no se pudo abrir el archivo «%s»: %s\n"
+"pero no se pudo abrir el archivo «%s»: %m\n"
 
 #. translator: %s is SIGKILL or SIGABRT
-#: postmaster/postmaster.c:1887
+#: postmaster/postmaster.c:1789
 #, c-format
 msgid "issuing %s to recalcitrant children"
-msgstr ""
+msgstr "enviando %s a hijos recalcitrantes"
 
-#: postmaster/postmaster.c:1909
+#: postmaster/postmaster.c:1811
 #, c-format
 msgid "performing immediate shutdown because data directory lock file is invalid"
 msgstr "ejecutando un apagado inmediato porque el archivo de bloqueo del directorio de datos no es válido"
 
-#: postmaster/postmaster.c:1984 postmaster/postmaster.c:2012
+#: postmaster/postmaster.c:1874
 #, c-format
-msgid "incomplete startup packet"
-msgstr "el paquete de inicio está incompleto"
+msgid "wrong key in cancel request for process %d"
+msgstr "llave incorrecta en la petición de cancelación para el proceso %d"
 
-#: postmaster/postmaster.c:1996 postmaster/postmaster.c:2029
+#: postmaster/postmaster.c:1886
 #, c-format
-msgid "invalid length of startup packet"
-msgstr "el de paquete de inicio tiene largo incorrecto"
+msgid "PID %d in cancel request did not match any process"
+msgstr "el PID %d en la petición de cancelación no coincidió con ningún proceso"
 
-#: postmaster/postmaster.c:2058
+#: postmaster/postmaster.c:2106
 #, c-format
-msgid "failed to send SSL negotiation response: %m"
-msgstr "no se pudo enviar la respuesta de negociación SSL: %m"
+msgid "received SIGHUP, reloading configuration files"
+msgstr "se recibió SIGHUP, volviendo a cargar archivos de configuración"
 
-#: postmaster/postmaster.c:2076
+#. translator: %s is a configuration file
+#: postmaster/postmaster.c:2134 postmaster/postmaster.c:2138
 #, c-format
-msgid "received unencrypted data after SSL request"
-msgstr "se recibieron datos no cifrados después de petición SSL"
+msgid "%s was not reloaded"
+msgstr "%s no fue vuelto a cargar"
 
-#: postmaster/postmaster.c:2077 postmaster/postmaster.c:2121
+#: postmaster/postmaster.c:2148
 #, c-format
-msgid "This could be either a client-software bug or evidence of an attempted man-in-the-middle attack."
-msgstr "Esto podría ser un error en el software cliente o evidencia de un intento de ataque man-in-the-middle."
+msgid "SSL configuration was not reloaded"
+msgstr "la configuración SSL no fue vuelta a cargar"
 
-#: postmaster/postmaster.c:2102
+#: postmaster/postmaster.c:2234
 #, c-format
-msgid "failed to send GSSAPI negotiation response: %m"
-msgstr "no se pudo enviar la respuesta de negociación GSSAPI: %m"
+msgid "received smart shutdown request"
+msgstr "se recibió petición de apagado inteligente"
 
-#: postmaster/postmaster.c:2120
+#: postmaster/postmaster.c:2275
 #, c-format
-msgid "received unencrypted data after GSSAPI encryption request"
-msgstr "se recibieron datos no cifrados después de petición de cifrado GSSAPI"
+msgid "received fast shutdown request"
+msgstr "se recibió petición de apagado rápido"
 
-#: postmaster/postmaster.c:2144
+#: postmaster/postmaster.c:2293
 #, c-format
-msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u"
-msgstr "el protocolo %u.%u no está soportado: servidor soporta %u.0 hasta %u.%u"
+msgid "aborting any active transactions"
+msgstr "abortando transacciones activas"
 
-#: postmaster/postmaster.c:2211
-#, c-format
-msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"."
-msgstr "Los valores válidos son: «false», 0, «true», 1, «database»."
-
-#: postmaster/postmaster.c:2252
-#, c-format
-msgid "invalid startup packet layout: expected terminator as last byte"
-msgstr "el paquete de inicio no es válido: se esperaba un terminador en el último byte"
-
-#: postmaster/postmaster.c:2269
-#, c-format
-msgid "no PostgreSQL user name specified in startup packet"
-msgstr "no se especifica un nombre de usuario en el paquete de inicio"
-
-#: postmaster/postmaster.c:2333
-#, c-format
-msgid "the database system is starting up"
-msgstr "el sistema de base de datos está iniciándose"
-
-#: postmaster/postmaster.c:2339
-#, c-format
-msgid "the database system is not yet accepting connections"
-msgstr "el sistema de bases de datos aún no está aceptando conexiones"
-
-#: postmaster/postmaster.c:2340
-#, c-format
-msgid "Consistent recovery state has not been yet reached."
-msgstr "Aún no se ha alcanzado un estado de recuperación consistente."
-
-#: postmaster/postmaster.c:2344
-#, c-format
-msgid "the database system is not accepting connections"
-msgstr "el sistema de bases de datos no está aceptando conexiones"
-
-#: postmaster/postmaster.c:2345
-#, c-format
-msgid "Hot standby mode is disabled."
-msgstr "El modo hot standby está desactivado."
-
-#: postmaster/postmaster.c:2350
-#, c-format
-msgid "the database system is shutting down"
-msgstr "el sistema de base de datos está apagándose"
-
-#: postmaster/postmaster.c:2355
-#, c-format
-msgid "the database system is in recovery mode"
-msgstr "el sistema de base de datos está en modo de recuperación"
-
-#: postmaster/postmaster.c:2360 storage/ipc/procarray.c:491
-#: storage/ipc/sinvaladt.c:306 storage/lmgr/proc.c:353
-#, c-format
-msgid "sorry, too many clients already"
-msgstr "lo siento, ya tenemos demasiados clientes"
-
-#: postmaster/postmaster.c:2447
-#, c-format
-msgid "wrong key in cancel request for process %d"
-msgstr "llave incorrecta en la petición de cancelación para el proceso %d"
-
-#: postmaster/postmaster.c:2459
-#, c-format
-msgid "PID %d in cancel request did not match any process"
-msgstr "el PID %d en la petición de cancelación no coincidió con ningún proceso"
-
-#: postmaster/postmaster.c:2726
-#, c-format
-msgid "received SIGHUP, reloading configuration files"
-msgstr "se recibió SIGHUP, volviendo a cargar archivos de configuración"
-
-#. translator: %s is a configuration file
-#: postmaster/postmaster.c:2750 postmaster/postmaster.c:2754
-#, c-format
-msgid "%s was not reloaded"
-msgstr "%s no fue vuelto a cargar"
-
-#: postmaster/postmaster.c:2764
-#, c-format
-msgid "SSL configuration was not reloaded"
-msgstr "la configuración SSL no fue vuelta a cargar"
-
-#: postmaster/postmaster.c:2854
-#, c-format
-msgid "received smart shutdown request"
-msgstr "se recibió petición de apagado inteligente"
-
-#: postmaster/postmaster.c:2895
-#, c-format
-msgid "received fast shutdown request"
-msgstr "se recibió petición de apagado rápido"
-
-#: postmaster/postmaster.c:2913
-#, c-format
-msgid "aborting any active transactions"
-msgstr "abortando transacciones activas"
-
-#: postmaster/postmaster.c:2937
+#: postmaster/postmaster.c:2317
 #, c-format
 msgid "received immediate shutdown request"
 msgstr "se recibió petición de apagado inmediato"
 
-#: postmaster/postmaster.c:3013
+#: postmaster/postmaster.c:2389
 #, c-format
 msgid "shutdown at recovery target"
 msgstr "apagándose al alcanzar el destino de recuperación"
 
-#: postmaster/postmaster.c:3031 postmaster/postmaster.c:3067
+#: postmaster/postmaster.c:2407 postmaster/postmaster.c:2443
 msgid "startup process"
 msgstr "proceso de inicio"
 
-#: postmaster/postmaster.c:3034
+#: postmaster/postmaster.c:2410
 #, c-format
 msgid "aborting startup due to startup process failure"
 msgstr "abortando el inicio debido a una falla en el procesamiento de inicio"
 
-#: postmaster/postmaster.c:3107
+#: postmaster/postmaster.c:2485
 #, c-format
 msgid "database system is ready to accept connections"
 msgstr "el sistema de bases de datos está listo para aceptar conexiones"
 
-#: postmaster/postmaster.c:3128
+#: postmaster/postmaster.c:2506
 msgid "background writer process"
 msgstr "proceso background writer"
 
-#: postmaster/postmaster.c:3175
+#: postmaster/postmaster.c:2553
 msgid "checkpointer process"
 msgstr "proceso checkpointer"
 
-#: postmaster/postmaster.c:3191
+#: postmaster/postmaster.c:2569
 msgid "WAL writer process"
 msgstr "proceso escritor de WAL"
 
-#: postmaster/postmaster.c:3206
+#: postmaster/postmaster.c:2584
 msgid "WAL receiver process"
 msgstr "proceso receptor de WAL"
 
-#: postmaster/postmaster.c:3221
+#: postmaster/postmaster.c:2598
+msgid "WAL summarizer process"
+msgstr "proceso sumarizador de WAL"
+
+#: postmaster/postmaster.c:2613
 msgid "autovacuum launcher process"
 msgstr "proceso lanzador de autovacuum"
 
-#: postmaster/postmaster.c:3239
+#: postmaster/postmaster.c:2631
 msgid "archiver process"
 msgstr "proceso de archivado"
 
-#: postmaster/postmaster.c:3252
+#: postmaster/postmaster.c:2644
 msgid "system logger process"
 msgstr "proceso de log"
 
-#: postmaster/postmaster.c:3309
+#: postmaster/postmaster.c:2661
+msgid "slot sync worker process"
+msgstr "proceso sincronizador de slot"
+
+#: postmaster/postmaster.c:2717
 #, c-format
 msgid "background worker \"%s\""
 msgstr "proceso ayudante «%s»"
 
-#: postmaster/postmaster.c:3388 postmaster/postmaster.c:3408
-#: postmaster/postmaster.c:3415 postmaster/postmaster.c:3433
+#: postmaster/postmaster.c:2796 postmaster/postmaster.c:2816
+#: postmaster/postmaster.c:2823 postmaster/postmaster.c:2841
 msgid "server process"
 msgstr "proceso de servidor"
 
-#: postmaster/postmaster.c:3487
+#: postmaster/postmaster.c:2895
 #, c-format
 msgid "terminating any other active server processes"
 msgstr "terminando todos los otros procesos de servidor activos"
 
 #. translator: %s is a noun phrase describing a child process, such as
 #. "server process"
-#: postmaster/postmaster.c:3662
+#: postmaster/postmaster.c:3082
 #, c-format
 msgid "%s (PID %d) exited with exit code %d"
 msgstr "%s (PID %d) terminó con código de salida %d"
 
-#: postmaster/postmaster.c:3664 postmaster/postmaster.c:3676
-#: postmaster/postmaster.c:3686 postmaster/postmaster.c:3697
+#: postmaster/postmaster.c:3084 postmaster/postmaster.c:3096
+#: postmaster/postmaster.c:3106 postmaster/postmaster.c:3117
 #, c-format
 msgid "Failed process was running: %s"
 msgstr "El proceso que falló estaba ejecutando: %s"
 
 #. translator: %s is a noun phrase describing a child process, such as
 #. "server process"
-#: postmaster/postmaster.c:3673
+#: postmaster/postmaster.c:3093
 #, c-format
 msgid "%s (PID %d) was terminated by exception 0x%X"
 msgstr "%s (PID %d) fue terminado por una excepción 0x%X"
 
 #. translator: %s is a noun phrase describing a child process, such as
 #. "server process"
-#: postmaster/postmaster.c:3683
+#: postmaster/postmaster.c:3103
 #, c-format
 msgid "%s (PID %d) was terminated by signal %d: %s"
 msgstr "%s (PID %d) fue terminado por una señal %d: %s"
 
 #. translator: %s is a noun phrase describing a child process, such as
 #. "server process"
-#: postmaster/postmaster.c:3695
+#: postmaster/postmaster.c:3115
 #, c-format
 msgid "%s (PID %d) exited with unrecognized status %d"
 msgstr "%s (PID %d) terminó con código %d no reconocido"
 
-#: postmaster/postmaster.c:3903
+#: postmaster/postmaster.c:3331
 #, c-format
 msgid "abnormal database system shutdown"
 msgstr "apagado anormal del sistema de bases de datos"
 
-#: postmaster/postmaster.c:3929
+#: postmaster/postmaster.c:3357
 #, c-format
 msgid "shutting down due to startup process failure"
 msgstr "apagando debido a una falla en el procesamiento de inicio"
 
-#: postmaster/postmaster.c:3935
+#: postmaster/postmaster.c:3363
 #, c-format
-msgid "shutting down because restart_after_crash is off"
-msgstr "apagando debido a que restart_after_crash está desactivado"
+msgid "shutting down because \"restart_after_crash\" is off"
+msgstr "apagando debido a que «restart_after_crash» está desactivado"
 
-#: postmaster/postmaster.c:3947
+#: postmaster/postmaster.c:3375
 #, c-format
 msgid "all server processes terminated; reinitializing"
 msgstr "todos los procesos fueron terminados; reinicializando"
 
-#: postmaster/postmaster.c:4141 postmaster/postmaster.c:5459
-#: postmaster/postmaster.c:5857
+#: postmaster/postmaster.c:3574 postmaster/postmaster.c:3985
+#: postmaster/postmaster.c:4374
 #, c-format
 msgid "could not generate random cancel key"
 msgstr "no se pudo generar una llave de cancelación aleatoria"
 
-#: postmaster/postmaster.c:4203
+#: postmaster/postmaster.c:3607
 #, c-format
 msgid "could not fork new process for connection: %m"
 msgstr "no se pudo lanzar el nuevo proceso para la conexión: %m"
 
-#: postmaster/postmaster.c:4245
+#: postmaster/postmaster.c:3649
 msgid "could not fork new process for connection: "
 msgstr "no se pudo lanzar el nuevo proceso para la conexión: "
 
-#: postmaster/postmaster.c:4351
-#, c-format
-msgid "connection received: host=%s port=%s"
-msgstr "conexión recibida: host=%s port=%s"
-
-#: postmaster/postmaster.c:4356
-#, c-format
-msgid "connection received: host=%s"
-msgstr "conexión recibida: host=%s"
-
-#: postmaster/postmaster.c:4593
-#, c-format
-msgid "could not execute server process \"%s\": %m"
-msgstr "no se pudo lanzar el proceso servidor «%s»: %m"
-
-#: postmaster/postmaster.c:4651
-#, c-format
-msgid "could not create backend parameter file mapping: error code %lu"
-msgstr "no se pudo crear mapeo de archivo de parámetros de servidor: código de error %lu"
-
-#: postmaster/postmaster.c:4660
-#, c-format
-msgid "could not map backend parameter memory: error code %lu"
-msgstr "no se pudo mapear memoria para parámetros de servidor: código de error %lu"
-
-#: postmaster/postmaster.c:4687
-#, c-format
-msgid "subprocess command line too long"
-msgstr "orden de subproceso demasiado larga"
-
-#: postmaster/postmaster.c:4705
-#, c-format
-msgid "CreateProcess() call failed: %m (error code %lu)"
-msgstr "llamada a CreateProcess() falló: %m (código de error %lu)"
-
-#: postmaster/postmaster.c:4732
-#, c-format
-msgid "could not unmap view of backend parameter file: error code %lu"
-msgstr "no se pudo desmapear la vista del archivo de parámetros de servidor: código de error %lu"
-
-#: postmaster/postmaster.c:4736
-#, c-format
-msgid "could not close handle to backend parameter file: error code %lu"
-msgstr "no se pudo cerrar el archivo de parámetros de servidor: código de error %lu"
-
-#: postmaster/postmaster.c:4758
-#, c-format
-msgid "giving up after too many tries to reserve shared memory"
-msgstr "renunciar después de demasiados intentos de reservar memoria compartida"
-
-#: postmaster/postmaster.c:4759
-#, c-format
-msgid "This might be caused by ASLR or antivirus software."
-msgstr "Esto podría deberse a ASLR o un software antivirus."
-
-#: postmaster/postmaster.c:4932
-#, c-format
-msgid "SSL configuration could not be loaded in child process"
-msgstr "No se pudo cargar la configuración SSL en proceso secundario"
-
-#: postmaster/postmaster.c:5057
+#: postmaster/postmaster.c:3683
 #, c-format
-msgid "Please report this to <%s>."
-msgstr "Por favor reporte esto a <%s>."
+#| msgid "postmaster became multithreaded during startup"
+msgid "postmaster became multithreaded"
+msgstr "postmaster se volvió multi-hilo"
 
-#: postmaster/postmaster.c:5125
+#: postmaster/postmaster.c:3752
 #, c-format
 msgid "database system is ready to accept read-only connections"
 msgstr "el sistema de bases de datos está listo para aceptar conexiones de sólo lectura"
 
-#: postmaster/postmaster.c:5383
-#, c-format
-msgid "could not fork startup process: %m"
-msgstr "no se pudo lanzar el proceso de inicio: %m"
-
-#: postmaster/postmaster.c:5387
-#, c-format
-msgid "could not fork archiver process: %m"
-msgstr "no se pudo lanzar el proceso de archivado: %m"
-
-#: postmaster/postmaster.c:5391
-#, c-format
-msgid "could not fork background writer process: %m"
-msgstr "no se pudo lanzar el background writer: %m"
-
-#: postmaster/postmaster.c:5395
-#, c-format
-msgid "could not fork checkpointer process: %m"
-msgstr "no se pudo lanzar el checkpointer: %m"
-
-#: postmaster/postmaster.c:5399
-#, c-format
-msgid "could not fork WAL writer process: %m"
-msgstr "no se pudo lanzar el proceso escritor de WAL: %m"
-
-#: postmaster/postmaster.c:5403
-#, c-format
-msgid "could not fork WAL receiver process: %m"
-msgstr "no se pudo lanzar el proceso receptor de WAL: %m"
-
-#: postmaster/postmaster.c:5407
+#: postmaster/postmaster.c:3935
 #, c-format
-msgid "could not fork process: %m"
-msgstr "no se pudo lanzar el proceso: %m"
+msgid "could not fork \"%s\" process: %m"
+msgstr "no se pudo lanzar el proceso «%s»: %m"
 
-#: postmaster/postmaster.c:5608 postmaster/postmaster.c:5635
+#: postmaster/postmaster.c:4173 postmaster/postmaster.c:4207
 #, c-format
 msgid "database connection requirement not indicated during registration"
 msgstr "el requerimiento de conexión a base de datos no fue indicado durante el registro"
 
-#: postmaster/postmaster.c:5619 postmaster/postmaster.c:5646
+#: postmaster/postmaster.c:4183 postmaster/postmaster.c:4217
 #, c-format
 msgid "invalid processing mode in background worker"
 msgstr "modo de procesamiento no válido en proceso ayudante"
 
-#: postmaster/postmaster.c:5731
+#: postmaster/postmaster.c:4277
 #, c-format
-msgid "could not fork worker process: %m"
-msgstr "no se pudo lanzar el proceso ayudante: %m"
+msgid "could not fork background worker process: %m"
+msgstr "no se pudo lanzar el background writer: %m"
 
-#: postmaster/postmaster.c:5843
+#: postmaster/postmaster.c:4360
 #, c-format
-msgid "no slot available for new worker process"
+msgid "no slot available for new background worker process"
 msgstr "no hay slot disponible para un nuevo proceso ayudante"
 
-#: postmaster/postmaster.c:6174
-#, c-format
-msgid "could not duplicate socket %d for use in backend: error code %d"
-msgstr "no se pudo duplicar el socket %d para su empleo en el backend: código de error %d"
-
-#: postmaster/postmaster.c:6206
-#, c-format
-msgid "could not create inherited socket: error code %d\n"
-msgstr "no se pudo crear el socket heradado: código de error %d\n"
-
-#: postmaster/postmaster.c:6235
-#, c-format
-msgid "could not open backend variables file \"%s\": %s\n"
-msgstr "no se pudo abrir el archivo de variables de servidor «%s»: %s\n"
-
-#: postmaster/postmaster.c:6242
-#, c-format
-msgid "could not read from backend variables file \"%s\": %s\n"
-msgstr "no se pudo leer el archivo de variables de servidor «%s»: %s\n"
-
-#: postmaster/postmaster.c:6251
-#, c-format
-msgid "could not remove file \"%s\": %s\n"
-msgstr "no se pudo eliminar el archivo «%s»: %s\n"
-
-#: postmaster/postmaster.c:6268
-#, c-format
-msgid "could not map view of backend variables: error code %lu\n"
-msgstr "no se pudo mapear la vista del archivo de variables: código de error %lu\n"
-
-#: postmaster/postmaster.c:6277
-#, c-format
-msgid "could not unmap view of backend variables: error code %lu\n"
-msgstr "no se pudo desmapear la vista del archivo de variables: código de error %lu\n"
-
-#: postmaster/postmaster.c:6284
-#, c-format
-msgid "could not close handle to backend parameter variables: error code %lu\n"
-msgstr "no se pudo cerrar el archivo de variables de servidor: código de error %lu\n"
-
-#: postmaster/postmaster.c:6443
+#: postmaster/postmaster.c:4623
 #, c-format
 msgid "could not read exit code for process\n"
 msgstr "no se pudo leer el código de salida del proceso\n"
 
-#: postmaster/postmaster.c:6485
+#: postmaster/postmaster.c:4665
 #, c-format
 msgid "could not post child completion status\n"
 msgstr "no se pudo publicar el estado de completitud del proceso hijo\n"
 
-#: postmaster/syslogger.c:501 postmaster/syslogger.c:1222
+#: postmaster/syslogger.c:529 postmaster/syslogger.c:1173
 #, c-format
 msgid "could not read from logger pipe: %m"
 msgstr "no se pudo leer desde la tubería de log: %m"
 
-#: postmaster/syslogger.c:598 postmaster/syslogger.c:612
+#: postmaster/syslogger.c:629 postmaster/syslogger.c:643
 #, c-format
 msgid "could not create pipe for syslog: %m"
 msgstr "no se pudo crear la tubería para syslog: %m"
 
-#: postmaster/syslogger.c:677
+#: postmaster/syslogger.c:712
 #, c-format
 msgid "could not fork system logger: %m"
 msgstr "no se pudo crear el proceso de log: %m"
 
-#: postmaster/syslogger.c:713
+#: postmaster/syslogger.c:731
 #, c-format
 msgid "redirecting log output to logging collector process"
 msgstr "redirigiendo la salida del registro al proceso recolector de registro"
 
-#: postmaster/syslogger.c:714
+#: postmaster/syslogger.c:732
 #, c-format
 msgid "Future log output will appear in directory \"%s\"."
 msgstr "La salida futura del registro aparecerá en el directorio «%s»."
 
-#: postmaster/syslogger.c:722
+#: postmaster/syslogger.c:740
 #, c-format
 msgid "could not redirect stdout: %m"
 msgstr "no se pudo redirigir stdout: %m"
 
-#: postmaster/syslogger.c:727 postmaster/syslogger.c:744
+#: postmaster/syslogger.c:745 postmaster/syslogger.c:762
 #, c-format
 msgid "could not redirect stderr: %m"
 msgstr "no se pudo redirigir stderr: %m"
 
-#: postmaster/syslogger.c:1177
+#: postmaster/syslogger.c:1128
 #, c-format
-msgid "could not write to log file: %s\n"
-msgstr "no se pudo escribir al archivo de log: %s\n"
+msgid "could not write to log file: %m\n"
+msgstr "no se pudo escribir al archivo de log: %m\n"
 
-#: postmaster/syslogger.c:1295
+#: postmaster/syslogger.c:1246
 #, c-format
 msgid "could not open log file \"%s\": %m"
 msgstr "no se pudo abrir el archivo de registro «%s»: %m"
 
-#: postmaster/syslogger.c:1385
+#: postmaster/syslogger.c:1336
 #, c-format
 msgid "disabling automatic rotation (use SIGHUP to re-enable)"
 msgstr "desactivando rotación automática (use SIGHUP para reactivarla)"
 
-#: regex/regc_pg_locale.c:242
+#: postmaster/walsummarizer.c:740
+#, c-format
+msgid "WAL summarization is not progressing"
+msgstr "la sumarización de WAL no está progresando"
+
+#: postmaster/walsummarizer.c:741
+#, c-format
+msgid "Summarization is needed through %X/%X, but is stuck at %X/%X on disk and %X/%X in memory."
+msgstr "La sumarización de WAL se necesita hasta %X/%X, pero está detenido en %X/%X en disco y %X/%X en memoria."
+
+#: postmaster/walsummarizer.c:755
+#, c-format
+msgid "still waiting for WAL summarization through %X/%X after %ld second"
+msgid_plural "still waiting for WAL summarization through %X/%X after %ld seconds"
+msgstr[0] "todavía esperando al resumen de WAL hasta %X/%X después de %ld segundo"
+msgstr[1] "todavía esperando al resumen de WAL hasta %X/%X después de %ld segundos"
+
+#: postmaster/walsummarizer.c:760
+#, c-format
+msgid "Summarization has reached %X/%X on disk and %X/%X in memory."
+msgstr "El resumen ha alcanzado %X/%X en disco y %X/%X en memoria."
+
+#: postmaster/walsummarizer.c:1000
+#, c-format
+msgid "could not find a valid record after %X/%X"
+msgstr "no se pudo encontrar un registro válido después de %X/%X"
+
+#: postmaster/walsummarizer.c:1045
+#, c-format
+msgid "could not read WAL from timeline %u at %X/%X: %s"
+msgstr "no se pudo leer WAL del timeline %u en %X/%X: %s"
+
+#: postmaster/walsummarizer.c:1051
+#, c-format
+msgid "could not read WAL from timeline %u at %X/%X"
+msgstr "no se pudo leer WAL del timeline %u en %X/%X"
+
+#: regex/regc_pg_locale.c:244
 #, c-format
 msgid "could not determine which collation to use for regular expression"
 msgstr "no se pudo determinar qué ordenamiento usar para la expresión regular"
 
-#: regex/regc_pg_locale.c:265
+#: regex/regc_pg_locale.c:262
 #, c-format
 msgid "nondeterministic collations are not supported for regular expressions"
 msgstr "los ordenamientos no determinísticos no están soportados para expresiones regulares"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:197
-#: replication/libpqwalreceiver/libpqwalreceiver.c:280
-#, fuzzy, c-format
-#| msgid "redo is not required"
+#: replication/libpqwalreceiver/libpqwalreceiver.c:267
+#: replication/libpqwalreceiver/libpqwalreceiver.c:358
+#, c-format
 msgid "password is required"
-msgstr "no se requiere redo"
+msgstr "una contraseña es requerida"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:198
+#: replication/libpqwalreceiver/libpqwalreceiver.c:268
 #, c-format
 msgid "Non-superuser cannot connect if the server does not request a password."
-msgstr ""
+msgstr "No-superusuario no se puede conectar si el servidor no pide una constraseña."
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:199
+#: replication/libpqwalreceiver/libpqwalreceiver.c:269
 #, c-format
-msgid "Target server's authentication method must be changed. or set password_required=false in the subscription attributes."
-msgstr ""
+msgid "Target server's authentication method must be changed, or set password_required=false in the subscription parameters."
+msgstr "El método de autenticación del servidor de destino debe cambiarse, o definir password_required=false en los parámetros de suscripción."
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:211
+#: replication/libpqwalreceiver/libpqwalreceiver.c:285
 #, c-format
 msgid "could not clear search path: %s"
 msgstr "no se pudo limpiar la ruta de búsqueda: %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:257
+#: replication/libpqwalreceiver/libpqwalreceiver.c:331
+#: replication/libpqwalreceiver/libpqwalreceiver.c:517
 #, c-format
 msgid "invalid connection string syntax: %s"
 msgstr "sintaxis de cadena de conexión no válida: %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:281
+#: replication/libpqwalreceiver/libpqwalreceiver.c:359
 #, c-format
 msgid "Non-superusers must provide a password in the connection string."
-msgstr ""
+msgstr "No-superusuario debe proveer una contraseña en la cadena de conexión."
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:307
+#: replication/libpqwalreceiver/libpqwalreceiver.c:386
 #, c-format
 msgid "could not parse connection string: %s"
 msgstr "no se pudo interpretar la cadena de conexión: %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:380
+#: replication/libpqwalreceiver/libpqwalreceiver.c:459
 #, c-format
 msgid "could not receive database system identifier and timeline ID from the primary server: %s"
 msgstr "no se pudo recibir el identificador de sistema y el ID de timeline del servidor primario: %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:392
-#: replication/libpqwalreceiver/libpqwalreceiver.c:635
+#: replication/libpqwalreceiver/libpqwalreceiver.c:476
+#: replication/libpqwalreceiver/libpqwalreceiver.c:763
 #, c-format
 msgid "invalid response from primary server"
 msgstr "respuesta no válida del servidor primario"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:393
+#: replication/libpqwalreceiver/libpqwalreceiver.c:477
 #, c-format
 msgid "Could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields."
 msgstr "No se pudo identificar el sistema: se obtuvieron %d filas y %d campos, se esperaban %d filas y %d o más campos."
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:478
-#: replication/libpqwalreceiver/libpqwalreceiver.c:485
-#: replication/libpqwalreceiver/libpqwalreceiver.c:515
+#: replication/libpqwalreceiver/libpqwalreceiver.c:606
+#: replication/libpqwalreceiver/libpqwalreceiver.c:613
+#: replication/libpqwalreceiver/libpqwalreceiver.c:643
 #, c-format
 msgid "could not start WAL streaming: %s"
 msgstr "no se pudo iniciar el flujo de WAL: %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:539
+#: replication/libpqwalreceiver/libpqwalreceiver.c:667
 #, c-format
 msgid "could not send end-of-streaming message to primary: %s"
 msgstr "no se pudo enviar el mensaje fin-de-flujo al primario: %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:562
+#: replication/libpqwalreceiver/libpqwalreceiver.c:690
 #, c-format
 msgid "unexpected result set after end-of-streaming"
 msgstr "conjunto de resultados inesperado después del fin-de-flujo"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:577
+#: replication/libpqwalreceiver/libpqwalreceiver.c:705
 #, c-format
 msgid "error while shutting down streaming COPY: %s"
 msgstr "ocurrió un error mientras se apagaba el flujo COPY: %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:587
+#: replication/libpqwalreceiver/libpqwalreceiver.c:715
 #, c-format
 msgid "error reading result of streaming command: %s"
 msgstr "ocurrió un error mientras se leía la orden de flujo: %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:596
-#: replication/libpqwalreceiver/libpqwalreceiver.c:832
+#: replication/libpqwalreceiver/libpqwalreceiver.c:724
+#: replication/libpqwalreceiver/libpqwalreceiver.c:957
 #, c-format
 msgid "unexpected result after CommandComplete: %s"
 msgstr "resultado inesperado después de CommandComplete: %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:623
+#: replication/libpqwalreceiver/libpqwalreceiver.c:751
 #, c-format
 msgid "could not receive timeline history file from the primary server: %s"
 msgstr "no se pudo recibir el archivo de historia de timeline del servidor primario: %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:636
+#: replication/libpqwalreceiver/libpqwalreceiver.c:764
 #, c-format
 msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields."
 msgstr "Se esperaba 1 tupla con 2 campos, se obtuvieron %d tuplas con %d campos."
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:795
-#: replication/libpqwalreceiver/libpqwalreceiver.c:848
-#: replication/libpqwalreceiver/libpqwalreceiver.c:855
+#: replication/libpqwalreceiver/libpqwalreceiver.c:920
+#: replication/libpqwalreceiver/libpqwalreceiver.c:973
+#: replication/libpqwalreceiver/libpqwalreceiver.c:980
 #, c-format
 msgid "could not receive data from WAL stream: %s"
 msgstr "no se pudo recibir datos desde el flujo de WAL: %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:875
+#: replication/libpqwalreceiver/libpqwalreceiver.c:1000
 #, c-format
 msgid "could not send data to WAL stream: %s"
 msgstr "no se pudo enviar datos al flujo de WAL: %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:967
+#: replication/libpqwalreceiver/libpqwalreceiver.c:1101
 #, c-format
 msgid "could not create replication slot \"%s\": %s"
-msgstr "no se pudo create el slot de replicación «%s»: %s"
+msgstr "no se pudo crear el slot de replicación «%s»: %s"
+
+#: replication/libpqwalreceiver/libpqwalreceiver.c:1140
+#, c-format
+msgid "could not alter replication slot \"%s\": %s"
+msgstr "no se pudo alterar el slot de replicación «%s»: %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:1013
+#: replication/libpqwalreceiver/libpqwalreceiver.c:1174
 #, c-format
 msgid "invalid query response"
 msgstr "respuesta no válida a consulta"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:1014
+#: replication/libpqwalreceiver/libpqwalreceiver.c:1175
 #, c-format
 msgid "Expected %d fields, got %d fields."
 msgstr "Se esperaban %d campos, se obtuvieron %d campos."
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:1084
+#: replication/libpqwalreceiver/libpqwalreceiver.c:1245
 #, c-format
 msgid "the query interface requires a database connection"
 msgstr "la interfaz de consulta requiere una conexión a base de datos"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:1115
+#: replication/libpqwalreceiver/libpqwalreceiver.c:1277
 msgid "empty query"
 msgstr "consulta vacía"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:1121
+#: replication/libpqwalreceiver/libpqwalreceiver.c:1283
 msgid "unexpected pipeline mode"
 msgstr "modo pipeline inesperado"
 
 #: replication/logical/applyparallelworker.c:719
-#, fuzzy, c-format
-#| msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has finished"
+#, c-format
 msgid "logical replication parallel apply worker for subscription \"%s\" has finished"
-msgstr "el ayudante de sincronización de tabla de replicación lógica para la suscripción «%s», tabla «%s» ha terminado"
+msgstr "el ayudante paralelo «apply» de replicación lógica para la suscripción «%s» ha terminado"
 
-#: replication/logical/applyparallelworker.c:825
-#, fuzzy, c-format
-#| msgid "lost connection to parallel worker"
+#: replication/logical/applyparallelworker.c:822
+#, c-format
 msgid "lost connection to the logical replication apply worker"
-msgstr "se ha perdido la conexión al ayudante paralelo"
-
-#: replication/logical/applyparallelworker.c:893
-#, fuzzy, c-format
-#| msgid "could not map dynamic shared memory segment"
-msgid "unable to map dynamic shared memory segment"
-msgstr "no se pudo mapear el segmento de memoria compartida dinámica"
+msgstr "se ha perdido la conexión al ayudante paralelo “apply” de replicación"
 
-#: replication/logical/applyparallelworker.c:899
-#, fuzzy, c-format
-#| msgid "invalid magic number in dynamic shared memory segment"
-msgid "bad magic number in dynamic shared memory segment"
-msgstr "número mágico no válido en segmento de memoria compartida dinámica"
-
-#: replication/logical/applyparallelworker.c:1027
-#: replication/logical/applyparallelworker.c:1029
-#: replication/logical/worker.c:447
-#, fuzzy
-#| msgid "lost connection to parallel worker"
+#: replication/logical/applyparallelworker.c:1024
+#: replication/logical/applyparallelworker.c:1026
 msgid "logical replication parallel apply worker"
-msgstr "se ha perdido la conexión al ayudante paralelo"
+msgstr "ayudante paralelo “apply” de replicación lógica"
 
-#: replication/logical/applyparallelworker.c:1043
-#, fuzzy, c-format
-#| msgid "terminating logical replication worker due to timeout"
+#: replication/logical/applyparallelworker.c:1040
+#, c-format
 msgid "logical replication parallel apply worker exited due to error"
-msgstr "terminando el proceso de replicación lógica debido a que se agotó el tiempo de espera"
+msgstr "el ayudante paralelo “apply” de replicación lógica terminó debido a un error"
 
-#: replication/logical/applyparallelworker.c:1130
-#: replication/logical/applyparallelworker.c:1303
-#, fuzzy, c-format
-#| msgid "lost connection to parallel worker"
+#: replication/logical/applyparallelworker.c:1127
+#: replication/logical/applyparallelworker.c:1300
+#, c-format
 msgid "lost connection to the logical replication parallel apply worker"
-msgstr "se ha perdido la conexión al ayudante paralelo"
+msgstr "se perdió la conexión al ayudante paralelo “apply” de replicación lógica"
 
-#: replication/logical/applyparallelworker.c:1183
-#, fuzzy, c-format
-#| msgid "could not send tuple to shared-memory queue"
+#: replication/logical/applyparallelworker.c:1180
+#, c-format
 msgid "could not send data to shared-memory queue"
-msgstr "no se pudo enviar la tupla a la cola en memoria compartida"
+msgstr "no se pudo enviar datos a la cola en memoria compartida"
 
-#: replication/logical/applyparallelworker.c:1218
+#: replication/logical/applyparallelworker.c:1215
 #, c-format
 msgid "logical replication apply worker will serialize the remaining changes of remote transaction %u to a file"
-msgstr ""
+msgstr "el ayudante paralelo «apply» de replicación lógica serializará los cambios restantes de la transacción remota %u a un archivo"
 
 # FIXME see slot.c:779.  See also  postmaster.c:835
-#: replication/logical/decode.c:180 replication/logical/logical.c:140
-#, fuzzy, c-format
-#| msgid "logical decoding requires wal_level >= logical"
-msgid "logical decoding on standby requires wal_level >= logical on the primary"
-msgstr "la decodificación lógica requiere wal_level >= logical"
+#: replication/logical/decode.c:177 replication/logical/logical.c:141
+#, c-format
+msgid "logical decoding on standby requires \"wal_level\" >= \"logical\" on the primary"
+msgstr "la decodificación lógica en standby requiere «wal_level» >= «logical» en el primario"
 
-#: replication/logical/launcher.c:331
+#: replication/logical/launcher.c:334
 #, c-format
 msgid "cannot start logical replication workers when max_replication_slots = 0"
-msgstr "no se pueden iniciar procesos ayudantes de replicación cuando max_replication_slots = 0"
+msgstr "no se pueden iniciar procesos ayudantes de replicación lógica cuando max_replication_slots = 0"
 
-#: replication/logical/launcher.c:424
+#: replication/logical/launcher.c:427
 #, c-format
 msgid "out of logical replication worker slots"
-msgstr "se agotaron los slots de procesos ayudantes de replicación"
+msgstr "se agotaron los slots de procesos ayudantes de replicación lógica"
 
-#: replication/logical/launcher.c:425
+#: replication/logical/launcher.c:428 replication/logical/launcher.c:514
+#: replication/slot.c:1524 storage/lmgr/lock.c:985 storage/lmgr/lock.c:1023
+#: storage/lmgr/lock.c:2836 storage/lmgr/lock.c:4221 storage/lmgr/lock.c:4286
+#: storage/lmgr/lock.c:4636 storage/lmgr/predicate.c:2469
+#: storage/lmgr/predicate.c:2484 storage/lmgr/predicate.c:3881
 #, c-format
-msgid "You might need to increase max_logical_replication_workers."
-msgstr "Puede ser necesario incrementar max_logical_replication_workers."
+msgid "You might need to increase \"%s\"."
+msgstr "Puede ser necesario incrementar «%s»."
 
-#: replication/logical/launcher.c:498
+#: replication/logical/launcher.c:513
 #, c-format
 msgid "out of background worker slots"
 msgstr "se acabaron los slots de procesos ayudante"
 
-#: replication/logical/launcher.c:499
-#, c-format
-msgid "You might need to increase max_worker_processes."
-msgstr "Puede ser necesario incrementar max_worker_processes."
-
-#: replication/logical/launcher.c:705
+#: replication/logical/launcher.c:720
 #, c-format
 msgid "logical replication worker slot %d is empty, cannot attach"
 msgstr "el slot del worker de replicación lógica %d está vacío, no se puede adjuntar"
 
-#: replication/logical/launcher.c:714
+#: replication/logical/launcher.c:729
 #, c-format
 msgid "logical replication worker slot %d is already used by another worker, cannot attach"
 msgstr "el slot de replicación lógica %d ya está siendo utilizado por otro worker, no se puede adjuntar"
 
 # FIXME see slot.c:779.  See also  postmaster.c:835
-#: replication/logical/logical.c:120
+#: replication/logical/logical.c:121
 #, c-format
-msgid "logical decoding requires wal_level >= logical"
-msgstr "la decodificación lógica requiere wal_level >= logical"
+msgid "logical decoding requires \"wal_level\" >= \"logical\""
+msgstr "la decodificación lógica requiere «wal_level» >= «logical»"
 
-#: replication/logical/logical.c:125
+#: replication/logical/logical.c:126
 #, c-format
 msgid "logical decoding requires a database connection"
 msgstr "decodificación lógica requiere una conexión a una base de datos"
 
-#: replication/logical/logical.c:363 replication/logical/logical.c:517
+#: replication/logical/logical.c:365 replication/logical/logical.c:519
 #, c-format
 msgid "cannot use physical replication slot for logical decoding"
 msgstr "no se puede usar un slot de replicación física para decodificación lógica"
 
-#: replication/logical/logical.c:368 replication/logical/logical.c:522
+#: replication/logical/logical.c:370 replication/logical/logical.c:529
 #, c-format
 msgid "replication slot \"%s\" was not created in this database"
 msgstr "el slot de replicación «%s» no fue creado en esta base de datos"
 
-#: replication/logical/logical.c:375
+#: replication/logical/logical.c:377
 #, c-format
 msgid "cannot create logical replication slot in transaction that has performed writes"
 msgstr "no se puede crear un slot de replicación lógica en una transacción que ha efectuado escrituras"
 
-#: replication/logical/logical.c:534 replication/logical/logical.c:541
+#: replication/logical/logical.c:540
+#, c-format
+msgid "cannot use replication slot \"%s\" for logical decoding"
+msgstr "no se puede usar el slot de replicación «%s» para decodificación lógica"
+
+#: replication/logical/logical.c:542 replication/slot.c:798
+#: replication/slot.c:829
+#, c-format
+msgid "This replication slot is being synchronized from the primary server."
+msgstr "Este slot de replicación está siendo sincronizado desde el servidor primario."
+
+#: replication/logical/logical.c:543
+#, c-format
+msgid "Specify another replication slot."
+msgstr "Especifique otro slot de replicación."
+
+#: replication/logical/logical.c:554 replication/logical/logical.c:561
 #, c-format
 msgid "can no longer get changes from replication slot \"%s\""
 msgstr "ya no se pueden recibir cambios desde el slot de replicación «%s»"
 
-#: replication/logical/logical.c:536
+#: replication/logical/logical.c:556
 #, c-format
 msgid "This slot has been invalidated because it exceeded the maximum reserved size."
 msgstr "Este slot ha sido invalidado porque excedió el máximo del tamaño de reserva."
 
-#: replication/logical/logical.c:543
-#, fuzzy, c-format
-#| msgid "This slot has been invalidated because it exceeded the maximum reserved size."
+#: replication/logical/logical.c:563
+#, c-format
 msgid "This slot has been invalidated because it was conflicting with recovery."
-msgstr "Este slot ha sido invalidado porque excedió el máximo del tamaño de reserva."
+msgstr "Este slot ha sido invalidado porque estaba en conflicto con la recuperación."
 
-#: replication/logical/logical.c:608
+#: replication/logical/logical.c:628
 #, c-format
 msgid "starting logical decoding for slot \"%s\""
 msgstr "iniciando la decodificación lógica para el slot «%s»"
 
-#: replication/logical/logical.c:610
+#: replication/logical/logical.c:630
 #, c-format
 msgid "Streaming transactions committing after %X/%X, reading WAL from %X/%X."
 msgstr "Transacciones en flujo comprometiendo después de %X/%X, leyendo WAL desde %X/%X."
 
-#: replication/logical/logical.c:758
+#: replication/logical/logical.c:778
 #, c-format
 msgid "slot \"%s\", output plugin \"%s\", in the %s callback, associated LSN %X/%X"
 msgstr "slot «%s», plugin de salida «%s», en el callback %s, LSN asociado %X/%X"
 
 # FIXME must quote callback name?  Need a translator: comment?
-#: replication/logical/logical.c:764
+#: replication/logical/logical.c:784
 #, c-format
 msgid "slot \"%s\", output plugin \"%s\", in the %s callback"
 msgstr "slot «%s», plugin de salida «%s», en el callback %s"
 
-#: replication/logical/logical.c:935 replication/logical/logical.c:980
-#: replication/logical/logical.c:1025 replication/logical/logical.c:1071
+#: replication/logical/logical.c:955 replication/logical/logical.c:1000
+#: replication/logical/logical.c:1045 replication/logical/logical.c:1091
 #, c-format
 msgid "logical replication at prepare time requires a %s callback"
 msgstr "durante la preparación, la replicación lógica requiere una función callback %s"
 
-#: replication/logical/logical.c:1303 replication/logical/logical.c:1352
-#: replication/logical/logical.c:1393 replication/logical/logical.c:1479
-#: replication/logical/logical.c:1528
+#: replication/logical/logical.c:1323 replication/logical/logical.c:1372
+#: replication/logical/logical.c:1413 replication/logical/logical.c:1499
+#: replication/logical/logical.c:1548
 #, c-format
 msgid "logical streaming requires a %s callback"
 msgstr "el flujo lógico requiere una función callback %s"
 
-#: replication/logical/logical.c:1438
+#: replication/logical/logical.c:1458
 #, c-format
 msgid "logical streaming at prepare time requires a %s callback"
 msgstr "durante la preparación, el flujo lógico requiere una función callback %s"
 
-#: replication/logical/logicalfuncs.c:126
+#: replication/logical/logicalfuncs.c:123
 #, c-format
 msgid "slot name must not be null"
 msgstr "el nombre de slot no debe ser null"
 
-#: replication/logical/logicalfuncs.c:142
+#: replication/logical/logicalfuncs.c:139
 #, c-format
 msgid "options array must not be null"
 msgstr "el array de opciones no debe ser null"
 
-#: replication/logical/logicalfuncs.c:159
+#: replication/logical/logicalfuncs.c:156
 #, c-format
 msgid "array must be one-dimensional"
 msgstr "el array debe ser unidimensional"
 
-#: replication/logical/logicalfuncs.c:165
+#: replication/logical/logicalfuncs.c:162
 #, c-format
 msgid "array must not contain nulls"
 msgstr "el array no debe contener nulls"
 
-#: replication/logical/logicalfuncs.c:180 utils/adt/json.c:1484
-#: utils/adt/jsonb.c:1403
+#: replication/logical/logicalfuncs.c:177 utils/adt/json.c:1420
+#: utils/adt/jsonb.c:1304
 #, c-format
 msgid "array must have even number of elements"
 msgstr "el array debe tener un número par de elementos"
 
-#: replication/logical/logicalfuncs.c:227
+#: replication/logical/logicalfuncs.c:224
 #, c-format
 msgid "logical decoding output plugin \"%s\" produces binary output, but function \"%s\" expects textual data"
 msgstr "el plugin de salida de decodificación lógica «%s» produce salida binaria, pero «%s» espera datos textuales"
 
 #: replication/logical/origin.c:190
 #, c-format
-msgid "cannot query or manipulate replication origin when max_replication_slots = 0"
-msgstr "no se puede consultar o manipular orígenes de replicación cuando max_replication_slots = 0"
+msgid "cannot query or manipulate replication origin when \"max_replication_slots\" is 0"
+msgstr "no se puede consultar o manipular orígenes de replicación cuando «max_replication_slots» = 0"
 
 #: replication/logical/origin.c:195
 #, c-format
@@ -20167,22 +20422,19 @@ msgid "replication origin \"%s\" does not exist"
 msgstr "no existe el origen de replicación «%s»"
 
 #: replication/logical/origin.c:331
-#, fuzzy, c-format
-#| msgid "could not create replication slot \"%s\": %s"
+#, c-format
 msgid "could not find free replication origin ID"
-msgstr "no se pudo create el slot de replicación «%s»: %s"
+msgstr "no se pudo encontrar un ID de origen de replicación disponible"
 
 #: replication/logical/origin.c:365
-#, fuzzy, c-format
-#| msgid "could not drop replication slot \"%s\" on publisher: %s"
+#, c-format
 msgid "could not drop replication origin with ID %d, in use by PID %d"
-msgstr "no se pudo eliminar el slot de replicación «%s» en editor (publisher): %s"
+msgstr "no se pudo eliminar el origen de replicación con ID %d, en uso por el PID %d"
 
 #: replication/logical/origin.c:492
-#, fuzzy, c-format
-#| msgid "replication origin \"%s\" does not exist"
+#, c-format
 msgid "replication origin with ID %d does not exist"
-msgstr "no existe el origen de replicación «%s»"
+msgstr "no existe el origen de replicación con ID %d"
 
 #: replication/logical/origin.c:757
 #, c-format
@@ -20191,1319 +20443,1582 @@ msgstr "el checkpoint de replicación tiene número mágico erróneo %u en lugar
 
 #: replication/logical/origin.c:798
 #, c-format
-msgid "could not find free replication state, increase max_replication_slots"
-msgstr "no se pudo encontrar una estructura de replicación libre, incremente max_replication_slots"
+msgid "could not find free replication state, increase \"max_replication_slots\""
+msgstr "no se pudo encontrar una estructura de replicación libre, incremente «max_replication_slots»"
 
 #: replication/logical/origin.c:806
-#, fuzzy, c-format
-#| msgid "recovery restart point at %X/%X"
+#, c-format
 msgid "recovered replication state of node %d to %X/%X"
-msgstr "restartpoint de recuperación en %X/%X"
+msgstr "recuperado el estado de replicación del nodo %d a %X/%X"
 
 #: replication/logical/origin.c:816
 #, c-format
 msgid "replication slot checkpoint has wrong checksum %u, expected %u"
 msgstr "el checkpoint del slot de replicación tiene suma de verificación errónea %u, se esperaba %u"
 
-#: replication/logical/origin.c:944 replication/logical/origin.c:1141
-#, fuzzy, c-format
-#| msgid "replication slot \"%s\" is active for PID %d"
+#: replication/logical/origin.c:944 replication/logical/origin.c:1143
+#, c-format
 msgid "replication origin with ID %d is already active for PID %d"
-msgstr "el slot de replicación «%s» está activo para el PID %d"
+msgstr "el origen de replicación con ID %d está activo para el PID %d"
 
-#: replication/logical/origin.c:955 replication/logical/origin.c:1153
-#, fuzzy, c-format
-#| msgid "could not find free replication state, increase max_replication_slots"
+#: replication/logical/origin.c:955 replication/logical/origin.c:1156
+#, c-format
 msgid "could not find free replication state slot for replication origin with ID %d"
-msgstr "no se pudo encontrar una estructura de replicación libre, incremente max_replication_slots"
+msgstr "no se pudo encontrar una estructura de replicación libre para el origen de replicación con el ID %d"
 
-#: replication/logical/origin.c:957 replication/logical/origin.c:1155
-#: replication/slot.c:2086
+#: replication/logical/origin.c:957 replication/logical/origin.c:1158
+#: replication/slot.c:2384
 #, c-format
-msgid "Increase max_replication_slots and try again."
-msgstr "Aumente max_replication_slots y reintente."
+msgid "Increase \"max_replication_slots\" and try again."
+msgstr "Aumente «max_replication_slots» y reintente."
 
-#: replication/logical/origin.c:1112
+#: replication/logical/origin.c:1114
 #, c-format
 msgid "cannot setup replication origin when one is already setup"
 msgstr "no se puede establecer un destino de replicación cuando ya hay uno definido"
 
-#: replication/logical/origin.c:1196 replication/logical/origin.c:1412
-#: replication/logical/origin.c:1432
+#: replication/logical/origin.c:1199 replication/logical/origin.c:1415
+#: replication/logical/origin.c:1435
 #, c-format
 msgid "no replication origin is configured"
 msgstr "no hay un destino de replicación configurado"
 
-#: replication/logical/origin.c:1282
+#: replication/logical/origin.c:1285
 #, c-format
 msgid "replication origin name \"%s\" is reserved"
 msgstr "el nombre de origen de replicación «%s» está reservado"
 
-#: replication/logical/origin.c:1284
-#, fuzzy, c-format
-#| msgid "Role names starting with \"pg_\" are reserved."
+#: replication/logical/origin.c:1287
+#, c-format
 msgid "Origin names \"%s\", \"%s\", and names starting with \"pg_\" are reserved."
-msgstr "Los nombres de rol que empiezan con «pg_» están reservados."
+msgstr "Los nombres de origen «%s», «%s» y los que empiezan con «pg_» están reservados."
 
-#: replication/logical/relation.c:240
+#: replication/logical/relation.c:242
 #, c-format
 msgid "\"%s\""
 msgstr "«%s»"
 
-#: replication/logical/relation.c:243
+#: replication/logical/relation.c:245
 #, c-format
 msgid ", \"%s\""
 msgstr ", «%s»"
 
-#: replication/logical/relation.c:249
+#: replication/logical/relation.c:251
 #, c-format
 msgid "logical replication target relation \"%s.%s\" is missing replicated column: %s"
 msgid_plural "logical replication target relation \"%s.%s\" is missing replicated columns: %s"
 msgstr[0] "a la relación destino de replicación lógica «%s.%s» le falta la columna replicada: %s"
 msgstr[1] "a la relación destino de replicación lógica «%s.%s» le faltan las columnas replicadas: %s"
 
-#: replication/logical/relation.c:304
+#: replication/logical/relation.c:306
 #, c-format
 msgid "logical replication target relation \"%s.%s\" uses system columns in REPLICA IDENTITY index"
 msgstr "la relación de destino de replicación lógica «%s.%s» usa columnas de sistemas en el índice REPLICA IDENTITY"
 
-#: replication/logical/relation.c:396
+#: replication/logical/relation.c:398
 #, c-format
 msgid "logical replication target relation \"%s.%s\" does not exist"
 msgstr "la relación destino de replicación lógica «%s.%s» no existe"
 
-#: replication/logical/reorderbuffer.c:3936
+#: replication/logical/reorderbuffer.c:3999
 #, c-format
 msgid "could not write to data file for XID %u: %m"
 msgstr "no se pudo escribir al archivo de datos para el XID %u: %m"
 
-#: replication/logical/reorderbuffer.c:4282
-#: replication/logical/reorderbuffer.c:4307
+#: replication/logical/reorderbuffer.c:4345
+#: replication/logical/reorderbuffer.c:4370
 #, c-format
 msgid "could not read from reorderbuffer spill file: %m"
 msgstr "no se pudo leer desde el archivo de desborde de reorderbuffer: %m"
 
-#: replication/logical/reorderbuffer.c:4286
-#: replication/logical/reorderbuffer.c:4311
+#: replication/logical/reorderbuffer.c:4349
+#: replication/logical/reorderbuffer.c:4374
 #, c-format
 msgid "could not read from reorderbuffer spill file: read %d instead of %u bytes"
 msgstr "no se pudo leer desde el archivo de desborde de reorderbuffer: se leyeron sólo %d en ve de %u bytes"
 
-#: replication/logical/reorderbuffer.c:4561
+#: replication/logical/reorderbuffer.c:4624
 #, c-format
 msgid "could not remove file \"%s\" during removal of pg_replslot/%s/xid*: %m"
 msgstr "no se pudo borrar el archivo «%s» durante la eliminación de pg_replslot/%s/xid*: %m"
 
 # FIXME almost duplicated again!?
-#: replication/logical/reorderbuffer.c:5057
+#: replication/logical/reorderbuffer.c:5120
 #, c-format
 msgid "could not read from file \"%s\": read %d instead of %d bytes"
 msgstr "no se pudo leer del archivo «%s»: se leyeron %d en lugar de %d bytes"
 
-#: replication/logical/snapbuild.c:639
+#: replication/logical/slotsync.c:215
+#, c-format
+msgid "could not synchronize replication slot \"%s\" because remote slot precedes local slot"
+msgstr "no se puede sincronizar el slot de replicación «%s» porque el slot remoto precede al slot local"
+
+#: replication/logical/slotsync.c:217
+#, c-format
+msgid "The remote slot has LSN %X/%X and catalog xmin %u, but the local slot has LSN %X/%X and catalog xmin %u."
+msgstr "El slot remoto tiene LSN %X/%X y xmin de catálogo %u, pero el slot local tiene LSN %X/%X y xmin de catálogo %u."
+
+#: replication/logical/slotsync.c:459
+#, c-format
+msgid "dropped replication slot \"%s\" of database with OID %u"
+msgstr "se eliminó el slot de replicación «%s» de la base de datos con OID %u"
+
+#: replication/logical/slotsync.c:579
+#, c-format
+msgid "could not synchronize replication slot \"%s\""
+msgstr "no se pudo sincronizar el slot de replicación «%s»"
+
+#: replication/logical/slotsync.c:580
+#, c-format
+msgid "Logical decoding could not find consistent point from local slot's LSN %X/%X."
+msgstr "La decodificación lógica no pudo encontrar un punto consistente desde el LSN del slot local %X/%X."
+
+#: replication/logical/slotsync.c:589
+#, c-format
+msgid "newly created replication slot \"%s\" is sync-ready now"
+msgstr "el slot de replicación «%s» recién creado está listo para la sincronización"
+
+#: replication/logical/slotsync.c:628
+#, c-format
+msgid "skipping slot synchronization because the received slot sync LSN %X/%X for slot \"%s\" is ahead of the standby position %X/%X"
+msgstr "omitiendo sincronización de slot porque el LSN %X/%X de sincronización recibido para el slot «%s» está adelantado respecto a la posición del standby %X/%X"
+
+#: replication/logical/slotsync.c:650
+#, c-format
+msgid "exiting from slot synchronization because same name slot \"%s\" already exists on the standby"
+msgstr "saliendo de la sincronización de slot porque un slot con el mismo nombre «%s» ya existe en el standby"
+
+#: replication/logical/slotsync.c:819
+#, c-format
+msgid "could not fetch failover logical slots info from the primary server: %s"
+msgstr "no se pudo obtener la información de slots “failover” de replicación lógica del servidor primario: %s"
+
+#: replication/logical/slotsync.c:965
+#, c-format
+msgid "could not fetch primary_slot_name \"%s\" info from the primary server: %s"
+msgstr "no se pudo obtener información del primary_slot_name «%s» del servidor primario: %s"
+
+#: replication/logical/slotsync.c:967
+#, c-format
+msgid "Check if primary_slot_name is configured correctly."
+msgstr "Verificando si primary_slot_name está configurado correctamente."
+
+#: replication/logical/slotsync.c:987
+#, c-format
+msgid "cannot synchronize replication slots from a standby server"
+msgstr "no puede sincronizar slots de replicación de un servidor standby"
+
+#. translator: second %s is a GUC variable name
+#: replication/logical/slotsync.c:996
+#, c-format
+msgid "replication slot \"%s\" specified by \"%s\" does not exist on primary server"
+msgstr "el slot de replicación «%s» especificado por «%s» no existe en el servidor primario"
+
+#. translator: first %s is a connection option; second %s is a GUC
+#. variable name
+#.
+#: replication/logical/slotsync.c:1029
+#, c-format
+msgid "replication slot synchronization requires \"%s\" to be specified in \"%s\""
+msgstr "la sincronización de slots de replicación requiere que «%s» esté especificado en «%s»"
+
+# FIXME see slot.c:779.  See also  postmaster.c:835
+#: replication/logical/slotsync.c:1050
+#, c-format
+msgid "replication slot synchronization requires \"wal_level\" >= \"logical\""
+msgstr "la sincronización de slots de replicación requiere «wal_level» >= «logical»"
+
+#. translator: %s is a GUC variable name
+#: replication/logical/slotsync.c:1063 replication/logical/slotsync.c:1091
+#, c-format
+msgid "replication slot synchronization requires \"%s\" to be set"
+msgstr "la sincronización de slots de replicación requiere que «%s» esté definido"
+
+#. translator: %s is a GUC variable name
+#: replication/logical/slotsync.c:1077
+#, c-format
+msgid "replication slot synchronization requires \"%s\" to be enabled"
+msgstr "la sincronización de slots de replicación requiere que «%s» esté activado"
+
+#. translator: %s is a GUC variable name
+#: replication/logical/slotsync.c:1129
+#, c-format
+msgid "replication slot synchronization worker will shut down because \"%s\" is disabled"
+msgstr "el proceso de sincronización de slots de replicación terminará porque «%s» está desactivado"
+
+#: replication/logical/slotsync.c:1138
+#, c-format
+msgid "replication slot synchronization worker will restart because of a parameter change"
+msgstr "el proceso de sincronización de slots de replicación se reiniciará debido a un cambio de parámetro"
+
+#: replication/logical/slotsync.c:1162
+#, c-format
+msgid "replication slot synchronization worker is shutting down on receiving SIGINT"
+msgstr "el trabajador de sincronización de slots de replicación está apagándose al recibir SIGINT"
+
+#: replication/logical/slotsync.c:1287
+#, c-format
+msgid "cannot synchronize replication slots when standby promotion is ongoing"
+msgstr "no se puede sincronizar los slots de replicación cuando la promoción de standby está teniendo lugar"
+
+#: replication/logical/slotsync.c:1295
+#, c-format
+msgid "cannot synchronize replication slots concurrently"
+msgstr "no se puede sincronizar slots de replicación concurrentemente"
+
+#: replication/logical/slotsync.c:1403
+#, c-format
+msgid "slot sync worker started"
+msgstr "iniciado el trabajador de sincronización de slots"
+
+#: replication/logical/slotsync.c:1466 replication/slotfuncs.c:900
+#: replication/walreceiver.c:307
+#, c-format
+msgid "could not connect to the primary server: %s"
+msgstr "no se pudo conectar al servidor primario: %s"
+
+#: replication/logical/snapbuild.c:653
 #, c-format
 msgid "initial slot snapshot too large"
 msgstr "el snapshot inicial del slot es demasiado grande"
 
 # FIXME: snapshot? instantánea?
-#: replication/logical/snapbuild.c:693
+#: replication/logical/snapbuild.c:707
 #, c-format
 msgid "exported logical decoding snapshot: \"%s\" with %u transaction ID"
 msgid_plural "exported logical decoding snapshot: \"%s\" with %u transaction IDs"
 msgstr[0] "se exportó un snapshot de decodificación lógica: «%s» con %u ID de transacción"
 msgstr[1] "se exportó un snapshot de decodificación lógica: «%s» con %u IDs de transacción"
 
-#: replication/logical/snapbuild.c:1388 replication/logical/snapbuild.c:1480
-#: replication/logical/snapbuild.c:1992
+#: replication/logical/snapbuild.c:1404 replication/logical/snapbuild.c:1501
+#: replication/logical/snapbuild.c:2017
 #, c-format
 msgid "logical decoding found consistent point at %X/%X"
 msgstr "la decodificación lógica encontró un punto consistente en %X/%X"
 
-#: replication/logical/snapbuild.c:1390
+#: replication/logical/snapbuild.c:1406
 #, c-format
 msgid "There are no running transactions."
 msgstr "No hay transacciones en ejecución."
 
-#: replication/logical/snapbuild.c:1432
+#: replication/logical/snapbuild.c:1453
 #, c-format
 msgid "logical decoding found initial starting point at %X/%X"
 msgstr "decodificación lógica encontró punto de inicio en %X/%X"
 
-#: replication/logical/snapbuild.c:1434 replication/logical/snapbuild.c:1458
+#: replication/logical/snapbuild.c:1455 replication/logical/snapbuild.c:1479
 #, c-format
 msgid "Waiting for transactions (approximately %d) older than %u to end."
 msgstr "Esperando que las (aproximadamente %d) transacciones más antiguas que %u terminen."
 
-#: replication/logical/snapbuild.c:1456
+#: replication/logical/snapbuild.c:1477
 #, c-format
 msgid "logical decoding found initial consistent point at %X/%X"
 msgstr "la decodificación lógica encontró un punto consistente inicial en %X/%X"
 
-#: replication/logical/snapbuild.c:1482
+#: replication/logical/snapbuild.c:1503
 #, c-format
 msgid "There are no old transactions anymore."
 msgstr "Ya no hay transacciones antiguas en ejecución."
 
 # FIXME "snapbuild"?
-#: replication/logical/snapbuild.c:1883
+#: replication/logical/snapbuild.c:1904
 #, c-format
 msgid "snapbuild state file \"%s\" has wrong magic number: %u instead of %u"
 msgstr "el archivo de estado de snapbuild «%s» tiene número mágico erróneo: %u en lugar de %u"
 
-#: replication/logical/snapbuild.c:1889
+#: replication/logical/snapbuild.c:1910
 #, c-format
 msgid "snapbuild state file \"%s\" has unsupported version: %u instead of %u"
 msgstr "el archivo de estado de snapbuild «%s» tiene versión no soportada: %u en vez de %u"
 
-#: replication/logical/snapbuild.c:1930
+#: replication/logical/snapbuild.c:1951
 #, c-format
 msgid "checksum mismatch for snapbuild state file \"%s\": is %u, should be %u"
 msgstr "suma de verificación no coincidente para el archivo de estado de snapbuild «%s»: es %u, debería ser %u"
 
-#: replication/logical/snapbuild.c:1994
+#: replication/logical/snapbuild.c:2019
 #, c-format
 msgid "Logical decoding will begin using saved snapshot."
 msgstr "La decodificación lógica comenzará usando el snapshot guardado."
 
-#: replication/logical/snapbuild.c:2101
+#: replication/logical/snapbuild.c:2126
 #, c-format
 msgid "could not parse file name \"%s\""
 msgstr "no se pudo interpretar el nombre de archivo «%s»"
 
-#: replication/logical/tablesync.c:152
+#: replication/logical/tablesync.c:161
 #, c-format
 msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has finished"
 msgstr "el ayudante de sincronización de tabla de replicación lógica para la suscripción «%s», tabla «%s» ha terminado"
 
-#: replication/logical/tablesync.c:621
-#, fuzzy, c-format
-#| msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started"
+#: replication/logical/tablesync.c:641
+#, c-format
 msgid "logical replication apply worker for subscription \"%s\" will restart so that two_phase can be enabled"
-msgstr "el ayudante de sincronización de tabla de replicación lógica para la suscripción «%s», tabla «%s» ha iniciado"
+msgstr "el ayudante «apply» de replicación lógica para la suscripción «%s» se reiniciará para activar «two_phase»"
 
-#: replication/logical/tablesync.c:796 replication/logical/tablesync.c:938
+#: replication/logical/tablesync.c:827 replication/logical/tablesync.c:969
 #, c-format
 msgid "could not fetch table info for table \"%s.%s\" from publisher: %s"
-msgstr "no se pudo obtener información de la tabla «%s.%s» del editor (publisher): %s"
+msgstr "no se pudo obtener información de la tabla «%s.%s» del publicador: %s"
 
-#: replication/logical/tablesync.c:803
+#: replication/logical/tablesync.c:834
 #, c-format
 msgid "table \"%s.%s\" not found on publisher"
-msgstr "la tabla \"%s.%s\" no fue encontrada en el editor (publisher)"
+msgstr "la tabla \"%s.%s\" no fue encontrada en el publicador"
 
-#: replication/logical/tablesync.c:861
-#, fuzzy, c-format
-#| msgid "could not fetch table info for table \"%s.%s\" from publisher: %s"
+#: replication/logical/tablesync.c:892
+#, c-format
 msgid "could not fetch column list info for table \"%s.%s\" from publisher: %s"
-msgstr "no se pudo obtener información de la tabla «%s.%s» del editor (publisher): %s"
+msgstr "no se pudo obtener información de la lista de columnas para la tabla «%s.%s» del publicador: %s"
 
-#: replication/logical/tablesync.c:1040
-#, fuzzy, c-format
-#| msgid "could not fetch table info for table \"%s.%s\" from publisher: %s"
+#: replication/logical/tablesync.c:1071
+#, c-format
 msgid "could not fetch table WHERE clause info for table \"%s.%s\" from publisher: %s"
-msgstr "no se pudo obtener información de la tabla «%s.%s» del editor (publisher): %s"
+msgstr "no se pudo obtener información de la cláusula WHERE para la tabla «%s.%s» del publicador: %s"
 
-#: replication/logical/tablesync.c:1191
+#: replication/logical/tablesync.c:1230
 #, c-format
 msgid "could not start initial contents copy for table \"%s.%s\": %s"
 msgstr "no se pudo iniciar la copia de contenido inicial para de la tabla «%s.%s»: %s"
 
-#: replication/logical/tablesync.c:1398 replication/logical/worker.c:2387
-#, c-format
-msgid "user \"%s\" cannot replicate into relation with row-level security enabled: \"%s\""
-msgstr ""
-
-#: replication/logical/tablesync.c:1413
+#: replication/logical/tablesync.c:1429
 #, c-format
 msgid "table copy could not start transaction on publisher: %s"
-msgstr "la copia de la tabla no pudo iniciar una transacción en el editor (publisher): %s"
+msgstr "la copia de la tabla no pudo iniciar una transacción en el publicador: %s"
 
-#: replication/logical/tablesync.c:1455
+#: replication/logical/tablesync.c:1472
 #, c-format
 msgid "replication origin \"%s\" already exists"
 msgstr "el origen de replicación «%s» ya existe"
 
-#: replication/logical/tablesync.c:1468
+#: replication/logical/tablesync.c:1505 replication/logical/worker.c:2361
 #, c-format
-msgid "table copy could not finish transaction on publisher: %s"
-msgstr "la copia de tabla no pudo terminar la transacción en el editor (publisher): %s"
-
-#: replication/logical/worker.c:445
-#, fuzzy
-#| msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started"
-msgid "logical replication table synchronization worker"
-msgstr "el ayudante de sincronización de tabla de replicación lógica para la suscripción «%s», tabla «%s» ha iniciado"
+msgid "user \"%s\" cannot replicate into relation with row-level security enabled: \"%s\""
+msgstr "el usuario «%s» no puede replicar en relaciones con seguridad de registros activa: «%s»"
 
-#: replication/logical/worker.c:449
-#, fuzzy
-#| msgid "out of logical replication worker slots"
-msgid "logical replication apply worker"
-msgstr "se agotaron los slots de procesos ayudantes de replicación"
+#: replication/logical/tablesync.c:1518
+#, c-format
+msgid "table copy could not finish transaction on publisher: %s"
+msgstr "la copia de tabla no pudo terminar la transacción en el publicador: %s"
 
-#: replication/logical/worker.c:512
-#, fuzzy, c-format
-#| msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started"
+#: replication/logical/worker.c:481
+#, c-format
 msgid "logical replication parallel apply worker for subscription \"%s\" will stop"
-msgstr "el ayudante de sincronización de tabla de replicación lógica para la suscripción «%s», tabla «%s» ha iniciado"
+msgstr "el ayudante «apply» de replicación lógica para la suscripción «%s» se detendrá"
 
-#: replication/logical/worker.c:514
+#: replication/logical/worker.c:483
 #, c-format
 msgid "Cannot handle streamed replication transactions using parallel apply workers until all tables have been synchronized."
-msgstr ""
+msgstr "No se puede gestionar replicación en flujo usando procesos en paralelo hasta que todas las tablas han sido sincronizadas."
 
-#: replication/logical/worker.c:876 replication/logical/worker.c:991
+#: replication/logical/worker.c:852 replication/logical/worker.c:967
 #, c-format
 msgid "incorrect binary data format in logical replication column %d"
 msgstr "el formato de datos binarios es incorrecto en columna de replicación lógica %d"
 
-#: replication/logical/worker.c:2526
+#: replication/logical/worker.c:2500
 #, c-format
 msgid "publisher did not send replica identity column expected by the logical replication target relation \"%s.%s\""
-msgstr "el editor (publisher) no envía la columna identidad de réplica esperada por la relación de destino de replicación lógica «%s.%s»"
+msgstr "el publicador no envía la columna identidad de réplica esperada por la relación de destino de replicación lógica «%s.%s»"
 
-#: replication/logical/worker.c:2533
+#: replication/logical/worker.c:2507
 #, c-format
 msgid "logical replication target relation \"%s.%s\" has neither REPLICA IDENTITY index nor PRIMARY KEY and published relation does not have REPLICA IDENTITY FULL"
 msgstr "la relación destino de replicación lógica «%s.%s» no tiene índice REPLICA IDENTITY ni PRIMARY KEY y la relación publicada no tiene REPLICA IDENTITY FULL"
 
-#: replication/logical/worker.c:3384
-#, fuzzy, c-format
-#| msgid "invalid standby message type \"%c\""
-msgid "invalid logical replication message type \"%c\""
-msgstr "el tipo «%c» de mensaje del standby no es válido"
+#: replication/logical/worker.c:3371
+#, c-format
+msgid "invalid logical replication message type \"??? (%d)\""
+msgstr "tipo de mensaje de replicación lógica no válido «??? (%d)»"
 
-#: replication/logical/worker.c:3556
+#: replication/logical/worker.c:3543
 #, c-format
 msgid "data stream from publisher has ended"
 msgstr "el flujo de datos del publisher ha terminado"
 
-#: replication/logical/worker.c:3707
+#: replication/logical/worker.c:3697
 #, c-format
 msgid "terminating logical replication worker due to timeout"
 msgstr "terminando el proceso de replicación lógica debido a que se agotó el tiempo de espera"
 
-#. translator: first %s is the name of logical replication worker
-#: replication/logical/worker.c:3902
+#: replication/logical/worker.c:3891
 #, c-format
-msgid "%s for subscription \"%s\" will stop because the subscription was removed"
-msgstr ""
+msgid "logical replication worker for subscription \"%s\" will stop because the subscription was removed"
+msgstr "el ayudante «apply» de replicación lógica para la suscripción «%s» se detendrá porque la suscripción fue eliminada"
 
-#. translator: first %s is the name of logical replication worker
-#: replication/logical/worker.c:3916
+#: replication/logical/worker.c:3905
 #, c-format
-msgid "%s for subscription \"%s\" will stop because the subscription was disabled"
-msgstr ""
+msgid "logical replication worker for subscription \"%s\" will stop because the subscription was disabled"
+msgstr "el ayudante «apply» de replicación lógica para la suscripción «%s» se detendrá porque la suscripción fue inhabilitada"
 
-#: replication/logical/worker.c:3947
-#, fuzzy, c-format
-#| msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started"
+#: replication/logical/worker.c:3936
+#, c-format
 msgid "logical replication parallel apply worker for subscription \"%s\" will stop because of a parameter change"
-msgstr "el ayudante de sincronización de tabla de replicación lógica para la suscripción «%s», tabla «%s» ha iniciado"
+msgstr "el ayudante paralelo «apply» de replicación lógica para la suscripción «%s» se reiniciará por un cambio de parámetro"
 
-#. translator: first %s is the name of logical replication worker
-#: replication/logical/worker.c:3952
+#: replication/logical/worker.c:3940
 #, c-format
-msgid "%s for subscription \"%s\" will restart because of a parameter change"
-msgstr ""
+msgid "logical replication worker for subscription \"%s\" will restart because of a parameter change"
+msgstr "el ayudante «apply» de replicación lógica para la suscripción «%s» se reiniciará por un cambio de parámetro"
 
-#. translator: %s is the name of logical replication worker
-#: replication/logical/worker.c:4476
+#: replication/logical/worker.c:3954
 #, c-format
-msgid "%s for subscription %u will not start because the subscription was removed during startup"
-msgstr ""
+msgid "logical replication parallel apply worker for subscription \"%s\" will stop because the subscription owner's superuser privileges have been revoked"
+msgstr "el proceso “apply” paralelo de replicación lógica para la suscripción «%s» se detendrá porque los privilegios de superusuario del dueño de la suscripción han sido revocados"
 
-#. translator: first %s is the name of logical replication worker
-#: replication/logical/worker.c:4492
+#: replication/logical/worker.c:3958
 #, c-format
-msgid "%s for subscription \"%s\" will not start because the subscription was disabled during startup"
-msgstr ""
+msgid "logical replication worker for subscription \"%s\" will restart because the subscription owner's superuser privileges have been revoked"
+msgstr "el proceso de replicación lógica para la suscripción «%s» se reiniciará porque los privilegios de superusuario del dueño de la suscripción han sido revocados"
+
+#: replication/logical/worker.c:4478
+#, c-format
+msgid "subscription has no replication slot set"
+msgstr "la suscripción no tiene un slot de replicación establecido"
+
+#: replication/logical/worker.c:4591
+#, c-format
+msgid "logical replication worker for subscription %u will not start because the subscription was removed during startup"
+msgstr "el ayudante «apply» de replicación lógica para la suscripción %u no se iniciará porque la suscripción fue eliminada durante el inicio"
+
+#: replication/logical/worker.c:4607
+#, c-format
+msgid "logical replication worker for subscription \"%s\" will not start because the subscription was disabled during startup"
+msgstr "el ayudante «apply» de replicación lógica para la suscripción «%s» no se iniciará porque la suscripción fue inhabilitada durante el inicio"
 
-#: replication/logical/worker.c:4509
+#: replication/logical/worker.c:4631
 #, c-format
 msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started"
 msgstr "el ayudante de sincronización de tabla de replicación lógica para la suscripción «%s», tabla «%s» ha iniciado"
 
-#. translator: first %s is the name of logical replication worker
-#: replication/logical/worker.c:4515
-#, fuzzy, c-format
-#| msgid "subscription \"%s\" already exists"
-msgid "%s for subscription \"%s\" has started"
-msgstr "la suscripción «%s» ya existe"
-
-#: replication/logical/worker.c:4590
+#: replication/logical/worker.c:4636
 #, c-format
-msgid "subscription has no replication slot set"
-msgstr "la suscripción no tiene un slot de replicación establecido"
+msgid "logical replication apply worker for subscription \"%s\" has started"
+msgstr "el ayudante «apply» de replicación lógica para la suscripción «%s» ha iniciado"
 
-#: replication/logical/worker.c:4757
-#, fuzzy, c-format
-#| msgid "cursor \"%s\" has been declared but not opened"
+#: replication/logical/worker.c:4758
+#, c-format
 msgid "subscription \"%s\" has been disabled because of an error"
-msgstr "el cursor «%s» fue declarado pero no abierto"
+msgstr "la suscripción «%s» ha sido inhabilitada debido a un error"
 
-#: replication/logical/worker.c:4805
-#, fuzzy, c-format
-#| msgid "cannot create logical replication slot in transaction that has performed writes"
+#: replication/logical/worker.c:4806
+#, c-format
 msgid "logical replication starts skipping transaction at LSN %X/%X"
-msgstr "no se puede crear un slot de replicación lógica en una transacción que ha efectuado escrituras"
+msgstr "iniciando el ignorado en la replicación lógica de la transacción en el LSN %X/%X"
 
-#: replication/logical/worker.c:4819
+#: replication/logical/worker.c:4820
 #, c-format
 msgid "logical replication completed skipping transaction at LSN %X/%X"
-msgstr ""
+msgstr "finalizó el ignorado en la replicación lógica de la transacción en el LSN %X/%X"
 
-#: replication/logical/worker.c:4901
-#, fuzzy, c-format
-#| msgid "subscription \"%s\" already exists"
+#: replication/logical/worker.c:4902
+#, c-format
 msgid "skip-LSN of subscription \"%s\" cleared"
-msgstr "la suscripción «%s» ya existe"
+msgstr "el «skip-LSN» de la suscripción «%s» ha sido borrado"
 
-#: replication/logical/worker.c:4902
+#: replication/logical/worker.c:4903
 #, c-format
 msgid "Remote transaction's finish WAL location (LSN) %X/%X did not match skip-LSN %X/%X."
-msgstr ""
+msgstr "La ubicación de WAL (LSN) de término %X/%X de la transacción remota no coincidió con el skip-LSN %X/%X."
 
-#: replication/logical/worker.c:4928
+#: replication/logical/worker.c:4940
 #, c-format
 msgid "processing remote data for replication origin \"%s\" during message type \"%s\""
-msgstr ""
+msgstr "procesando datos remotos de origen de replicación «%s» durante el mensaje de tipo «%s»"
 
-#: replication/logical/worker.c:4932
+#: replication/logical/worker.c:4944
 #, c-format
 msgid "processing remote data for replication origin \"%s\" during message type \"%s\" in transaction %u"
-msgstr ""
+msgstr "procesando datos remotos de origen de replicación «%s» durante el mensaje de tipo «%s» en la transacción %u"
 
-#: replication/logical/worker.c:4937
+#: replication/logical/worker.c:4949
 #, c-format
 msgid "processing remote data for replication origin \"%s\" during message type \"%s\" in transaction %u, finished at %X/%X"
-msgstr ""
+msgstr "procesando datos remotos de origen de replicación «%s» durante el mensaje de tipo «%s» en la transacción %u, concluida en %X/%X"
 
-#: replication/logical/worker.c:4948
+#: replication/logical/worker.c:4960
 #, c-format
 msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" in transaction %u"
-msgstr ""
+msgstr "procesando datos remotos de origen de replicación «%s» durante el mensaje de tipo «%s» para la relación destino de replicación «%s.%s» en la transacción %u"
 
-#: replication/logical/worker.c:4955
+#: replication/logical/worker.c:4967
 #, c-format
 msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" in transaction %u, finished at %X/%X"
-msgstr ""
+msgstr "procesando datos remotos de origen de replicación «%s» durante el mensaje de tipo «%s» para la relación de destino «%s.%s» en la transacción %u, concluida en %X/%X"
 
-#: replication/logical/worker.c:4966
+#: replication/logical/worker.c:4978
 #, c-format
 msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" column \"%s\" in transaction %u"
-msgstr ""
+msgstr "procesando datos remotos de origen de replicación «%s» durante el mensaje de tipo «%s» para la relación de destino «%s.%s» columna «%s» en la transacción %u"
 
-#: replication/logical/worker.c:4974
+#: replication/logical/worker.c:4986
 #, c-format
 msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" column \"%s\" in transaction %u, finished at %X/%X"
-msgstr ""
+msgstr "procesando datos remotos de origen de replicación «%s» durante el mensaje de tipo «%s» para la relación de destino «%s.%s» columna «%s» en la transacción %u, concluida en %X/%X"
 
-#: replication/pgoutput/pgoutput.c:318
+#: replication/pgoutput/pgoutput.c:322
 #, c-format
 msgid "invalid proto_version"
 msgstr "proto_version no válido"
 
-#: replication/pgoutput/pgoutput.c:323
+#: replication/pgoutput/pgoutput.c:327
 #, c-format
 msgid "proto_version \"%s\" out of range"
 msgstr "proto_version «%s» fuera de rango"
 
-#: replication/pgoutput/pgoutput.c:340
+#: replication/pgoutput/pgoutput.c:344
 #, c-format
 msgid "invalid publication_names syntax"
 msgstr "sintaxis de publication_names no válida"
 
-#: replication/pgoutput/pgoutput.c:443
+#: replication/pgoutput/pgoutput.c:414 replication/pgoutput/pgoutput.c:418
 #, c-format
-msgid "client sent proto_version=%d but server only supports protocol %d or lower"
-msgstr ""
+msgid "option \"%s\" missing"
+msgstr "falta la opción «%s»"
 
-#: replication/pgoutput/pgoutput.c:449
-#, fuzzy, c-format
-#| msgid "requested proto_version=%d does not support streaming, need %d or higher"
-msgid "client sent proto_version=%d but server only supports protocol %d or higher"
-msgstr "la proto_version=%d no soporta flujo, se necesita %d o superior"
+#: replication/pgoutput/pgoutput.c:478
+#, c-format
+msgid "client sent proto_version=%d but server only supports protocol %d or lower"
+msgstr "el cliente envió proto_version=%d pero el servidor sólo soporta el protocolo %d o inferior"
 
-#: replication/pgoutput/pgoutput.c:455
+#: replication/pgoutput/pgoutput.c:484
 #, c-format
-msgid "publication_names parameter missing"
-msgstr "parámetro publication_names faltante"
+msgid "client sent proto_version=%d but server only supports protocol %d or higher"
+msgstr "el cliente envió proto_version=%d pero el servidor sólo soporta el protocolo %d o superior"
 
-#: replication/pgoutput/pgoutput.c:469
+#: replication/pgoutput/pgoutput.c:499
 #, c-format
 msgid "requested proto_version=%d does not support streaming, need %d or higher"
 msgstr "la proto_version=%d no soporta flujo, se necesita %d o superior"
 
-#: replication/pgoutput/pgoutput.c:475
-#, fuzzy, c-format
-#| msgid "requested proto_version=%d does not support streaming, need %d or higher"
+#: replication/pgoutput/pgoutput.c:505
+#, c-format
 msgid "requested proto_version=%d does not support parallel streaming, need %d or higher"
-msgstr "la proto_version=%d no soporta flujo, se necesita %d o superior"
+msgstr "la proto_version=%d solicitada no soporta flujo en paralelo, se necesita %d o superior"
 
-#: replication/pgoutput/pgoutput.c:480
+#: replication/pgoutput/pgoutput.c:510
 #, c-format
 msgid "streaming requested, but not supported by output plugin"
 msgstr "se solicitó flujo, pero no está soportado por plugin de salida"
 
-#: replication/pgoutput/pgoutput.c:497
-#, fuzzy, c-format
-#| msgid "requested proto_version=%d does not support streaming, need %d or higher"
+#: replication/pgoutput/pgoutput.c:524
+#, c-format
 msgid "requested proto_version=%d does not support two-phase commit, need %d or higher"
-msgstr "la proto_version=%d no soporta flujo, se necesita %d o superior"
+msgstr "la proto_version=%d solicitada no soporta «two-phase commit», se necesita %d o superior"
 
-#: replication/pgoutput/pgoutput.c:502
-#, fuzzy, c-format
-#| msgid "streaming requested, but not supported by output plugin"
+#: replication/pgoutput/pgoutput.c:529
+#, c-format
 msgid "two-phase commit requested, but not supported by output plugin"
-msgstr "se solicitó flujo, pero no está soportado por plugin de salida"
+msgstr "«two-phase commit» fue solicitado, pero no está soportado por el plugin de salida"
 
-#: replication/slot.c:207
+#: replication/slot.c:260
 #, c-format
 msgid "replication slot name \"%s\" is too short"
 msgstr "el nombre de slot de replicación «%s» es demasiado corto"
 
-#: replication/slot.c:216
+#: replication/slot.c:269
 #, c-format
 msgid "replication slot name \"%s\" is too long"
 msgstr "el nombre de slot de replicación «%s» es demasiado largo"
 
-#: replication/slot.c:229
+#: replication/slot.c:282
 #, c-format
 msgid "replication slot name \"%s\" contains invalid character"
 msgstr "el nombre de slot de replicación «%s» contiene caracteres no válidos"
 
-#: replication/slot.c:231
+#: replication/slot.c:284
 #, c-format
 msgid "Replication slot names may only contain lower case letters, numbers, and the underscore character."
 msgstr "Los nombres de slots de replicación sólo pueden contener letras minúsculas, números y el carácter «_»."
 
-#: replication/slot.c:285
+#: replication/slot.c:333
+#, c-format
+msgid "cannot enable failover for a replication slot created on the standby"
+msgstr "no se puede activar “failover” para un slot de replicación creado en el standby"
+
+#: replication/slot.c:345 replication/slot.c:849
+#, c-format
+msgid "cannot enable failover for a temporary replication slot"
+msgstr "no se puede activar “failover” para un slot de replicación temporal"
+
+#: replication/slot.c:370
 #, c-format
 msgid "replication slot \"%s\" already exists"
 msgstr "el slot de replicación «%s» ya existe"
 
-#: replication/slot.c:295
+#: replication/slot.c:380
 #, c-format
 msgid "all replication slots are in use"
 msgstr "todos los slots de replicación están en uso"
 
-#: replication/slot.c:296
+#: replication/slot.c:381
 #, c-format
-msgid "Free one or increase max_replication_slots."
-msgstr "Libere uno o incremente max_replication_slots."
+msgid "Free one or increase \"max_replication_slots\"."
+msgstr "Libere uno o incremente «max_replication_slots»."
 
-#: replication/slot.c:474 replication/slotfuncs.c:736
-#: utils/activity/pgstat_replslot.c:55 utils/adt/genfile.c:774
+#: replication/slot.c:560 replication/slot.c:2450 replication/slotfuncs.c:661
+#: utils/activity/pgstat_replslot.c:56 utils/adt/genfile.c:728
 #, c-format
 msgid "replication slot \"%s\" does not exist"
 msgstr "no existe el slot de replicación «%s»"
 
-#: replication/slot.c:520 replication/slot.c:1110
+#: replication/slot.c:606 replication/slot.c:1337
 #, c-format
 msgid "replication slot \"%s\" is active for PID %d"
 msgstr "el slot de replicación «%s» está activo para el PID %d"
 
-#: replication/slot.c:756 replication/slot.c:1638 replication/slot.c:2021
+#: replication/slot.c:638
+#, c-format
+msgid "acquired logical replication slot \"%s\""
+msgstr "se adquirió el slot de replicación lógica «%s»"
+
+#: replication/slot.c:640
+#, c-format
+msgid "acquired physical replication slot \"%s\""
+msgstr "se adquirió el slot de replicación física «%s»"
+
+#: replication/slot.c:729
+#, c-format
+msgid "released logical replication slot \"%s\""
+msgstr "se liberó el slot de replicación lógica «%s»"
+
+#: replication/slot.c:731
+#, c-format
+msgid "released physical replication slot \"%s\""
+msgstr "se liberó el slot de replicación física «%s»"
+
+#: replication/slot.c:797
+#, c-format
+msgid "cannot drop replication slot \"%s\""
+msgstr "no se puede eliminar el slot de replicación «%s»"
+
+#: replication/slot.c:816
+#, c-format
+msgid "cannot use %s with a physical replication slot"
+msgstr "no se puede usar %s con un slot de replicación física"
+
+#: replication/slot.c:828
+#, c-format
+msgid "cannot alter replication slot \"%s\""
+msgstr "no se puede alterar el slot de replicación «%s»"
+
+#: replication/slot.c:838
+#, c-format
+msgid "cannot enable failover for a replication slot on the standby"
+msgstr "no se puede activar el “failover” para un slot de replicación en el standby"
+
+#: replication/slot.c:969 replication/slot.c:1927 replication/slot.c:2311
 #, c-format
 msgid "could not remove directory \"%s\""
 msgstr "no se pudo eliminar el directorio «%s»"
 
-#: replication/slot.c:1145
+#: replication/slot.c:1372
 #, c-format
-msgid "replication slots can only be used if max_replication_slots > 0"
-msgstr "los slots de replicación sólo pueden usarse si max_replication_slots > 0"
+msgid "replication slots can only be used if \"max_replication_slots\" > 0"
+msgstr "los slots de replicación sólo pueden usarse si «max_replication_slots» > 0"
 
 # FIXME see logical.c:81
-#: replication/slot.c:1150
+#: replication/slot.c:1377
 #, c-format
-msgid "replication slots can only be used if wal_level >= replica"
-msgstr "los slots de replicación sólo pueden usarse si wal_level >= replica"
+msgid "replication slots can only be used if \"wal_level\" >= \"replica\""
+msgstr "los slots de replicación sólo pueden usarse si «wal_level» >= «replica»"
 
-#: replication/slot.c:1162
-#, fuzzy, c-format
-#| msgid "permission denied for publication %s"
+#: replication/slot.c:1389
+#, c-format
 msgid "permission denied to use replication slots"
-msgstr "permiso denegado a la publicación %s"
+msgstr "permiso denegado a usar slots de replicación"
 
-#: replication/slot.c:1163
+#: replication/slot.c:1390
 #, c-format
 msgid "Only roles with the %s attribute may use replication slots."
-msgstr ""
+msgstr "Sólo roles con el atributo %s pueden usar slots de replicación."
 
-#: replication/slot.c:1267
+#: replication/slot.c:1498
 #, c-format
-msgid "The slot's restart_lsn %X/%X exceeds the limit by %llu bytes."
-msgstr ""
+msgid "The slot's restart_lsn %X/%X exceeds the limit by %llu byte."
+msgid_plural "The slot's restart_lsn %X/%X exceeds the limit by %llu bytes."
+msgstr[0] "El restart_lsn %X/%X del slot excede el límite por %llu byte."
+msgstr[1] "El restart_lsn %X/%X del slot excede el límite por %llu bytes."
 
-#: replication/slot.c:1272
-#, fuzzy, c-format
-#| msgid "Key %s conflicts with existing key %s."
+#: replication/slot.c:1506
+#, c-format
 msgid "The slot conflicted with xid horizon %u."
-msgstr "La llave %s está en conflicto con la llave existente %s."
+msgstr "El slot estaba en conflicto con el horizonte de XID %u."
 
 # FIXME see slot.c:779.  See also  postmaster.c:835
-#: replication/slot.c:1277
-#, fuzzy
-#| msgid "logical decoding requires wal_level >= logical"
-msgid "Logical decoding on standby requires wal_level >= logical on the primary server."
-msgstr "la decodificación lógica requiere wal_level >= logical"
+#: replication/slot.c:1511
+msgid "Logical decoding on standby requires \"wal_level\" >= \"logical\" on the primary server."
+msgstr "La decodificación lógica en standby requiere «wal_level» >= «logical» en el primario."
 
-#: replication/slot.c:1285
+#: replication/slot.c:1519
 #, c-format
 msgid "terminating process %d to release replication slot \"%s\""
 msgstr "terminando el proceso %d para liberar el slot de replicación «%s»"
 
-#: replication/slot.c:1287
-#, fuzzy, c-format
-#| msgid "creating replication slot \"%s\""
+#: replication/slot.c:1521
+#, c-format
 msgid "invalidating obsolete replication slot \"%s\""
-msgstr "creando el slot de replicación «%s»"
+msgstr "invalidando el slot de replicación obsoleto «%s»"
 
-#: replication/slot.c:1290
-#, fuzzy, c-format
-#| msgid "You might need to increase max_worker_processes."
-msgid "You might need to increase max_slot_wal_keep_size."
-msgstr "Puede ser necesario incrementar max_worker_processes."
-
-#: replication/slot.c:1959
+#: replication/slot.c:2249
 #, c-format
 msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u"
 msgstr "el archivo de slot de replicación «%s» tiene número mágico erróneo: %u en lugar de %u"
 
-#: replication/slot.c:1966
+#: replication/slot.c:2256
 #, c-format
 msgid "replication slot file \"%s\" has unsupported version %u"
 msgstr "el archivo de slot de replicación «%s» tiene versión no soportada %u"
 
-#: replication/slot.c:1973
+#: replication/slot.c:2263
 #, c-format
 msgid "replication slot file \"%s\" has corrupted length %u"
 msgstr "el archivo de slot de replicación «%s» tiene largo corrupto %u"
 
-#: replication/slot.c:2009
+#: replication/slot.c:2299
 #, c-format
 msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u"
 msgstr "suma de verificación no coincidente en archivo de slot de replicación «%s»: es %u, debería ser %u"
 
 # FIXME see slot.c:779.  See also  postmaster.c:835
-#: replication/slot.c:2043
+#: replication/slot.c:2333
 #, c-format
-msgid "logical replication slot \"%s\" exists, but wal_level < logical"
-msgstr "existe el slot de replicación lógica «%s», pero wal_level < logical"
+msgid "logical replication slot \"%s\" exists, but \"wal_level\" < \"logical\""
+msgstr "existe el slot de replicación lógica «%s», pero «wal_level» < «logical»"
 
-#: replication/slot.c:2045
+#: replication/slot.c:2335
 #, c-format
-msgid "Change wal_level to be logical or higher."
-msgstr "Cambie wal_level a logical o superior."
+msgid "Change \"wal_level\" to be \"logical\" or higher."
+msgstr "Cambie «wal_level» a «logical» o superior."
 
 # FIXME see slot.c:779.  See also  postmaster.c:835
-#: replication/slot.c:2049
+#: replication/slot.c:2339
 #, c-format
-msgid "physical replication slot \"%s\" exists, but wal_level < replica"
-msgstr "existe el slot de replicación lógica «%s», pero wal_level < logical"
+msgid "physical replication slot \"%s\" exists, but \"wal_level\" < \"replica\""
+msgstr "existe el slot de replicación lógica «%s», pero «wal_level» < «replica»"
 
 # <> hello vim
-#: replication/slot.c:2051
+#: replication/slot.c:2341
 #, c-format
-msgid "Change wal_level to be replica or higher."
-msgstr "Cambie wal_level a replica o superior."
+msgid "Change \"wal_level\" to be \"replica\" or higher."
+msgstr "Cambie «wal_level» a «replica» o superior."
 
-#: replication/slot.c:2085
+#: replication/slot.c:2383
 #, c-format
 msgid "too many replication slots active before shutdown"
 msgstr "demasiados slots de replicación activos antes del apagado"
 
-#: replication/slotfuncs.c:601
+#: replication/slot.c:2458
+#, c-format
+msgid "\"%s\" is not a physical replication slot"
+msgstr "«%s» no es un slot de replicación física"
+
+#: replication/slot.c:2635
+#, c-format
+msgid "replication slot \"%s\" specified in parameter \"%s\" does not exist"
+msgstr "el slot de replicación «%s» especificado en el parámetro «%s» no existe"
+
+#: replication/slot.c:2637 replication/slot.c:2671 replication/slot.c:2686
+#, c-format
+msgid "Logical replication is waiting on the standby associated with replication slot \"%s\"."
+msgstr "La replicación lógica está esperando al standby asociado con el slot de replicación «%s»."
+
+#: replication/slot.c:2639
+#, c-format
+msgid "Create the replication slot \"%s\" or amend parameter \"%s\"."
+msgstr "Cree el slot de replicación «%s» o corrija el parámetro «%s»."
+
+#: replication/slot.c:2649
+#, c-format
+msgid "cannot specify logical replication slot \"%s\" in parameter \"%s\""
+msgstr "no se puede especificar el slot de replicación lógica «%s» en el parámetro «%s»"
+
+#: replication/slot.c:2651
+#, c-format
+msgid "Logical replication is waiting for correction on replication slot \"%s\"."
+msgstr "La replicación lógica está esperando a una corrección en el slot de replicación «%s»."
+
+#: replication/slot.c:2653
+#, c-format
+msgid "Remove the logical replication slot \"%s\" from parameter \"%s\"."
+msgstr "Elimine el slot de replicación lógica «%s» del parámetro «%s»."
+
+#: replication/slot.c:2669
+#, c-format
+msgid "physical replication slot \"%s\" specified in parameter \"%s\" has been invalidated"
+msgstr "el slot de replicación física «%s» especificado en el parámetro «%s» ha sido invalidado"
+
+#: replication/slot.c:2673
+#, c-format
+msgid "Drop and recreate the replication slot \"%s\", or amend parameter \"%s\"."
+msgstr "Elimine y vuelva a crear el slot de replicación «%s», o corrija el parámetro «%s»."
+
+#: replication/slot.c:2684
+#, c-format
+msgid "replication slot \"%s\" specified in parameter \"%s\" does not have active_pid"
+msgstr "el slot de replicación «%s» especificado en el parámetro «%s» no tiene active_pid"
+
+#: replication/slot.c:2688
+#, c-format
+msgid "Start the standby associated with the replication slot \"%s\", or amend parameter \"%s\"."
+msgstr "Inicie el standby asociado con el slot de replicación «%s», o corrija el parámetro «%s»."
+
+#: replication/slotfuncs.c:526
 #, c-format
 msgid "invalid target WAL LSN"
 msgstr "el LSN de wal de destino no es válido"
 
-#: replication/slotfuncs.c:623
+#: replication/slotfuncs.c:548
 #, c-format
 msgid "replication slot \"%s\" cannot be advanced"
 msgstr "no se puede avanzar el slot de replicación «%s»"
 
-#: replication/slotfuncs.c:625
+#: replication/slotfuncs.c:550
 #, c-format
 msgid "This slot has never previously reserved WAL, or it has been invalidated."
 msgstr "Este slot nunca ha reservado WAL previamente, o ha sido invalidado."
 
-#: replication/slotfuncs.c:641
+#: replication/slotfuncs.c:566
 #, c-format
 msgid "cannot advance replication slot to %X/%X, minimum is %X/%X"
 msgstr "no puede avanzar un slot de replicación a %X/%X, el mínimo es %X/%X"
 
-#: replication/slotfuncs.c:748
+#: replication/slotfuncs.c:673
 #, c-format
 msgid "cannot copy physical replication slot \"%s\" as a logical replication slot"
 msgstr "no se puede copiar el slot de replicación física «%s» como slot de replicación lógica"
 
-#: replication/slotfuncs.c:750
+#: replication/slotfuncs.c:675
 #, c-format
 msgid "cannot copy logical replication slot \"%s\" as a physical replication slot"
 msgstr "no se puede copiar el slot de replicación lógica «%s» como slot de replicación física"
 
-#: replication/slotfuncs.c:757
+#: replication/slotfuncs.c:682
 #, c-format
 msgid "cannot copy a replication slot that doesn't reserve WAL"
 msgstr "no puede copiar un slot de replicación que no ha reservado WAL"
 
-#: replication/slotfuncs.c:834
+#: replication/slotfuncs.c:768
 #, c-format
 msgid "could not copy replication slot \"%s\""
 msgstr "no se pudo copiar el slot de replicación «%s»"
 
-#: replication/slotfuncs.c:836
+#: replication/slotfuncs.c:770
 #, c-format
 msgid "The source replication slot was modified incompatibly during the copy operation."
 msgstr "El slot de replicación de origen fue modificado incompatiblemente durante la operación de copia."
 
-#: replication/slotfuncs.c:842
+#: replication/slotfuncs.c:776
 #, c-format
 msgid "cannot copy unfinished logical replication slot \"%s\""
 msgstr "no se puede copiar el slot de replicación lógica no terminado «%s»"
 
-#: replication/slotfuncs.c:844
+#: replication/slotfuncs.c:778
 #, c-format
 msgid "Retry when the source replication slot's confirmed_flush_lsn is valid."
 msgstr "Reintente cuando el confirmed_flush_lsn del slot de replicación de origen sea válido."
 
-#: replication/syncrep.c:262
+# FIXME see logical.c:81
+#: replication/slotfuncs.c:877
+#, c-format
+msgid "replication slots can only be synchronized to a standby server"
+msgstr "los slots de replicación sólo pueden sincronizarse a un servidor standby"
+
+#: replication/syncrep.c:261
 #, c-format
 msgid "canceling the wait for synchronous replication and terminating connection due to administrator command"
 msgstr "cancelando la espera para la replicación sincrónica y terminando la conexión debido a una orden del administrador"
 
-#: replication/syncrep.c:263 replication/syncrep.c:280
+#: replication/syncrep.c:262 replication/syncrep.c:279
 #, c-format
 msgid "The transaction has already committed locally, but might not have been replicated to the standby."
 msgstr "La transacción ya fue comprometida localmente, pero pudo no haber sido replicada al standby."
 
-#: replication/syncrep.c:279
+#: replication/syncrep.c:278
 #, c-format
 msgid "canceling wait for synchronous replication due to user request"
 msgstr "cancelando espera para la replicación sincrónica debido a una petición del usuario"
 
-#: replication/syncrep.c:486
+#: replication/syncrep.c:485
 #, c-format
-msgid "standby \"%s\" is now a synchronous standby with priority %u"
-msgstr "el standby «%s» es ahora un standby sincrónico con prioridad %u"
+msgid "standby \"%s\" is now a synchronous standby with priority %d"
+msgstr "el standby «%s» es ahora un standby sincrónico con prioridad %d"
 
-#: replication/syncrep.c:490
+#: replication/syncrep.c:489
 #, c-format
 msgid "standby \"%s\" is now a candidate for quorum synchronous standby"
 msgstr "el standby «%s» es ahora un candidato para standby sincrónico de quórum"
 
-#: replication/syncrep.c:1019
+#: replication/syncrep.c:1013
 #, c-format
-msgid "synchronous_standby_names parser failed"
-msgstr "falló la interpretación de synchronous_standby_names"
+msgid "\"synchronous_standby_names\" parser failed"
+msgstr "falló la interpretación de «synchronous_standby_names»"
 
-#: replication/syncrep.c:1025
+#: replication/syncrep.c:1019
 #, c-format
 msgid "number of synchronous standbys (%d) must be greater than zero"
 msgstr "el argumento de standby sincrónicos (%d) debe ser mayor que cero"
 
-#: replication/walreceiver.c:180
+#: replication/walreceiver.c:176
 #, c-format
 msgid "terminating walreceiver process due to administrator command"
 msgstr "terminando el proceso walreceiver debido a una orden del administrador"
 
-#: replication/walreceiver.c:305
-#, c-format
-msgid "could not connect to the primary server: %s"
-msgstr "no se pudo conectar al servidor primario: %s"
-
-#: replication/walreceiver.c:352
+#: replication/walreceiver.c:354
 #, c-format
 msgid "database system identifier differs between the primary and standby"
 msgstr "el identificador de sistema difiere entre el primario y el standby"
 
-#: replication/walreceiver.c:353
+#: replication/walreceiver.c:355
 #, c-format
 msgid "The primary's identifier is %s, the standby's identifier is %s."
 msgstr "El identificador del primario es %s, el identificador del standby es %s."
 
-#: replication/walreceiver.c:364
+#: replication/walreceiver.c:366
 #, c-format
 msgid "highest timeline %u of the primary is behind recovery timeline %u"
 msgstr "el timeline más alto del primario, %u, está más atrás que el timeline de recuperación %u"
 
-#: replication/walreceiver.c:417
+#: replication/walreceiver.c:419
 #, c-format
 msgid "started streaming WAL from primary at %X/%X on timeline %u"
 msgstr "iniciando el flujo de WAL desde el primario en %X/%X en el timeline %u"
 
-#: replication/walreceiver.c:421
+#: replication/walreceiver.c:423
 #, c-format
 msgid "restarted WAL streaming at %X/%X on timeline %u"
 msgstr "reiniciando el flujo de WAL en %X/%X en el timeline %u"
 
-#: replication/walreceiver.c:457
+#: replication/walreceiver.c:458
 #, c-format
 msgid "cannot continue WAL streaming, recovery has already ended"
 msgstr "no se puede continuar el flujo de WAL; la recuperación ya ha terminado"
 
-#: replication/walreceiver.c:501
+#: replication/walreceiver.c:502
 #, c-format
 msgid "replication terminated by primary server"
 msgstr "replicación terminada por el servidor primario"
 
-#: replication/walreceiver.c:502
+#: replication/walreceiver.c:503
 #, c-format
 msgid "End of WAL reached on timeline %u at %X/%X."
 msgstr "Se alcanzó el fin de WAL en el timeline %u en la posición %X/%X."
 
-#: replication/walreceiver.c:592
+#: replication/walreceiver.c:593
 #, c-format
 msgid "terminating walreceiver due to timeout"
 msgstr "terminando el proceso walreceiver debido a que se agotó el tiempo de espera"
 
-#: replication/walreceiver.c:624
+#: replication/walreceiver.c:625
 #, c-format
 msgid "primary server contains no more WAL on requested timeline %u"
 msgstr "el servidor primario no contiene más WAL en el timeline %u solicitado"
 
-#: replication/walreceiver.c:640 replication/walreceiver.c:1066
-#, fuzzy, c-format
-#| msgid "could not close shared memory segment \"%s\": %m"
+#: replication/walreceiver.c:641 replication/walreceiver.c:1071
+#, c-format
 msgid "could not close WAL segment %s: %m"
-msgstr "no se pudo cerrar el segmento de memoria compartida «%s»: %m"
+msgstr "no se pudo cerrar el segmento de WAL %s: %m"
 
-#: replication/walreceiver.c:759
+#: replication/walreceiver.c:760
 #, c-format
 msgid "fetching timeline history file for timeline %u from primary server"
 msgstr "trayendo el archivo de historia del timeline para el timeline %u desde el servidor primario"
 
-#: replication/walreceiver.c:954
-#, fuzzy, c-format
-#| msgid "could not write to log file %s at offset %u, length %zu: %m"
-msgid "could not write to WAL segment %s at offset %u, length %lu: %m"
-msgstr "no se pudo escribir archivo de registro %s en la posición %u, largo %zu: %m"
+#: replication/walreceiver.c:959
+#, c-format
+msgid "could not write to WAL segment %s at offset %d, length %lu: %m"
+msgstr "no se pudo escribir al segmento de WAL %s en la posición %d, largo %lu: %m"
 
-#: replication/walsender.c:519
-#, fuzzy, c-format
-#| msgid "cannot use relation \"%s.%s\" as logical replication target"
+#: replication/walsender.c:531
+#, c-format
 msgid "cannot use %s with a logical replication slot"
-msgstr "no se puede usar la relación «%s.%s» como destino de replicación lógica"
+msgstr "no se puede usar %s con un slot de replicación lógica"
 
-#: replication/walsender.c:623 storage/smgr/md.c:1526
+#: replication/walsender.c:635 storage/smgr/md.c:1735
 #, c-format
 msgid "could not seek to end of file \"%s\": %m"
 msgstr "no se pudo posicionar (seek) al fin del archivo «%s»: %m"
 
-#: replication/walsender.c:627
+#: replication/walsender.c:639
 #, c-format
 msgid "could not seek to beginning of file \"%s\": %m"
 msgstr "no se pudo posicionar (seek) al comienzo del archivo «%s»: %m"
 
-#: replication/walsender.c:704
+#: replication/walsender.c:853
 #, c-format
 msgid "cannot use a logical replication slot for physical replication"
 msgstr "no se puede usar un slot de replicación lógica para replicación física"
 
-#: replication/walsender.c:770
+#: replication/walsender.c:919
 #, c-format
 msgid "requested starting point %X/%X on timeline %u is not in this server's history"
 msgstr "el punto de inicio solicitado %X/%X del timeline %u no está en la historia de este servidor"
 
-#: replication/walsender.c:773
+#: replication/walsender.c:922
 #, c-format
 msgid "This server's history forked from timeline %u at %X/%X."
 msgstr "La historia de este servidor bifurcó desde el timeline %u en %X/%X."
 
-#: replication/walsender.c:817
+#: replication/walsender.c:966
 #, c-format
 msgid "requested starting point %X/%X is ahead of the WAL flush position of this server %X/%X"
 msgstr "el punto de inicio solicitado %X/%X está más adelante que la posición de sincronización (flush) de WAL de este servidor %X/%X"
 
-#: replication/walsender.c:1010
-#, fuzzy, c-format
-#| msgid "unrecognized value for EXPLAIN option \"%s\": \"%s\""
+#: replication/walsender.c:1160
+#, c-format
 msgid "unrecognized value for CREATE_REPLICATION_SLOT option \"%s\": \"%s\""
-msgstr "valor no reconocido para la opción de EXPLAIN «%s»: «%s»"
+msgstr "valor no reconocido para la opción de CREATE_REPLICATION_SLOT «%s»: «%s»"
 
 #. translator: %s is a CREATE_REPLICATION_SLOT statement
-#: replication/walsender.c:1095
+#: replication/walsender.c:1266
 #, c-format
 msgid "%s must not be called inside a transaction"
 msgstr "%s no debe ser ejecutado dentro de una transacción"
 
 #. translator: %s is a CREATE_REPLICATION_SLOT statement
-#: replication/walsender.c:1105
+#: replication/walsender.c:1276
 #, c-format
 msgid "%s must be called inside a transaction"
 msgstr "%s no debe ser ejecutado dentro de una transacción"
 
 #. translator: %s is a CREATE_REPLICATION_SLOT statement
-#: replication/walsender.c:1111
+#: replication/walsender.c:1282
 #, c-format
 msgid "%s must be called in REPEATABLE READ isolation mode transaction"
 msgstr "%s debe llamarse en una transacción de modo de aislamiento REPEATABLE READ"
 
 #. translator: %s is a CREATE_REPLICATION_SLOT statement
-#: replication/walsender.c:1116
-#, fuzzy, c-format
-#| msgid "%s must be called inside a transaction"
-msgid "%s must be called in a read only transaction"
-msgstr "%s no debe ser ejecutado dentro de una transacción"
+#: replication/walsender.c:1287
+#, c-format
+msgid "%s must be called in a read-only transaction"
+msgstr "%s debe ser ejecutado en una transacción de sólo lectura"
 
 #. translator: %s is a CREATE_REPLICATION_SLOT statement
-#: replication/walsender.c:1122
+#: replication/walsender.c:1293
 #, c-format
 msgid "%s must be called before any query"
 msgstr "%s debe ser llamado antes de cualquier consulta"
 
 #. translator: %s is a CREATE_REPLICATION_SLOT statement
-#: replication/walsender.c:1128
+#: replication/walsender.c:1299
 #, c-format
 msgid "%s must not be called in a subtransaction"
 msgstr "%s no está permitido en una subtransacción"
 
-#: replication/walsender.c:1275
+#: replication/walsender.c:1472
 #, c-format
 msgid "terminating walsender process after promotion"
 msgstr "terminando el proceso walsender luego de la promoción"
 
-#: replication/walsender.c:1696
+#: replication/walsender.c:2000
 #, c-format
 msgid "cannot execute new commands while WAL sender is in stopping mode"
-msgstr "no puede ejecutar nuevas órdenes mientras el «WAL sender» está en modo de apagarse"
+msgstr "no puede ejecutar nuevas órdenes mientras el “WAL sender” está en modo de apagarse"
 
-#: replication/walsender.c:1731
+#: replication/walsender.c:2035
 #, c-format
 msgid "cannot execute SQL commands in WAL sender for physical replication"
-msgstr "no puede ejecutar órdenes SQL en el «WAL sender» para replicación física"
+msgstr "no puede ejecutar órdenes SQL en el “WAL sender” para replicación física"
 
-#: replication/walsender.c:1764
+#: replication/walsender.c:2068
 #, c-format
 msgid "received replication command: %s"
 msgstr "se recibió orden de replicación: %s"
 
-#: replication/walsender.c:1772 tcop/fastpath.c:209 tcop/postgres.c:1138
-#: tcop/postgres.c:1496 tcop/postgres.c:1736 tcop/postgres.c:2210
-#: tcop/postgres.c:2648 tcop/postgres.c:2726
+#: replication/walsender.c:2076 tcop/fastpath.c:209 tcop/postgres.c:1142
+#: tcop/postgres.c:1500 tcop/postgres.c:1752 tcop/postgres.c:2234
+#: tcop/postgres.c:2672 tcop/postgres.c:2749
 #, c-format
 msgid "current transaction is aborted, commands ignored until end of transaction block"
 msgstr "transacción abortada, las órdenes serán ignoradas hasta el fin de bloque de transacción"
 
-#: replication/walsender.c:1914 replication/walsender.c:1949
+#: replication/walsender.c:2233 replication/walsender.c:2268
 #, c-format
 msgid "unexpected EOF on standby connection"
 msgstr "se encontró fin de archivo inesperado en la conexión standby"
 
-#: replication/walsender.c:1937
+#: replication/walsender.c:2256
 #, c-format
 msgid "invalid standby message type \"%c\""
 msgstr "el tipo «%c» de mensaje del standby no es válido"
 
-#: replication/walsender.c:2026
+#: replication/walsender.c:2345
 #, c-format
 msgid "unexpected message type \"%c\""
 msgstr "mensaje de tipo «%c» inesperado"
 
-#: replication/walsender.c:2439
+#: replication/walsender.c:2759
 #, c-format
 msgid "terminating walsender process due to replication timeout"
 msgstr "terminando el proceso walsender debido a que se agotó el tiempo de espera de replicación"
 
-#: rewrite/rewriteDefine.c:111 rewrite/rewriteDefine.c:842
+#: rewrite/rewriteDefine.c:104 rewrite/rewriteDefine.c:835
 #, c-format
 msgid "rule \"%s\" for relation \"%s\" already exists"
 msgstr "ya existe una regla llamada «%s» para la relación «%s»"
 
-#: rewrite/rewriteDefine.c:268 rewrite/rewriteDefine.c:780
-#, fuzzy, c-format
-#| msgid "portal \"%s\" cannot be run"
+#: rewrite/rewriteDefine.c:261 rewrite/rewriteDefine.c:773
+#, c-format
 msgid "relation \"%s\" cannot have rules"
-msgstr "el portal «%s» no puede ser ejecutado"
+msgstr "la relación «%s» no puede tener reglas"
 
-#: rewrite/rewriteDefine.c:299
+#: rewrite/rewriteDefine.c:292
 #, c-format
 msgid "rule actions on OLD are not implemented"
 msgstr "las acciones de regla en OLD no están implementadas"
 
-#: rewrite/rewriteDefine.c:300
+#: rewrite/rewriteDefine.c:293
 #, c-format
 msgid "Use views or triggers instead."
 msgstr "Use vistas o triggers en su lugar."
 
-#: rewrite/rewriteDefine.c:304
+#: rewrite/rewriteDefine.c:297
 #, c-format
 msgid "rule actions on NEW are not implemented"
 msgstr "las acciones de regla en NEW no están implementadas"
 
-#: rewrite/rewriteDefine.c:305
+#: rewrite/rewriteDefine.c:298
 #, c-format
 msgid "Use triggers instead."
 msgstr "Use triggers en su lugar."
 
-#: rewrite/rewriteDefine.c:319
-#, fuzzy, c-format
-#| msgid "cursor \"%s\" is not a SELECT query"
+#: rewrite/rewriteDefine.c:312
+#, c-format
 msgid "relation \"%s\" cannot have ON SELECT rules"
-msgstr "el cursor «%s» no es una orden SELECT"
+msgstr "la relación «%s» no puede tener reglas ON SELECT"
 
-#: rewrite/rewriteDefine.c:329
+#: rewrite/rewriteDefine.c:322
 #, c-format
 msgid "INSTEAD NOTHING rules on SELECT are not implemented"
 msgstr "las reglas INSTEAD NOTHING en SELECT no están implementadas"
 
-#: rewrite/rewriteDefine.c:330
+#: rewrite/rewriteDefine.c:323
 #, c-format
 msgid "Use views instead."
 msgstr "Use vistas en su lugar."
 
-#: rewrite/rewriteDefine.c:338
+#: rewrite/rewriteDefine.c:331
 #, c-format
 msgid "multiple actions for rules on SELECT are not implemented"
 msgstr "las reglas de múltiples acciones en SELECT no están implementadas"
 
-#: rewrite/rewriteDefine.c:348
+#: rewrite/rewriteDefine.c:341
 #, c-format
 msgid "rules on SELECT must have action INSTEAD SELECT"
 msgstr "las reglas en SELECT deben tener una acción INSTEAD SELECT"
 
-#: rewrite/rewriteDefine.c:356
+#: rewrite/rewriteDefine.c:349
 #, c-format
 msgid "rules on SELECT must not contain data-modifying statements in WITH"
 msgstr "las reglas en SELECT no deben contener sentencias que modifiquen datos en WITH"
 
-#: rewrite/rewriteDefine.c:364
+#: rewrite/rewriteDefine.c:357
 #, c-format
 msgid "event qualifications are not implemented for rules on SELECT"
 msgstr "las calificaciones de eventos no están implementadas para las reglas en SELECT"
 
-#: rewrite/rewriteDefine.c:391
+#: rewrite/rewriteDefine.c:384
 #, c-format
 msgid "\"%s\" is already a view"
 msgstr "«%s» ya es una vista"
 
-#: rewrite/rewriteDefine.c:415
+#: rewrite/rewriteDefine.c:408
 #, c-format
 msgid "view rule for \"%s\" must be named \"%s\""
 msgstr "la regla de vista para «%s» debe llamarse «%s»"
 
-#: rewrite/rewriteDefine.c:442
+#: rewrite/rewriteDefine.c:435
 #, c-format
 msgid "cannot have multiple RETURNING lists in a rule"
 msgstr "no se pueden tener múltiples listas RETURNING en una regla"
 
-#: rewrite/rewriteDefine.c:447
+#: rewrite/rewriteDefine.c:440
 #, c-format
 msgid "RETURNING lists are not supported in conditional rules"
 msgstr "listas de RETURNING no están soportadas en reglas condicionales"
 
-#: rewrite/rewriteDefine.c:451
+#: rewrite/rewriteDefine.c:444
 #, c-format
 msgid "RETURNING lists are not supported in non-INSTEAD rules"
 msgstr "listas de RETURNING no están soportadas en reglas que no estén marcadas INSTEAD"
 
-#: rewrite/rewriteDefine.c:465
-#, fuzzy, c-format
-#| msgid "view rule for \"%s\" must be named \"%s\""
+#: rewrite/rewriteDefine.c:458
+#, c-format
 msgid "non-view rule for \"%s\" must not be named \"%s\""
-msgstr "la regla de vista para «%s» debe llamarse «%s»"
+msgstr "la regla que no es de vista para «%s» no debe llamarse «%s»"
 
-#: rewrite/rewriteDefine.c:539
+#: rewrite/rewriteDefine.c:532
 #, c-format
 msgid "SELECT rule's target list has too many entries"
 msgstr "la lista de destinos en la regla de SELECT tiene demasiadas entradas"
 
-#: rewrite/rewriteDefine.c:540
+#: rewrite/rewriteDefine.c:533
 #, c-format
 msgid "RETURNING list has too many entries"
 msgstr "la lista de RETURNING tiene demasiadas entradas"
 
-#: rewrite/rewriteDefine.c:567
+#: rewrite/rewriteDefine.c:560
 #, c-format
 msgid "cannot convert relation containing dropped columns to view"
 msgstr "no se puede convertir en vista una relación que contiene columnas eliminadas"
 
-#: rewrite/rewriteDefine.c:568
+#: rewrite/rewriteDefine.c:561
 #, c-format
 msgid "cannot create a RETURNING list for a relation containing dropped columns"
 msgstr "no se puede crear una lista RETURNING para una relación que contiene columnas eliminadas"
 
-#: rewrite/rewriteDefine.c:574
+#: rewrite/rewriteDefine.c:567
 #, c-format
 msgid "SELECT rule's target entry %d has different column name from column \"%s\""
 msgstr "la entrada de destino %d de la regla de SELECT tiene un nombre de columna diferente de «%s»"
 
-#: rewrite/rewriteDefine.c:576
+#: rewrite/rewriteDefine.c:569
 #, c-format
 msgid "SELECT target entry is named \"%s\"."
 msgstr "La entrada de destino de SELECT tiene nombre «%s»."
 
-#: rewrite/rewriteDefine.c:585
+#: rewrite/rewriteDefine.c:578
 #, c-format
 msgid "SELECT rule's target entry %d has different type from column \"%s\""
 msgstr "el destino %d de la regla de SELECT tiene un tipo diferente de la columna «%s»"
 
-#: rewrite/rewriteDefine.c:587
+#: rewrite/rewriteDefine.c:580
 #, c-format
 msgid "RETURNING list's entry %d has different type from column \"%s\""
 msgstr "el destino %d de la lista de RETURNING tiene un tipo diferente de la columna «%s»"
 
-#: rewrite/rewriteDefine.c:590 rewrite/rewriteDefine.c:614
+#: rewrite/rewriteDefine.c:583 rewrite/rewriteDefine.c:607
 #, c-format
 msgid "SELECT target entry has type %s, but column has type %s."
 msgstr "La entrada de destino de SELECT tiene un tipo «%s», pero la columna tiene tipo «%s»."
 
-#: rewrite/rewriteDefine.c:593 rewrite/rewriteDefine.c:618
+#: rewrite/rewriteDefine.c:586 rewrite/rewriteDefine.c:611
 #, c-format
 msgid "RETURNING list entry has type %s, but column has type %s."
 msgstr "una entrada de la lista RETURNING tiene tipo %s, pero la columna tiene tipo %s."
 
-#: rewrite/rewriteDefine.c:609
+#: rewrite/rewriteDefine.c:602
 #, c-format
 msgid "SELECT rule's target entry %d has different size from column \"%s\""
 msgstr "el destino %d de la regla de SELECT tiene un tamaño diferente de la columna «%s»"
 
-#: rewrite/rewriteDefine.c:611
+#: rewrite/rewriteDefine.c:604
 #, c-format
 msgid "RETURNING list's entry %d has different size from column \"%s\""
 msgstr "el destino %d de la lista RETURNING tiene un tamaño diferente de la columna «%s»"
 
-#: rewrite/rewriteDefine.c:628
+#: rewrite/rewriteDefine.c:621
 #, c-format
 msgid "SELECT rule's target list has too few entries"
 msgstr "la lista de destinos de regla de SELECT tiene muy pocas entradas"
 
-#: rewrite/rewriteDefine.c:629
+#: rewrite/rewriteDefine.c:622
 #, c-format
 msgid "RETURNING list has too few entries"
 msgstr "la lista de RETURNING tiene muy pocas entradas"
 
-#: rewrite/rewriteDefine.c:718 rewrite/rewriteDefine.c:833
-#: rewrite/rewriteSupport.c:109
+#: rewrite/rewriteDefine.c:711 rewrite/rewriteDefine.c:826
+#: rewrite/rewriteSupport.c:108
 #, c-format
 msgid "rule \"%s\" for relation \"%s\" does not exist"
 msgstr "no existe la regla «%s» para la relación «%s»"
 
-#: rewrite/rewriteDefine.c:852
+#: rewrite/rewriteDefine.c:845
 #, c-format
 msgid "renaming an ON SELECT rule is not allowed"
 msgstr "no se permite cambiar el nombre de una regla ON SELECT"
 
-#: rewrite/rewriteHandler.c:581
+#: rewrite/rewriteHandler.c:588
 #, c-format
 msgid "WITH query name \"%s\" appears in both a rule action and the query being rewritten"
 msgstr "el nombre de consulta WITH «%s» aparece tanto en una acción de regla y en la consulta que está siendo reescrita"
 
-#: rewrite/rewriteHandler.c:608
-#, fuzzy, c-format
-#| msgid "DO INSTEAD NOTIFY rules are not supported for data-modifying statements in WITH"
+#: rewrite/rewriteHandler.c:615
+#, c-format
 msgid "INSERT ... SELECT rule actions are not supported for queries having data-modifying statements in WITH"
-msgstr "las reglas DO INSTEAD NOTIFY no están soportadas para sentencias que modifiquen datos en WITH"
+msgstr "las acciones de regla INSERT ... SELECT no están soportadas para sentencias que modifiquen datos en WITH"
 
-#: rewrite/rewriteHandler.c:661
+#: rewrite/rewriteHandler.c:668
 #, c-format
 msgid "cannot have RETURNING lists in multiple rules"
 msgstr "no se puede usar RETURNING en múltiples reglas"
 
-#: rewrite/rewriteHandler.c:893 rewrite/rewriteHandler.c:932
+#: rewrite/rewriteHandler.c:900 rewrite/rewriteHandler.c:939
 #, c-format
 msgid "cannot insert a non-DEFAULT value into column \"%s\""
 msgstr "no se puede insertar un valor no-predeterminado en la columna «%s»"
 
-#: rewrite/rewriteHandler.c:895 rewrite/rewriteHandler.c:961
+#: rewrite/rewriteHandler.c:902 rewrite/rewriteHandler.c:968
 #, c-format
 msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS."
 msgstr "La columna \"%s\" es una columna de identidad definida como GENERATED ALWAYS."
 
-#: rewrite/rewriteHandler.c:897
+#: rewrite/rewriteHandler.c:904
 #, c-format
 msgid "Use OVERRIDING SYSTEM VALUE to override."
 msgstr "Use OVERRIDING SYSTEM VALUE para controlar manualmente."
 
-#: rewrite/rewriteHandler.c:959 rewrite/rewriteHandler.c:967
+#: rewrite/rewriteHandler.c:966 rewrite/rewriteHandler.c:974
 #, c-format
 msgid "column \"%s\" can only be updated to DEFAULT"
 msgstr "la columna «%s» sólo puede actualizarse a DEFAULT"
 
-#: rewrite/rewriteHandler.c:1114 rewrite/rewriteHandler.c:1132
+#: rewrite/rewriteHandler.c:1109 rewrite/rewriteHandler.c:1127
 #, c-format
 msgid "multiple assignments to same column \"%s\""
 msgstr "hay múltiples asignaciones a la misma columna «%s»"
 
-#: rewrite/rewriteHandler.c:2118 rewrite/rewriteHandler.c:4039
+#: rewrite/rewriteHandler.c:1682
+#, c-format
+msgid "MERGE is not supported for relations with rules."
+msgstr "MERGE no está soportado para relaciones con reglas."
+
+#: rewrite/rewriteHandler.c:1722 rewrite/rewriteHandler.c:3262
+#, c-format
+msgid "access to non-system view \"%s\" is restricted"
+msgstr "el acceso a la vista no de sistema «%s» está restringido"
+
+#: rewrite/rewriteHandler.c:2122 rewrite/rewriteHandler.c:4254
 #, c-format
 msgid "infinite recursion detected in rules for relation \"%s\""
 msgstr "se detectó recursión infinita en las reglas de la relación «%s»"
 
-#: rewrite/rewriteHandler.c:2203
+#: rewrite/rewriteHandler.c:2227
 #, c-format
 msgid "infinite recursion detected in policy for relation \"%s\""
 msgstr "se detectó recursión infinita en la política para la relación «%s»"
 
-#: rewrite/rewriteHandler.c:2523
+#: rewrite/rewriteHandler.c:2589
 msgid "Junk view columns are not updatable."
 msgstr "Las columnas «basura» de vistas no son actualizables."
 
-#: rewrite/rewriteHandler.c:2528
+#: rewrite/rewriteHandler.c:2594
 msgid "View columns that are not columns of their base relation are not updatable."
 msgstr "Las columnas de vistas que no son columnas de su relación base no son actualizables."
 
-#: rewrite/rewriteHandler.c:2531
+#: rewrite/rewriteHandler.c:2597
 msgid "View columns that refer to system columns are not updatable."
 msgstr "Las columnas de vistas que se refieren a columnas de sistema no son actualizables."
 
-#: rewrite/rewriteHandler.c:2534
+#: rewrite/rewriteHandler.c:2600
 msgid "View columns that return whole-row references are not updatable."
 msgstr "Las columnas de vistas que retornan referencias a la fila completa no son actualizables."
 
 # XXX a %s here would be nice ...
-#: rewrite/rewriteHandler.c:2595
+#: rewrite/rewriteHandler.c:2661
 msgid "Views containing DISTINCT are not automatically updatable."
 msgstr "Las vistas que contienen DISTINCT no son automáticamente actualizables."
 
-#: rewrite/rewriteHandler.c:2598
+#: rewrite/rewriteHandler.c:2664
 msgid "Views containing GROUP BY are not automatically updatable."
 msgstr "Las vistas que contienen GROUP BY no son automáticamente actualizables."
 
-#: rewrite/rewriteHandler.c:2601
+#: rewrite/rewriteHandler.c:2667
 msgid "Views containing HAVING are not automatically updatable."
 msgstr "Las vistas que contienen HAVING no son automáticamente actualizables."
 
-#: rewrite/rewriteHandler.c:2604
+#: rewrite/rewriteHandler.c:2670
 msgid "Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable."
 msgstr "Las vistas que contienen UNION, INTERSECT o EXCEPT no son automáticamente actualizables."
 
-#: rewrite/rewriteHandler.c:2607
+#: rewrite/rewriteHandler.c:2673
 msgid "Views containing WITH are not automatically updatable."
 msgstr "Las vistas que contienen WITH no son automáticamente actualizables."
 
-#: rewrite/rewriteHandler.c:2610
+#: rewrite/rewriteHandler.c:2676
 msgid "Views containing LIMIT or OFFSET are not automatically updatable."
 msgstr "Las vistas que contienen LIMIT u OFFSET no son automáticamente actualizables."
 
-#: rewrite/rewriteHandler.c:2622
-msgid "Views that return aggregate functions are not automatically updatable."
-msgstr "Las vistas que retornan funciones de agregación no son automáticamente actualizables."
+#: rewrite/rewriteHandler.c:2688
+msgid "Views that return aggregate functions are not automatically updatable."
+msgstr "Las vistas que retornan funciones de agregación no son automáticamente actualizables."
+
+#: rewrite/rewriteHandler.c:2691
+msgid "Views that return window functions are not automatically updatable."
+msgstr "Las vistas que retornan funciones ventana no son automáticamente actualizables."
+
+#: rewrite/rewriteHandler.c:2694
+msgid "Views that return set-returning functions are not automatically updatable."
+msgstr "Las vistas que retornan funciones-que-retornan-conjuntos no son automáticamente actualizables."
+
+#: rewrite/rewriteHandler.c:2701 rewrite/rewriteHandler.c:2705
+#: rewrite/rewriteHandler.c:2713
+msgid "Views that do not select from a single table or view are not automatically updatable."
+msgstr "Las vistas que no extraen desde una única tabla o vista no son automáticamente actualizables."
+
+#: rewrite/rewriteHandler.c:2716
+msgid "Views containing TABLESAMPLE are not automatically updatable."
+msgstr "Las vistas que contienen TABLESAMPLE no son automáticamente actualizables."
+
+#: rewrite/rewriteHandler.c:2740
+msgid "Views that have no updatable columns are not automatically updatable."
+msgstr "Las vistas que no tienen columnas actualizables no son automáticamente actualizables."
+
+#: rewrite/rewriteHandler.c:3121 rewrite/rewriteHandler.c:3156
+#, c-format
+msgid "cannot insert into view \"%s\""
+msgstr "no se puede insertar en la vista «%s»"
+
+#: rewrite/rewriteHandler.c:3124
+#, c-format
+msgid "To enable inserting into the view, provide an INSTEAD OF INSERT trigger or an unconditional ON INSERT DO INSTEAD rule."
+msgstr "Para posibilitar las inserciones en la vista, provea un “trigger” INSTEAD OF INSERT o una regla incodicional ON INSERT DO INSTEAD."
+
+#: rewrite/rewriteHandler.c:3129 rewrite/rewriteHandler.c:3165
+#, c-format
+msgid "cannot update view \"%s\""
+msgstr "no se puede actualizar la vista «%s»"
+
+#: rewrite/rewriteHandler.c:3132
+#, c-format
+msgid "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule."
+msgstr "Para posibilitar las actualizaciones en la vista, provea un “trigger” INSTEAD OF UPDATE o una regla incondicional ON UPDATE DO INSTEAD."
 
-#: rewrite/rewriteHandler.c:2625
-msgid "Views that return window functions are not automatically updatable."
-msgstr "Las vistas que retornan funciones ventana no son automáticamente actualizables."
+#: rewrite/rewriteHandler.c:3137 rewrite/rewriteHandler.c:3174
+#, c-format
+msgid "cannot delete from view \"%s\""
+msgstr "no se puede eliminar de la vista «%s»"
 
-#: rewrite/rewriteHandler.c:2628
-msgid "Views that return set-returning functions are not automatically updatable."
-msgstr "Las vistas que retornan funciones-que-retornan-conjuntos no son automáticamente actualizables."
+#: rewrite/rewriteHandler.c:3140
+#, c-format
+msgid "To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an unconditional ON DELETE DO INSTEAD rule."
+msgstr "Para posibilitar las eliminaciones en la vista, provea un “trigger” INSTEAD OF DELETE o una regla incondicional ON DELETE DO INSTEAD."
 
-#: rewrite/rewriteHandler.c:2635 rewrite/rewriteHandler.c:2639
-#: rewrite/rewriteHandler.c:2647
-msgid "Views that do not select from a single table or view are not automatically updatable."
-msgstr "Las vistas que no extraen desde una única tabla o vista no son automáticamente actualizables."
+#: rewrite/rewriteHandler.c:3159
+#, c-format
+msgid "To enable inserting into the view using MERGE, provide an INSTEAD OF INSERT trigger."
+msgstr "Para posibilitar insertar en la vista usando MERGE, provea un “trigger” INSTEAD OF INSERT."
 
-#: rewrite/rewriteHandler.c:2650
-msgid "Views containing TABLESAMPLE are not automatically updatable."
-msgstr "Las vistas que contienen TABLESAMPLE no son automáticamente actualizables."
+#: rewrite/rewriteHandler.c:3168
+#, c-format
+msgid "To enable updating the view using MERGE, provide an INSTEAD OF UPDATE trigger."
+msgstr "Para posibilitar actualizar la vista usando MERGE, provea un “trigger” INSTEAD OF UPDATE."
 
-#: rewrite/rewriteHandler.c:2674
-msgid "Views that have no updatable columns are not automatically updatable."
-msgstr "Las vistas que no tienen columnas actualizables no son automáticamente actualizables."
+#: rewrite/rewriteHandler.c:3177
+#, c-format
+msgid "To enable deleting from the view using MERGE, provide an INSTEAD OF DELETE trigger."
+msgstr "Para posibilitar eliminar de la vista usando MERGE, provea un “trigger” INSTEAD OF DELETE."
 
-#: rewrite/rewriteHandler.c:3154
+#: rewrite/rewriteHandler.c:3352
 #, c-format
 msgid "cannot insert into column \"%s\" of view \"%s\""
 msgstr "no se puede insertar en la columna «%s» de la vista «%s»"
 
-#: rewrite/rewriteHandler.c:3162
+#: rewrite/rewriteHandler.c:3360
 #, c-format
 msgid "cannot update column \"%s\" of view \"%s\""
 msgstr "no se puede actualizar la columna «%s» vista «%s»"
 
-#: rewrite/rewriteHandler.c:3666
+#: rewrite/rewriteHandler.c:3368
+#, c-format
+msgid "cannot merge into column \"%s\" of view \"%s\""
+msgstr "no se puede hacer «merge» en la columna «%s» de la vista «%s»"
+
+#: rewrite/rewriteHandler.c:3396
+#, c-format
+msgid "cannot merge into view \"%s\""
+msgstr "no se puede hacer «merge» en la vista «%s»"
+
+#: rewrite/rewriteHandler.c:3398
+#, c-format
+msgid "MERGE is not supported for views with INSTEAD OF triggers for some actions but not all."
+msgstr "MERGE no está soportado para vistas con triggers INSTEAD OF para algunas acciones pero no todas."
+
+#: rewrite/rewriteHandler.c:3399
+#, c-format
+msgid "To enable merging into the view, either provide a full set of INSTEAD OF triggers or drop the existing INSTEAD OF triggers."
+msgstr "Para posibilitar hacer “merge” en la vista, provea un conjunto completo de “triggers” INSTEAD OF o elimine los “triggers” INSTEAD OF existentes."
+
+#: rewrite/rewriteHandler.c:3912
 #, c-format
 msgid "DO INSTEAD NOTIFY rules are not supported for data-modifying statements in WITH"
 msgstr "las reglas DO INSTEAD NOTIFY no están soportadas para sentencias que modifiquen datos en WITH"
 
-#: rewrite/rewriteHandler.c:3677
+#: rewrite/rewriteHandler.c:3923
 #, c-format
 msgid "DO INSTEAD NOTHING rules are not supported for data-modifying statements in WITH"
 msgstr "las reglas DO INSTEAD NOTHING no están soportadas para sentencias que modifiquen datos en WITH"
 
-#: rewrite/rewriteHandler.c:3691
+#: rewrite/rewriteHandler.c:3937
 #, c-format
 msgid "conditional DO INSTEAD rules are not supported for data-modifying statements in WITH"
 msgstr "las reglas DO INSTEAD condicionales no están soportadas para sentencias que modifiquen datos en WITH"
 
-#: rewrite/rewriteHandler.c:3695
+#: rewrite/rewriteHandler.c:3941
 #, c-format
 msgid "DO ALSO rules are not supported for data-modifying statements in WITH"
 msgstr "las reglas DO ALSO no están soportadas para sentencias que modifiquen datos en WITH"
 
-#: rewrite/rewriteHandler.c:3700
+#: rewrite/rewriteHandler.c:3946
 #, c-format
 msgid "multi-statement DO INSTEAD rules are not supported for data-modifying statements in WITH"
 msgstr "las reglas DO INSTEAD de múltiples sentencias no están soportadas para sentencias que modifiquen datos en WITH"
 
 # XXX a %s here would be nice ...
-#: rewrite/rewriteHandler.c:3967 rewrite/rewriteHandler.c:3975
-#: rewrite/rewriteHandler.c:3983
-#, c-format
+#: rewrite/rewriteHandler.c:4206
 msgid "Views with conditional DO INSTEAD rules are not automatically updatable."
 msgstr "Las vistas con reglas DO INSTEAD condicionales no son automáticamente actualizables."
 
-#: rewrite/rewriteHandler.c:4088
+#: rewrite/rewriteHandler.c:4303
 #, c-format
 msgid "cannot perform INSERT RETURNING on relation \"%s\""
 msgstr "no se puede hacer INSERT RETURNING a la relación «%s»"
 
-#: rewrite/rewriteHandler.c:4090
+#: rewrite/rewriteHandler.c:4305
 #, c-format
 msgid "You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause."
 msgstr "Necesita un regla incondicional ON INSERT DO INSTEAD con una cláusula RETURNING."
 
-#: rewrite/rewriteHandler.c:4095
+#: rewrite/rewriteHandler.c:4310
 #, c-format
 msgid "cannot perform UPDATE RETURNING on relation \"%s\""
 msgstr "no se puede hacer UPDATE RETURNING a la relación «%s»"
 
-#: rewrite/rewriteHandler.c:4097
+#: rewrite/rewriteHandler.c:4312
 #, c-format
 msgid "You need an unconditional ON UPDATE DO INSTEAD rule with a RETURNING clause."
 msgstr "Necesita un regla incondicional ON UPDATE DO INSTEAD con una cláusula RETURNING."
 
-#: rewrite/rewriteHandler.c:4102
+#: rewrite/rewriteHandler.c:4317
 #, c-format
 msgid "cannot perform DELETE RETURNING on relation \"%s\""
 msgstr "no se puede hacer DELETE RETURNING a la relación «%s»"
 
-#: rewrite/rewriteHandler.c:4104
+#: rewrite/rewriteHandler.c:4319
 #, c-format
 msgid "You need an unconditional ON DELETE DO INSTEAD rule with a RETURNING clause."
 msgstr "Necesita un regla incondicional ON DELETE DO INSTEAD con una clásula RETURNING."
 
-#: rewrite/rewriteHandler.c:4122
+#: rewrite/rewriteHandler.c:4337
 #, c-format
 msgid "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or UPDATE rules"
 msgstr "INSERT con una cláusula ON CONFLICT no puede usarse con una tabla que tiene reglas INSERT o UPDATE"
 
-#: rewrite/rewriteHandler.c:4179
+#: rewrite/rewriteHandler.c:4394
 #, c-format
 msgid "WITH cannot be used in a query that is rewritten by rules into multiple queries"
 msgstr "WITH no puede ser usado en una consulta que está siendo convertida en múltiples consultas a través de reglas"
 
-#: rewrite/rewriteManip.c:1070
+#: rewrite/rewriteManip.c:1084
 #, c-format
 msgid "conditional utility statements are not implemented"
 msgstr "las sentencias condicionales de utilidad no están implementadas"
 
-#: rewrite/rewriteManip.c:1414
+#: rewrite/rewriteManip.c:1431
 #, c-format
 msgid "WHERE CURRENT OF on a view is not implemented"
 msgstr "WHERE CURRENT OF no está implementado en una vista"
 
-#: rewrite/rewriteManip.c:1749
+#: rewrite/rewriteManip.c:1767
 #, c-format
 msgid "NEW variables in ON UPDATE rules cannot reference columns that are part of a multiple assignment in the subject UPDATE command"
 msgstr "las variables NEW en reglas ON UPDATE no pueden referenciar columnas que son parte de una asignación múltiple en la orden UPDATE"
 
 #: rewrite/rewriteSearchCycle.c:410
-#, fuzzy, c-format
-#| msgid "with a SEARCH or CYCLE clause, the left side of the UNION must be a SELECT"
+#, c-format
 msgid "with a SEARCH or CYCLE clause, the recursive reference to WITH query \"%s\" must be at the top level of its right-hand SELECT"
-msgstr "con una cláusula SEARCH o CYCLE, el lado izquierdo de UNION debe ser un SELECT"
+msgstr "con una cláusula SEARCH o CYCLE, la referencia recursiva a la consulta de WITH «%s» debe estar en el nivel superior de su SELECT del lado derecho"
 
 #: snowball/dict_snowball.c:215
 #, c-format
@@ -21531,72 +22046,67 @@ msgstr "parámetro Snowball no reconocido: «%s»"
 msgid "missing Language parameter"
 msgstr "falta un parámetro Language"
 
-#: statistics/extended_stats.c:179
+#: statistics/extended_stats.c:176
 #, c-format
 msgid "statistics object \"%s.%s\" could not be computed for relation \"%s.%s\""
 msgstr "el objeto de estadísticas «%s.%s» no pudo ser calculado para la relación «%s.%s»"
 
-#: statistics/mcv.c:1372
+#: statistics/mcv.c:1368
 #, c-format
 msgid "function returning record called in context that cannot accept type record"
 msgstr "se llamó una función que retorna un registro en un contexto que no puede aceptarlo"
 
-#: storage/buffer/bufmgr.c:612 storage/buffer/bufmgr.c:769
+#: storage/buffer/bufmgr.c:649 storage/buffer/bufmgr.c:805
 #, c-format
 msgid "cannot access temporary tables of other sessions"
 msgstr "no se pueden acceder tablas temporales de otras sesiones"
 
-#: storage/buffer/bufmgr.c:1137
+#: storage/buffer/bufmgr.c:1532
 #, c-format
 msgid "invalid page in block %u of relation %s; zeroing out page"
 msgstr "la página no es válida en el bloque %u de la relación «%s»; reinicializando la página"
 
-#: storage/buffer/bufmgr.c:1931 storage/buffer/localbuf.c:359
+#: storage/buffer/bufmgr.c:2277 storage/buffer/localbuf.c:361
 #, c-format
 msgid "cannot extend relation %s beyond %u blocks"
 msgstr "no se puede extender la relación %s más allá de %u bloques"
 
-#: storage/buffer/bufmgr.c:1998
+#: storage/buffer/bufmgr.c:2348
 #, c-format
 msgid "unexpected data beyond EOF in block %u of relation %s"
 msgstr "datos inesperados más allá del EOF en el bloque %u de relación %s"
 
-#: storage/buffer/bufmgr.c:2000
+#: storage/buffer/bufmgr.c:2350
 #, c-format
 msgid "This has been seen to occur with buggy kernels; consider updating your system."
 msgstr "Esto parece ocurrir sólo con kernels defectuosos; considere actualizar su sistema."
 
-#: storage/buffer/bufmgr.c:5219
+#: storage/buffer/bufmgr.c:5653
 #, c-format
 msgid "could not write block %u of %s"
 msgstr "no se pudo escribir el bloque %u de %s"
 
-#: storage/buffer/bufmgr.c:5221
+#: storage/buffer/bufmgr.c:5655
 #, c-format
 msgid "Multiple failures --- write error might be permanent."
 msgstr "Múltiples fallas --- el error de escritura puede ser permanente."
 
-#: storage/buffer/bufmgr.c:5243 storage/buffer/bufmgr.c:5263
+#: storage/buffer/bufmgr.c:5677 storage/buffer/bufmgr.c:5697
 #, c-format
 msgid "writing block %u of relation %s"
 msgstr "escribiendo el bloque %u de la relación %s"
 
-#: storage/buffer/bufmgr.c:5593
-#, c-format
-msgid "snapshot too old"
-msgstr "snapshot demasiado antiguo"
-
-#: storage/buffer/localbuf.c:219
+#: storage/buffer/localbuf.c:220
 #, c-format
 msgid "no empty local buffer available"
 msgstr "no hay ningún búfer local disponible"
 
-#: storage/buffer/localbuf.c:592
+#: storage/buffer/localbuf.c:597
 #, c-format
 msgid "cannot access temporary tables during a parallel operation"
 msgstr "no se pueden acceder tablas temporales durante una operación paralela"
 
-#: storage/buffer/localbuf.c:699
+#: storage/buffer/localbuf.c:712
 #, c-format
 msgid "\"temp_buffers\" cannot be changed after any temporary tables have been accessed in the session."
 msgstr "«temp_buffers» no puede ser cambiado después de que cualquier tabla temporal haya sido accedida en la sesión."
@@ -21607,164 +22117,165 @@ msgid "could not open temporary file \"%s\" from BufFile \"%s\": %m"
 msgstr "no se pudo abrir archivo temporal «%s» del BufFile «%s»: %m"
 
 #: storage/file/buffile.c:632
-#, fuzzy, c-format
-#| msgid "could not read block %u in file \"%s\": read only %d of %d bytes"
+#, c-format
 msgid "could not read from file set \"%s\": read only %zu of %zu bytes"
-msgstr "no se pudo leer el bloque %u del archivo «%s»: se leyeron sólo %d de %d bytes"
+msgstr "no se pudo leer del “file set” «%s»: se leyeron sólo %zu de %zu bytes"
 
 #: storage/file/buffile.c:634
-#, fuzzy, c-format
-#| msgid "could not read block %u in file \"%s\": read only %d of %d bytes"
+#, c-format
 msgid "could not read from temporary file: read only %zu of %zu bytes"
-msgstr "no se pudo leer el bloque %u del archivo «%s»: se leyeron sólo %d de %d bytes"
+msgstr "no se pudo leer del archivo temporal: se leyeron sólo %zu de %zu bytes"
 
-#: storage/file/buffile.c:774 storage/file/buffile.c:895
+#: storage/file/buffile.c:774 storage/file/buffile.c:877
 #, c-format
 msgid "could not determine size of temporary file \"%s\" from BufFile \"%s\": %m"
 msgstr "no se pudo determinar el tamaño del archivo temporal «%s» del BufFile «%s»: %m"
 
-#: storage/file/buffile.c:974
-#, fuzzy, c-format
-#| msgid "could not delete file \"%s\": %m"
+#: storage/file/buffile.c:956
+#, c-format
 msgid "could not delete fileset \"%s\": %m"
-msgstr "no se pudo borrar el archivo «%s»: %m"
+msgstr "no se pudo borrar el “fileset” «%s»: %m"
 
-#: storage/file/buffile.c:992 storage/smgr/md.c:335 storage/smgr/md.c:1038
+#: storage/file/buffile.c:974 storage/smgr/md.c:336 storage/smgr/md.c:1194
 #, c-format
 msgid "could not truncate file \"%s\": %m"
 msgstr "no se pudo truncar el archivo «%s»: %m"
 
-#: storage/file/fd.c:516 storage/file/fd.c:588 storage/file/fd.c:624
+#: storage/file/fd.c:583 storage/file/fd.c:655 storage/file/fd.c:691
 #, c-format
 msgid "could not flush dirty data: %m"
 msgstr "no se pudo sincronizar (flush) datos «sucios»: %m"
 
-#: storage/file/fd.c:546
+#: storage/file/fd.c:613
 #, c-format
 msgid "could not determine dirty data size: %m"
 msgstr "no se pudo determinar el tamaño de los datos «sucios»: %m"
 
-#: storage/file/fd.c:598
+#: storage/file/fd.c:665
 #, c-format
 msgid "could not munmap() while flushing data: %m"
 msgstr "no se pudo ejecutar munmap() mientras se sincronizaban (flush) datos: %m"
 
-#: storage/file/fd.c:894
+#: storage/file/fd.c:983
 #, c-format
 msgid "getrlimit failed: %m"
 msgstr "getrlimit falló: %m"
 
-#: storage/file/fd.c:984
+#: storage/file/fd.c:1073
 #, c-format
 msgid "insufficient file descriptors available to start server process"
 msgstr "los descriptores de archivo disponibles son insuficientes para iniciar un proceso servidor"
 
-#: storage/file/fd.c:985
+#: storage/file/fd.c:1074
 #, c-format
 msgid "System allows %d, server needs at least %d."
-msgstr ""
+msgstr "El sistema permite %d, el servidor necesita al menos %d."
 
-#: storage/file/fd.c:1073 storage/file/fd.c:2515 storage/file/fd.c:2624
-#: storage/file/fd.c:2775
+#: storage/file/fd.c:1162 storage/file/fd.c:2618 storage/file/fd.c:2727
+#: storage/file/fd.c:2878
 #, c-format
 msgid "out of file descriptors: %m; release and retry"
 msgstr "se agotaron los descriptores de archivo: %m; libere e intente nuevamente"
 
-#: storage/file/fd.c:1447
+#: storage/file/fd.c:1536
 #, c-format
 msgid "temporary file: path \"%s\", size %lu"
 msgstr "archivo temporal: ruta «%s», tamaño %lu"
 
-#: storage/file/fd.c:1586
+#: storage/file/fd.c:1675
 #, c-format
 msgid "cannot create temporary directory \"%s\": %m"
 msgstr "no se pudo crear el directorio temporal «%s»: %m"
 
-#: storage/file/fd.c:1593
+#: storage/file/fd.c:1682
 #, c-format
 msgid "cannot create temporary subdirectory \"%s\": %m"
 msgstr "no se pudo crear el subdirectorio temporal «%s»: %m"
 
-#: storage/file/fd.c:1790
+#: storage/file/fd.c:1879
 #, c-format
 msgid "could not create temporary file \"%s\": %m"
 msgstr "no se pudo crear el archivo temporal «%s»: %m"
 
-#: storage/file/fd.c:1826
+#: storage/file/fd.c:1915
 #, c-format
 msgid "could not open temporary file \"%s\": %m"
 msgstr "no se pudo abrir el archivo temporal «%s»: %m"
 
-#: storage/file/fd.c:1867
+#: storage/file/fd.c:1956
 #, c-format
 msgid "could not unlink temporary file \"%s\": %m"
 msgstr "no se pudo eliminar (unlink) el archivo temporal «%s»: %m"
 
-#: storage/file/fd.c:1955
+#: storage/file/fd.c:2044
 #, c-format
 msgid "could not delete file \"%s\": %m"
 msgstr "no se pudo borrar el archivo «%s»: %m"
 
-#: storage/file/fd.c:2138
+#: storage/file/fd.c:2234
 #, c-format
 msgid "temporary file size exceeds temp_file_limit (%dkB)"
 msgstr "el tamaño del archivo temporal excede temp_file_limit permitido (%dkB)"
 
-#: storage/file/fd.c:2491 storage/file/fd.c:2550
+#: storage/file/fd.c:2594 storage/file/fd.c:2653
 #, c-format
 msgid "exceeded maxAllocatedDescs (%d) while trying to open file \"%s\""
 msgstr "se excedió maxAllocatedDescs (%d) mientras se trataba de abrir el archivo «%s»"
 
-#: storage/file/fd.c:2595
+#: storage/file/fd.c:2698
 #, c-format
 msgid "exceeded maxAllocatedDescs (%d) while trying to execute command \"%s\""
 msgstr "se excedió maxAllocatedDescs (%d) mientras se trataba de ejecutar la orden «%s»"
 
-#: storage/file/fd.c:2751
+#: storage/file/fd.c:2854
 #, c-format
 msgid "exceeded maxAllocatedDescs (%d) while trying to open directory \"%s\""
 msgstr "se excedió maxAllocatedDescs (%d) mientras se trataba de abrir el directorio «%s»"
 
-#: storage/file/fd.c:3281
+#: storage/file/fd.c:3384
 #, c-format
 msgid "unexpected file found in temporary-files directory: \"%s\""
 msgstr "archivo inesperado en directorio de archivos temporales: «%s»"
 
-#: storage/file/fd.c:3399
+#: storage/file/fd.c:3502
 #, c-format
 msgid "syncing data directory (syncfs), elapsed time: %ld.%02d s, current path: %s"
 msgstr "sincronizando el directorio de datos (syncfs), transcurrido: %ld.%02d s, ruta actual: %s"
 
-#: storage/file/fd.c:3413
-#, c-format
-msgid "could not synchronize file system for file \"%s\": %m"
-msgstr "no se pudo sincronizar el sistema de archivos para el archivo «%s»: %m"
-
-#: storage/file/fd.c:3626
+#: storage/file/fd.c:3729
 #, c-format
 msgid "syncing data directory (pre-fsync), elapsed time: %ld.%02d s, current path: %s"
 msgstr "sincronizando el directorio de datos (pre-fsync), transcurrido: %ld.%02d s, ruta actual: %s"
 
-#: storage/file/fd.c:3658
+#: storage/file/fd.c:3761
 #, c-format
 msgid "syncing data directory (fsync), elapsed time: %ld.%02d s, current path: %s"
 msgstr "sincronizando el directorio de datos (fsync), transcurrido: %ld.%02d s, ruta actual: %s"
 
-#: storage/file/fd.c:3847
-#, fuzzy, c-format
-#| msgid "Direct I/O is not supported on this platform.\n"
-msgid "debug_io_direct is not supported on this platform."
-msgstr "Direct I/O no está soportado en esta plataforma.\n"
+#: storage/file/fd.c:3950
+#, c-format
+msgid "\"debug_io_direct\" is not supported on this platform."
+msgstr "«debug_io_direct» no está soportado en esta plataforma."
+
+#: storage/file/fd.c:3964
+#, c-format
+msgid "Invalid list syntax in parameter \"%s\""
+msgstr "Sintaxis de lista no válida en el parámetro «%s»"
 
-#: storage/file/fd.c:3894
+#: storage/file/fd.c:3984
 #, c-format
-msgid "debug_io_direct is not supported for WAL because XLOG_BLCKSZ is too small"
-msgstr ""
+msgid "Invalid option \"%s\""
+msgstr "Nombre de opción «%s» no válido."
 
-#: storage/file/fd.c:3901
+#: storage/file/fd.c:3997
 #, c-format
-msgid "debug_io_direct is not supported for data because BLCKSZ is too small"
-msgstr ""
+msgid "\"debug_io_direct\" is not supported for WAL because XLOG_BLCKSZ is too small"
+msgstr "«debug_io_direct» no está soportado para WAL porque XLOG_BLCKSZ es demasiado pequeño"
+
+#: storage/file/fd.c:4004
+#, c-format
+msgid "\"debug_io_direct\" is not supported for data because BLCKSZ is too small"
+msgstr "«debug_io_direct» no está soportado para datos porque BLCKSZ es demasiado pequeño"
 
 #: storage/file/reinit.c:145
 #, c-format
@@ -21776,22 +22287,22 @@ msgstr "reseteando relaciones «unlogged» (init), transcurrido: %ld.%02d s, rut
 msgid "resetting unlogged relations (cleanup), elapsed time: %ld.%02d s, current path: %s"
 msgstr "reseteando relaciones «unlogged» (cleanup), transcurrido: %ld.%02d s, ruta actual: %s"
 
-#: storage/file/sharedfileset.c:79
+#: storage/file/sharedfileset.c:73
 #, c-format
 msgid "could not attach to a SharedFileSet that is already destroyed"
 msgstr "no se puede adjuntar a un SharedFileSet que ya está destruido"
 
-#: storage/ipc/dsm.c:352
+#: storage/ipc/dsm.c:379
 #, c-format
 msgid "dynamic shared memory control segment is corrupt"
 msgstr "el segmento de control de memoria compartida dinámica está corrupto"
 
-#: storage/ipc/dsm.c:417
+#: storage/ipc/dsm.c:444
 #, c-format
 msgid "dynamic shared memory control segment is not valid"
 msgstr "el segmento de control de memoria compartida dinámica no es válido"
 
-#: storage/ipc/dsm.c:599
+#: storage/ipc/dsm.c:626
 #, c-format
 msgid "too many dynamic shared memory segments"
 msgstr "demasiados segmentos de memoria compartida dinámica"
@@ -21851,457 +22362,456 @@ msgstr "no se pudo cerrar el segmento de memoria compartida «%s»: %m"
 msgid "could not duplicate handle for \"%s\": %m"
 msgstr "no se pudo duplicar el «handle» para «%s»: %m"
 
-#: storage/ipc/procarray.c:3796
+#: storage/ipc/dsm_registry.c:142
+#, c-format
+msgid "DSM segment name cannot be empty"
+msgstr "el nombre del segmento DSM no puede ser vacío"
+
+#: storage/ipc/dsm_registry.c:146
+#, c-format
+msgid "DSM segment name too long"
+msgstr "nombre de segmento DSM es demasiado largo"
+
+#: storage/ipc/dsm_registry.c:150
+#, c-format
+msgid "DSM segment size must be nonzero"
+msgstr "el tamaño del segmento DSM debe ser distinto de cero"
+
+#: storage/ipc/dsm_registry.c:176
+#, c-format
+msgid "requested DSM segment size does not match size of existing segment"
+msgstr "el tamaño solicitado de segmento de DSM no coincide con el tamaño del segmento existente"
+
+#: storage/ipc/procarray.c:488 storage/lmgr/proc.c:357
+#: tcop/backend_startup.c:304
+#, c-format
+msgid "sorry, too many clients already"
+msgstr "lo siento, ya tenemos demasiados clientes"
+
+#: storage/ipc/procarray.c:3857
 #, c-format
 msgid "database \"%s\" is being used by prepared transactions"
 msgstr "la base de datos «%s» está siendo utilizada por transacciones preparadas"
 
-#: storage/ipc/procarray.c:3828
+#: storage/ipc/procarray.c:3893 storage/ipc/procarray.c:3901
+#: storage/ipc/signalfuncs.c:235 storage/ipc/signalfuncs.c:242
 #, c-format
-msgid "must be a superuser to terminate superuser process"
-msgstr "debe ser superusuario para terminar proceso de superusuario"
-
-#: storage/ipc/procarray.c:3835 storage/ipc/signalfuncs.c:230
-#: storage/ipc/signalfuncs.c:237
-#, fuzzy, c-format
-#| msgid "permission denied to create role"
 msgid "permission denied to terminate process"
-msgstr "se ha denegado el permiso para crear el rol"
+msgstr "se ha denegado el permiso para terminar el proceso"
 
-#: storage/ipc/procarray.c:3836 storage/ipc/signalfuncs.c:238
+#: storage/ipc/procarray.c:3894 storage/ipc/signalfuncs.c:236
+#, c-format
+msgid "Only roles with the %s attribute may terminate processes of roles with the %s attribute."
+msgstr "Sólo roles con el atributo %s pueden terminar procesos de roles con el atributo %s."
+
+#: storage/ipc/procarray.c:3902 storage/ipc/signalfuncs.c:243
 #, c-format
 msgid "Only roles with privileges of the role whose process is being terminated or with privileges of the \"%s\" role may terminate this process."
-msgstr ""
+msgstr "Sólo roles con privilegios del rol cuyo proceso está siendo terminados o con privilegios del rol «%s» pueden terminar este proceso."
 
-#: storage/ipc/procsignal.c:420
+#: storage/ipc/procsignal.c:416
 #, c-format
 msgid "still waiting for backend with PID %d to accept ProcSignalBarrier"
-msgstr ""
+msgstr "aún esperando que el backend con PID %d acepte ProcSignalBarrier"
 
-#: storage/ipc/shm_mq.c:384
+#: storage/ipc/shm_mq.c:383
 #, c-format
 msgid "cannot send a message of size %zu via shared memory queue"
 msgstr "no se puede enviar un mensaje de tamaño %zu mediante la cola de memoria compartida"
 
-#: storage/ipc/shm_mq.c:719
+#: storage/ipc/shm_mq.c:718
 #, c-format
 msgid "invalid message size %zu in shared memory queue"
 msgstr "tamaño no válido de mensaje %zu en cola de memoria compartida"
 
-#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:982
-#: storage/lmgr/lock.c:1020 storage/lmgr/lock.c:2810 storage/lmgr/lock.c:4195
-#: storage/lmgr/lock.c:4260 storage/lmgr/lock.c:4610
-#: storage/lmgr/predicate.c:2412 storage/lmgr/predicate.c:2427
-#: storage/lmgr/predicate.c:3824 storage/lmgr/predicate.c:4871
-#: utils/hash/dynahash.c:1107
+#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:984
+#: storage/lmgr/lock.c:1022 storage/lmgr/lock.c:2835 storage/lmgr/lock.c:4220
+#: storage/lmgr/lock.c:4285 storage/lmgr/lock.c:4635
+#: storage/lmgr/predicate.c:2468 storage/lmgr/predicate.c:2483
+#: storage/lmgr/predicate.c:3880 storage/lmgr/predicate.c:4927
+#: utils/hash/dynahash.c:1095
 #, c-format
 msgid "out of shared memory"
 msgstr "memoria compartida agotada"
 
-#: storage/ipc/shmem.c:170 storage/ipc/shmem.c:266
+#: storage/ipc/shmem.c:161 storage/ipc/shmem.c:257
 #, c-format
 msgid "out of shared memory (%zu bytes requested)"
 msgstr "memoria compartida agotada (%zu bytes solicitados)"
 
-#: storage/ipc/shmem.c:445
+#: storage/ipc/shmem.c:436
 #, c-format
 msgid "could not create ShmemIndex entry for data structure \"%s\""
 msgstr "no se pudo crear la entrada en ShmemIndex para la estructura «%s»"
 
-#: storage/ipc/shmem.c:460
+#: storage/ipc/shmem.c:451
 #, c-format
 msgid "ShmemIndex entry size is wrong for data structure \"%s\": expected %zu, actual %zu"
 msgstr "el tamaño de la entrada ShmemIndex es incorrecto para la estructura «%s»: se esperaba %zu, real %zu"
 
-#: storage/ipc/shmem.c:479
+#: storage/ipc/shmem.c:470
 #, c-format
 msgid "not enough shared memory for data structure \"%s\" (%zu bytes requested)"
 msgstr "el espacio de memoria compartida es insuficiente para la estructura «%s» (%zu bytes solicitados)"
 
-#: storage/ipc/shmem.c:511 storage/ipc/shmem.c:530
+#: storage/ipc/shmem.c:502 storage/ipc/shmem.c:521
 #, c-format
 msgid "requested shared memory size overflows size_t"
 msgstr "la petición de tamaño de memoria compartida desborda size_t"
 
 #: storage/ipc/signalfuncs.c:72
-#, fuzzy, c-format
-#| msgid "PID %d is not a PostgreSQL server process"
+#, c-format
 msgid "PID %d is not a PostgreSQL backend process"
 msgstr "PID %d no es un proceso servidor de PostgreSQL"
 
-#: storage/ipc/signalfuncs.c:104 storage/lmgr/proc.c:1379
-#: utils/adt/mcxtfuncs.c:190
+#: storage/ipc/signalfuncs.c:109 storage/lmgr/proc.c:1453
+#: utils/adt/mcxtfuncs.c:182
 #, c-format
 msgid "could not send signal to process %d: %m"
 msgstr "no se pudo enviar la señal al proceso %d: %m"
 
-#: storage/ipc/signalfuncs.c:124 storage/ipc/signalfuncs.c:131
-#, fuzzy, c-format
-#| msgid "permission denied to create role"
+#: storage/ipc/signalfuncs.c:129 storage/ipc/signalfuncs.c:136
+#, c-format
 msgid "permission denied to cancel query"
-msgstr "se ha denegado el permiso para crear el rol"
+msgstr "se ha denegado el permiso para cancelar la consulta"
 
-#: storage/ipc/signalfuncs.c:125
+#: storage/ipc/signalfuncs.c:130
 #, c-format
-msgid "Only roles with the %s attribute may cancel queries of roles with %s."
-msgstr ""
+msgid "Only roles with the %s attribute may cancel queries of roles with the %s attribute."
+msgstr "Sólo roles con el atributo %s pueden cancelar consultas de roles con el atributo %s."
 
-#: storage/ipc/signalfuncs.c:132
+#: storage/ipc/signalfuncs.c:137
 #, c-format
 msgid "Only roles with privileges of the role whose query is being canceled or with privileges of the \"%s\" role may cancel this query."
-msgstr ""
+msgstr "Sólo roles con privilegios del rol cuya consulta está siendo cancelada o con privilegios del rol «%s» pueden cancelar esta consulta."
 
-#: storage/ipc/signalfuncs.c:174
+#: storage/ipc/signalfuncs.c:179
 #, c-format
 msgid "could not check the existence of the backend with PID %d: %m"
 msgstr "no se pudo comprobar la existencia del proceso de servidor con PID %d: %m"
 
-#: storage/ipc/signalfuncs.c:192
+#: storage/ipc/signalfuncs.c:197
 #, c-format
 msgid "backend with PID %d did not terminate within %lld millisecond"
 msgid_plural "backend with PID %d did not terminate within %lld milliseconds"
 msgstr[0] "el proceso de servidor con PID %d no terminó dentro de %lld milisegundo"
 msgstr[1] "el proceso de servidor con PID %d no terminó dentro de %lld milisegundos"
 
-#: storage/ipc/signalfuncs.c:223
+#: storage/ipc/signalfuncs.c:228
 #, c-format
 msgid "\"timeout\" must not be negative"
 msgstr "\"timeout\" no debe ser negativo"
 
-#: storage/ipc/signalfuncs.c:231
-#, c-format
-msgid "Only roles with the %s attribute may terminate processes of roles with %s."
-msgstr ""
-
-#: storage/ipc/signalfuncs.c:279
-#, c-format
-msgid "must be superuser to rotate log files with adminpack 1.0"
-msgstr "bebe ser superusuario para rotar archivos de log con adminpack 1.0"
-
-#. translator: %s is a SQL function name
-#: storage/ipc/signalfuncs.c:281 utils/adt/genfile.c:250
-#, c-format
-msgid "Consider using %s, which is part of core, instead."
-msgstr "Considere usar %s, que es parte del servidor, en su lugar."
-
-#: storage/ipc/signalfuncs.c:287 storage/ipc/signalfuncs.c:307
+#: storage/ipc/signalfuncs.c:285
 #, c-format
 msgid "rotation not possible because log collection not active"
 msgstr "la rotación no es posible porque la recoleccion de log no está activa"
 
-#: storage/ipc/standby.c:330
+#: storage/ipc/standby.c:329
 #, c-format
 msgid "recovery still waiting after %ld.%03d ms: %s"
 msgstr "la recuperación aún está esperando después de %ld.%03d ms: %s"
 
-#: storage/ipc/standby.c:339
+#: storage/ipc/standby.c:338
 #, c-format
 msgid "recovery finished waiting after %ld.%03d ms: %s"
 msgstr "la recuperación terminó de esperar después de %ld.%03d ms: %s"
 
-#: storage/ipc/standby.c:921 tcop/postgres.c:3384
+#: storage/ipc/standby.c:920 tcop/postgres.c:3196
 #, c-format
 msgid "canceling statement due to conflict with recovery"
 msgstr "cancelando la sentencia debido a un conflicto con la recuperación"
 
-#: storage/ipc/standby.c:922 tcop/postgres.c:2533
+#: storage/ipc/standby.c:921 tcop/postgres.c:2557
 #, c-format
 msgid "User transaction caused buffer deadlock with recovery."
 msgstr "La transacción del usuario causó un «deadlock» con la recuperación."
 
-#: storage/ipc/standby.c:1479
+#: storage/ipc/standby.c:1486
 msgid "unknown reason"
 msgstr "razón desconocida"
 
-#: storage/ipc/standby.c:1484
+#: storage/ipc/standby.c:1491
 msgid "recovery conflict on buffer pin"
 msgstr "conflicto de recuperación en «pin» de búfer"
 
-#: storage/ipc/standby.c:1487
+#: storage/ipc/standby.c:1494
 msgid "recovery conflict on lock"
 msgstr "conflicto de recuperación en bloqueo"
 
-#: storage/ipc/standby.c:1490
+#: storage/ipc/standby.c:1497
 msgid "recovery conflict on tablespace"
 msgstr "conflicto de recuperación en tablespace"
 
-#: storage/ipc/standby.c:1493
+#: storage/ipc/standby.c:1500
 msgid "recovery conflict on snapshot"
 msgstr "conflicto de recuperación en snapshot"
 
-#: storage/ipc/standby.c:1496
-#, fuzzy
-#| msgid "recovery conflict on snapshot"
+#: storage/ipc/standby.c:1503
 msgid "recovery conflict on replication slot"
-msgstr "conflicto de recuperación en snapshot"
+msgstr "conflicto de recuperación en slot de replicación"
 
-#: storage/ipc/standby.c:1499
+#: storage/ipc/standby.c:1506
 msgid "recovery conflict on buffer deadlock"
 msgstr "conflicto de recuperación en deadlock de búfer"
 
-#: storage/ipc/standby.c:1502
+#: storage/ipc/standby.c:1509
 msgid "recovery conflict on database"
 msgstr "conflicto de recuperación en base de datos"
 
-#: storage/large_object/inv_api.c:191
+#: storage/large_object/inv_api.c:190
 #, c-format
 msgid "pg_largeobject entry for OID %u, page %d has invalid data field size %d"
 msgstr "la entrada pg_largeobject para el OID %u, página %d tiene tamaño de campo %d no válido"
 
-#: storage/large_object/inv_api.c:274
+#: storage/large_object/inv_api.c:272
 #, c-format
 msgid "invalid flags for opening a large object: %d"
 msgstr "opciones no válidas para abrir un objeto grande: %d"
 
-#: storage/large_object/inv_api.c:457
+#: storage/large_object/inv_api.c:297 storage/large_object/inv_api.c:309
+#: storage/large_object/inv_api.c:506 storage/large_object/inv_api.c:617
+#: storage/large_object/inv_api.c:807
+#, c-format
+msgid "permission denied for large object %u"
+msgstr "permiso denegado al objeto grande %u"
+
+#: storage/large_object/inv_api.c:455
 #, c-format
 msgid "invalid whence setting: %d"
 msgstr "parámetro «whence» no válido: %d"
 
-#: storage/large_object/inv_api.c:629
+#: storage/large_object/inv_api.c:627
 #, c-format
 msgid "invalid large object write request size: %d"
 msgstr "tamaño de petición de escritura de objeto grande no válido: %d"
 
-#: storage/lmgr/deadlock.c:1105
+#: storage/lmgr/deadlock.c:1104
 #, c-format
 msgid "Process %d waits for %s on %s; blocked by process %d."
 msgstr "El proceso %d espera %s en %s; bloqueado por proceso %d."
 
-#: storage/lmgr/deadlock.c:1124
+#: storage/lmgr/deadlock.c:1123
 #, c-format
 msgid "Process %d: %s"
 msgstr "Proceso %d: %s"
 
-#: storage/lmgr/deadlock.c:1133
+#: storage/lmgr/deadlock.c:1132
 #, c-format
 msgid "deadlock detected"
 msgstr "se ha detectado un deadlock"
 
-#: storage/lmgr/deadlock.c:1136
+#: storage/lmgr/deadlock.c:1135
 #, c-format
 msgid "See server log for query details."
 msgstr "Vea el registro del servidor para obtener detalles de las consultas."
 
-#: storage/lmgr/lmgr.c:859
+#: storage/lmgr/lmgr.c:848
 #, c-format
 msgid "while updating tuple (%u,%u) in relation \"%s\""
 msgstr "mientras se actualizaba la tupla (%u,%u) en la relación «%s»"
 
-#: storage/lmgr/lmgr.c:862
+#: storage/lmgr/lmgr.c:851
 #, c-format
 msgid "while deleting tuple (%u,%u) in relation \"%s\""
 msgstr "mientras se borraba la tupla (%u,%u) en la relación «%s»"
 
-#: storage/lmgr/lmgr.c:865
+#: storage/lmgr/lmgr.c:854
 #, c-format
 msgid "while locking tuple (%u,%u) in relation \"%s\""
 msgstr "mientras se bloqueaba la tupla (%u,%u) de la relación «%s»"
 
-#: storage/lmgr/lmgr.c:868
+#: storage/lmgr/lmgr.c:857
 #, c-format
 msgid "while locking updated version (%u,%u) of tuple in relation \"%s\""
 msgstr "mientras se bloqueaba la versión actualizada (%u,%u) en la relación «%s»"
 
-#: storage/lmgr/lmgr.c:871
+#: storage/lmgr/lmgr.c:860
 #, c-format
 msgid "while inserting index tuple (%u,%u) in relation \"%s\""
 msgstr "mientras se insertaba la tupla de índice (%u,%u) en la relación «%s»"
 
-#: storage/lmgr/lmgr.c:874
+#: storage/lmgr/lmgr.c:863
 #, c-format
 msgid "while checking uniqueness of tuple (%u,%u) in relation \"%s\""
 msgstr "mientras se verificaba la unicidad de la tupla (%u,%u) en la relación «%s»"
 
-#: storage/lmgr/lmgr.c:877
+#: storage/lmgr/lmgr.c:866
 #, c-format
 msgid "while rechecking updated tuple (%u,%u) in relation \"%s\""
 msgstr "mientras se verificaba la tupla actualizada (%u,%u) en la relación «%s»"
 
-#: storage/lmgr/lmgr.c:880
+#: storage/lmgr/lmgr.c:869
 #, c-format
 msgid "while checking exclusion constraint on tuple (%u,%u) in relation \"%s\""
 msgstr "mientras se verificaba una restricción de exclusión en la tupla (%u,%u) en la relación «%s»"
 
-#: storage/lmgr/lmgr.c:1174
+#: storage/lmgr/lmgr.c:1239
 #, c-format
 msgid "relation %u of database %u"
 msgstr "relación %u de la base de datos %u"
 
-#: storage/lmgr/lmgr.c:1180
+#: storage/lmgr/lmgr.c:1245
 #, c-format
 msgid "extension of relation %u of database %u"
 msgstr "extensión de la relación %u de la base de datos %u"
 
-#: storage/lmgr/lmgr.c:1186
+#: storage/lmgr/lmgr.c:1251
 #, c-format
 msgid "pg_database.datfrozenxid of database %u"
 msgstr "pg_database.datfrozenxid de la base de datos %u"
 
-#: storage/lmgr/lmgr.c:1191
+#: storage/lmgr/lmgr.c:1256
 #, c-format
 msgid "page %u of relation %u of database %u"
 msgstr "página %u de la relación %u de la base de datos %u"
 
-#: storage/lmgr/lmgr.c:1198
+#: storage/lmgr/lmgr.c:1263
 #, c-format
 msgid "tuple (%u,%u) of relation %u of database %u"
 msgstr "tupla (%u,%u) de la relación %u de la base de datos %u"
 
-#: storage/lmgr/lmgr.c:1206
+#: storage/lmgr/lmgr.c:1271
 #, c-format
 msgid "transaction %u"
 msgstr "transacción %u"
 
-#: storage/lmgr/lmgr.c:1211
+#: storage/lmgr/lmgr.c:1276
 #, c-format
 msgid "virtual transaction %d/%u"
 msgstr "transacción virtual %d/%u"
 
-#: storage/lmgr/lmgr.c:1217
+#: storage/lmgr/lmgr.c:1282
 #, c-format
 msgid "speculative token %u of transaction %u"
 msgstr "token especulativo %u de la transacción %u"
 
-#: storage/lmgr/lmgr.c:1223
+#: storage/lmgr/lmgr.c:1288
 #, c-format
 msgid "object %u of class %u of database %u"
 msgstr "objeto %u de clase %u de la base de datos %u"
 
-#: storage/lmgr/lmgr.c:1231
+#: storage/lmgr/lmgr.c:1296
 #, c-format
 msgid "user lock [%u,%u,%u]"
-msgstr "candado de usuario [%u,%u,%u]"
+msgstr "“lock” de usuario [%u,%u,%u]"
 
 # XXX is this a good translation?
-#: storage/lmgr/lmgr.c:1238
+#: storage/lmgr/lmgr.c:1303
 #, c-format
 msgid "advisory lock [%u,%u,%u,%u]"
-msgstr "candado consultivo [%u,%u,%u,%u]"
+msgstr "“lock” consultivo [%u,%u,%u,%u]"
 
-#: storage/lmgr/lmgr.c:1246
-#, fuzzy, c-format
-#| msgid "extension of relation %u of database %u"
+#: storage/lmgr/lmgr.c:1311
+#, c-format
 msgid "remote transaction %u of subscription %u of database %u"
-msgstr "extensión de la relación %u de la base de datos %u"
+msgstr "transacción remota %u de la suscripción %u de la base de datos %u"
 
-#: storage/lmgr/lmgr.c:1253
+#: storage/lmgr/lmgr.c:1318
 #, c-format
 msgid "unrecognized locktag type %d"
 msgstr "tipo de locktag %d no reconocido"
 
-#: storage/lmgr/lock.c:803
+#: storage/lmgr/lock.c:812
 #, c-format
 msgid "cannot acquire lock mode %s on database objects while recovery is in progress"
-msgstr "no se puede adquirir candado en modo %s en objetos de la base de datos mientras la recuperación está en proceso"
+msgstr "no se puede adquirir “lock” en modo %s en objetos de la base de datos mientras la recuperación está en proceso"
 
-#: storage/lmgr/lock.c:805
+#: storage/lmgr/lock.c:814
 #, c-format
 msgid "Only RowExclusiveLock or less can be acquired on database objects during recovery."
-msgstr "Sólo candados RowExclusiveLock o menor pueden ser adquiridos en objetos de la base de datos durante la recuperación."
-
-#: storage/lmgr/lock.c:983 storage/lmgr/lock.c:1021 storage/lmgr/lock.c:2811
-#: storage/lmgr/lock.c:4196 storage/lmgr/lock.c:4261 storage/lmgr/lock.c:4611
-#, c-format
-msgid "You might need to increase max_locks_per_transaction."
-msgstr "Puede ser necesario incrementar max_locks_per_transaction."
+msgstr "Sólo “locks” RowExclusiveLock o menor pueden ser adquiridos en objetos de la base de datos durante la recuperación."
 
-#: storage/lmgr/lock.c:3259 storage/lmgr/lock.c:3327 storage/lmgr/lock.c:3443
+#: storage/lmgr/lock.c:3284 storage/lmgr/lock.c:3352 storage/lmgr/lock.c:3468
 #, c-format
 msgid "cannot PREPARE while holding both session-level and transaction-level locks on the same object"
-msgstr "no se puede hacer PREPARE mientras se mantienen candados a nivel de sesión y transacción simultáneamente sobre el mismo objeto"
+msgstr "no se puede hacer PREPARE mientras se mantienen “locks” a nivel de sesión y transacción simultáneamente sobre el mismo objeto"
 
-#: storage/lmgr/predicate.c:649
+#: storage/lmgr/predicate.c:653
 #, c-format
 msgid "not enough elements in RWConflictPool to record a read/write conflict"
 msgstr "no hay suficientes elementos en RWConflictPool para registrar un conflicto read/write"
 
-#: storage/lmgr/predicate.c:650 storage/lmgr/predicate.c:675
+#: storage/lmgr/predicate.c:654 storage/lmgr/predicate.c:679
 #, c-format
-msgid "You might need to run fewer transactions at a time or increase max_connections."
-msgstr "Puede ser necesario ejecutar menos transacciones al mismo tiempo, o incrementar max_connections."
+msgid "You might need to run fewer transactions at a time or increase \"max_connections\"."
+msgstr "Puede ser necesario ejecutar menos transacciones al mismo tiempo, o incrementar «max_connections»."
 
-#: storage/lmgr/predicate.c:674
+#: storage/lmgr/predicate.c:678
 #, c-format
 msgid "not enough elements in RWConflictPool to record a potential read/write conflict"
 msgstr "no hay suficientes elementos en RWConflictPool para registrar un potencial conflicto read/write"
 
-#: storage/lmgr/predicate.c:1630
+#: storage/lmgr/predicate.c:1686
 #, c-format
 msgid "\"default_transaction_isolation\" is set to \"serializable\"."
 msgstr "«default_transaction_isolation» está definido a «serializable»."
 
-#: storage/lmgr/predicate.c:1631
+#: storage/lmgr/predicate.c:1687
 #, c-format
 msgid "You can use \"SET default_transaction_isolation = 'repeatable read'\" to change the default."
 msgstr "Puede usar «SET default_transaction_isolation = 'repeatable read'» para cambiar el valor por omisión."
 
-#: storage/lmgr/predicate.c:1682
+#: storage/lmgr/predicate.c:1738
 #, c-format
 msgid "a snapshot-importing transaction must not be READ ONLY DEFERRABLE"
 msgstr "una transacción que importa un snapshot no debe ser READ ONLY DEFERRABLE"
 
-#: storage/lmgr/predicate.c:1761 utils/time/snapmgr.c:570
-#: utils/time/snapmgr.c:576
+#: storage/lmgr/predicate.c:1817 utils/time/snapmgr.c:535
+#: utils/time/snapmgr.c:541
 #, c-format
 msgid "could not import the requested snapshot"
 msgstr "no se pudo importar el snapshot solicitado"
 
-#: storage/lmgr/predicate.c:1762 utils/time/snapmgr.c:577
+#: storage/lmgr/predicate.c:1818 utils/time/snapmgr.c:542
 #, c-format
 msgid "The source process with PID %d is not running anymore."
 msgstr "El proceso de origen con PID %d ya no está en ejecución."
 
-#: storage/lmgr/predicate.c:2413 storage/lmgr/predicate.c:2428
-#: storage/lmgr/predicate.c:3825
-#, c-format
-msgid "You might need to increase max_pred_locks_per_transaction."
-msgstr "Puede ser necesario incrementar max_pred_locks_per_transaction."
-
-#: storage/lmgr/predicate.c:3935 storage/lmgr/predicate.c:3971
-#: storage/lmgr/predicate.c:4004 storage/lmgr/predicate.c:4012
-#: storage/lmgr/predicate.c:4051 storage/lmgr/predicate.c:4281
-#: storage/lmgr/predicate.c:4600 storage/lmgr/predicate.c:4612
-#: storage/lmgr/predicate.c:4659 storage/lmgr/predicate.c:4695
+#: storage/lmgr/predicate.c:3991 storage/lmgr/predicate.c:4027
+#: storage/lmgr/predicate.c:4060 storage/lmgr/predicate.c:4068
+#: storage/lmgr/predicate.c:4107 storage/lmgr/predicate.c:4337
+#: storage/lmgr/predicate.c:4656 storage/lmgr/predicate.c:4668
+#: storage/lmgr/predicate.c:4715 storage/lmgr/predicate.c:4751
 #, c-format
 msgid "could not serialize access due to read/write dependencies among transactions"
 msgstr "no se pudo serializar el acceso debido a dependencias read/write entre transacciones"
 
-#: storage/lmgr/predicate.c:3937 storage/lmgr/predicate.c:3973
-#: storage/lmgr/predicate.c:4006 storage/lmgr/predicate.c:4014
-#: storage/lmgr/predicate.c:4053 storage/lmgr/predicate.c:4283
-#: storage/lmgr/predicate.c:4602 storage/lmgr/predicate.c:4614
-#: storage/lmgr/predicate.c:4661 storage/lmgr/predicate.c:4697
+#: storage/lmgr/predicate.c:3993 storage/lmgr/predicate.c:4029
+#: storage/lmgr/predicate.c:4062 storage/lmgr/predicate.c:4070
+#: storage/lmgr/predicate.c:4109 storage/lmgr/predicate.c:4339
+#: storage/lmgr/predicate.c:4658 storage/lmgr/predicate.c:4670
+#: storage/lmgr/predicate.c:4717 storage/lmgr/predicate.c:4753
 #, c-format
 msgid "The transaction might succeed if retried."
 msgstr "La transacción podría tener éxito si es reintentada."
 
-#: storage/lmgr/proc.c:349
+#: storage/lmgr/proc.c:353
 #, c-format
-msgid "number of requested standby connections exceeds max_wal_senders (currently %d)"
-msgstr "la cantidad de conexiones standby pedidas excede max_wal_senders (actualmente %d)"
+msgid "number of requested standby connections exceeds \"max_wal_senders\" (currently %d)"
+msgstr "la cantidad de conexiones standby pedidas excede «max_wal_senders» (actualmente %d)"
 
-#: storage/lmgr/proc.c:1472
+#: storage/lmgr/proc.c:1546
 #, c-format
 msgid "process %d avoided deadlock for %s on %s by rearranging queue order after %ld.%03d ms"
 msgstr "el proceso %d evitó un deadlock para %s en %s reordenando la cola después de %ld.%03d ms"
 
-#: storage/lmgr/proc.c:1487
+#: storage/lmgr/proc.c:1561
 #, c-format
 msgid "process %d detected deadlock while waiting for %s on %s after %ld.%03d ms"
 msgstr "el proceso %d detectó un deadlock mientras esperaba %s en %s después de %ld.%03d ms"
 
-#: storage/lmgr/proc.c:1496
+#: storage/lmgr/proc.c:1570
 #, c-format
 msgid "process %d still waiting for %s on %s after %ld.%03d ms"
 msgstr "el proceso %d aún espera %s en %s después de %ld.%03d ms"
 
-#: storage/lmgr/proc.c:1503
+#: storage/lmgr/proc.c:1577
 #, c-format
 msgid "process %d acquired %s on %s after %ld.%03d ms"
 msgstr "el proceso %d adquirió %s en %s después de %ld.%03d ms"
 
-#: storage/lmgr/proc.c:1520
+#: storage/lmgr/proc.c:1594
 #, c-format
 msgid "process %d failed to acquire %s on %s after %ld.%03d ms"
 msgstr "el proceso %d no pudo adquirir %s en %s después de %ld.%03d ms"
@@ -22334,68 +22844,202 @@ msgstr "los largos de ítem están corruptos: total %u, espacio disponible %u"
 msgid "corrupted line pointer: offset = %u, size = %u"
 msgstr "puntero de ítem corrupto: desplazamiento = %u, tamaño = %u"
 
-#: storage/smgr/md.c:484 storage/smgr/md.c:546
+#: storage/smgr/md.c:485 storage/smgr/md.c:547
 #, c-format
 msgid "cannot extend file \"%s\" beyond %u blocks"
 msgstr "no se pudo extender el archivo «%s» más allá de %u bloques"
 
-#: storage/smgr/md.c:499 storage/smgr/md.c:610
+#: storage/smgr/md.c:500 storage/smgr/md.c:611
 #, c-format
 msgid "could not extend file \"%s\": %m"
 msgstr "no se pudo extender el archivo «%s»: %m"
 
-#: storage/smgr/md.c:505
+#: storage/smgr/md.c:506
 #, c-format
 msgid "could not extend file \"%s\": wrote only %d of %d bytes at block %u"
 msgstr "no se pudo extender el archivo «%s»: sólo se escribieron %d de %d bytes en el bloque %u"
 
-#: storage/smgr/md.c:588
-#, fuzzy, c-format
-#| msgid "could not extend file \"%s\": %m"
-msgid "could not extend file \"%s\" with FileFallocate(): %m"
-msgstr "no se pudo extender el archivo «%s»: %m"
-
-#: storage/smgr/md.c:779
+#: storage/smgr/md.c:589
 #, c-format
-msgid "could not read block %u in file \"%s\": %m"
-msgstr "no se pudo leer el bloque %u del archivo «%s»: %m"
+msgid "could not extend file \"%s\" with FileFallocate(): %m"
+msgstr "no se pudo extender el archivo «%s» con FileFallocate(): %m"
 
-#: storage/smgr/md.c:795
+#: storage/smgr/md.c:869
 #, c-format
-msgid "could not read block %u in file \"%s\": read only %d of %d bytes"
-msgstr "no se pudo leer el bloque %u del archivo «%s»: se leyeron sólo %d de %d bytes"
+msgid "could not read blocks %u..%u in file \"%s\": %m"
+msgstr "no se pudo leer los bloques %u..%u del archivo «%s»: %m"
 
-#: storage/smgr/md.c:853
+#: storage/smgr/md.c:895
 #, c-format
-msgid "could not write block %u in file \"%s\": %m"
-msgstr "no se pudo escribir el bloque %u en el archivo «%s»: %m"
+msgid "could not read blocks %u..%u in file \"%s\": read only %zu of %zu bytes"
+msgstr "no se pudo leer los bloques %u..%u del archivo «%s»: se leyeron sólo %zu de %zu bytes"
 
-#: storage/smgr/md.c:858
+#: storage/smgr/md.c:995
 #, c-format
-msgid "could not write block %u in file \"%s\": wrote only %d of %d bytes"
-msgstr "no se pudo escribir el bloque %u en el archivo «%s»: se escribieron sólo %d de %d bytes"
+msgid "could not write blocks %u..%u in file \"%s\": %m"
+msgstr "no se pudo escribir los bloques %u..%u en el archivo «%s»: %m"
 
-#: storage/smgr/md.c:1009
+#: storage/smgr/md.c:1165
 #, c-format
 msgid "could not truncate file \"%s\" to %u blocks: it's only %u blocks now"
 msgstr "no se pudo truncar el archivo «%s» a %u bloques: es de sólo %u bloques ahora"
 
-#: storage/smgr/md.c:1064
+#: storage/smgr/md.c:1220
 #, c-format
 msgid "could not truncate file \"%s\" to %u blocks: %m"
 msgstr "no se pudo truncar el archivo «%s» a %u bloques: %m"
 
-#: storage/smgr/md.c:1491
+#: storage/smgr/md.c:1700
 #, c-format
 msgid "could not open file \"%s\" (target block %u): previous segment is only %u blocks"
 msgstr "no se pudo abrir el archivo «%s» (bloque buscado %u): el segmento previo sólo tiene %u bloques"
 
-#: storage/smgr/md.c:1505
+#: storage/smgr/md.c:1714
 #, c-format
 msgid "could not open file \"%s\" (target block %u): %m"
 msgstr "no se pudo abrir el archivo «%s» (bloque buscado %u): %m"
 
-#: tcop/fastpath.c:142 utils/fmgr/fmgr.c:2132
+#: tcop/backend_startup.c:85
+#, c-format
+msgid "SSL configuration could not be loaded in child process"
+msgstr "No se pudo cargar la configuración SSL en proceso secundario"
+
+#: tcop/backend_startup.c:208
+#, c-format
+msgid "connection received: host=%s port=%s"
+msgstr "conexión recibida: host=%s port=%s"
+
+#: tcop/backend_startup.c:213
+#, c-format
+msgid "connection received: host=%s"
+msgstr "conexión recibida: host=%s"
+
+#: tcop/backend_startup.c:277
+#, c-format
+msgid "the database system is starting up"
+msgstr "el sistema de base de datos está iniciándose"
+
+#: tcop/backend_startup.c:283
+#, c-format
+msgid "the database system is not yet accepting connections"
+msgstr "el sistema de bases de datos aún no está aceptando conexiones"
+
+#: tcop/backend_startup.c:284
+#, c-format
+msgid "Consistent recovery state has not been yet reached."
+msgstr "Aún no se ha alcanzado un estado de recuperación consistente."
+
+#: tcop/backend_startup.c:288
+#, c-format
+msgid "the database system is not accepting connections"
+msgstr "el sistema de bases de datos no está aceptando conexiones"
+
+#: tcop/backend_startup.c:289
+#, c-format
+msgid "Hot standby mode is disabled."
+msgstr "El modo hot standby está desactivado."
+
+#: tcop/backend_startup.c:294
+#, c-format
+msgid "the database system is shutting down"
+msgstr "el sistema de base de datos está apagándose"
+
+#: tcop/backend_startup.c:299
+#, c-format
+msgid "the database system is in recovery mode"
+msgstr "el sistema de base de datos está en modo de recuperación"
+
+#: tcop/backend_startup.c:414
+#, c-format
+msgid "received direct SSL connection request without ALPN protocol negotiation extension"
+msgstr "se recibió petición de conexión SSL directa sin la extensión de negociación de protocolo ALPN"
+
+#: tcop/backend_startup.c:420
+#, c-format
+msgid "direct SSL connection accepted"
+msgstr "conexión SSL directa aceptada"
+
+#: tcop/backend_startup.c:430
+#, c-format
+msgid "direct SSL connection rejected"
+msgstr "conexión SSL directa rechazada"
+
+#: tcop/backend_startup.c:489 tcop/backend_startup.c:517
+#, c-format
+msgid "incomplete startup packet"
+msgstr "el paquete de inicio está incompleto"
+
+#: tcop/backend_startup.c:501 tcop/backend_startup.c:538
+#, c-format
+msgid "invalid length of startup packet"
+msgstr "el de paquete de inicio tiene largo incorrecto"
+
+#: tcop/backend_startup.c:573
+#, c-format
+msgid "SSLRequest accepted"
+msgstr "SSLRequest aceptado"
+
+#: tcop/backend_startup.c:576
+#, c-format
+msgid "SSLRequest rejected"
+msgstr "SSLRequest rechazado"
+
+#: tcop/backend_startup.c:585
+#, c-format
+msgid "failed to send SSL negotiation response: %m"
+msgstr "no se pudo enviar la respuesta de negociación SSL: %m"
+
+#: tcop/backend_startup.c:603
+#, c-format
+msgid "received unencrypted data after SSL request"
+msgstr "se recibieron datos no cifrados después de petición SSL"
+
+#: tcop/backend_startup.c:604 tcop/backend_startup.c:658
+#, c-format
+msgid "This could be either a client-software bug or evidence of an attempted man-in-the-middle attack."
+msgstr "Esto podría ser un error en el software cliente o evidencia de un intento de ataque man-in-the-middle."
+
+#: tcop/backend_startup.c:627
+#, c-format
+msgid "GSSENCRequest accepted"
+msgstr "GSSENCRequest aceptado"
+
+#: tcop/backend_startup.c:630
+#, c-format
+msgid "GSSENCRequest rejected"
+msgstr "GSSENCRequest rechazado"
+
+#: tcop/backend_startup.c:639
+#, c-format
+msgid "failed to send GSSAPI negotiation response: %m"
+msgstr "no se pudo enviar la respuesta de negociación GSSAPI: %m"
+
+#: tcop/backend_startup.c:657
+#, c-format
+msgid "received unencrypted data after GSSAPI encryption request"
+msgstr "se recibieron datos no cifrados después de petición de cifrado GSSAPI"
+
+#: tcop/backend_startup.c:681
+#, c-format
+msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u"
+msgstr "el protocolo %u.%u no está soportado: servidor soporta %u.0 hasta %u.%u"
+
+#: tcop/backend_startup.c:744
+#, c-format
+msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"."
+msgstr "Los valores válidos son: «false», 0, «true», 1, «database»."
+
+#: tcop/backend_startup.c:785
+#, c-format
+msgid "invalid startup packet layout: expected terminator as last byte"
+msgstr "el paquete de inicio no es válido: se esperaba un terminador en el último byte"
+
+#: tcop/backend_startup.c:802
+#, c-format
+msgid "no PostgreSQL user name specified in startup packet"
+msgstr "no se especifica un nombre de usuario en el paquete de inicio"
+
+#: tcop/fastpath.c:142 utils/fmgr/fmgr.c:2161
 #, c-format
 msgid "function with OID %u does not exist"
 msgstr "no existe la función con OID %u"
@@ -22410,8 +23054,8 @@ msgstr "no se puede llamar a la función «%s» mediante la interfaz fastpath"
 msgid "fastpath function call: \"%s\" (OID %u)"
 msgstr "llamada a función fastpath: «%s» (OID %u)"
 
-#: tcop/fastpath.c:313 tcop/postgres.c:1365 tcop/postgres.c:1601
-#: tcop/postgres.c:2059 tcop/postgres.c:2309
+#: tcop/fastpath.c:313 tcop/postgres.c:1369 tcop/postgres.c:1605
+#: tcop/postgres.c:2071 tcop/postgres.c:2333
 #, c-format
 msgid "duration: %s ms"
 msgstr "duración: %s ms"
@@ -22441,317 +23085,320 @@ msgstr "el tamaño de argumento %d no es válido en el mensaje de llamada a func
 msgid "incorrect binary data format in function argument %d"
 msgstr "el formato de datos binarios es incorrecto en argumento %d a función"
 
-#: tcop/postgres.c:463 tcop/postgres.c:4877
+#: tcop/postgres.c:467 tcop/postgres.c:5012
 #, c-format
 msgid "invalid frontend message type %d"
 msgstr "el tipo de mensaje de frontend %d no es válido"
 
-#: tcop/postgres.c:1072
+#: tcop/postgres.c:1076
 #, c-format
 msgid "statement: %s"
 msgstr "sentencia: %s"
 
-#: tcop/postgres.c:1370
+#: tcop/postgres.c:1374
 #, c-format
 msgid "duration: %s ms  statement: %s"
 msgstr "duración: %s ms  sentencia: %s"
 
-#: tcop/postgres.c:1476
+#: tcop/postgres.c:1480
 #, c-format
 msgid "cannot insert multiple commands into a prepared statement"
 msgstr "no se pueden insertar múltiples órdenes en una sentencia preparada"
 
-#: tcop/postgres.c:1606
+#: tcop/postgres.c:1610
 #, c-format
 msgid "duration: %s ms  parse %s: %s"
 msgstr "duración: %s ms  parse: %s: %s"
 
-#: tcop/postgres.c:1672 tcop/postgres.c:2629
+#: tcop/postgres.c:1677 tcop/postgres.c:2653
 #, c-format
 msgid "unnamed prepared statement does not exist"
 msgstr "no existe una sentencia preparada sin nombre"
 
-#: tcop/postgres.c:1713
+#: tcop/postgres.c:1729
 #, c-format
 msgid "bind message has %d parameter formats but %d parameters"
 msgstr "el mensaje de «bind» tiene %d formatos de parámetro pero %d parámetros"
 
-#: tcop/postgres.c:1719
+#: tcop/postgres.c:1735
 #, c-format
 msgid "bind message supplies %d parameters, but prepared statement \"%s\" requires %d"
 msgstr "el mensaje de «bind» entrega %d parámetros, pero la sentencia preparada «%s» requiere %d"
 
-#: tcop/postgres.c:1937
+#: tcop/postgres.c:1949
 #, c-format
 msgid "incorrect binary data format in bind parameter %d"
 msgstr "el formato de datos binarios es incorrecto en el parámetro de «bind» %d"
 
-#: tcop/postgres.c:2064
+#: tcop/postgres.c:2076
 #, c-format
 msgid "duration: %s ms  bind %s%s%s: %s"
 msgstr "duración: %s ms  bind %s%s%s: %s"
 
-#: tcop/postgres.c:2118 tcop/postgres.c:2712
+#: tcop/postgres.c:2131 tcop/postgres.c:2735
 #, c-format
 msgid "portal \"%s\" does not exist"
 msgstr "no existe el portal «%s»"
 
-#: tcop/postgres.c:2189
+#: tcop/postgres.c:2213
 #, c-format
 msgid "%s %s%s%s: %s"
 msgstr "%s %s%s%s: %s"
 
-#: tcop/postgres.c:2191 tcop/postgres.c:2317
+#: tcop/postgres.c:2215 tcop/postgres.c:2341
 msgid "execute fetch from"
 msgstr "ejecutar fetch desde"
 
-#: tcop/postgres.c:2192 tcop/postgres.c:2318
+#: tcop/postgres.c:2216 tcop/postgres.c:2342
 msgid "execute"
 msgstr "ejecutar"
 
-#: tcop/postgres.c:2314
+#: tcop/postgres.c:2338
 #, c-format
 msgid "duration: %s ms  %s %s%s%s: %s"
 msgstr "duración: %s ms  %s %s%s%s: %s"
 
-#: tcop/postgres.c:2462
+#: tcop/postgres.c:2486
 #, c-format
 msgid "prepare: %s"
 msgstr "prepare: %s"
 
-#: tcop/postgres.c:2487
+#: tcop/postgres.c:2511
 #, c-format
-msgid "parameters: %s"
-msgstr "parámetros: %s"
+msgid "Parameters: %s"
+msgstr "Parámetros: %s"
 
-#: tcop/postgres.c:2502
+#: tcop/postgres.c:2526
 #, c-format
-msgid "abort reason: recovery conflict"
-msgstr "razón para abortar: conflicto en la recuperación"
+msgid "Abort reason: recovery conflict"
+msgstr "Razón para abortar: conflicto en la recuperación"
 
-#: tcop/postgres.c:2518
+#: tcop/postgres.c:2542
 #, c-format
 msgid "User was holding shared buffer pin for too long."
 msgstr "El usuario mantuvo el búfer compartido «clavado» por demasiado tiempo."
 
-#: tcop/postgres.c:2521
+#: tcop/postgres.c:2545
 #, c-format
 msgid "User was holding a relation lock for too long."
 msgstr "El usuario mantuvo una relación bloqueada por demasiado tiempo."
 
-#: tcop/postgres.c:2524
+#: tcop/postgres.c:2548
 #, c-format
 msgid "User was or might have been using tablespace that must be dropped."
 msgstr "El usuario estaba o pudo haber estado usando un tablespace que debía ser eliminado."
 
-#: tcop/postgres.c:2527
+#: tcop/postgres.c:2551
 #, c-format
 msgid "User query might have needed to see row versions that must be removed."
 msgstr "La consulta del usuario pudo haber necesitado examinar versiones de tuplas que debían eliminarse."
 
-#: tcop/postgres.c:2530
-#, fuzzy, c-format
-#| msgid "User was connected to a database that must be dropped."
-msgid "User was using a logical slot that must be invalidated."
-msgstr "El usuario estaba conectado a una base de datos que debía ser eliminada."
+#: tcop/postgres.c:2554
+#, c-format
+msgid "User was using a logical replication slot that must be invalidated."
+msgstr "El usuario estaba usando un slot de replicación lógica que debía ser invalidado."
 
-#: tcop/postgres.c:2536
+#: tcop/postgres.c:2560
 #, c-format
 msgid "User was connected to a database that must be dropped."
 msgstr "El usuario estaba conectado a una base de datos que debía ser eliminada."
 
-#: tcop/postgres.c:2575
+#: tcop/postgres.c:2599
 #, c-format
 msgid "portal \"%s\" parameter $%d = %s"
 msgstr "portal «%s» parámetro $%d = %s"
 
-#: tcop/postgres.c:2578
+#: tcop/postgres.c:2602
 #, c-format
 msgid "portal \"%s\" parameter $%d"
 msgstr "portal «%s» parámetro $%d"
 
-#: tcop/postgres.c:2584
+#: tcop/postgres.c:2608
 #, c-format
 msgid "unnamed portal parameter $%d = %s"
 msgstr "portal sin nombre, parámetro %d = %s"
 
-#: tcop/postgres.c:2587
+#: tcop/postgres.c:2611
 #, c-format
 msgid "unnamed portal parameter $%d"
 msgstr "portal sin nombre, parámetro %d"
 
-#: tcop/postgres.c:2932
+#: tcop/postgres.c:2955
 #, c-format
 msgid "terminating connection because of unexpected SIGQUIT signal"
 msgstr "terminando la conexión debido a una señal SIGQUIT inesperada"
 
-#: tcop/postgres.c:2938
+#: tcop/postgres.c:2961
 #, c-format
 msgid "terminating connection because of crash of another server process"
 msgstr "terminando la conexión debido a una falla en otro proceso servidor"
 
-#: tcop/postgres.c:2939
+#: tcop/postgres.c:2962
 #, c-format
 msgid "The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory."
 msgstr "Postmaster ha ordenado que este proceso servidor cancele la transacción en curso y finalice la conexión, porque otro proceso servidor ha terminado anormalmente y podría haber corrompido la memoria compartida."
 
-#: tcop/postgres.c:2943 tcop/postgres.c:3310
+#: tcop/postgres.c:2966 tcop/postgres.c:3219
 #, c-format
 msgid "In a moment you should be able to reconnect to the database and repeat your command."
 msgstr "Dentro de un momento debería poder reconectarse y repetir la consulta."
 
-#: tcop/postgres.c:2950
+#: tcop/postgres.c:2973
 #, c-format
 msgid "terminating connection due to immediate shutdown command"
 msgstr "terminando la conexión debido a una orden de apagado inmediato"
 
-#: tcop/postgres.c:3036
+#: tcop/postgres.c:3051
 #, c-format
 msgid "floating-point exception"
 msgstr "excepción de coma flotante"
 
-#: tcop/postgres.c:3037
+#: tcop/postgres.c:3052
 #, c-format
 msgid "An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid operation, such as division by zero."
 msgstr "Se ha recibido una señal de una operación de coma flotante no válida.  Esto puede significar un resultado fuera de rango o una operación no válida, como una división por cero."
 
-#: tcop/postgres.c:3214
+#: tcop/postgres.c:3217
+#, c-format
+msgid "terminating connection due to conflict with recovery"
+msgstr "terminando la conexión debido a un conflicto con la recuperación"
+
+#: tcop/postgres.c:3289
 #, c-format
 msgid "canceling authentication due to timeout"
 msgstr "cancelando la autentificación debido a que se agotó el tiempo de espera"
 
-#: tcop/postgres.c:3218
+#: tcop/postgres.c:3293
 #, c-format
 msgid "terminating autovacuum process due to administrator command"
 msgstr "terminando el proceso autovacuum debido a una orden del administrador"
 
-#: tcop/postgres.c:3222
+#: tcop/postgres.c:3297
 #, c-format
 msgid "terminating logical replication worker due to administrator command"
 msgstr "terminando el proceso de replicación lógica debido a una orden del administrador"
 
-#: tcop/postgres.c:3239 tcop/postgres.c:3249 tcop/postgres.c:3308
-#, c-format
-msgid "terminating connection due to conflict with recovery"
-msgstr "terminando la conexión debido a un conflicto con la recuperación"
-
-#: tcop/postgres.c:3260
+#: tcop/postgres.c:3317
 #, c-format
 msgid "terminating connection due to administrator command"
 msgstr "terminando la conexión debido a una orden del administrador"
 
-#: tcop/postgres.c:3291
+#: tcop/postgres.c:3348
 #, c-format
 msgid "connection to client lost"
 msgstr "se ha perdido la conexión al cliente"
 
-#: tcop/postgres.c:3361
+#: tcop/postgres.c:3400
 #, c-format
 msgid "canceling statement due to lock timeout"
-msgstr "cancelando la sentencia debido a que se agotó el tiempo de espera de candados (locks)"
+msgstr "cancelando la sentencia debido a que se agotó el tiempo de espera de “locks”"
 
-#: tcop/postgres.c:3368
+#: tcop/postgres.c:3407
 #, c-format
 msgid "canceling statement due to statement timeout"
 msgstr "cancelando la sentencia debido a que se agotó el tiempo de espera de sentencias"
 
-#: tcop/postgres.c:3375
+#: tcop/postgres.c:3414
 #, c-format
 msgid "canceling autovacuum task"
 msgstr "cancelando tarea de autovacuum"
 
-#: tcop/postgres.c:3398
+#: tcop/postgres.c:3427
 #, c-format
 msgid "canceling statement due to user request"
 msgstr "cancelando la sentencia debido a una petición del usuario"
 
-#: tcop/postgres.c:3412
+#: tcop/postgres.c:3448
 #, c-format
 msgid "terminating connection due to idle-in-transaction timeout"
 msgstr "terminando la conexión debido a que se agotó el tiempo de espera para transacciones abiertas inactivas"
 
-#: tcop/postgres.c:3423
+#: tcop/postgres.c:3461
+#, c-format
+msgid "terminating connection due to transaction timeout"
+msgstr "terminando la conexión debido a que se agotó el tiempo de espera para transacciones"
+
+#: tcop/postgres.c:3474
 #, c-format
 msgid "terminating connection due to idle-session timeout"
 msgstr "terminando la conexión debido a que se agotó el tiempo de espera para sesiones abiertas inactivas"
 
-#: tcop/postgres.c:3514
+#: tcop/postgres.c:3564
 #, c-format
 msgid "stack depth limit exceeded"
 msgstr "límite de profundidad de stack alcanzado"
 
-#: tcop/postgres.c:3515
+#: tcop/postgres.c:3565
 #, c-format
 msgid "Increase the configuration parameter \"max_stack_depth\" (currently %dkB), after ensuring the platform's stack depth limit is adequate."
 msgstr "Incremente el parámetro de configuración «max_stack_depth» (actualmente %dkB), después de asegurarse que el límite de profundidad de stack de la plataforma es adecuado."
 
-#: tcop/postgres.c:3562
+#: tcop/postgres.c:3612
 #, c-format
 msgid "\"max_stack_depth\" must not exceed %ldkB."
 msgstr "«max_stack_depth» no debe exceder %ldkB."
 
-#: tcop/postgres.c:3564
+#: tcop/postgres.c:3614
 #, c-format
 msgid "Increase the platform's stack depth limit via \"ulimit -s\" or local equivalent."
 msgstr "Incremente el límite de profundidad del stack del sistema usando «ulimit -s» o el equivalente de su sistema."
 
-#: tcop/postgres.c:3587
-#, fuzzy, c-format
-#| msgid "huge_page_size must be 0 on this platform."
-msgid "client_connection_check_interval must be set to 0 on this platform."
-msgstr "huge_page_size debe ser 0 en esta plataforma."
+#: tcop/postgres.c:3637
+#, c-format
+msgid "\"client_connection_check_interval\" must be set to 0 on this platform."
+msgstr "«client_connection_check_interval» debe ser 0 en esta plataforma."
 
-#: tcop/postgres.c:3608
+#: tcop/postgres.c:3658
 #, c-format
 msgid "Cannot enable parameter when \"log_statement_stats\" is true."
 msgstr "No se puede activar el parámetro cuando «log_statement_stats» está activo."
 
-#: tcop/postgres.c:3623
+#: tcop/postgres.c:3673
 #, c-format
 msgid "Cannot enable \"log_statement_stats\" when \"log_parser_stats\", \"log_planner_stats\", or \"log_executor_stats\" is true."
 msgstr "No se puede activar «log_statement_stats» cuando «log_parser_stats», «log_planner_stats» o «log_executor_stats» están activos."
 
-#: tcop/postgres.c:3971
+#: tcop/postgres.c:4098
 #, c-format
 msgid "invalid command-line argument for server process: %s"
 msgstr "argumentos de línea de órdenes no válidos para proceso servidor: %s"
 
-#: tcop/postgres.c:3972 tcop/postgres.c:3978
+#: tcop/postgres.c:4099 tcop/postgres.c:4105
 #, c-format
 msgid "Try \"%s --help\" for more information."
 msgstr "Pruebe «%s --help» para mayor información."
 
-#: tcop/postgres.c:3976
+#: tcop/postgres.c:4103
 #, c-format
 msgid "%s: invalid command-line argument: %s"
 msgstr "%s: argumento de línea de órdenes no válido: %s"
 
-#: tcop/postgres.c:4029
+#: tcop/postgres.c:4156
 #, c-format
 msgid "%s: no database nor user name specified"
 msgstr "%s: no se ha especificado base de datos ni usuario"
 
-#: tcop/postgres.c:4774
+#: tcop/postgres.c:4909
 #, c-format
 msgid "invalid CLOSE message subtype %d"
 msgstr "subtipo %d de mensaje CLOSE no válido"
 
-#: tcop/postgres.c:4811
+#: tcop/postgres.c:4946
 #, c-format
 msgid "invalid DESCRIBE message subtype %d"
 msgstr "subtipo %d de mensaje DESCRIBE no válido"
 
-#: tcop/postgres.c:4898
+#: tcop/postgres.c:5033
 #, c-format
 msgid "fastpath function calls not supported in a replication connection"
 msgstr "la invocación «fastpath» de funciones no está soportada en conexiones de replicación"
 
-#: tcop/postgres.c:4902
+#: tcop/postgres.c:5037
 #, c-format
 msgid "extended query protocol not supported in a replication connection"
 msgstr "el protocolo extendido de consultas no está soportado en conexiones de replicación"
 
-#: tcop/postgres.c:5082
+#: tcop/postgres.c:5217
 #, c-format
 msgid "disconnection: session time: %d:%02d:%02d.%03d user=%s database=%s host=%s%s%s"
 msgstr "desconexión: duración de sesión: %d:%02d:%02d.%03d usuario=%s base=%s host=%s%s%s"
@@ -22761,57 +23408,56 @@ msgstr "desconexión: duración de sesión: %d:%02d:%02d.%03d usuario=%s base=%s
 msgid "bind message has %d result formats but query has %d columns"
 msgstr "el mensaje de «bind» tiene %d formatos de resultado pero la consulta tiene %d columnas"
 
-#: tcop/pquery.c:944 tcop/pquery.c:1701
+#: tcop/pquery.c:942 tcop/pquery.c:1696
 #, c-format
 msgid "cursor can only scan forward"
 msgstr "el cursor sólo se puede desplazar hacia adelante"
 
-#: tcop/pquery.c:945 tcop/pquery.c:1702
+#: tcop/pquery.c:943 tcop/pquery.c:1697
 #, c-format
 msgid "Declare it with SCROLL option to enable backward scan."
 msgstr "Declárelo con SCROLL para permitirle desplazar hacia atrás."
 
 #. translator: %s is name of a SQL command, eg CREATE
-#: tcop/utility.c:417
+#: tcop/utility.c:410
 #, c-format
 msgid "cannot execute %s in a read-only transaction"
 msgstr "no se puede ejecutar %s en una transacción de sólo lectura"
 
 #. translator: %s is name of a SQL command, eg CREATE
-#: tcop/utility.c:435
+#: tcop/utility.c:428
 #, c-format
 msgid "cannot execute %s during a parallel operation"
 msgstr "no se puede ejecutar %s durante una operación paralela"
 
 #. translator: %s is name of a SQL command, eg CREATE
-#: tcop/utility.c:454
+#: tcop/utility.c:447
 #, c-format
 msgid "cannot execute %s during recovery"
 msgstr "no se puede ejecutar %s durante la recuperación"
 
 #. translator: %s is name of a SQL command, eg PREPARE
-#: tcop/utility.c:472
+#: tcop/utility.c:465
 #, c-format
 msgid "cannot execute %s within security-restricted operation"
 msgstr "no se puede ejecutar %s durante una operación restringida por seguridad"
 
 #. translator: %s is name of a SQL command, eg LISTEN
-#: tcop/utility.c:828
+#: tcop/utility.c:821
 #, c-format
 msgid "cannot execute %s within a background process"
 msgstr "no se puede ejecutar %s dentro de un proceso en segundo plano"
 
-#: tcop/utility.c:953
-#, fuzzy, c-format
-#| msgid "permission denied for sequence %s"
+#. translator: %s is name of a SQL command, eg CHECKPOINT
+#: tcop/utility.c:947
+#, c-format
 msgid "permission denied to execute %s command"
-msgstr "permiso denegado a la secuencia %s"
+msgstr "permiso denegado a ejecutar la sentencia %s"
 
-#: tcop/utility.c:955
-#, fuzzy, c-format
-#| msgid "Set the privileges of the element type instead."
+#: tcop/utility.c:949
+#, c-format
 msgid "Only roles with privileges of the \"%s\" role may execute this command."
-msgstr "Defina los privilegios del tipo elemento en su lugar."
+msgstr "Sólo los roles con privilegios del rol «%s» pueden ejecutar esta sentencia."
 
 #: tsearch/dict_ispell.c:52 tsearch/dict_thesaurus.c:616
 #, c-format
@@ -22962,13 +23608,13 @@ msgstr "marca de afijo «%s» no válida con el valor de marca «long»"
 msgid "could not open dictionary file \"%s\": %m"
 msgstr "no se pudo abrir el archivo de diccionario «%s»: %m"
 
-#: tsearch/spell.c:749 utils/adt/regexp.c:224 jsonpath_gram.y:559
+#: tsearch/spell.c:749 utils/adt/regexp.c:223 jsonpath_gram.y:629
 #, c-format
 msgid "invalid regular expression: %s"
 msgstr "la expresión regular no es válida: %s"
 
 #: tsearch/spell.c:963 tsearch/spell.c:980 tsearch/spell.c:997
-#: tsearch/spell.c:1014 tsearch/spell.c:1079 gram.y:18124 gram.y:18141
+#: tsearch/spell.c:1014 tsearch/spell.c:1079 gram.y:18735 gram.y:18752
 #, c-format
 msgid "syntax error"
 msgstr "error de sintaxis"
@@ -23004,17 +23650,17 @@ msgstr "el número de aliases excede el número especificado %d"
 msgid "affix file contains both old-style and new-style commands"
 msgstr "el archivo de «affix» contiene órdenes en estilos antiguo y nuevo"
 
-#: tsearch/to_tsany.c:195 utils/adt/tsvector.c:278 utils/adt/tsvector_op.c:1128
+#: tsearch/to_tsany.c:194 utils/adt/tsvector.c:277 utils/adt/tsvector_op.c:1126
 #, c-format
 msgid "string is too long for tsvector (%d bytes, max %d bytes)"
 msgstr "la cadena es demasiado larga para tsvector (%d bytes, máximo %d bytes)"
 
-#: tsearch/ts_locale.c:238
+#: tsearch/ts_locale.c:236
 #, c-format
 msgid "line %d of configuration file \"%s\": \"%s\""
 msgstr "línea %d del archivo de configuración «%s»: «%s»"
 
-#: tsearch/ts_locale.c:317
+#: tsearch/ts_locale.c:315
 #, c-format
 msgid "conversion from wchar_t to server encoding failed: %m"
 msgstr "conversión desde un wchar_t a la codificación del servidor falló: %m"
@@ -23041,193 +23687,197 @@ msgstr "nombre de configuración de búsqueda en texto «%s» no válido"
 msgid "could not open stop-word file \"%s\": %m"
 msgstr "no se pudo abrir el archivo de stopwords «%s»: %m"
 
-#: tsearch/wparser.c:308 tsearch/wparser.c:396 tsearch/wparser.c:473
+#: tsearch/wparser.c:306 tsearch/wparser.c:394 tsearch/wparser.c:471
 #, c-format
 msgid "text search parser does not support headline creation"
 msgstr "el analizador de búsqueda en texto no soporta creación de encabezados (headline)"
 
-#: tsearch/wparser_def.c:2648
+#: tsearch/wparser_def.c:2664
 #, c-format
 msgid "unrecognized headline parameter: \"%s\""
 msgstr "parámetro de encabezado (headline) no reconocido: «%s»"
 
-#: tsearch/wparser_def.c:2658
+#: tsearch/wparser_def.c:2674
 #, c-format
-msgid "MinWords should be less than MaxWords"
-msgstr "MinWords debería ser menor que MaxWords"
+#| msgid "%s must be in range %d..%d"
+msgid "%s must be less than %s"
+msgstr "%s debe ser menor que %s"
 
-#: tsearch/wparser_def.c:2662
+#: tsearch/wparser_def.c:2678
 #, c-format
-msgid "MinWords should be positive"
-msgstr "MinWords debería ser positivo"
+#| msgid "COST must be positive"
+msgid "%s must be positive"
+msgstr "%s debe ser positivo"
 
-#: tsearch/wparser_def.c:2666
+#: tsearch/wparser_def.c:2682 tsearch/wparser_def.c:2686
 #, c-format
-msgid "ShortWord should be >= 0"
-msgstr "ShortWord debería ser >= 0"
+msgid "%s must be >= 0"
+msgstr "%s debe ser >= 0"
 
-#: tsearch/wparser_def.c:2670
+#: utils/activity/pgstat.c:435
 #, c-format
-msgid "MaxFragments should be >= 0"
-msgstr "MaxFragments debería ser >= 0"
-
-#: utils/activity/pgstat.c:438
-#, fuzzy, c-format
-#| msgid "could not open statistics file \"%s\": %m"
 msgid "could not unlink permanent statistics file \"%s\": %m"
-msgstr "no se pudo abrir el archivo de estadísticas «%s»: %m"
+msgstr "no se pudo eliminar el archivo permanente de estadísticas «%s»: %m"
 
-#: utils/activity/pgstat.c:1241
-#, fuzzy, c-format
-#| msgid "unrecognized statistics kind \"%s\""
+#: utils/activity/pgstat.c:1255
+#, c-format
 msgid "invalid statistics kind: \"%s\""
-msgstr "tipo de estadísticas «%s» no reconocido"
+msgstr "tipo de estadísticas no válido: «%s»"
 
-#: utils/activity/pgstat.c:1321
+#: utils/activity/pgstat.c:1335
 #, c-format
 msgid "could not open temporary statistics file \"%s\": %m"
 msgstr "no se pudo abrir el archivo temporal de estadísticas «%s»: %m"
 
-#: utils/activity/pgstat.c:1433
+#: utils/activity/pgstat.c:1455
 #, c-format
 msgid "could not write temporary statistics file \"%s\": %m"
 msgstr "no se pudo escribir el archivo temporal de estadísticas «%s»: %m"
 
-#: utils/activity/pgstat.c:1442
+#: utils/activity/pgstat.c:1464
 #, c-format
 msgid "could not close temporary statistics file \"%s\": %m"
 msgstr "no se pudo cerrar el archivo temporal de estadísticas «%s»: %m"
 
-#: utils/activity/pgstat.c:1450
+#: utils/activity/pgstat.c:1472
 #, c-format
 msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m"
 msgstr "no se pudo cambiar el nombre al archivo temporal de estadísticas de «%s» a «%s»: %m"
 
-#: utils/activity/pgstat.c:1499
+#: utils/activity/pgstat.c:1521
 #, c-format
 msgid "could not open statistics file \"%s\": %m"
 msgstr "no se pudo abrir el archivo de estadísticas «%s»: %m"
 
-#: utils/activity/pgstat.c:1661
+#: utils/activity/pgstat.c:1683
 #, c-format
 msgid "corrupted statistics file \"%s\""
 msgstr "el archivo de estadísticas «%s» está corrupto"
 
 #: utils/activity/pgstat_function.c:118
-#, fuzzy, c-format
-#| msgid "cast function must be a normal function"
+#, c-format
 msgid "function call to dropped function"
-msgstr "la función de conversión debe ser una función normal"
+msgstr "invocación a una función eliminada"
 
-#: utils/activity/pgstat_xact.c:363
+#: utils/activity/pgstat_xact.c:362
 #, c-format
 msgid "resetting existing statistics for kind %s, db=%u, oid=%u"
-msgstr ""
+msgstr "reseteando estadísticas existentes para el tipo %s, db=%u, oid=%u"
+
+#: utils/activity/wait_event.c:207 utils/activity/wait_event.c:232
+#, c-format
+msgid "wait event \"%s\" already exists in type \"%s\""
+msgstr "ya existe un “wait event” llamado «%s» en el tipo «%s»"
+
+#: utils/activity/wait_event.c:246
+#, c-format
+msgid "too many custom wait events"
+msgstr "demasiados “wait events” definidos por el usuario"
 
-#: utils/adt/acl.c:177 utils/adt/name.c:93
+#: utils/adt/acl.c:183 utils/adt/name.c:93
 #, c-format
 msgid "identifier too long"
 msgstr "el identificador es demasiado largo"
 
-#: utils/adt/acl.c:178 utils/adt/name.c:94
+#: utils/adt/acl.c:184 utils/adt/name.c:94
 #, c-format
 msgid "Identifier must be less than %d characters."
 msgstr "El identificador debe ser menor a %d caracteres."
 
-#: utils/adt/acl.c:266
+#: utils/adt/acl.c:272
 #, c-format
 msgid "unrecognized key word: \"%s\""
 msgstr "palabra clave no reconocida: «%s»"
 
-#: utils/adt/acl.c:267
+#: utils/adt/acl.c:273
 #, c-format
 msgid "ACL key word must be \"group\" or \"user\"."
 msgstr "Palabra clave de ACL debe ser «group» o «user»."
 
-#: utils/adt/acl.c:275
+#: utils/adt/acl.c:281
 #, c-format
 msgid "missing name"
 msgstr "falta un nombre"
 
-#: utils/adt/acl.c:276
+#: utils/adt/acl.c:282
 #, c-format
 msgid "A name must follow the \"group\" or \"user\" key word."
 msgstr "Debe venir un nombre después de una palabra clave «group» o «user»."
 
-#: utils/adt/acl.c:282
+#: utils/adt/acl.c:288
 #, c-format
 msgid "missing \"=\" sign"
 msgstr "falta un signo «=»"
 
-#: utils/adt/acl.c:344
+#: utils/adt/acl.c:350
 #, c-format
 msgid "invalid mode character: must be one of \"%s\""
 msgstr "carácter de modo no válido: debe ser uno de «%s»"
 
-#: utils/adt/acl.c:374
+#: utils/adt/acl.c:380
 #, c-format
 msgid "a name must follow the \"/\" sign"
 msgstr "debe venir un nombre después del signo «/»"
 
-#: utils/adt/acl.c:386
+#: utils/adt/acl.c:392
 #, c-format
 msgid "defaulting grantor to user ID %u"
 msgstr "usando el cedente por omisión con ID %u"
 
-#: utils/adt/acl.c:572
+#: utils/adt/acl.c:578
 #, c-format
 msgid "ACL array contains wrong data type"
 msgstr "el array ACL contiene tipo de datos incorrecto"
 
-#: utils/adt/acl.c:576
+#: utils/adt/acl.c:582
 #, c-format
 msgid "ACL arrays must be one-dimensional"
 msgstr "los array de ACL debe ser unidimensional"
 
-#: utils/adt/acl.c:580
+#: utils/adt/acl.c:586
 #, c-format
 msgid "ACL arrays must not contain null values"
 msgstr "los arrays de ACL no pueden contener valores nulos"
 
-#: utils/adt/acl.c:609
+#: utils/adt/acl.c:615
 #, c-format
 msgid "extra garbage at the end of the ACL specification"
 msgstr "basura extra al final de la especificación de la ACL"
 
-#: utils/adt/acl.c:1251
+#: utils/adt/acl.c:1263
 #, c-format
 msgid "grant options cannot be granted back to your own grantor"
 msgstr "la opción de grant no puede ser otorgada de vuelta a quien la otorgó"
 
-#: utils/adt/acl.c:1567
+#: utils/adt/acl.c:1579
 #, c-format
 msgid "aclinsert is no longer supported"
 msgstr "aclinsert ya no está soportado"
 
-#: utils/adt/acl.c:1577
+#: utils/adt/acl.c:1589
 #, c-format
 msgid "aclremove is no longer supported"
 msgstr "aclremove ya no está soportado"
 
-#: utils/adt/acl.c:1697
+#: utils/adt/acl.c:1709
 #, c-format
 msgid "unrecognized privilege type: \"%s\""
 msgstr "tipo de privilegio no reconocido: «%s»"
 
-#: utils/adt/acl.c:3484 utils/adt/regproc.c:100 utils/adt/regproc.c:265
+#: utils/adt/acl.c:3550 utils/adt/regproc.c:100 utils/adt/regproc.c:265
 #, c-format
 msgid "function \"%s\" does not exist"
 msgstr "no existe la función «%s»"
 
-#: utils/adt/acl.c:5031
+#: utils/adt/acl.c:5196
 #, c-format
 msgid "must be able to SET ROLE \"%s\""
-msgstr ""
+msgstr "debe ser capaz de hacer SET ROLE «%s»"
 
 #: utils/adt/array_userfuncs.c:102 utils/adt/array_userfuncs.c:489
-#: utils/adt/array_userfuncs.c:878 utils/adt/json.c:694 utils/adt/json.c:831
-#: utils/adt/json.c:869 utils/adt/jsonb.c:1139 utils/adt/jsonb.c:1211
-#: utils/adt/jsonb.c:1629 utils/adt/jsonb.c:1817 utils/adt/jsonb.c:1827
+#: utils/adt/array_userfuncs.c:866 utils/adt/json.c:602 utils/adt/json.c:740
+#: utils/adt/json.c:790 utils/adt/jsonb.c:1025 utils/adt/jsonb.c:1098
+#: utils/adt/jsonb.c:1530 utils/adt/jsonb.c:1718 utils/adt/jsonb.c:1728
 #, c-format
 msgid "could not determine input data type"
 msgstr "no se pudo determinar el tipo de dato de entrada"
@@ -23238,17 +23888,17 @@ msgid "input data type is not an array"
 msgstr "el tipo de entrada no es un array"
 
 #: utils/adt/array_userfuncs.c:151 utils/adt/array_userfuncs.c:203
-#: utils/adt/float.c:1228 utils/adt/float.c:1302 utils/adt/float.c:4117
-#: utils/adt/float.c:4155 utils/adt/int.c:778 utils/adt/int.c:800
+#: utils/adt/float.c:1222 utils/adt/float.c:1296 utils/adt/float.c:4022
+#: utils/adt/float.c:4060 utils/adt/int.c:778 utils/adt/int.c:800
 #: utils/adt/int.c:814 utils/adt/int.c:828 utils/adt/int.c:859
 #: utils/adt/int.c:880 utils/adt/int.c:997 utils/adt/int.c:1011
 #: utils/adt/int.c:1025 utils/adt/int.c:1058 utils/adt/int.c:1072
 #: utils/adt/int.c:1086 utils/adt/int.c:1117 utils/adt/int.c:1199
 #: utils/adt/int.c:1263 utils/adt/int.c:1331 utils/adt/int.c:1337
-#: utils/adt/int8.c:1257 utils/adt/numeric.c:1901 utils/adt/numeric.c:4388
-#: utils/adt/rangetypes.c:1481 utils/adt/rangetypes.c:1494
-#: utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1132
-#: utils/adt/varlena.c:3134
+#: utils/adt/int8.c:1256 utils/adt/numeric.c:1917 utils/adt/numeric.c:4454
+#: utils/adt/rangetypes.c:1488 utils/adt/rangetypes.c:1501
+#: utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1135
+#: utils/adt/varlena.c:3137
 #, c-format
 msgid "integer out of range"
 msgstr "entero fuera de rango"
@@ -23285,268 +23935,278 @@ msgstr "Los arrays con elementos de diferentes dimensiones son incompatibles par
 msgid "Arrays with differing dimensions are not compatible for concatenation."
 msgstr "Los arrays con diferentes dimensiones son incompatibles para la concatenación."
 
-#: utils/adt/array_userfuncs.c:987 utils/adt/array_userfuncs.c:995
-#: utils/adt/arrayfuncs.c:5590 utils/adt/arrayfuncs.c:5596
+#: utils/adt/array_userfuncs.c:975 utils/adt/array_userfuncs.c:983
+#: utils/adt/arrayfuncs.c:5616 utils/adt/arrayfuncs.c:5622
 #, c-format
 msgid "cannot accumulate arrays of different dimensionality"
 msgstr "no se pueden acumular arrays de distinta dimensionalidad"
 
-#: utils/adt/array_userfuncs.c:1286 utils/adt/array_userfuncs.c:1440
+#: utils/adt/array_userfuncs.c:1272 utils/adt/array_userfuncs.c:1426
 #, c-format
 msgid "searching for elements in multidimensional arrays is not supported"
 msgstr "no está soportada la búsqueda de elementos en arrays multidimensionales"
 
-#: utils/adt/array_userfuncs.c:1315
+#: utils/adt/array_userfuncs.c:1301
 #, c-format
 msgid "initial position must not be null"
 msgstr "la posición inicial no debe ser null"
 
-#: utils/adt/array_userfuncs.c:1688
-#, fuzzy, c-format
-#| msgid "sample percentage must be between 0 and 100"
+#: utils/adt/array_userfuncs.c:1674
+#, c-format
 msgid "sample size must be between 0 and %d"
-msgstr "el porcentaje de muestreo debe estar entre 0 y 100"
-
-#: utils/adt/arrayfuncs.c:273 utils/adt/arrayfuncs.c:287
-#: utils/adt/arrayfuncs.c:298 utils/adt/arrayfuncs.c:320
-#: utils/adt/arrayfuncs.c:337 utils/adt/arrayfuncs.c:351
-#: utils/adt/arrayfuncs.c:359 utils/adt/arrayfuncs.c:366
-#: utils/adt/arrayfuncs.c:506 utils/adt/arrayfuncs.c:521
-#: utils/adt/arrayfuncs.c:532 utils/adt/arrayfuncs.c:547
-#: utils/adt/arrayfuncs.c:568 utils/adt/arrayfuncs.c:598
-#: utils/adt/arrayfuncs.c:605 utils/adt/arrayfuncs.c:613
-#: utils/adt/arrayfuncs.c:647 utils/adt/arrayfuncs.c:670
-#: utils/adt/arrayfuncs.c:690 utils/adt/arrayfuncs.c:807
-#: utils/adt/arrayfuncs.c:816 utils/adt/arrayfuncs.c:846
-#: utils/adt/arrayfuncs.c:861 utils/adt/arrayfuncs.c:914
+msgstr "el tamaño de la muestra debe estar entre 0 y %d"
+
+#: utils/adt/arrayfuncs.c:264 utils/adt/arrayfuncs.c:273
+#: utils/adt/arrayfuncs.c:284 utils/adt/arrayfuncs.c:307
+#: utils/adt/arrayfuncs.c:440 utils/adt/arrayfuncs.c:454
+#: utils/adt/arrayfuncs.c:466 utils/adt/arrayfuncs.c:636
+#: utils/adt/arrayfuncs.c:668 utils/adt/arrayfuncs.c:703
+#: utils/adt/arrayfuncs.c:718 utils/adt/arrayfuncs.c:777
+#: utils/adt/arrayfuncs.c:782 utils/adt/arrayfuncs.c:870
+#: utils/adt/arrayfuncs.c:897 utils/adt/arrayfuncs.c:904
+#: utils/adt/arrayfuncs.c:941
 #, c-format
 msgid "malformed array literal: \"%s\""
 msgstr "literal de array mal formado: «%s»"
 
-#: utils/adt/arrayfuncs.c:274
-#, c-format
-msgid "\"[\" must introduce explicitly-specified array dimensions."
-msgstr "Un «[» debe introducir dimensiones de array especificadas explícitamente."
-
-#: utils/adt/arrayfuncs.c:288
+#: utils/adt/arrayfuncs.c:265
 #, c-format
-msgid "Missing array dimension value."
-msgstr "Falta un valor de dimensión de array."
+msgid "Array value must start with \"{\" or dimension information."
+msgstr "El valor de array debe comenzar con «{» o información de dimensión."
 
-#: utils/adt/arrayfuncs.c:299 utils/adt/arrayfuncs.c:338
+#: utils/adt/arrayfuncs.c:274 utils/adt/arrayfuncs.c:467
 #, c-format
 msgid "Missing \"%s\" after array dimensions."
 msgstr "Falta «%s» luego de las dimensiones de array."
 
-#: utils/adt/arrayfuncs.c:308 utils/adt/arrayfuncs.c:2933
-#: utils/adt/arrayfuncs.c:2965 utils/adt/arrayfuncs.c:2980
+#: utils/adt/arrayfuncs.c:285
 #, c-format
-msgid "upper bound cannot be less than lower bound"
-msgstr "el límite superior no puede ser menor que el límite inferior"
+msgid "Array contents must start with \"{\"."
+msgstr "El contenido del array debe empezar con «{»."
+
+#: utils/adt/arrayfuncs.c:308 utils/adt/multirangetypes.c:292
+#, c-format
+msgid "Junk after closing right brace."
+msgstr "Basura después de la llave derecha de cierre."
+
+#: utils/adt/arrayfuncs.c:431 utils/adt/arrayfuncs.c:643
+#, c-format
+msgid "number of array dimensions exceeds the maximum allowed (%d)"
+msgstr "el número de dimensiones del array excede el máximo permitido (%d)"
+
+#: utils/adt/arrayfuncs.c:441
+#, c-format
+msgid "\"[\" must introduce explicitly-specified array dimensions."
+msgstr "Un «[» debe introducir dimensiones de array especificadas explícitamente."
 
-#: utils/adt/arrayfuncs.c:321
+#: utils/adt/arrayfuncs.c:455
 #, c-format
-msgid "Array value must start with \"{\" or dimension information."
-msgstr "El valor de array debe comenzar con «{» o información de dimensión."
+msgid "Missing array dimension value."
+msgstr "Falta un valor de dimensión de array."
 
-#: utils/adt/arrayfuncs.c:352
+#: utils/adt/arrayfuncs.c:481 utils/adt/arrayfuncs.c:2940
+#: utils/adt/arrayfuncs.c:2985 utils/adt/arrayfuncs.c:3000
 #, c-format
-msgid "Array contents must start with \"{\"."
-msgstr "El contenido del array debe empezar con «{»."
+msgid "upper bound cannot be less than lower bound"
+msgstr "el límite superior no puede ser menor que el límite inferior"
 
-#: utils/adt/arrayfuncs.c:360 utils/adt/arrayfuncs.c:367
+#: utils/adt/arrayfuncs.c:487
 #, c-format
-msgid "Specified array dimensions do not match array contents."
-msgstr "Las dimensiones del array especificadas no coinciden con el contenido del array."
+msgid "array upper bound is too large: %d"
+msgstr "el límite superior del array es demasiado grande: %d"
 
-#: utils/adt/arrayfuncs.c:507 utils/adt/arrayfuncs.c:533
-#: utils/adt/multirangetypes.c:166 utils/adt/rangetypes.c:2405
-#: utils/adt/rangetypes.c:2413 utils/adt/rowtypes.c:219
-#: utils/adt/rowtypes.c:230
+#: utils/adt/arrayfuncs.c:538
 #, c-format
-msgid "Unexpected end of input."
-msgstr "Fin inesperado de la entrada."
+msgid "array bound is out of integer range"
+msgstr "límite de array está fuera del rango entero"
 
-#: utils/adt/arrayfuncs.c:522 utils/adt/arrayfuncs.c:569
-#: utils/adt/arrayfuncs.c:599 utils/adt/arrayfuncs.c:648
+#: utils/adt/arrayfuncs.c:637 utils/adt/arrayfuncs.c:669
+#: utils/adt/arrayfuncs.c:704 utils/adt/arrayfuncs.c:898
 #, c-format
 msgid "Unexpected \"%c\" character."
 msgstr "Carácter «%c» inesperado."
 
-#: utils/adt/arrayfuncs.c:548 utils/adt/arrayfuncs.c:671
+#: utils/adt/arrayfuncs.c:719
 #, c-format
 msgid "Unexpected array element."
 msgstr "Elemento de array inesperado."
 
-#: utils/adt/arrayfuncs.c:606
+#: utils/adt/arrayfuncs.c:778
 #, c-format
-msgid "Unmatched \"%c\" character."
-msgstr "Carácter «%c» desemparejado."
+msgid "