Another bunch of french updates
authorGuillaume Lelarge <guillaume@lelarge.info>
Thu, 17 Sep 2020 13:44:43 +0000 (15:44 +0200)
committerGuillaume Lelarge <guillaume@lelarge.info>
Thu, 17 Sep 2020 13:44:43 +0000 (15:44 +0200)
fr/postgres.po

index 925ad1780df0df0237a0653531d19db25ec67607..3c87436fc0c360186a12e89499c3a5f9be0eda0f 100644 (file)
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PostgreSQL 12\n"
 "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
-"POT-Creation-Date: 2019-10-02 07:09+0000\n"
-"PO-Revision-Date: 2020-01-01 20:09+0100\n"
+"POT-Creation-Date: 2020-09-17 00:40+0000\n"
+"PO-Revision-Date: 2020-09-17 15:44+0200\n"
 "Last-Translator: Christophe Courtois <christophe.courtois@dalibo.com>\n"
 "Language-Team: French <guillaume@lelarge.info>\n"
 "Language: fr\n"
@@ -17,33 +17,33 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Poedit 2.0.6\n"
+"X-Generator: Poedit 2.4.1\n"
 
-#: ../common/config_info.c:130 ../common/config_info.c:138 ../common/config_info.c:146 ../common/config_info.c:154 ../common/config_info.c:162 ../common/config_info.c:170 ../common/config_info.c:178 ../common/config_info.c:186 ../common/config_info.c:194
+#: ../common/config_info.c:134 ../common/config_info.c:142 ../common/config_info.c:150 ../common/config_info.c:158 ../common/config_info.c:166 ../common/config_info.c:174 ../common/config_info.c:182 ../common/config_info.c:190
 msgid "not recorded"
 msgstr "non enregistré"
 
-#: ../common/controldata_utils.c:68 ../common/controldata_utils.c:73 commands/copy.c:3549 commands/extension.c:3341 utils/adt/genfile.c:153
+#: ../common/controldata_utils.c:68 ../common/controldata_utils.c:73 commands/copy.c:3495 commands/extension.c:3436 utils/adt/genfile.c:125
 #, c-format
 msgid "could not open file \"%s\" for reading: %m"
 msgstr "n'a pas pu ouvrir le fichier « %s » pour une lecture : %m"
 
-#: ../common/controldata_utils.c:86 ../common/controldata_utils.c:89 access/transam/timeline.c:347 access/transam/twophase.c:1293 access/transam/xlog.c:3455 access/transam/xlog.c:4602 access/transam/xlog.c:10804 access/transam/xlog.c:10817 access/transam/xlog.c:11242 access/transam/xlog.c:11322 access/transam/xlog.c:11361 access/transam/xlog.c:11404 access/transam/xlogfuncs.c:663 access/transam/xlogfuncs.c:682 commands/extension.c:3351
-#: libpq/hba.c:499 replication/logical/origin.c:718 replication/logical/origin.c:754 replication/logical/reorderbuffer.c:3312 replication/logical/snapbuild.c:1746 replication/logical/snapbuild.c:1788 replication/logical/snapbuild.c:1816 replication/logical/snapbuild.c:1843 replication/slot.c:1426 replication/slot.c:1467 replication/walsender.c:513 storage/file/copydir.c:195 utils/adt/genfile.c:170 utils/adt/misc.c:753
-#: utils/cache/relmapper.c:741
+#: ../common/controldata_utils.c:86 ../common/controldata_utils.c:89 access/transam/timeline.c:143 access/transam/timeline.c:362 access/transam/twophase.c:1276 access/transam/xlog.c:3503 access/transam/xlog.c:4728 access/transam/xlog.c:11121 access/transam/xlog.c:11134 access/transam/xlog.c:11587 access/transam/xlog.c:11667 access/transam/xlog.c:11706 access/transam/xlog.c:11749 access/transam/xlogfuncs.c:662 access/transam/xlogfuncs.c:681
+#: commands/extension.c:3446 libpq/hba.c:499 replication/logical/origin.c:717 replication/logical/origin.c:753 replication/logical/reorderbuffer.c:3599 replication/logical/snapbuild.c:1741 replication/logical/snapbuild.c:1783 replication/logical/snapbuild.c:1811 replication/logical/snapbuild.c:1838 replication/slot.c:1622 replication/slot.c:1663 replication/walsender.c:543 storage/file/buffile.c:441 storage/file/copydir.c:195 utils/adt/genfile.c:200
+#: utils/adt/misc.c:763 utils/cache/relmapper.c:741
 #, c-format
 msgid "could not read file \"%s\": %m"
 msgstr "n'a pas pu lire le fichier « %s » : %m"
 
-#: ../common/controldata_utils.c:97 ../common/controldata_utils.c:101 access/transam/twophase.c:1296 access/transam/xlog.c:3460 access/transam/xlog.c:4607 replication/logical/origin.c:723 replication/logical/origin.c:762 replication/logical/snapbuild.c:1751 replication/logical/snapbuild.c:1793 replication/logical/snapbuild.c:1821 replication/logical/snapbuild.c:1848 replication/slot.c:1430 replication/slot.c:1471 replication/walsender.c:518
+#: ../common/controldata_utils.c:97 ../common/controldata_utils.c:101 access/transam/twophase.c:1279 access/transam/xlog.c:3508 access/transam/xlog.c:4733 replication/logical/origin.c:722 replication/logical/origin.c:761 replication/logical/snapbuild.c:1746 replication/logical/snapbuild.c:1788 replication/logical/snapbuild.c:1816 replication/logical/snapbuild.c:1843 replication/slot.c:1626 replication/slot.c:1667 replication/walsender.c:548
 #: utils/cache/relmapper.c:745
 #, c-format
 msgid "could not read file \"%s\": read %d of %zu"
 msgstr "n'a pas pu lire le fichier « %s » : a lu %d sur %zu"
 
-#: ../common/controldata_utils.c:112 ../common/controldata_utils.c:117 ../common/controldata_utils.c:256 ../common/controldata_utils.c:259 access/heap/rewriteheap.c:1208 access/heap/rewriteheap.c:1310 access/transam/timeline.c:377 access/transam/timeline.c:421 access/transam/timeline.c:499 access/transam/twophase.c:1305 access/transam/twophase.c:1728 access/transam/xlog.c:3327 access/transam/xlog.c:3495 access/transam/xlog.c:3500
-#: access/transam/xlog.c:3797 access/transam/xlog.c:4572 access/transam/xlog.c:5532 access/transam/xlogfuncs.c:688 commands/copy.c:1814 libpq/be-fsstubs.c:462 libpq/be-fsstubs.c:535 replication/logical/origin.c:656 replication/logical/origin.c:795 replication/logical/reorderbuffer.c:3370 replication/logical/snapbuild.c:1658 replication/logical/snapbuild.c:1856 replication/slot.c:1322 replication/slot.c:1478 replication/walsender.c:528
-#: storage/file/copydir.c:218 storage/file/copydir.c:223 storage/file/fd.c:654 storage/file/fd.c:3308 storage/file/fd.c:3411 utils/cache/relmapper.c:753 utils/cache/relmapper.c:892
+#: ../common/controldata_utils.c:112 ../common/controldata_utils.c:117 ../common/controldata_utils.c:256 ../common/controldata_utils.c:259 access/heap/rewriteheap.c:1181 access/heap/rewriteheap.c:1284 access/transam/timeline.c:392 access/transam/timeline.c:438 access/transam/timeline.c:516 access/transam/twophase.c:1288 access/transam/twophase.c:1676 access/transam/xlog.c:3375 access/transam/xlog.c:3543 access/transam/xlog.c:3548 access/transam/xlog.c:3876
+#: access/transam/xlog.c:4698 access/transam/xlog.c:5622 access/transam/xlogfuncs.c:687 commands/copy.c:1810 libpq/be-fsstubs.c:462 libpq/be-fsstubs.c:533 replication/logical/origin.c:655 replication/logical/origin.c:794 replication/logical/reorderbuffer.c:3657 replication/logical/snapbuild.c:1653 replication/logical/snapbuild.c:1851 replication/slot.c:1513 replication/slot.c:1674 replication/walsender.c:558 storage/file/copydir.c:218 storage/file/copydir.c:223
+#: storage/file/fd.c:704 storage/file/fd.c:3425 storage/file/fd.c:3528 utils/cache/relmapper.c:753 utils/cache/relmapper.c:892
 #, c-format
 msgid "could not close file \"%s\": %m"
 msgstr "n'a pas pu fermer le fichier « %s » : %m"
@@ -66,110 +66,192 @@ msgstr ""
 "résultats ci-dessous sont incorrects, et l'installation de PostgreSQL\n"
 "est incompatible avec ce répertoire des données."
 
-#: ../common/controldata_utils.c:197 ../common/controldata_utils.c:203 ../common/file_utils.c:226 ../common/file_utils.c:285 ../common/file_utils.c:359 access/heap/rewriteheap.c:1293 access/transam/timeline.c:111 access/transam/timeline.c:236 access/transam/timeline.c:333 access/transam/twophase.c:1249 access/transam/xlog.c:3229 access/transam/xlog.c:3369 access/transam/xlog.c:3410 access/transam/xlog.c:3608 access/transam/xlog.c:3693
-#: access/transam/xlog.c:3771 access/transam/xlog.c:4592 access/transam/xlogutils.c:708 postmaster/syslogger.c:1489 replication/basebackup.c:529 replication/basebackup.c:1408 replication/logical/origin.c:708 replication/logical/reorderbuffer.c:2308 replication/logical/reorderbuffer.c:2575 replication/logical/reorderbuffer.c:3292 replication/logical/snapbuild.c:1613 replication/logical/snapbuild.c:1717 replication/slot.c:1398
-#: replication/walsender.c:486 replication/walsender.c:2451 storage/file/copydir.c:161 storage/file/fd.c:629 storage/file/fd.c:3295 storage/file/fd.c:3382 storage/smgr/md.c:462 utils/cache/relmapper.c:724 utils/cache/relmapper.c:836 utils/error/elog.c:1861 utils/init/miscinit.c:1269 utils/init/miscinit.c:1404 utils/init/miscinit.c:1481 utils/misc/guc.c:8043 utils/misc/guc.c:8075
+#: ../common/controldata_utils.c:197 ../common/controldata_utils.c:203 ../common/file_utils.c:224 ../common/file_utils.c:283 ../common/file_utils.c:357 access/heap/rewriteheap.c:1267 access/transam/timeline.c:111 access/transam/timeline.c:251 access/transam/timeline.c:348 access/transam/twophase.c:1232 access/transam/xlog.c:3277 access/transam/xlog.c:3417 access/transam/xlog.c:3458 access/transam/xlog.c:3656 access/transam/xlog.c:3741 access/transam/xlog.c:3844
+#: access/transam/xlog.c:4718 access/transam/xlogutils.c:807 postmaster/syslogger.c:1488 replication/basebackup.c:621 replication/basebackup.c:1593 replication/logical/origin.c:707 replication/logical/reorderbuffer.c:2465 replication/logical/reorderbuffer.c:2825 replication/logical/reorderbuffer.c:3579 replication/logical/snapbuild.c:1608 replication/logical/snapbuild.c:1712 replication/slot.c:1594 replication/walsender.c:516 replication/walsender.c:2516
+#: storage/file/copydir.c:161 storage/file/fd.c:679 storage/file/fd.c:3412 storage/file/fd.c:3499 storage/smgr/md.c:475 utils/cache/relmapper.c:724 utils/cache/relmapper.c:836 utils/error/elog.c:1858 utils/init/miscinit.c:1316 utils/init/miscinit.c:1450 utils/init/miscinit.c:1527 utils/misc/guc.c:8252 utils/misc/guc.c:8284
 #, c-format
 msgid "could not open file \"%s\": %m"
 msgstr "n'a pas pu ouvrir le fichier « %s » : %m"
 
-#: ../common/controldata_utils.c:221 ../common/controldata_utils.c:224 access/transam/twophase.c:1701 access/transam/twophase.c:1710 access/transam/xlog.c:10561 access/transam/xlog.c:10599 access/transam/xlog.c:11012 access/transam/xlogfuncs.c:742 postmaster/syslogger.c:1500 postmaster/syslogger.c:1513 utils/cache/relmapper.c:870
+#: ../common/controldata_utils.c:221 ../common/controldata_utils.c:224 access/transam/twophase.c:1649 access/transam/twophase.c:1658 access/transam/xlog.c:10878 access/transam/xlog.c:10916 access/transam/xlog.c:11329 access/transam/xlogfuncs.c:741 postmaster/syslogger.c:1499 postmaster/syslogger.c:1512 utils/cache/relmapper.c:870
 #, c-format
 msgid "could not write file \"%s\": %m"
 msgstr "impossible d'écrire le fichier « %s » : %m"
 
-#: ../common/controldata_utils.c:239 ../common/controldata_utils.c:245 ../common/file_utils.c:297 ../common/file_utils.c:367 access/heap/rewriteheap.c:981 access/heap/rewriteheap.c:1202 access/heap/rewriteheap.c:1304 access/transam/timeline.c:415 access/transam/timeline.c:493 access/transam/twophase.c:1722 access/transam/xlog.c:3320 access/transam/xlog.c:3489 access/transam/xlog.c:4565 access/transam/xlog.c:10079 access/transam/xlog.c:10105
-#: replication/logical/snapbuild.c:1651 replication/slot.c:1312 replication/slot.c:1408 storage/file/fd.c:646 storage/file/fd.c:3403 storage/smgr/md.c:885 storage/smgr/md.c:918 storage/sync/sync.c:395 utils/cache/relmapper.c:885 utils/misc/guc.c:7826
+#: ../common/controldata_utils.c:239 ../common/controldata_utils.c:245 ../common/file_utils.c:295 ../common/file_utils.c:365 access/heap/rewriteheap.c:961 access/heap/rewriteheap.c:1175 access/heap/rewriteheap.c:1278 access/transam/timeline.c:432 access/transam/timeline.c:510 access/transam/twophase.c:1670 access/transam/xlog.c:3368 access/transam/xlog.c:3537 access/transam/xlog.c:4691 access/transam/xlog.c:10386 access/transam/xlog.c:10413
+#: replication/logical/snapbuild.c:1646 replication/slot.c:1499 replication/slot.c:1604 storage/file/fd.c:696 storage/file/fd.c:3520 storage/smgr/md.c:921 storage/smgr/md.c:962 storage/sync/sync.c:396 utils/cache/relmapper.c:885 utils/misc/guc.c:8035
 #, c-format
 msgid "could not fsync file \"%s\": %m"
 msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier « %s » : %m"
 
-#: ../common/exec.c:138 ../common/exec.c:255 ../common/exec.c:301
+#: ../common/exec.c:137 ../common/exec.c:254 ../common/exec.c:300
 #, c-format
 msgid "could not identify current directory: %m"
 msgstr "n'a pas pu identifier le répertoire courant : %m"
 
-#: ../common/exec.c:157
+#: ../common/exec.c:156
 #, c-format
 msgid "invalid binary \"%s\""
 msgstr "binaire « %s » invalide"
 
-#: ../common/exec.c:207
+#: ../common/exec.c:206
 #, c-format
 msgid "could not read binary \"%s\""
 msgstr "n'a pas pu lire le binaire « %s »"
 
-#: ../common/exec.c:215
+#: ../common/exec.c:214
 #, c-format
 msgid "could not find a \"%s\" to execute"
 msgstr "n'a pas pu trouver un « %s » à exécuter"
 
-#: ../common/exec.c:271 ../common/exec.c:310 utils/init/miscinit.c:220
+#: ../common/exec.c:270 ../common/exec.c:309 utils/init/miscinit.c:395
 #, c-format
 msgid "could not change directory to \"%s\": %m"
 msgstr "n'a pas pu modifier le répertoire par « %s » : %m"
 
-#: ../common/exec.c:288 access/transam/xlog.c:10434 replication/basebackup.c:1246 utils/adt/misc.c:324
+#: ../common/exec.c:287 access/transam/xlog.c:10750 replication/basebackup.c:1418 utils/adt/misc.c:337
 #, c-format
 msgid "could not read symbolic link \"%s\": %m"
 msgstr "n'a pas pu lire le lien symbolique « %s » : %m"
 
-#: ../common/exec.c:541
+#: ../common/exec.c:410
 #, c-format
 msgid "pclose failed: %m"
 msgstr "échec de pclose : %m"
 
-#: ../common/exec.c:670 ../common/exec.c:715 ../common/exec.c:807 ../common/psprintf.c:143 ../port/path.c:630 ../port/path.c:668 ../port/path.c:685 access/transam/twophase.c:1394 access/transam/xlog.c:6359 lib/dshash.c:246 lib/stringinfo.c:283 libpq/auth.c:1092 libpq/auth.c:1482 libpq/auth.c:1550 libpq/auth.c:2068 postmaster/bgworker.c:337 postmaster/bgworker.c:907 postmaster/postmaster.c:2454 postmaster/postmaster.c:2476
-#: postmaster/postmaster.c:4068 postmaster/postmaster.c:4757 postmaster/postmaster.c:4832 postmaster/postmaster.c:5509 postmaster/postmaster.c:5856 replication/libpqwalreceiver/libpqwalreceiver.c:257 replication/logical/logical.c:179 storage/buffer/localbuf.c:436 storage/file/fd.c:795 storage/file/fd.c:1191 storage/file/fd.c:1352 storage/file/fd.c:2161 storage/ipc/procarray.c:1047 storage/ipc/procarray.c:1542 storage/ipc/procarray.c:1549
-#: storage/ipc/procarray.c:1973 storage/ipc/procarray.c:2600 utils/adt/cryptohashes.c:45 utils/adt/cryptohashes.c:65 utils/adt/formatting.c:1604 utils/adt/formatting.c:1728 utils/adt/formatting.c:1853 utils/adt/pg_locale.c:473 utils/adt/pg_locale.c:637 utils/adt/regexp.c:223 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:448 utils/hash/dynahash.c:557 utils/hash/dynahash.c:1069 utils/mb/mbutils.c:365 utils/mb/mbutils.c:698 utils/misc/guc.c:4620
-#: utils/misc/guc.c:4636 utils/misc/guc.c:4649 utils/misc/guc.c:7804 utils/misc/tzparser.c:468 utils/mmgr/aset.c:484 utils/mmgr/dsa.c:701 utils/mmgr/dsa.c:723 utils/mmgr/dsa.c:804 utils/mmgr/generation.c:249 utils/mmgr/mcxt.c:796 utils/mmgr/mcxt.c:832 utils/mmgr/mcxt.c:870 utils/mmgr/mcxt.c:908 utils/mmgr/mcxt.c:944 utils/mmgr/mcxt.c:975 utils/mmgr/mcxt.c:1011 utils/mmgr/mcxt.c:1063 utils/mmgr/mcxt.c:1098 utils/mmgr/mcxt.c:1133
-#: utils/mmgr/slab.c:239
+#: ../common/exec.c:539 ../common/exec.c:584 ../common/exec.c:676 ../common/psprintf.c:143 ../common/stringinfo.c:305 ../port/path.c:630 ../port/path.c:668 ../port/path.c:685 access/transam/twophase.c:1341 access/transam/xlog.c:6493 lib/dshash.c:246 libpq/auth.c:1090 libpq/auth.c:1491 libpq/auth.c:1559 libpq/auth.c:2089 libpq/be-secure-gssapi.c:484 postmaster/bgworker.c:336 postmaster/bgworker.c:893 postmaster/postmaster.c:2518 postmaster/postmaster.c:2540
+#: postmaster/postmaster.c:4166 postmaster/postmaster.c:4868 postmaster/postmaster.c:4938 postmaster/postmaster.c:5635 postmaster/postmaster.c:5995 replication/libpqwalreceiver/libpqwalreceiver.c:276 replication/logical/logical.c:176 replication/walsender.c:590 storage/buffer/localbuf.c:442 storage/file/fd.c:834 storage/file/fd.c:1304 storage/file/fd.c:1465 storage/file/fd.c:2270 storage/ipc/procarray.c:1045 storage/ipc/procarray.c:1541
+#: storage/ipc/procarray.c:1548 storage/ipc/procarray.c:1972 storage/ipc/procarray.c:2597 utils/adt/cryptohashes.c:45 utils/adt/cryptohashes.c:65 utils/adt/formatting.c:1698 utils/adt/formatting.c:1822 utils/adt/formatting.c:1947 utils/adt/pg_locale.c:484 utils/adt/pg_locale.c:648 utils/adt/regexp.c:223 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:450 utils/hash/dynahash.c:559 utils/hash/dynahash.c:1071 utils/mb/mbutils.c:401 utils/mb/mbutils.c:428
+#: utils/mb/mbutils.c:757 utils/mb/mbutils.c:783 utils/misc/guc.c:4846 utils/misc/guc.c:4862 utils/misc/guc.c:4875 utils/misc/guc.c:8013 utils/misc/tzparser.c:467 utils/mmgr/aset.c:475 utils/mmgr/dsa.c:701 utils/mmgr/dsa.c:723 utils/mmgr/dsa.c:804 utils/mmgr/generation.c:233 utils/mmgr/mcxt.c:821 utils/mmgr/mcxt.c:857 utils/mmgr/mcxt.c:895 utils/mmgr/mcxt.c:933 utils/mmgr/mcxt.c:969 utils/mmgr/mcxt.c:1000 utils/mmgr/mcxt.c:1036 utils/mmgr/mcxt.c:1088
+#: utils/mmgr/mcxt.c:1123 utils/mmgr/mcxt.c:1158 utils/mmgr/slab.c:235
 #, c-format
 msgid "out of memory"
 msgstr "mémoire épuisée"
 
-#: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75 ../common/fe_memutils.c:98 ../common/psprintf.c:145 ../port/path.c:632 ../port/path.c:670 ../port/path.c:687 utils/misc/ps_status.c:176 utils/misc/ps_status.c:184 utils/misc/ps_status.c:214 utils/misc/ps_status.c:222
+#: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75 ../common/fe_memutils.c:98 ../common/fe_memutils.c:162 ../common/psprintf.c:145 ../port/path.c:632 ../port/path.c:670 ../port/path.c:687 utils/misc/ps_status.c:181 utils/misc/ps_status.c:189 utils/misc/ps_status.c:219 utils/misc/ps_status.c:227
 #, c-format
 msgid "out of memory\n"
 msgstr "mémoire épuisée\n"
 
-#: ../common/fe_memutils.c:92
+#: ../common/fe_memutils.c:92 ../common/fe_memutils.c:154
 #, c-format
 msgid "cannot duplicate null pointer (internal error)\n"
 msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n"
 
-#: ../common/file_utils.c:81 ../common/file_utils.c:183 access/transam/twophase.c:1261 access/transam/xlog.c:10537 access/transam/xlog.c:10575 access/transam/xlog.c:10792 access/transam/xlogarchive.c:104 access/transam/xlogarchive.c:264 commands/copy.c:1944 commands/copy.c:3559 commands/extension.c:3330 commands/tablespace.c:796 commands/tablespace.c:887 guc-file.l:1062 replication/basebackup.c:355 replication/basebackup.c:535
-#: replication/basebackup.c:607 replication/logical/snapbuild.c:1527 storage/file/copydir.c:68 storage/file/copydir.c:107 storage/file/fd.c:1703 storage/file/fd.c:2980 storage/file/fd.c:3162 storage/file/fd.c:3247 utils/adt/dbsize.c:70 utils/adt/dbsize.c:222 utils/adt/dbsize.c:302 utils/adt/genfile.c:133 utils/adt/genfile.c:386
+#: ../common/file_utils.c:79 ../common/file_utils.c:181 access/transam/twophase.c:1244 access/transam/xlog.c:10854 access/transam/xlog.c:10892 access/transam/xlog.c:11109 access/transam/xlogarchive.c:110 access/transam/xlogarchive.c:226 commands/copy.c:1938 commands/copy.c:3505 commands/extension.c:3425 commands/tablespace.c:795 commands/tablespace.c:886 guc-file.l:1061 replication/basebackup.c:444 replication/basebackup.c:627 replication/basebackup.c:700
+#: replication/logical/snapbuild.c:1522 storage/file/copydir.c:68 storage/file/copydir.c:107 storage/file/fd.c:1816 storage/file/fd.c:3096 storage/file/fd.c:3278 storage/file/fd.c:3364 utils/adt/dbsize.c:70 utils/adt/dbsize.c:222 utils/adt/dbsize.c:302 utils/adt/genfile.c:416 utils/adt/genfile.c:642
 #, c-format
 msgid "could not stat file \"%s\": %m"
 msgstr "n'a pas pu tester le fichier « %s » : %m"
 
-#: ../common/file_utils.c:160 ../common/pgfnames.c:48 commands/tablespace.c:719 commands/tablespace.c:729 postmaster/postmaster.c:1474 storage/file/fd.c:2562 storage/file/reinit.c:122 utils/adt/genfile.c:487 utils/adt/genfile.c:565 utils/adt/misc.c:243 utils/misc/tzparser.c:339
+#: ../common/file_utils.c:158 ../common/pgfnames.c:48 commands/tablespace.c:718 commands/tablespace.c:728 postmaster/postmaster.c:1509 storage/file/fd.c:2673 storage/file/reinit.c:122 utils/adt/misc.c:259 utils/misc/tzparser.c:338
 #, c-format
 msgid "could not open directory \"%s\": %m"
 msgstr "n'a pas pu ouvrir le répertoire « %s » : %m"
 
-#: ../common/file_utils.c:194 ../common/pgfnames.c:69 storage/file/fd.c:2574
+#: ../common/file_utils.c:192 ../common/pgfnames.c:69 storage/file/fd.c:2685
 #, c-format
 msgid "could not read directory \"%s\": %m"
 msgstr "n'a pas pu lire le répertoire « %s » : %m"
 
-#: ../common/file_utils.c:377 access/transam/xlogarchive.c:449 postmaster/syslogger.c:1524 replication/logical/snapbuild.c:1670 replication/slot.c:598 replication/slot.c:1210 replication/slot.c:1332 storage/file/fd.c:664 storage/file/fd.c:759 utils/time/snapmgr.c:1350
+#: ../common/file_utils.c:375 access/transam/xlogarchive.c:411 postmaster/syslogger.c:1523 replication/logical/snapbuild.c:1665 replication/slot.c:650 replication/slot.c:1385 replication/slot.c:1527 storage/file/fd.c:714 utils/time/snapmgr.c:1350
 #, c-format
 msgid "could not rename file \"%s\" to \"%s\": %m"
 msgstr "n'a pas pu renommer le fichier « %s » en « %s » : %m"
 
-#: ../common/logging.c:188
+#: ../common/jsonapi.c:1064
+#, c-format
+msgid "Escape sequence \"\\%s\" is invalid."
+msgstr "La séquence d'échappement « \\%s » est invalide."
+
+#: ../common/jsonapi.c:1067
+#, c-format
+msgid "Character with value 0x%02x must be escaped."
+msgstr "Le caractère de valeur 0x%02x doit être échappé."
+
+#: ../common/jsonapi.c:1070
+#, c-format
+msgid "Expected end of input, but found \"%s\"."
+msgstr "Attendait une fin de l'entrée, mais a trouvé « %s »."
+
+#: ../common/jsonapi.c:1073
+#, c-format
+msgid "Expected array element or \"]\", but found \"%s\"."
+msgstr "Élément de tableau ou « ] » attendu, mais trouvé « %s »."
+
+#: ../common/jsonapi.c:1076
+#, c-format
+msgid "Expected \",\" or \"]\", but found \"%s\"."
+msgstr "« , » ou « ] » attendu, mais trouvé « %s »."
+
+#: ../common/jsonapi.c:1079
+#, c-format
+msgid "Expected \":\", but found \"%s\"."
+msgstr "« : » attendu, mais trouvé « %s »."
+
+#: ../common/jsonapi.c:1082
+#, c-format
+msgid "Expected JSON value, but found \"%s\"."
+msgstr "Valeur JSON attendue, mais « %s » trouvé."
+
+#: ../common/jsonapi.c:1085
+msgid "The input string ended unexpectedly."
+msgstr "La chaîne en entrée se ferme de manière inattendue."
+
+#: ../common/jsonapi.c:1087
+#, c-format
+msgid "Expected string or \"}\", but found \"%s\"."
+msgstr "Chaîne ou « } » attendu, mais « %s » trouvé"
+
+#: ../common/jsonapi.c:1090
+#, c-format
+msgid "Expected \",\" or \"}\", but found \"%s\"."
+msgstr "« , » ou « } » attendu, mais trouvé « %s »."
+
+#: ../common/jsonapi.c:1093
+#, c-format
+msgid "Expected string, but found \"%s\"."
+msgstr "Chaîne attendue, mais « %s » trouvé."
+
+#: ../common/jsonapi.c:1096
+#, c-format
+msgid "Token \"%s\" is invalid."
+msgstr "Le jeton « %s » n'est pas valide."
+
+#: ../common/jsonapi.c:1099 jsonpath_scan.l:499
+#, c-format
+msgid "\\u0000 cannot be converted to text."
+msgstr "\\u0000 ne peut pas être converti en texte."
+
+#: ../common/jsonapi.c:1101
+msgid "\"\\u\" must be followed by four hexadecimal digits."
+msgstr "« \\u » doit être suivi par quatre chiffres hexadécimaux."
+
+#: ../common/jsonapi.c:1104
+msgid "Unicode escape values cannot be used for code point values above 007F when the encoding is not UTF8."
+msgstr "les valeurs d'échappement Unicode ne peuvent pas être utilisées pour des valeurs de point code au-dessus de 007F quand l'encodage n'est pas UTF8."
+
+#: ../common/jsonapi.c:1106 jsonpath_scan.l:520
+#, c-format
+msgid "Unicode high surrogate must not follow a high surrogate."
+msgstr "Une substitution unicode haute ne doit pas suivre une substitution haute."
+
+#: ../common/jsonapi.c:1108 jsonpath_scan.l:531 jsonpath_scan.l:541 jsonpath_scan.l:583
+#, c-format
+msgid "Unicode low surrogate must follow a high surrogate."
+msgstr "Une substitution unicode basse ne doit pas suivre une substitution haute."
+
+#: ../common/logging.c:236
 #, c-format
 msgid "fatal: "
 msgstr "fatal : "
 
-#: ../common/logging.c:195
+#: ../common/logging.c:243
 #, c-format
 msgid "error: "
 msgstr "erreur : "
 
-#: ../common/logging.c:202
+#: ../common/logging.c:250
 #, c-format
 msgid "warning: "
 msgstr "attention : "
@@ -179,52 +261,57 @@ msgstr "attention : "
 msgid "could not close directory \"%s\": %m"
 msgstr "n'a pas pu fermer le répertoire « %s » : %m"
 
-#: ../common/relpath.c:58
+#: ../common/relpath.c:61
 #, c-format
 msgid "invalid fork name"
 msgstr "nom du fork invalide"
 
-#: ../common/relpath.c:59
+#: ../common/relpath.c:62
 #, c-format
 msgid "Valid fork names are \"main\", \"fsm\", \"vm\", and \"init\"."
 msgstr "Les noms de fork valides sont « main », « fsm », « vm » et « init »."
 
-#: ../common/restricted_token.c:69
+#: ../common/restricted_token.c:64 libpq/auth.c:1521 libpq/auth.c:2520
+#, c-format
+msgid "could not load library \"%s\": error code %lu"
+msgstr "n'a pas pu charger la bibliothèque « %s » : code d'erreur %lu"
+
+#: ../common/restricted_token.c:73
 #, c-format
-msgid "cannot create restricted tokens on this platform"
-msgstr "ne peut pas créer les jetons restreints sur cette plateforme"
+msgid "cannot create restricted tokens on this platform: error code %lu"
+msgstr "ne peut pas créer les jetons restreints sur cette plateforme : code d'erreur %lu"
 
-#: ../common/restricted_token.c:78
+#: ../common/restricted_token.c:82
 #, c-format
 msgid "could not open process token: error code %lu"
 msgstr "n'a pas pu ouvrir le jeton du processus : code d'erreur %lu"
 
-#: ../common/restricted_token.c:91
+#: ../common/restricted_token.c:97
 #, c-format
 msgid "could not allocate SIDs: error code %lu"
 msgstr "n'a pas pu allouer les SID : code d'erreur %lu"
 
-#: ../common/restricted_token.c:110
+#: ../common/restricted_token.c:119
 #, c-format
 msgid "could not create restricted token: error code %lu"
 msgstr "n'a pas pu créer le jeton restreint : code d'erreur %lu"
 
-#: ../common/restricted_token.c:131
+#: ../common/restricted_token.c:140
 #, c-format
 msgid "could not start process for command \"%s\": error code %lu"
 msgstr "n'a pas pu démarrer le processus pour la commande « %s » : code d'erreur %lu"
 
-#: ../common/restricted_token.c:169
+#: ../common/restricted_token.c:178
 #, c-format
 msgid "could not re-execute with restricted token: error code %lu"
 msgstr "n'a pas pu ré-exécuter le jeton restreint : code d'erreur %lu"
 
-#: ../common/restricted_token.c:185
+#: ../common/restricted_token.c:194
 #, c-format
 msgid "could not get exit code from subprocess: error code %lu"
 msgstr "n'a pas pu récupérer le code de statut du sous-processus : code d'erreur %lu"
 
-#: ../common/rmtree.c:79 replication/basebackup.c:1005 replication/basebackup.c:1175
+#: ../common/rmtree.c:79 replication/basebackup.c:1171 replication/basebackup.c:1347
 #, c-format
 msgid "could not stat file or directory \"%s\": %m"
 msgstr ""
@@ -236,17 +323,31 @@ msgstr ""
 msgid "could not remove file or directory \"%s\": %m"
 msgstr "n'a pas pu supprimer le fichier ou répertoire « %s » : %m"
 
-#: ../common/saslprep.c:1093
+#: ../common/saslprep.c:1087
 #, c-format
 msgid "password too long"
 msgstr "mot de passe trop long"
 
+#: ../common/stringinfo.c:306
+#, c-format
+msgid "Cannot enlarge string buffer containing %d bytes by %d more bytes."
+msgstr "Ne peut pas agrandir le tampon de chaîne, qui contient %d octets, de %d octets."
+
+#: ../common/stringinfo.c:310
+#, fuzzy, c-format
+#| msgid "Cannot enlarge string buffer containing %d bytes by %d more bytes."
+msgid ""
+"out of memory\n"
+"\n"
+"Cannot enlarge string buffer containing %d bytes by %d more bytes.\n"
+msgstr "Ne peut pas agrandir le tampon de chaîne, qui contient %d octets, de %d octets."
+
 #: ../common/username.c:43
 #, c-format
 msgid "could not look up effective user ID %ld: %s"
 msgstr "n'a pas pu trouver l'identifiant réel %ld de l'utilisateur : %s"
 
-#: ../common/username.c:45 libpq/auth.c:2015
+#: ../common/username.c:45 libpq/auth.c:2027
 msgid "user does not exist"
 msgstr "l'utilisateur n'existe pas"
 
@@ -285,12 +386,12 @@ msgstr "le processus fils a été terminé par le signal %d : %s"
 msgid "child process exited with unrecognized status %d"
 msgstr "le processus fils a quitté avec un statut %d non reconnu"
 
-#: ../port/chklocale.c:288
+#: ../port/chklocale.c:307
 #, c-format
 msgid "could not determine encoding for codeset \"%s\""
 msgstr "n'a pas pu déterminer l'encodage pour le codeset « %s »"
 
-#: ../port/chklocale.c:409 ../port/chklocale.c:415
+#: ../port/chklocale.c:428 ../port/chklocale.c:434
 #, c-format
 msgid "could not determine encoding for locale \"%s\": codeset is \"%s\""
 msgstr "n'a pas pu déterminer l'encodage pour la locale « %s » : le codeset vaut « %s »"
@@ -315,25 +416,25 @@ msgstr "n'a pas pu obtenir la jonction pour « %s » : %s"
 msgid "could not get junction for \"%s\": %s\n"
 msgstr "n'a pas pu obtenir la jonction pour « %s » : %s\n"
 
-#: ../port/open.c:128
+#: ../port/open.c:126
 #, c-format
 msgid "could not open file \"%s\": %s"
 msgstr "n'a pas pu ouvrir le fichier « %s » : %s"
 
-#: ../port/open.c:129
+#: ../port/open.c:127
 msgid "lock violation"
 msgstr "violation du verrou"
 
-#: ../port/open.c:129
+#: ../port/open.c:127
 msgid "sharing violation"
 msgstr "violation du partage"
 
-#: ../port/open.c:130
+#: ../port/open.c:128
 #, c-format
 msgid "Continuing to retry for 30 seconds."
 msgstr "Continue à tenter pendant 30 secondes."
 
-#: ../port/open.c:131
+#: ../port/open.c:129
 #, c-format
 msgid "You might have antivirus, backup, or similar software interfering with the database system."
 msgstr ""
@@ -367,216 +468,229 @@ msgstr ""
 msgid "could not check access token membership: error code %lu\n"
 msgstr "n'a pas pu vérifier l'appartenance du jeton d'accès : code d'erreur %lu\n"
 
-#: access/brin/brin.c:204
+#: access/brin/brin.c:210
 #, c-format
 msgid "request for BRIN range summarization for index \"%s\" page %u was not recorded"
 msgstr "requête de résumé d'intervalle BRIN pour la page « %s » de l'index « %u » n'a pas été enregistrée"
 
-#: access/brin/brin.c:881 access/brin/brin.c:958 access/gin/ginfast.c:1041 access/transam/xlog.c:10214 access/transam/xlog.c:10743 access/transam/xlogfuncs.c:289 access/transam/xlogfuncs.c:316 access/transam/xlogfuncs.c:355 access/transam/xlogfuncs.c:376 access/transam/xlogfuncs.c:397 access/transam/xlogfuncs.c:467 access/transam/xlogfuncs.c:524
+#: access/brin/brin.c:873 access/brin/brin.c:950 access/gin/ginfast.c:1035 access/transam/xlog.c:10522 access/transam/xlog.c:11060 access/transam/xlogfuncs.c:274 access/transam/xlogfuncs.c:301 access/transam/xlogfuncs.c:340 access/transam/xlogfuncs.c:361 access/transam/xlogfuncs.c:382 access/transam/xlogfuncs.c:452 access/transam/xlogfuncs.c:509
 #, c-format
 msgid "recovery is in progress"
 msgstr "restauration en cours"
 
-#: access/brin/brin.c:882 access/brin/brin.c:959
+#: access/brin/brin.c:874 access/brin/brin.c:951
 #, c-format
 msgid "BRIN control functions cannot be executed during recovery."
 msgstr "Les fonctions de contrôle BRIN ne peuvent pas être exécutées pendant la restauration."
 
-#: access/brin/brin.c:890 access/brin/brin.c:967
+#: access/brin/brin.c:882 access/brin/brin.c:959
 #, c-format
 msgid "block number out of range: %s"
 msgstr "numéro de bloc en dehors des limites : %s"
 
-#: access/brin/brin.c:913 access/brin/brin.c:990
+#: access/brin/brin.c:905 access/brin/brin.c:982
 #, c-format
 msgid "\"%s\" is not a BRIN index"
 msgstr "« %s » n'est pas un index BRIN"
 
-#: access/brin/brin.c:929 access/brin/brin.c:1006
+#: access/brin/brin.c:921 access/brin/brin.c:998
 #, c-format
 msgid "could not open parent table of index %s"
 msgstr "n'a pas pu ouvrir la table parent de l'index %s"
 
-#: access/brin/brin_pageops.c:77 access/brin/brin_pageops.c:363 access/brin/brin_pageops.c:844 access/gin/ginentrypage.c:110 access/gist/gist.c:1435 access/spgist/spgdoinsert.c:1957
+#: access/brin/brin_pageops.c:76 access/brin/brin_pageops.c:362 access/brin/brin_pageops.c:843 access/gin/ginentrypage.c:110 access/gist/gist.c:1435 access/spgist/spgdoinsert.c:1957
 #, c-format
 msgid "index row size %zu exceeds maximum %zu for index \"%s\""
 msgstr "la taille de la ligne index, %zu, dépasse le maximum, %zu, pour l'index « %s »"
 
-#: access/brin/brin_revmap.c:382 access/brin/brin_revmap.c:388
+#: access/brin/brin_revmap.c:392 access/brin/brin_revmap.c:398
 #, c-format
 msgid "corrupted BRIN index: inconsistent range map"
 msgstr "index BRIN corrompu : carte d'intervalle incohérente"
 
-#: access/brin/brin_revmap.c:404
-#, c-format
-msgid "leftover placeholder tuple detected in BRIN index \"%s\", deleting"
-msgstr "reste d'espace de ligne réservé dans l'index BRIN « %s », suppression"
-
 #: access/brin/brin_revmap.c:601
 #, c-format
 msgid "unexpected page type 0x%04X in BRIN index \"%s\" block %u"
 msgstr "type de page 0x%04X dans l'index BRIN « %s », bloc %u"
 
-#: access/brin/brin_validate.c:116 access/gin/ginvalidate.c:149 access/gist/gistvalidate.c:146 access/hash/hashvalidate.c:132 access/nbtree/nbtvalidate.c:110 access/spgist/spgvalidate.c:165
+#: access/brin/brin_validate.c:118 access/gin/ginvalidate.c:151 access/gist/gistvalidate.c:149 access/hash/hashvalidate.c:136 access/nbtree/nbtvalidate.c:117 access/spgist/spgvalidate.c:168
 #, c-format
 msgid "operator family \"%s\" of access method %s contains function %s with invalid support number %d"
 msgstr ""
 "la famille d'opérateur « %s » de la méthode d'accès %s contient la fonction %s avec\n"
 "le numéro de support invalide %d"
 
-#: access/brin/brin_validate.c:132 access/gin/ginvalidate.c:161 access/gist/gistvalidate.c:158 access/hash/hashvalidate.c:115 access/nbtree/nbtvalidate.c:122 access/spgist/spgvalidate.c:177
+#: access/brin/brin_validate.c:134 access/gin/ginvalidate.c:163 access/gist/gistvalidate.c:161 access/hash/hashvalidate.c:115 access/nbtree/nbtvalidate.c:129 access/spgist/spgvalidate.c:180
 #, c-format
 msgid "operator family \"%s\" of access method %s contains function %s with wrong signature for support number %d"
 msgstr ""
 "la famille d'opérateur « %s » de la méthode d'accès %s contient la fonction %s avec une mauvaise\n"
 "signature pour le numéro de support %d"
 
-#: access/brin/brin_validate.c:154 access/gin/ginvalidate.c:180 access/gist/gistvalidate.c:178 access/hash/hashvalidate.c:153 access/nbtree/nbtvalidate.c:142 access/spgist/spgvalidate.c:197
+#: access/brin/brin_validate.c:156 access/gin/ginvalidate.c:182 access/gist/gistvalidate.c:181 access/hash/hashvalidate.c:157 access/nbtree/nbtvalidate.c:149 access/spgist/spgvalidate.c:200
 #, c-format
 msgid "operator family \"%s\" of access method %s contains operator %s with invalid strategy number %d"
 msgstr ""
 "la famille d'opérateur « %s » de la méthode d'accès %s contient l'opérateur %s avec le numéro\n"
 "de stratégie invalide %d"
 
-#: access/brin/brin_validate.c:183 access/gin/ginvalidate.c:193 access/hash/hashvalidate.c:166 access/nbtree/nbtvalidate.c:155 access/spgist/spgvalidate.c:213
+#: access/brin/brin_validate.c:185 access/gin/ginvalidate.c:195 access/hash/hashvalidate.c:170 access/nbtree/nbtvalidate.c:162 access/spgist/spgvalidate.c:216
 #, c-format
 msgid "operator family \"%s\" of access method %s contains invalid ORDER BY specification for operator %s"
 msgstr ""
 "la famille d'opérateur « %s » de la méthode d'accès %s contient la spécification ORDER BY\n"
 "invalide pour l'opérateur %s"
 
-#: access/brin/brin_validate.c:196 access/gin/ginvalidate.c:206 access/gist/gistvalidate.c:226 access/hash/hashvalidate.c:179 access/nbtree/nbtvalidate.c:168 access/spgist/spgvalidate.c:229
+#: access/brin/brin_validate.c:198 access/gin/ginvalidate.c:208 access/gist/gistvalidate.c:229 access/hash/hashvalidate.c:183 access/nbtree/nbtvalidate.c:175 access/spgist/spgvalidate.c:232
 #, c-format
 msgid "operator family \"%s\" of access method %s contains operator %s with wrong signature"
 msgstr "la famille d'opérateur « %s » de la méthode d'accès %s contient l'opérateur %s avec une mauvaise signature"
 
-#: access/brin/brin_validate.c:234 access/hash/hashvalidate.c:219 access/nbtree/nbtvalidate.c:226 access/spgist/spgvalidate.c:256
+#: access/brin/brin_validate.c:236 access/hash/hashvalidate.c:223 access/nbtree/nbtvalidate.c:233 access/spgist/spgvalidate.c:259
 #, c-format
 msgid "operator family \"%s\" of access method %s is missing operator(s) for types %s and %s"
 msgstr ""
 "la famille d'opérateur « %s » de la méthode d'accès %s nécessite des opérateurs supplémentaires\n"
 "pour les types %s et %s"
 
-#: access/brin/brin_validate.c:244
+#: access/brin/brin_validate.c:246
 #, c-format
 msgid "operator family \"%s\" of access method %s is missing support function(s) for types %s and %s"
 msgstr ""
 "la famille d'opérateur « %s » de la méthode d'accès %s nécessite des fonctions de support\n"
 "manquantes pour les types %s et %s"
 
-#: access/brin/brin_validate.c:257 access/hash/hashvalidate.c:233 access/nbtree/nbtvalidate.c:250 access/spgist/spgvalidate.c:289
+#: access/brin/brin_validate.c:259 access/hash/hashvalidate.c:237 access/nbtree/nbtvalidate.c:257 access/spgist/spgvalidate.c:294
 #, c-format
 msgid "operator class \"%s\" of access method %s is missing operator(s)"
 msgstr "il manque un ou des opérateurs à la classe d'opérateur « %s » de la méthode d'accès %s"
 
-#: access/brin/brin_validate.c:268 access/gin/ginvalidate.c:247 access/gist/gistvalidate.c:266
+#: access/brin/brin_validate.c:270 access/gin/ginvalidate.c:250 access/gist/gistvalidate.c:270
 #, c-format
 msgid "operator class \"%s\" of access method %s is missing support function %d"
 msgstr "la classe d'opérateur « %s » de la méthode d'accès %s nécessite la fonction de support manquante %d"
 
+#: access/common/attmap.c:122
+#, c-format
+msgid "Returned type %s does not match expected type %s in column %d."
+msgstr "Le type %s renvoyé ne correspond pas au type %s attendu dans la colonne %d."
+
+#: access/common/attmap.c:150
+#, c-format
+msgid "Number of returned columns (%d) does not match expected column count (%d)."
+msgstr ""
+"Le nombre de colonnes renvoyées (%d) ne correspond pas au nombre de colonnes\n"
+"attendues (%d)."
+
+#: access/common/attmap.c:229 access/common/attmap.c:241
+#, c-format
+msgid "could not convert row type"
+msgstr "n'a pas pu convertir le type de ligne"
+
+#: access/common/attmap.c:230
+#, c-format
+msgid "Attribute \"%s\" of type %s does not match corresponding attribute of type %s."
+msgstr "L'attribut « %s » du type %s ne correspond pas à l'attribut correspondant de type %s."
+
+#: access/common/attmap.c:242
+#, c-format
+msgid "Attribute \"%s\" of type %s does not exist in type %s."
+msgstr "L'attribut « %s » du type %s n'existe pas dans le type %s."
+
 #: access/common/heaptuple.c:1036 access/common/heaptuple.c:1371
 #, c-format
 msgid "number of columns (%d) exceeds limit (%d)"
 msgstr "le nombre de colonnes (%d) dépasse la limite (%d)"
 
-#: access/common/indextuple.c:63
+#: access/common/indextuple.c:70
 #, c-format
 msgid "number of index columns (%d) exceeds limit (%d)"
 msgstr "le nombre de colonnes indexées (%d) dépasse la limite (%d)"
 
-#: access/common/indextuple.c:179 access/spgist/spgutils.c:691
+#: access/common/indextuple.c:187 access/spgist/spgutils.c:703
 #, c-format
 msgid "index row requires %zu bytes, maximum size is %zu"
 msgstr "la ligne index requiert %zu octets, la taille maximum est %zu"
 
-#: access/common/printtup.c:369 tcop/fastpath.c:180 tcop/fastpath.c:530 tcop/postgres.c:1834
+#: access/common/printtup.c:369 tcop/fastpath.c:180 tcop/fastpath.c:530 tcop/postgres.c:1904
 #, c-format
 msgid "unsupported format code: %d"
 msgstr "code de format non supporté : %d"
 
-#: access/common/reloptions.c:579
+#: access/common/reloptions.c:506
+msgid "Valid values are \"on\", \"off\", and \"auto\"."
+msgstr "Les valeurs valides sont entre « on », « off » et « auto »."
+
+#: access/common/reloptions.c:517
+msgid "Valid values are \"local\" and \"cascaded\"."
+msgstr "Les valeurs valides sont entre « local » et « cascaded »."
+
+#: access/common/reloptions.c:665
 #, c-format
 msgid "user-defined relation parameter types limit exceeded"
 msgstr "limite dépassée des types de paramètres de la relation définie par l'utilisateur"
 
-#: access/common/reloptions.c:867
+#: access/common/reloptions.c:1208
 #, c-format
 msgid "RESET must not include values for parameters"
 msgstr "RESET ne doit pas inclure de valeurs pour les paramètres"
 
-#: access/common/reloptions.c:899
+#: access/common/reloptions.c:1240
 #, c-format
 msgid "unrecognized parameter namespace \"%s\""
 msgstr "espace de nom du paramètre « %s » non reconnu"
 
-#: access/common/reloptions.c:936 utils/misc/guc.c:11710
+#: access/common/reloptions.c:1277 utils/misc/guc.c:12004
 #, c-format
 msgid "tables declared WITH OIDS are not supported"
 msgstr "les tables avec WITH OIDS ne sont pas supportées"
 
-#: access/common/reloptions.c:1154
+#: access/common/reloptions.c:1447
 #, c-format
 msgid "unrecognized parameter \"%s\""
 msgstr "paramètre « %s » non reconnu"
 
-#: access/common/reloptions.c:1184
+#: access/common/reloptions.c:1559
 #, c-format
 msgid "parameter \"%s\" specified more than once"
 msgstr "le paramètre « %s » est spécifié plus d'une fois"
 
-#: access/common/reloptions.c:1200
+#: access/common/reloptions.c:1575
 #, c-format
 msgid "invalid value for boolean option \"%s\": %s"
 msgstr "valeur invalide pour l'option booléenne « %s » : %s"
 
-#: access/common/reloptions.c:1212
+#: access/common/reloptions.c:1587
 #, c-format
 msgid "invalid value for integer option \"%s\": %s"
 msgstr "valeur invalide pour l'option de type integer « %s » : %s"
 
-#: access/common/reloptions.c:1218 access/common/reloptions.c:1238
+#: access/common/reloptions.c:1593 access/common/reloptions.c:1613
 #, c-format
 msgid "value %s out of bounds for option \"%s\""
 msgstr "valeur %s en dehors des limites pour l'option « %s »"
 
-#: access/common/reloptions.c:1220
+#: access/common/reloptions.c:1595
 #, c-format
 msgid "Valid values are between \"%d\" and \"%d\"."
 msgstr "Les valeurs valides sont entre « %d » et « %d »."
 
-#: access/common/reloptions.c:1232
+#: access/common/reloptions.c:1607
 #, c-format
 msgid "invalid value for floating point option \"%s\": %s"
 msgstr "valeur invalide pour l'option de type float « %s » : %s"
 
-#: access/common/reloptions.c:1240
+#: access/common/reloptions.c:1615
 #, c-format
 msgid "Valid values are between \"%f\" and \"%f\"."
 msgstr "Les valeurs valides sont entre « %f » et « %f »."
 
-#: access/common/tupconvert.c:107
+#: access/common/reloptions.c:1637
 #, c-format
-msgid "Returned type %s does not match expected type %s in column %d."
-msgstr "Le type %s renvoyé ne correspond pas au type %s attendu dans la colonne %d."
-
-#: access/common/tupconvert.c:135
-#, c-format
-msgid "Number of returned columns (%d) does not match expected column count (%d)."
-msgstr ""
-"Le nombre de colonnes renvoyées (%d) ne correspond pas au nombre de colonnes\n"
-"attendues (%d)."
-
-#: access/common/tupconvert.c:303
-#, c-format
-msgid "Attribute \"%s\" of type %s does not match corresponding attribute of type %s."
-msgstr "L'attribut « %s » du type %s ne correspond pas à l'attribut correspondant de type %s."
-
-#: access/common/tupconvert.c:315
-#, c-format
-msgid "Attribute \"%s\" of type %s does not exist in type %s."
-msgstr "L'attribut « %s » du type %s n'existe pas dans le type %s."
+msgid "invalid value for enum option \"%s\": %s"
+msgstr "valeur invalide pour l'option enum « %s » : %s"
 
-#: access/common/tupdesc.c:842 parser/parse_clause.c:779 parser/parse_relation.c:1578
+#: access/common/tupdesc.c:842 parser/parse_clause.c:772 parser/parse_relation.c:1803
 #, c-format
 msgid "column \"%s\" cannot be declared SETOF"
 msgstr "la colonne « %s » ne peut pas être déclarée SETOF"
@@ -591,82 +705,72 @@ msgstr "la posting list est trop longue"
 msgid "Reduce maintenance_work_mem."
 msgstr "Réduisez le maintenance_work_mem."
 
-#: access/gin/ginfast.c:1042
+#: access/gin/ginfast.c:1036
 #, c-format
 msgid "GIN pending list cannot be cleaned up during recovery."
 msgstr "la pending list GIN ne peut pas être nettoyée lors de la restauration."
 
-#: access/gin/ginfast.c:1049
+#: access/gin/ginfast.c:1043
 #, c-format
 msgid "\"%s\" is not a GIN index"
 msgstr "« %s » n'est pas un index GIN"
 
-#: access/gin/ginfast.c:1060
+#: access/gin/ginfast.c:1054
 #, c-format
 msgid "cannot access temporary indexes of other sessions"
 msgstr "ne peut pas accéder aux index temporaires d'autres sessions"
 
-#: access/gin/ginscan.c:402
+#: access/gin/ginget.c:270 access/nbtree/nbtinsert.c:745
+#, c-format
+msgid "failed to re-find tuple within index \"%s\""
+msgstr "échec pour retrouver la ligne dans l'index « %s »"
+
+#: access/gin/ginscan.c:431
 #, c-format
 msgid "old GIN indexes do not support whole-index scans nor searches for nulls"
 msgstr ""
 "les anciens index GIN ne supportent pas les parcours complets d'index et les\n"
 "recherches de valeurs NULL"
 
-#: access/gin/ginscan.c:403
+#: access/gin/ginscan.c:432
 #, c-format
 msgid "To fix this, do REINDEX INDEX \"%s\"."
 msgstr "Pour corriger ceci, faites un REINDEX INDEX « %s »."
 
-#: access/gin/ginutil.c:139 executor/execExpr.c:1860 utils/adt/arrayfuncs.c:3789 utils/adt/arrayfuncs.c:6416 utils/adt/rowtypes.c:936
+#: access/gin/ginutil.c:144 executor/execExpr.c:1862 utils/adt/arrayfuncs.c:3790 utils/adt/arrayfuncs.c:6418 utils/adt/rowtypes.c:936
 #, c-format
 msgid "could not identify a comparison function for type %s"
 msgstr "n'a pas pu identifier une fonction de comparaison pour le type %s"
 
-#: access/gin/ginvalidate.c:93 access/gist/gistvalidate.c:93 access/hash/hashvalidate.c:99 access/spgist/spgvalidate.c:99
+#: access/gin/ginvalidate.c:92 access/gist/gistvalidate.c:93 access/hash/hashvalidate.c:99 access/spgist/spgvalidate.c:99
 #, c-format
 msgid "operator family \"%s\" of access method %s contains support function %s with different left and right input types"
 msgstr ""
 "la famille d'opérateur « %s » de la méthode d'accès %s contient la fonction de support\n"
 "%s avec des types en entrée gauche et droite différents"
 
-#: access/gin/ginvalidate.c:257
+#: access/gin/ginvalidate.c:260
 #, c-format
 msgid "operator class \"%s\" of access method %s is missing support function %d or %d"
 msgstr "la classe d'opérateur « %s » de la méthode d'accès %s nécessite la fonction de support manquante %d ou %d"
 
-#: access/gist/gist.c:749 access/gist/gistvacuum.c:424
+#: access/gist/gist.c:753 access/gist/gistvacuum.c:408
 #, c-format
 msgid "index \"%s\" contains an inner tuple marked as invalid"
 msgstr "l'index « %s » contient une ligne interne marquée comme invalide"
 
-#: access/gist/gist.c:751 access/gist/gistvacuum.c:426
+#: access/gist/gist.c:755 access/gist/gistvacuum.c:410
 #, c-format
 msgid "This is caused by an incomplete page split at crash recovery before upgrading to PostgreSQL 9.1."
 msgstr ""
 "Ceci est dû à la division d'une page incomplète à la restauration suite à un\n"
 "crash avant la mise à jour en 9.1."
 
-#: access/gist/gist.c:752 access/gist/gistutil.c:787 access/gist/gistutil.c:798 access/gist/gistvacuum.c:427 access/hash/hashutil.c:241 access/hash/hashutil.c:252 access/hash/hashutil.c:264 access/hash/hashutil.c:285 access/nbtree/nbtpage.c:708 access/nbtree/nbtpage.c:719
+#: access/gist/gist.c:756 access/gist/gistutil.c:786 access/gist/gistutil.c:797 access/gist/gistvacuum.c:411 access/hash/hashutil.c:227 access/hash/hashutil.c:238 access/hash/hashutil.c:250 access/hash/hashutil.c:271 access/nbtree/nbtpage.c:741 access/nbtree/nbtpage.c:752
 #, c-format
 msgid "Please REINDEX it."
 msgstr "Merci d'exécuter REINDEX sur cet objet."
 
-#: access/gist/gistbuild.c:253
-#, c-format
-msgid "invalid value for \"buffering\" option"
-msgstr "valeur invalide pour l'option « buffering »"
-
-#: access/gist/gistbuild.c:254
-#, c-format
-msgid "Valid values are \"on\", \"off\", and \"auto\"."
-msgstr "Les valeurs valides sont entre « on », « off » et « auto »."
-
-#: access/gist/gistbuildbuffers.c:779 utils/sort/logtape.c:255
-#, c-format
-msgid "could not write block %ld of temporary file: %m"
-msgstr "n'a pas pu écrire le bloc %ld du fichier temporaire : %m"
-
 #: access/gist/gistsplit.c:446
 #, c-format
 msgid "picksplit method for column %d of index \"%s\" failed"
@@ -680,37 +784,37 @@ msgstr ""
 "ou essayez d'utiliser la colonne comme second dans la commande\n"
 "CREATE INDEX."
 
-#: access/gist/gistutil.c:784 access/hash/hashutil.c:238 access/nbtree/nbtpage.c:705
+#: access/gist/gistutil.c:783 access/hash/hashutil.c:224 access/nbtree/nbtpage.c:738
 #, c-format
 msgid "index \"%s\" contains unexpected zero page at block %u"
 msgstr "l'index « %s » contient une page zéro inattendue au bloc %u"
 
-#: access/gist/gistutil.c:795 access/hash/hashutil.c:249 access/hash/hashutil.c:261 access/nbtree/nbtpage.c:716
+#: access/gist/gistutil.c:794 access/hash/hashutil.c:235 access/hash/hashutil.c:247 access/nbtree/nbtpage.c:749
 #, c-format
 msgid "index \"%s\" contains corrupted page at block %u"
 msgstr "l'index « %s » contient une page corrompue au bloc %u"
 
-#: access/gist/gistvalidate.c:196
+#: access/gist/gistvalidate.c:199
 #, c-format
 msgid "operator family \"%s\" of access method %s contains unsupported ORDER BY specification for operator %s"
 msgstr ""
 "la famille d'opérateur « %s » de la méthode d'accès %s contient une spécification ORDER BY\n"
 "non supportée pour l'opérateur %s"
 
-#: access/gist/gistvalidate.c:207
+#: access/gist/gistvalidate.c:210
 #, c-format
 msgid "operator family \"%s\" of access method %s contains incorrect ORDER BY opfamily specification for operator %s"
 msgstr ""
 "la famille d'opérateur « %s » de la méthode d'accès %s contient la spécification opfamily ORDER BY\n"
 "incorrecte pour l'opérateur %s"
 
-#: access/hash/hashfunc.c:255 access/hash/hashfunc.c:311 utils/adt/varchar.c:992 utils/adt/varchar.c:1052
+#: access/hash/hashfunc.c:255 access/hash/hashfunc.c:311 utils/adt/varchar.c:993 utils/adt/varchar.c:1053
 #, c-format
 msgid "could not determine which collation to use for string hashing"
 msgstr "n'a pas pu déterminer le collationnement à utiliser pour le hachage de chaîne"
 
-#: access/hash/hashfunc.c:256 access/hash/hashfunc.c:312 catalog/heap.c:678 commands/createas.c:207 commands/createas.c:491 commands/indexcmds.c:1694 commands/tablecmds.c:15237 commands/view.c:105 regex/regc_pg_locale.c:263 utils/adt/formatting.c:1571 utils/adt/formatting.c:1695 utils/adt/formatting.c:1820 utils/adt/like.c:194 utils/adt/like_support.c:965 utils/adt/varchar.c:734 utils/adt/varchar.c:993 utils/adt/varchar.c:1053
-#: utils/adt/varlena.c:1456
+#: access/hash/hashfunc.c:256 access/hash/hashfunc.c:312 catalog/heap.c:702 catalog/heap.c:708 commands/createas.c:206 commands/createas.c:489 commands/indexcmds.c:1815 commands/tablecmds.c:16035 commands/view.c:86 parser/parse_utilcmd.c:4203 regex/regc_pg_locale.c:263 utils/adt/formatting.c:1665 utils/adt/formatting.c:1789 utils/adt/formatting.c:1914 utils/adt/like.c:194 utils/adt/like_support.c:1003 utils/adt/varchar.c:733 utils/adt/varchar.c:994
+#: utils/adt/varchar.c:1054 utils/adt/varlena.c:1476
 #, c-format
 msgid "Use the COLLATE clause to set the collation explicitly."
 msgstr "Utilisez la clause COLLARE pour configurer explicitement le collationnement."
@@ -720,7 +824,7 @@ msgstr "Utilisez la clause COLLARE pour configurer explicitement le collationnem
 msgid "index row size %zu exceeds hash maximum %zu"
 msgstr "la taille de la ligne index, %zu, dépasse le hachage maximum, %zu"
 
-#: access/hash/hashinsert.c:84 access/spgist/spgdoinsert.c:1961 access/spgist/spgutils.c:752
+#: access/hash/hashinsert.c:84 access/spgist/spgdoinsert.c:1961 access/spgist/spgutils.c:764
 #, c-format
 msgid "Values larger than a buffer page cannot be indexed."
 msgstr "Les valeurs plus larges qu'une page de tampon ne peuvent pas être indexées."
@@ -740,218 +844,249 @@ msgstr "en dehors des pages surchargées dans l'index haché « %s »"
 msgid "hash indexes do not support whole-index scans"
 msgstr "les index hâchés ne supportent pas les parcours complets d'index"
 
-#: access/hash/hashutil.c:277
+#: access/hash/hashutil.c:263
 #, c-format
 msgid "index \"%s\" is not a hash index"
 msgstr "l'index « %s » n'est pas un index haché"
 
-#: access/hash/hashutil.c:283
+#: access/hash/hashutil.c:269
 #, c-format
 msgid "index \"%s\" has wrong hash version"
 msgstr "l'index « %s » a la mauvaise version de hachage"
 
-#: access/hash/hashvalidate.c:191
+#: access/hash/hashvalidate.c:195
 #, c-format
 msgid "operator family \"%s\" of access method %s lacks support function for operator %s"
 msgstr ""
 "la famille d'opérateur « %s » de la méthode d'accès %s requiert la fonction de support\n"
 "pour l'opérateur %s"
 
-#: access/hash/hashvalidate.c:249 access/nbtree/nbtvalidate.c:266
+#: access/hash/hashvalidate.c:253 access/nbtree/nbtvalidate.c:273
 #, c-format
 msgid "operator family \"%s\" of access method %s is missing cross-type operator(s)"
 msgstr "il manque un opérateur inter-type pour la famille d'opérateur « %s » de la méthode d'accès %s"
 
-#: access/heap/heapam.c:2063
+#: access/heap/heapam.c:2026
 #, c-format
 msgid "cannot insert tuples in a parallel worker"
 msgstr "ne peut pas insérer de lignes dans un processus parallèle"
 
-#: access/heap/heapam.c:2473
+#: access/heap/heapam.c:2444
 #, c-format
 msgid "cannot delete tuples during a parallel operation"
 msgstr "ne peut pas supprimer les lignes lors d'une opération parallèle"
 
-#: access/heap/heapam.c:2519
+#: access/heap/heapam.c:2490
 #, c-format
 msgid "attempted to delete invisible tuple"
 msgstr "tentative de supprimer une ligne invisible"
 
-#: access/heap/heapam.c:2945 access/heap/heapam.c:5726
+#: access/heap/heapam.c:2916 access/heap/heapam.c:5705
 #, c-format
 msgid "cannot update tuples during a parallel operation"
 msgstr "ne peut pas mettre à jour les lignes lors d'une opération parallèle"
 
-#: access/heap/heapam.c:3078
+#: access/heap/heapam.c:3049
 #, c-format
 msgid "attempted to update invisible tuple"
 msgstr "tentative de mettre à jour une ligne invisible"
 
-#: access/heap/heapam.c:4390 access/heap/heapam.c:4428 access/heap/heapam.c:4685 access/heap/heapam_handler.c:454
+#: access/heap/heapam.c:4360 access/heap/heapam.c:4398 access/heap/heapam.c:4655 access/heap/heapam_handler.c:450
 #, c-format
 msgid "could not obtain lock on row in relation \"%s\""
 msgstr "n'a pas pu obtenir un verrou sur la relation « %s »"
 
-#: access/heap/heapam_handler.c:405
+#: access/heap/heapam_handler.c:399
 #, c-format
 msgid "tuple to be locked was already moved to another partition due to concurrent update"
 msgstr "la ligne à verrouillée était déjà déplacée dans une autre partition du fait d'une mise à jour concurrente"
 
-#: access/heap/hio.c:345 access/heap/rewriteheap.c:681
+#: access/heap/hio.c:345 access/heap/rewriteheap.c:662
 #, c-format
 msgid "row is too big: size %zu, maximum size %zu"
 msgstr "la ligne est trop grande : taille %zu, taille maximale %zu"
 
-#: access/heap/rewriteheap.c:941
+#: access/heap/rewriteheap.c:921
 #, c-format
 msgid "could not write to file \"%s\", wrote %d of %d: %m"
 msgstr "n'a pas pu écrire le fichier « %s », a écrit %d de %d : %m"
 
-#: access/heap/rewriteheap.c:1035 access/heap/rewriteheap.c:1154 access/transam/timeline.c:314 access/transam/timeline.c:468 access/transam/xlog.c:3252 access/transam/xlog.c:3424 access/transam/xlog.c:4544 access/transam/xlog.c:10552 access/transam/xlog.c:10590 access/transam/xlog.c:10995 access/transam/xlogfuncs.c:736 postmaster/postmaster.c:4524 replication/logical/origin.c:576 replication/slot.c:1261 storage/file/copydir.c:167
-#: storage/smgr/md.c:204 utils/time/snapmgr.c:1329
+#: access/heap/rewriteheap.c:1015 access/heap/rewriteheap.c:1134 access/transam/timeline.c:329 access/transam/timeline.c:485 access/transam/xlog.c:3300 access/transam/xlog.c:3472 access/transam/xlog.c:4670 access/transam/xlog.c:10869 access/transam/xlog.c:10907 access/transam/xlog.c:11312 access/transam/xlogfuncs.c:735 postmaster/postmaster.c:4629 replication/logical/origin.c:575 replication/slot.c:1446 storage/file/copydir.c:167 storage/smgr/md.c:218
+#: utils/time/snapmgr.c:1329
 #, c-format
 msgid "could not create file \"%s\": %m"
 msgstr "n'a pas pu créer le fichier « %s » : %m"
 
-#: access/heap/rewriteheap.c:1164
+#: access/heap/rewriteheap.c:1144
 #, c-format
 msgid "could not truncate file \"%s\" to %u: %m"
 msgstr "n'a pas pu tronquer le fichier « %s » en %u : %m"
 
-#: access/heap/rewriteheap.c:1172 replication/walsender.c:493 storage/smgr/md.c:1245
-#, c-format
-msgid "could not seek to end of file \"%s\": %m"
-msgstr "n'a pas pu trouver la fin du fichier « %s » : %m"
-
-#: access/heap/rewriteheap.c:1189 access/transam/timeline.c:369 access/transam/timeline.c:408 access/transam/timeline.c:485 access/transam/xlog.c:3308 access/transam/xlog.c:3480 access/transam/xlog.c:4556 postmaster/postmaster.c:4534 postmaster/postmaster.c:4544 replication/logical/origin.c:588 replication/logical/origin.c:630 replication/logical/origin.c:649 replication/logical/snapbuild.c:1627 replication/slot.c:1295
-#: storage/file/copydir.c:207 utils/init/miscinit.c:1345 utils/init/miscinit.c:1356 utils/init/miscinit.c:1364 utils/misc/guc.c:7787 utils/misc/guc.c:7818 utils/misc/guc.c:9743 utils/misc/guc.c:9757 utils/time/snapmgr.c:1334 utils/time/snapmgr.c:1341
+#: access/heap/rewriteheap.c:1162 access/transam/timeline.c:384 access/transam/timeline.c:424 access/transam/timeline.c:502 access/transam/xlog.c:3356 access/transam/xlog.c:3528 access/transam/xlog.c:4682 postmaster/postmaster.c:4639 postmaster/postmaster.c:4649 replication/logical/origin.c:587 replication/logical/origin.c:629 replication/logical/origin.c:648 replication/logical/snapbuild.c:1622 replication/slot.c:1481 storage/file/buffile.c:502
+#: storage/file/copydir.c:207 utils/init/miscinit.c:1391 utils/init/miscinit.c:1402 utils/init/miscinit.c:1410 utils/misc/guc.c:7996 utils/misc/guc.c:8027 utils/misc/guc.c:9947 utils/misc/guc.c:9961 utils/time/snapmgr.c:1334 utils/time/snapmgr.c:1341
 #, c-format
 msgid "could not write to file \"%s\": %m"
 msgstr "n'a pas pu écrire dans le fichier « %s » : %m"
 
-#: access/heap/rewriteheap.c:1279 access/transam/twophase.c:1661 access/transam/xlogarchive.c:112 access/transam/xlogarchive.c:459 postmaster/postmaster.c:1277 postmaster/syslogger.c:1466 replication/logical/origin.c:564 replication/logical/reorderbuffer.c:2814 replication/logical/snapbuild.c:1569 replication/logical/snapbuild.c:2011 replication/slot.c:1383 storage/file/fd.c:704 storage/file/fd.c:3000 storage/file/fd.c:3062
-#: storage/file/reinit.c:255 storage/ipc/dsm.c:307 storage/smgr/md.c:298 storage/smgr/md.c:354 storage/sync/sync.c:210 utils/time/snapmgr.c:1674
+#: access/heap/rewriteheap.c:1252 access/transam/twophase.c:1609 access/transam/xlogarchive.c:118 access/transam/xlogarchive.c:421 postmaster/postmaster.c:1092 postmaster/syslogger.c:1465 replication/logical/origin.c:563 replication/logical/reorderbuffer.c:3079 replication/logical/snapbuild.c:1564 replication/logical/snapbuild.c:2006 replication/slot.c:1578 storage/file/fd.c:754 storage/file/fd.c:3116 storage/file/fd.c:3178 storage/file/reinit.c:255
+#: storage/ipc/dsm.c:302 storage/smgr/md.c:311 storage/smgr/md.c:367 storage/sync/sync.c:210 utils/time/snapmgr.c:1674
 #, c-format
 msgid "could not remove file \"%s\": %m"
 msgstr "n'a pas pu supprimer le fichier « %s » : %m"
 
-#: access/heap/vacuumlazy.c:267
-#, c-format
-msgid "skipping redundant vacuum to prevent wraparound of table \"%s.%s.%s\""
-msgstr "ignore un VACUUM redondant pour éviter le rebouclage des identifiants dans la table \"%s.%s.%s\""
-
-#: access/heap/vacuumlazy.c:405
+#: access/heap/vacuumlazy.c:648
 #, c-format
 msgid "automatic aggressive vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n"
 msgstr "VACUUM automatique agressif pour éviter un rebouclage des identifiants de transaction dans la table « %s.%s.%s »  : %d parcours d'index\n"
 
-#: access/heap/vacuumlazy.c:410
+#: access/heap/vacuumlazy.c:650
+#, c-format
+msgid "automatic vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n"
+msgstr "VACUUM automatique pour éviter un rebouclage des identifiants de transaction dans la table « %s.%s.%s » : parcours d'index : %d\n"
+
+#: access/heap/vacuumlazy.c:655
 #, c-format
 msgid "automatic aggressive vacuum of table \"%s.%s.%s\": index scans: %d\n"
 msgstr "VACUUM automatique agressif de la table « %s.%s.%s » : %d parcours d'index\n"
 
-#: access/heap/vacuumlazy.c:412
+#: access/heap/vacuumlazy.c:657
 #, c-format
 msgid "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n"
 msgstr "VACUUM automatique de la table « %s.%s.%s » : %d parcours d'index\n"
 
-#: access/heap/vacuumlazy.c:419
+#: access/heap/vacuumlazy.c:664
 #, c-format
 msgid "pages: %u removed, %u remain, %u skipped due to pins, %u skipped frozen\n"
 msgstr "pages : %u supprimées, %u restants, %u ignorées à cause de verrous; %u ignorées car gelées\n"
 
-#: access/heap/vacuumlazy.c:425
+#: access/heap/vacuumlazy.c:670
 #, c-format
 msgid "tuples: %.0f removed, %.0f remain, %.0f are dead but not yet removable, oldest xmin: %u\n"
 msgstr "lignes : %.0f supprimées, %.0f restantes, %.0f sont mortes mais pas encore supprimables, plus ancien xmin : %u\n"
 
-#: access/heap/vacuumlazy.c:431
+#: access/heap/vacuumlazy.c:676
 #, c-format
-msgid "buffer usage: %d hits, %d misses, %d dirtied\n"
-msgstr "utilisation du tampon : %d récupérés, %d ratés, %d modifiés\n"
+msgid "buffer usage: %lld hits, %lld misses, %lld dirtied\n"
+msgstr "utilisation du cache : %lld récupérés, %lld ratés, %lld modifiés\n"
 
-#: access/heap/vacuumlazy.c:435
+#: access/heap/vacuumlazy.c:680
 #, c-format
 msgid "avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n"
 msgstr "vitesse moyenne de lecture : %.3f Mo/s, vitesse moyenne d'écriture : %.3f Mo/s\n"
 
-#: access/heap/vacuumlazy.c:437
+#: access/heap/vacuumlazy.c:682
 #, c-format
-msgid "system usage: %s"
-msgstr "utilisation du système : %s"
+msgid "system usage: %s\n"
+msgstr "utilisation du système : %s\n"
 
-#: access/heap/vacuumlazy.c:533
+#: access/heap/vacuumlazy.c:684
+#, c-format
+msgid "WAL usage: %ld records, %ld full page images, %llu bytes"
+msgstr ""
+
+#: access/heap/vacuumlazy.c:795
 #, c-format
 msgid "aggressively vacuuming \"%s.%s\""
 msgstr "exécution d'un VACUUM agressif sur « %s.%s »"
 
-#: access/heap/vacuumlazy.c:538 commands/cluster.c:910
+#: access/heap/vacuumlazy.c:800 commands/cluster.c:874
 #, c-format
 msgid "vacuuming \"%s.%s\""
 msgstr "exécution du VACUUM sur « %s.%s »"
 
-#: access/heap/vacuumlazy.c:1476
+#: access/heap/vacuumlazy.c:837
+#, c-format
+msgid "disabling parallel option of vacuum on \"%s\" --- cannot vacuum temporary tables in parallel"
+msgstr ""
+
+#: access/heap/vacuumlazy.c:1725
 #, c-format
 msgid "\"%s\": removed %.0f row versions in %u pages"
 msgstr "« %s » : %.0f versions de ligne supprimées dans %u pages"
 
-#: access/heap/vacuumlazy.c:1486
+#: access/heap/vacuumlazy.c:1735
 #, c-format
 msgid "%.0f dead row versions cannot be removed yet, oldest xmin: %u\n"
 msgstr "%.0f versions de lignes mortes ne peuvent pas encore être supprimées, plus ancien xmin : %u\n"
 
-#: access/heap/vacuumlazy.c:1488
+#: access/heap/vacuumlazy.c:1737
 #, c-format
 msgid "There were %.0f unused item identifiers.\n"
 msgstr "Il y avait %.0f identifiants d'éléments inutilisés.\n"
 
-#: access/heap/vacuumlazy.c:1490
+#: access/heap/vacuumlazy.c:1739
 #, c-format
 msgid "Skipped %u page due to buffer pins, "
 msgid_plural "Skipped %u pages due to buffer pins, "
 msgstr[0] "Ignore %u page à cause des verrous de blocs, "
 msgstr[1] "Ignore %u pages à cause des verrous de blocs, "
 
-#: access/heap/vacuumlazy.c:1494
+#: access/heap/vacuumlazy.c:1743
 #, c-format
 msgid "%u frozen page.\n"
 msgid_plural "%u frozen pages.\n"
 msgstr[0] "%u page gelée.\n"
 msgstr[1] "%u pages gelées.\n"
 
-#: access/heap/vacuumlazy.c:1498
+#: access/heap/vacuumlazy.c:1747
 #, c-format
 msgid "%u page is entirely empty.\n"
 msgid_plural "%u pages are entirely empty.\n"
 msgstr[0] "%u page est entièrement vide.\n"
 msgstr[1] "%u pages sont entièrement vides.\n"
 
-#: access/heap/vacuumlazy.c:1502 commands/indexcmds.c:3287 commands/indexcmds.c:3305
+#: access/heap/vacuumlazy.c:1751 commands/indexcmds.c:3450 commands/indexcmds.c:3468
 #, c-format
 msgid "%s."
 msgstr "%s."
 
-#: access/heap/vacuumlazy.c:1505
+#: access/heap/vacuumlazy.c:1754
 #, c-format
 msgid "\"%s\": found %.0f removable, %.0f nonremovable row versions in %u out of %u pages"
 msgstr "« %s » : trouvé %.0f versions de ligne supprimables, %.0f non supprimables, dans %u pages sur %u"
 
-#: access/heap/vacuumlazy.c:1574
+#: access/heap/vacuumlazy.c:1888
 #, c-format
 msgid "\"%s\": removed %d row versions in %d pages"
 msgstr "« %s »: %d versions de ligne supprimée dans %d pages"
 
-#: access/heap/vacuumlazy.c:1765
+#: access/heap/vacuumlazy.c:2143
+#, c-format
+msgid "launched %d parallel vacuum worker for index cleanup (planned: %d)"
+msgid_plural "launched %d parallel vacuum workers for index cleanup (planned: %d)"
+msgstr[0] ""
+msgstr[1] ""
+
+#: access/heap/vacuumlazy.c:2149
+#, 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] ""
+msgstr[1] ""
+
+#: access/heap/vacuumlazy.c:2441
+#, fuzzy, c-format
+#| msgid "scanned index \"%s\" to remove %d row versions"
+msgid "scanned index \"%s\" to remove %d row versions by parallel vacuum worker"
+msgstr "a parcouru l'index « %s » pour supprimer %d versions de lignes"
+
+#: access/heap/vacuumlazy.c:2443
 #, c-format
 msgid "scanned index \"%s\" to remove %d row versions"
 msgstr "a parcouru l'index « %s » pour supprimer %d versions de lignes"
 
-#: access/heap/vacuumlazy.c:1818
+#: access/heap/vacuumlazy.c:2501
+#, fuzzy, c-format
+#| msgid "index \"%s\" now contains %.0f row versions in %u pages"
+msgid "index \"%s\" now contains %.0f row versions in %u pages as reported by parallel vacuum worker"
+msgstr "l'index « %s » contient maintenant %.0f versions de ligne dans %u pages"
+
+#: access/heap/vacuumlazy.c:2503
 #, c-format
 msgid "index \"%s\" now contains %.0f row versions in %u pages"
 msgstr "l'index « %s » contient maintenant %.0f versions de ligne dans %u pages"
 
-#: access/heap/vacuumlazy.c:1822
+#: access/heap/vacuumlazy.c:2510
 #, c-format
 msgid ""
 "%.0f index row versions were removed.\n"
@@ -962,22 +1097,57 @@ msgstr ""
 "%u pages d'index ont été supprimées, %u sont actuellement réutilisables.\n"
 "%s."
 
-#: access/heap/vacuumlazy.c:1920
+#: access/heap/vacuumlazy.c:2613
 #, c-format
 msgid "\"%s\": stopping truncate due to conflicting lock request"
 msgstr "« %s » : arrêt du TRUNCATE à cause d'un conflit dans la demande de verrou"
 
-#: access/heap/vacuumlazy.c:1985
+#: access/heap/vacuumlazy.c:2679
 #, c-format
 msgid "\"%s\": truncated %u to %u pages"
 msgstr "« %s » : %u pages tronqués en %u"
 
-#: access/heap/vacuumlazy.c:2050
+#: access/heap/vacuumlazy.c:2744
 #, c-format
 msgid "\"%s\": suspending truncate due to conflicting lock request"
 msgstr "« %s » : mis en suspens du TRUNCATE à cause d'un conflit dans la demande de verrou"
 
-#: access/index/amapi.c:83 commands/amcmds.c:167
+#: access/heap/vacuumlazy.c:3583
+#, c-format
+msgid "while scanning block %u of relation \"%s.%s\""
+msgstr "lors du parcours du bloc %u de la relation « %s.%s »"
+
+#: access/heap/vacuumlazy.c:3586
+#, c-format
+msgid "while scanning relation \"%s.%s\""
+msgstr "lors du parcours de la relation « %s.%s »"
+
+#: access/heap/vacuumlazy.c:3592
+#, c-format
+msgid "while vacuuming block %u of relation \"%s.%s\""
+msgstr "lors du VACUUM du bloc %u de la relation « %s.%s »"
+
+#: access/heap/vacuumlazy.c:3595
+#, c-format
+msgid "while vacuuming relation \"%s.%s\""
+msgstr "lors du vacuum de la relation « %s.%s »"
+
+#: access/heap/vacuumlazy.c:3600
+#, c-format
+msgid "while vacuuming index \"%s\" of relation \"%s.%s\""
+msgstr "lors du nettoyage de l'index « %s » dans la relation « %s.%s »"
+
+#: access/heap/vacuumlazy.c:3605
+#, c-format
+msgid "while cleaning up index \"%s\" of relation \"%s.%s\""
+msgstr "lors du nettoyage de l'index « %s » dans la relation « %s.%s »"
+
+#: access/heap/vacuumlazy.c:3611
+#, c-format
+msgid "while truncating relation \"%s.%s\" to %u blocks"
+msgstr "lors du tronquage de la relation « %s.%s » à %u blocs"
+
+#: access/index/amapi.c:83 commands/amcmds.c:170
 #, c-format
 msgid "access method \"%s\" is not of type %s"
 msgstr "la méthode d'accès « %s » n'est pas de type %s"
@@ -987,62 +1157,62 @@ msgstr "la méthode d'accès « %s » n'est pas de type %s"
 msgid "index access method \"%s\" does not have a handler"
 msgstr "la méthode d'accès « %s » n'a pas de handler"
 
-#: access/index/indexam.c:136 catalog/objectaddress.c:1259 commands/indexcmds.c:2405 commands/tablecmds.c:248 commands/tablecmds.c:272 commands/tablecmds.c:14944 commands/tablecmds.c:16334
+#: access/index/indexam.c:142 catalog/objectaddress.c:1260 commands/indexcmds.c:2517 commands/tablecmds.c:254 commands/tablecmds.c:278 commands/tablecmds.c:15733 commands/tablecmds.c:17188
 #, c-format
 msgid "\"%s\" is not an index"
 msgstr "« %s » n'est pas un index"
 
-#: access/nbtree/nbtinsert.c:565
+#: access/index/indexam.c:970
+#, c-format
+msgid "operator class %s has no options"
+msgstr "la classe d'opérateur %s n'a pas d'options"
+
+#: access/nbtree/nbtinsert.c:651
 #, c-format
 msgid "duplicate key value violates unique constraint \"%s\""
 msgstr "la valeur d'une clé dupliquée rompt la contrainte unique « %s »"
 
-#: access/nbtree/nbtinsert.c:567
+#: access/nbtree/nbtinsert.c:653
 #, c-format
 msgid "Key %s already exists."
 msgstr "La clé « %s » existe déjà."
 
-#: access/nbtree/nbtinsert.c:638
-#, c-format
-msgid "failed to re-find tuple within index \"%s\""
-msgstr "échec pour retrouver la ligne dans l'index « %s »"
-
-#: access/nbtree/nbtinsert.c:640
+#: access/nbtree/nbtinsert.c:747
 #, c-format
 msgid "This may be because of a non-immutable index expression."
 msgstr "Ceci peut être dû à une expression d'index immutable."
 
-#: access/nbtree/nbtpage.c:135 access/nbtree/nbtpage.c:521 parser/parse_utilcmd.c:2117
+#: access/nbtree/nbtpage.c:150 access/nbtree/nbtpage.c:538 parser/parse_utilcmd.c:2244
 #, c-format
 msgid "index \"%s\" is not a btree"
 msgstr "l'index « %s » n'est pas un btree"
 
-#: access/nbtree/nbtpage.c:142 access/nbtree/nbtpage.c:528
+#: access/nbtree/nbtpage.c:157 access/nbtree/nbtpage.c:545
 #, c-format
 msgid "version mismatch in index \"%s\": file version %d, current version %d, minimal supported version %d"
 msgstr "la version ne correspond pas dans l'index « %s » : version du fichier %d, version courante %d, version minimale supportée %d"
 
-#: access/nbtree/nbtpage.c:1349
+#: access/nbtree/nbtpage.c:1501
 #, c-format
 msgid "index \"%s\" contains a half-dead internal page"
 msgstr "l'index « %s » contient une page interne à moitié morte"
 
-#: access/nbtree/nbtpage.c:1351
+#: access/nbtree/nbtpage.c:1503
 #, c-format
 msgid "This can be caused by an interrupted VACUUM in version 9.3 or older, before upgrade. Please REINDEX it."
 msgstr "Ceci peut être dû à un VACUUM interrompu en version 9.3 ou antérieure, avant la mise à jour. Merci d'utiliser REINDEX."
 
-#: access/nbtree/nbtutils.c:2563
+#: access/nbtree/nbtutils.c:2664
 #, c-format
 msgid "index row size %zu exceeds btree version %u maximum %zu for index \"%s\""
 msgstr "la taille de la ligne d'index, %zu, dépasse le maximum pour un btree de version %u, soit %zu, pour l'index « %s »"
 
-#: access/nbtree/nbtutils.c:2569
+#: access/nbtree/nbtutils.c:2670
 #, c-format
 msgid "Index row references tuple (%u,%u) in relation \"%s\"."
 msgstr "La ligne d'index référence le tuple (%u,%u) dans la relation « %s »."
 
-#: access/nbtree/nbtutils.c:2573
+#: access/nbtree/nbtutils.c:2674
 #, c-format
 msgid ""
 "Values larger than 1/3 of a buffer page cannot be indexed.\n"
@@ -1053,41 +1223,41 @@ msgstr ""
 "Utilisez un index sur le hachage MD5 de la valeur ou passez à l'indexation\n"
 "de la recherche plein texte."
 
-#: access/nbtree/nbtvalidate.c:236
+#: access/nbtree/nbtvalidate.c:243
 #, c-format
 msgid "operator family \"%s\" of access method %s is missing support function for types %s and %s"
 msgstr ""
 "la famille d'opérateur « %s » de la méthode d'accès %s nécessite une fonction de support\n"
 "manquante pour les types %s et %s"
 
-#: access/spgist/spgutils.c:142
+#: access/spgist/spgutils.c:147
 #, c-format
 msgid "compress method must be defined when leaf type is different from input type"
 msgstr "la méthode de compression doit être définie quand le type feuille est différent du type d'entrée"
 
-#: access/spgist/spgutils.c:749
+#: access/spgist/spgutils.c:761
 #, c-format
 msgid "SP-GiST inner tuple size %zu exceeds maximum %zu"
 msgstr "la taille de la ligne interne SP-GiST, %zu, dépasse le maximum %zu"
 
-#: access/spgist/spgvalidate.c:276
+#: access/spgist/spgvalidate.c:281
 #, c-format
 msgid "operator family \"%s\" of access method %s is missing support function %d for type %s"
 msgstr ""
 "la famille d'opérateur « %s » de la méthode d'accès %s nécessite la fonction de support %d\n"
 "pour le type %s"
 
-#: access/table/table.c:49 access/table/table.c:78 access/table/table.c:111 catalog/aclchk.c:1832
+#: access/table/table.c:49 access/table/table.c:78 access/table/table.c:111 catalog/aclchk.c:1806
 #, c-format
 msgid "\"%s\" is an index"
 msgstr "« %s » est un index"
 
-#: access/table/table.c:54 access/table/table.c:83 access/table/table.c:116 catalog/aclchk.c:1839 commands/tablecmds.c:11755 commands/tablecmds.c:14953
+#: access/table/table.c:54 access/table/table.c:83 access/table/table.c:116 catalog/aclchk.c:1813 commands/tablecmds.c:12554 commands/tablecmds.c:15742
 #, c-format
 msgid "\"%s\" is a composite type"
 msgstr "« %s » est un type composite"
 
-#: access/table/tableam.c:236
+#: access/table/tableam.c:244
 #, c-format
 msgid "tid (%u, %u) is not valid for relation \"%s\""
 msgstr "le tid (%u, %u) n'est pas valide pour la relation « %s »"
@@ -1097,7 +1267,7 @@ msgstr "le tid (%u, %u) n'est pas valide pour la relation « %s »"
 msgid "%s cannot be empty."
 msgstr "%s ne peut pas être vide."
 
-#: access/table/tableamapi.c:122 utils/misc/guc.c:11634
+#: access/table/tableamapi.c:122 utils/misc/guc.c:11928
 #, c-format
 msgid "%s is too long (maximum %d characters)."
 msgstr "%s est trop long (%d caractères maximum)."
@@ -1137,12 +1307,12 @@ msgstr "Assurez-vous que le paramètre de configuration « %s » soit configuré
 msgid "Make sure the configuration parameter \"%s\" is set."
 msgstr "Assurez-vous que le paramètre de configuration « %s » soit configuré."
 
-#: access/transam/multixact.c:1000
+#: access/transam/multixact.c:1002
 #, c-format
 msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database \"%s\""
 msgstr "la base de données n'accepte pas de commandes qui génèrent de nouveaux MultiXactId pour éviter les pertes de données suite à une réinitialisation de l'identifiant de transaction dans la base de données « %s »"
 
-#: access/transam/multixact.c:1002 access/transam/multixact.c:1009 access/transam/multixact.c:1033 access/transam/multixact.c:1042
+#: access/transam/multixact.c:1004 access/transam/multixact.c:1011 access/transam/multixact.c:1035 access/transam/multixact.c:1044
 #, c-format
 msgid ""
 "Execute a database-wide VACUUM in that database.\n"
@@ -1151,72 +1321,72 @@ msgstr ""
 "Exécutez un VACUUM sur toute cette base.\n"
 "Vous pourriez avoir besoin de valider ou d'annuler de vieilles transactions préparées, ou de supprimer les slots de réplication périmés."
 
-#: access/transam/multixact.c:1007
+#: access/transam/multixact.c:1009
 #, 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 données n'accepte pas de commandes qui génèrent de nouveaux MultiXactId pour éviter des pertes de données à cause de la réinitialisation de l'identifiant de transaction dans\n"
 "la base de données d'OID %u"
 
-#: access/transam/multixact.c:1028 access/transam/multixact.c:2318
+#: access/transam/multixact.c:1030 access/transam/multixact.c:2320
 #, 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] "un VACUUM doit être exécuté sur la base de données « %s » dans un maximum de %u MultiXactId"
 msgstr[1] "un VACUUM doit être exécuté sur la base de données « %s » dans un maximum de %u MultiXactId"
 
-#: access/transam/multixact.c:1037 access/transam/multixact.c:2327
+#: access/transam/multixact.c:1039 access/transam/multixact.c:2329
 #, 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] "un VACUUM doit être exécuté sur la base de données d'OID %u dans un maximum de %u MultiXactId"
 msgstr[1] "un VACUUM doit être exécuté sur la base de données d'OID %u dans un maximum de %u MultiXactId"
 
-#: access/transam/multixact.c:1098
+#: access/transam/multixact.c:1100
 #, c-format
 msgid "multixact \"members\" limit exceeded"
 msgstr "dépassement de limite des membres du multixact"
 
-#: access/transam/multixact.c:1099
+#: access/transam/multixact.c:1101
 #, 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] "Cette commande créera un multixact avec %u membres, mais l'espace restant est seulement suffisant pour %u membre."
 msgstr[1] "Cette commande créera un multixact avec %u membres, mais l'espace restant est seulement suffisant pour %u membres."
 
-#: access/transam/multixact.c:1104
+#: access/transam/multixact.c:1106
 #, 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 "Exécute un VACUUM sur la base dans la base d'OID %u avec une configuration réduite pour vacuum_multixact_freeze_min_age et vacuum_multixact_freeze_table_age."
 
-#: access/transam/multixact.c:1135
+#: access/transam/multixact.c:1137
 #, 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] "un VACUUM doit être exécuté sur la base de données d'OID %u avant que %d MultiXactId supplémentaire ne soit utilisé"
 msgstr[1] "un VACUUM doit être exécuté sur la base de données d'OID %u avant que %d MultiXactId supplémentaires ne soient utilisés"
 
-#: access/transam/multixact.c:1140
+#: access/transam/multixact.c:1142
 #, 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 "Exécute un VACUUM sur la base dans cette base avec une configuration réduite pour vacuum_multixact_freeze_min_age et vacuum_multixact_freeze_table_age."
 
-#: access/transam/multixact.c:1277
+#: access/transam/multixact.c:1279
 #, c-format
 msgid "MultiXactId %u does no longer exist -- apparent wraparound"
 msgstr "le MultiXactId %u n'existe plus : wraparound apparent"
 
-#: access/transam/multixact.c:1285
+#: access/transam/multixact.c:1287
 #, c-format
 msgid "MultiXactId %u has not been created yet -- apparent wraparound"
 msgstr "le MultiXactId %u n'a pas encore été créé : wraparound apparent"
 
-#: access/transam/multixact.c:2268
+#: access/transam/multixact.c:2270
 #, c-format
 msgid "MultiXactId wrap limit is %u, limited by database with OID %u"
 msgstr "La limite de réinitialisation MultiXactId est %u, limité par la base de données d'OID %u"
 
-#: access/transam/multixact.c:2323 access/transam/multixact.c:2332 access/transam/varsup.c:149 access/transam/varsup.c:156 access/transam/varsup.c:447 access/transam/varsup.c:454
+#: access/transam/multixact.c:2325 access/transam/multixact.c:2334 access/transam/varsup.c:149 access/transam/varsup.c:156 access/transam/varsup.c:447 access/transam/varsup.c:454
 #, c-format
 msgid ""
 "To avoid a database shutdown, execute a database-wide VACUUM in that database.\n"
@@ -1226,333 +1396,333 @@ msgstr ""
 "base. Vous pourriez avoir besoin d'enregistrer ou d'annuler les slots de réplication\n"
 "trop anciens."
 
-#: access/transam/multixact.c:2602
+#: access/transam/multixact.c:2604
 #, c-format
 msgid "oldest MultiXactId member is at offset %u"
 msgstr "le membre le plus ancien du MultiXactId est au décalage %u"
 
-#: access/transam/multixact.c:2606
+#: access/transam/multixact.c:2608
 #, c-format
 msgid "MultiXact member wraparound protections are disabled because oldest checkpointed MultiXact %u does not exist on disk"
 msgstr "Les protections sur la réutilisation d'un membre MultiXact sont désactivées car le plus ancien MultiXact géré par un checkpoint, %u, n'existe pas sur disque"
 
-#: access/transam/multixact.c:2628
+#: access/transam/multixact.c:2630
 #, c-format
 msgid "MultiXact member wraparound protections are now enabled"
 msgstr "Les protections sur la réutilisation d'un membre MultiXact sont maintenant activées"
 
-#: access/transam/multixact.c:2631
+#: access/transam/multixact.c:2633
 #, c-format
 msgid "MultiXact member stop limit is now %u based on MultiXact %u"
 msgstr "La limite d'arrêt d'un membre MultiXact est maintenant %u, basée sur le MultiXact %u"
 
-#: access/transam/multixact.c:3011
+#: access/transam/multixact.c:3013
 #, c-format
 msgid "oldest MultiXact %u not found, earliest MultiXact %u, skipping truncation"
 msgstr "plus ancien MultiXact introuvable %u, plus récent MultiXact %u, ignore le troncage"
 
-#: access/transam/multixact.c:3029
+#: access/transam/multixact.c:3031
 #, c-format
 msgid "cannot truncate up to MultiXact %u because it does not exist on disk, skipping truncation"
 msgstr "ne peut pas tronquer jusqu'au MutiXact %u car il n'existe pas sur disque, ignore le troncage"
 
-#: access/transam/multixact.c:3343
+#: access/transam/multixact.c:3345
 #, c-format
 msgid "invalid MultiXactId: %u"
 msgstr "MultiXactId invalide : %u"
 
-#: access/transam/parallel.c:673 access/transam/parallel.c:792
+#: access/transam/parallel.c:706 access/transam/parallel.c:825
 #, c-format
 msgid "parallel worker failed to initialize"
 msgstr "échec de l'initialisation du worker parallèle"
 
-#: access/transam/parallel.c:674 access/transam/parallel.c:793
+#: access/transam/parallel.c:707 access/transam/parallel.c:826
 #, c-format
 msgid "More details may be available in the server log."
 msgstr "Plus de détails sont disponibles dans les traces du serveur."
 
-#: access/transam/parallel.c:854
+#: access/transam/parallel.c:887
 #, c-format
 msgid "postmaster exited during a parallel transaction"
 msgstr "postmaster a quitté pendant une transaction parallèle"
 
-#: access/transam/parallel.c:1041
+#: access/transam/parallel.c:1074
 #, c-format
 msgid "lost connection to parallel worker"
 msgstr "perte de la connexion au processus parallèle"
 
-#: access/transam/parallel.c:1107 access/transam/parallel.c:1109
+#: access/transam/parallel.c:1140 access/transam/parallel.c:1142
 msgid "parallel worker"
 msgstr "processus parallèle"
 
-#: access/transam/parallel.c:1259
+#: access/transam/parallel.c:1293
 #, c-format
 msgid "could not map dynamic shared memory segment"
 msgstr "n'a pas pu mapper le segment de mémoire partagée dynamique"
 
-#: access/transam/parallel.c:1264
+#: access/transam/parallel.c:1298
 #, c-format
 msgid "invalid magic number in dynamic shared memory segment"
 msgstr "numéro magique invalide dans le segment de mémoire partagée dynamique"
 
-#: access/transam/slru.c:674
+#: access/transam/slru.c:696
 #, c-format
 msgid "file \"%s\" doesn't exist, reading as zeroes"
 msgstr "le fichier « %s » n'existe pas, contenu lu comme des zéros"
 
-#: access/transam/slru.c:912 access/transam/slru.c:918 access/transam/slru.c:926 access/transam/slru.c:931 access/transam/slru.c:938 access/transam/slru.c:943 access/transam/slru.c:950 access/transam/slru.c:957
+#: access/transam/slru.c:937 access/transam/slru.c:943 access/transam/slru.c:951 access/transam/slru.c:956 access/transam/slru.c:963 access/transam/slru.c:968 access/transam/slru.c:975 access/transam/slru.c:982
 #, c-format
 msgid "could not access status of transaction %u"
 msgstr "n'a pas pu accéder au statut de la transaction %u"
 
-#: access/transam/slru.c:913
+#: access/transam/slru.c:938
 #, c-format
 msgid "Could not open file \"%s\": %m."
 msgstr "N'a pas pu ouvrir le fichier « %s » : %m."
 
-#: access/transam/slru.c:919
+#: access/transam/slru.c:944
 #, c-format
 msgid "Could not seek in file \"%s\" to offset %u: %m."
 msgstr "N'a pas pu se déplacer dans le fichier « %s » au décalage %u : %m."
 
-#: access/transam/slru.c:927
+#: access/transam/slru.c:952
 #, c-format
 msgid "Could not read from file \"%s\" at offset %u: %m."
 msgstr "N'a pas pu lire le fichier « %s » au décalage %u : %m."
 
-#: access/transam/slru.c:932
+#: access/transam/slru.c:957
 #, c-format
 msgid "Could not read from file \"%s\" at offset %u: read too few bytes."
 msgstr "N'a pas pu lire le fichier « %s » au décalage %u : lu trop peu d'octets."
 
-#: access/transam/slru.c:939
+#: access/transam/slru.c:964
 #, c-format
 msgid "Could not write to file \"%s\" at offset %u: %m."
 msgstr "N'a pas pu écrire le fichier « %s » au décalage %u : %m."
 
-#: access/transam/slru.c:944
+#: access/transam/slru.c:969
 #, c-format
 msgid "Could not write to file \"%s\" at offset %u: wrote too few bytes."
 msgstr "N'a pas pu écrire dans le fichier « %s » au décalage %u : écrit trop peu d'octets."
 
-#: access/transam/slru.c:951
+#: access/transam/slru.c:976
 #, c-format
 msgid "Could not fsync file \"%s\": %m."
 msgstr "N'a pas pu synchroniser sur disque (fsync) le fichier « %s » : %m."
 
-#: access/transam/slru.c:958
+#: access/transam/slru.c:983
 #, c-format
 msgid "Could not close file \"%s\": %m."
 msgstr "N'a pas pu fermer le fichier « %s » : %m."
 
-#: access/transam/slru.c:1215
+#: access/transam/slru.c:1254
 #, c-format
 msgid "could not truncate directory \"%s\": apparent wraparound"
 msgstr "n'a pas pu tronquer le répertoire « %s » : contournement apparent"
 
-#: access/transam/slru.c:1270 access/transam/slru.c:1326
+#: access/transam/slru.c:1309 access/transam/slru.c:1365
 #, c-format
 msgid "removing file \"%s\""
 msgstr "suppression du fichier « %s »"
 
-#: access/transam/timeline.c:148 access/transam/timeline.c:153
+#: access/transam/timeline.c:163 access/transam/timeline.c:168
 #, c-format
 msgid "syntax error in history file: %s"
 msgstr "erreur de syntaxe dans le fichier historique : %s"
 
-#: access/transam/timeline.c:149
+#: access/transam/timeline.c:164
 #, c-format
 msgid "Expected a numeric timeline ID."
 msgstr "Attendait un identifiant timeline numérique."
 
-#: access/transam/timeline.c:154
+#: access/transam/timeline.c:169
 #, c-format
 msgid "Expected a write-ahead log switchpoint location."
 msgstr "Attendait un emplacement de bascule de journal de transactions."
 
-#: access/transam/timeline.c:158
+#: access/transam/timeline.c:173
 #, c-format
 msgid "invalid data in history file: %s"
 msgstr "données invalides dans le fichier historique : %s"
 
-#: access/transam/timeline.c:159
+#: access/transam/timeline.c:174
 #, c-format
 msgid "Timeline IDs must be in increasing sequence."
 msgstr "Les identifiants timeline doivent être en ordre croissant."
 
-#: access/transam/timeline.c:179
+#: access/transam/timeline.c:194
 #, c-format
 msgid "invalid data in history file \"%s\""
 msgstr "données invalides dans le fichier historique « %s »"
 
-#: access/transam/timeline.c:180
+#: access/transam/timeline.c:195
 #, c-format
 msgid "Timeline IDs must be less than child timeline's ID."
 msgstr ""
 "Les identifiants timeline doivent être plus petits que les enfants des\n"
 "identifiants timeline."
 
-#: access/transam/timeline.c:580
+#: access/transam/timeline.c:597
 #, c-format
 msgid "requested timeline %u is not in this server's history"
 msgstr "la timeline %u requise n'est pas dans l'historique de ce serveur"
 
-#: access/transam/twophase.c:382
+#: access/transam/twophase.c:381
 #, c-format
 msgid "transaction identifier \"%s\" is too long"
 msgstr "l'identifiant de la transaction « %s » est trop long"
 
-#: access/transam/twophase.c:389
+#: access/transam/twophase.c:388
 #, c-format
 msgid "prepared transactions are disabled"
 msgstr "les transactions préparées sont désactivées"
 
-#: access/transam/twophase.c:390
+#: access/transam/twophase.c:389
 #, c-format
 msgid "Set max_prepared_transactions to a nonzero value."
 msgstr "Configure max_prepared_transactions à une valeur différente de zéro."
 
-#: access/transam/twophase.c:409
+#: access/transam/twophase.c:408
 #, c-format
 msgid "transaction identifier \"%s\" is already in use"
 msgstr "l'identifiant de la transaction « %s » est déjà utilisé"
 
-#: access/transam/twophase.c:418 access/transam/twophase.c:2420
+#: access/transam/twophase.c:417 access/transam/twophase.c:2368
 #, c-format
 msgid "maximum number of prepared transactions reached"
 msgstr "nombre maximum de transactions préparées obtenu"
 
-#: access/transam/twophase.c:419 access/transam/twophase.c:2421
+#: access/transam/twophase.c:418 access/transam/twophase.c:2369
 #, c-format
 msgid "Increase max_prepared_transactions (currently %d)."
 msgstr "Augmentez max_prepared_transactions (actuellement %d)."
 
-#: access/transam/twophase.c:587
+#: access/transam/twophase.c:586
 #, c-format
 msgid "prepared transaction with identifier \"%s\" is busy"
 msgstr "la transaction préparée d'identifiant « %s » est occupée"
 
-#: access/transam/twophase.c:593
+#: access/transam/twophase.c:592
 #, c-format
 msgid "permission denied to finish prepared transaction"
 msgstr "droit refusé pour terminer la transaction préparée"
 
-#: access/transam/twophase.c:594
+#: access/transam/twophase.c:593
 #, c-format
 msgid "Must be superuser or the user that prepared the transaction."
 msgstr "Doit être super-utilisateur ou l'utilisateur qui a préparé la transaction."
 
-#: access/transam/twophase.c:605
+#: access/transam/twophase.c:604
 #, c-format
 msgid "prepared transaction belongs to another database"
 msgstr "la transaction préparée appartient à une autre base de données"
 
-#: access/transam/twophase.c:606
+#: access/transam/twophase.c:605
 #, c-format
 msgid "Connect to the database where the transaction was prepared to finish it."
 msgstr ""
 "Connectez-vous à la base de données où la transaction a été préparée pour\n"
 "la terminer."
 
-#: access/transam/twophase.c:621
+#: access/transam/twophase.c:620
 #, c-format
 msgid "prepared transaction with identifier \"%s\" does not exist"
 msgstr "la transaction préparée d'identifiant « %s » n'existe pas"
 
-#: access/transam/twophase.c:1115
+#: access/transam/twophase.c:1098
 #, c-format
 msgid "two-phase state file maximum length exceeded"
 msgstr ""
 "longueur maximale dépassée pour le fichier de statut de la validation en\n"
 "deux phase"
 
-#: access/transam/twophase.c:1269
+#: access/transam/twophase.c:1252
 #, c-format
 msgid "incorrect size of file \"%s\": %zu byte"
 msgid_plural "incorrect size of file \"%s\": %zu bytes"
 msgstr[0] "taille incorrecte du fichier « %s » : %zu octet"
 msgstr[1] "taille incorrecte du fichier « %s » : %zu octets"
 
-#: access/transam/twophase.c:1278
+#: access/transam/twophase.c:1261
 #, c-format
 msgid "incorrect alignment of CRC offset for file \"%s\""
 msgstr "alignement incorrect du décalage CRC pour le fichier « %s »"
 
-#: access/transam/twophase.c:1311
+#: access/transam/twophase.c:1294
 #, c-format
 msgid "invalid magic number stored in file \"%s\""
 msgstr "nombre magique invalide dans le fichier « %s »"
 
-#: access/transam/twophase.c:1317
+#: access/transam/twophase.c:1300
 #, c-format
 msgid "invalid size stored in file \"%s\""
 msgstr "taille invalide stockée dans le fichier « %s »"
 
-#: access/transam/twophase.c:1329
+#: access/transam/twophase.c:1312
 #, c-format
 msgid "calculated CRC checksum does not match value stored in file \"%s\""
 msgstr "la somme de contrôle CRC calculée ne correspond par à la valeur enregistrée dans le fichier « %s »"
 
-#: access/transam/twophase.c:1395 access/transam/xlog.c:6360
+#: access/transam/twophase.c:1342 access/transam/xlog.c:6494
 #, c-format
 msgid "Failed while allocating a WAL reading processor."
 msgstr "Échec lors de l'allocation d'un processeur de lecture de journaux de transactions."
 
-#: access/transam/twophase.c:1401
+#: access/transam/twophase.c:1349
 #, c-format
 msgid "could not read two-phase state from WAL at %X/%X"
 msgstr "n'a pas pu lire le fichier d'état de la validation en deux phases depuis les journaux de transactions à %X/%X"
 
-#: access/transam/twophase.c:1409
+#: access/transam/twophase.c:1357
 #, c-format
 msgid "expected two-phase state data is not present in WAL at %X/%X"
 msgstr ""
 "le fichier d'état de la validation en deux phases attendu n'est pas présent\n"
 "dans les journaux de transaction à %X/%X"
 
-#: access/transam/twophase.c:1689
+#: access/transam/twophase.c:1637
 #, c-format
 msgid "could not recreate file \"%s\": %m"
 msgstr "n'a pas pu recréer le fichier « %s » : %m"
 
-#: access/transam/twophase.c:1816
+#: access/transam/twophase.c:1764
 #, c-format
 msgid "%u two-phase state file was written for a long-running prepared transaction"
 msgid_plural "%u two-phase state files were written for long-running prepared transactions"
 msgstr[0] "le fichier d'état de la validation en deux phases %u a été écrit pour une transaction préparée de longue durée"
 msgstr[1] "les fichiers d'état de la validation en deux phases %u ont été écrits pour des transactions préparées de longue durée"
 
-#: access/transam/twophase.c:2050
+#: access/transam/twophase.c:1998
 #, c-format
 msgid "recovering prepared transaction %u from shared memory"
 msgstr "récupération de la transaction préparée %u à partir de la mémoire partagée"
 
-#: access/transam/twophase.c:2141
+#: access/transam/twophase.c:2089
 #, c-format
 msgid "removing stale two-phase state file for transaction %u"
 msgstr "suppression du vieux fichier d'état de la validation en deux phases pour la transaction %u"
 
-#: access/transam/twophase.c:2148
+#: access/transam/twophase.c:2096
 #, c-format
 msgid "removing stale two-phase state from memory for transaction %u"
 msgstr "suppression du vieux fichier d'état de la validation en deux phases de la mémoire pour la transaction %u"
 
-#: access/transam/twophase.c:2161
+#: access/transam/twophase.c:2109
 #, c-format
 msgid "removing future two-phase state file for transaction %u"
 msgstr "suppression du futur fichier d'état de la validation en deux phases pour la transaction %u"
 
-#: access/transam/twophase.c:2168
+#: access/transam/twophase.c:2116
 #, c-format
 msgid "removing future two-phase state from memory for transaction %u"
 msgstr "suppression du futur fichier d'état de la validation en deux phases en mémoire pour la transaction %u"
 
-#: access/transam/twophase.c:2193
+#: access/transam/twophase.c:2141
 #, c-format
 msgid "corrupted two-phase state file for transaction %u"
 msgstr "fichier d'état de la validation en deux phases pour la transaction %u corrompu"
 
-#: access/transam/twophase.c:2198
+#: access/transam/twophase.c:2146
 #, c-format
 msgid "corrupted two-phase state in memory for transaction %u"
 msgstr "mémoire d'état de la validation en deux phases pour la transaction %u corrompue"
@@ -1605,29 +1775,29 @@ msgstr ""
 "la limite de réinitialisation de l'identifiant de transaction est %u,\n"
 "limité par la base de données d'OID %u"
 
-#: access/transam/xact.c:1027
+#: access/transam/xact.c:1030
 #, c-format
 msgid "cannot have more than 2^32-2 commands in a transaction"
 msgstr "ne peux pas avoir plus de 2^32-2 commandes dans une transaction"
 
-#: access/transam/xact.c:1552
+#: access/transam/xact.c:1555
 #, c-format
 msgid "maximum number of committed subtransactions (%d) exceeded"
 msgstr "nombre maximum de sous-transactions validées (%d) dépassé"
 
-#: access/transam/xact.c:2377
+#: access/transam/xact.c:2395
 #, c-format
 msgid "cannot PREPARE a transaction that has operated on temporary objects"
 msgstr ""
 "ne peut pas préparer (PREPARE) une transaction qui a travaillé sur des\n"
 "objets temporaires"
 
-#: access/transam/xact.c:2387
+#: access/transam/xact.c:2405
 #, c-format
 msgid "cannot PREPARE a transaction that has exported snapshots"
 msgstr "ne peut pas préparer (PREPARE) une transaction qui a exporté des snapshots"
 
-#: access/transam/xact.c:2396
+#: access/transam/xact.c:2414
 #, c-format
 msgid "cannot PREPARE a transaction that has manipulated logical replication workers"
 msgstr ""
@@ -1635,163 +1805,167 @@ msgstr ""
 "workers de réplication logique"
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:3337
+#: access/transam/xact.c:3359
 #, c-format
 msgid "%s cannot run inside a transaction block"
 msgstr "%s ne peut pas être exécuté dans un bloc de transaction"
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:3347
+#: access/transam/xact.c:3369
 #, c-format
 msgid "%s cannot run inside a subtransaction"
 msgstr "%s ne peut pas être exécuté dans une sous-transaction"
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:3357
+#: access/transam/xact.c:3379
 #, c-format
 msgid "%s cannot be executed from a function"
 msgstr "%s ne peut pas être exécuté à partir d'une fonction"
 
 #. translator: %s represents an SQL statement name
-#: access/transam/xact.c:3426 access/transam/xact.c:3733 access/transam/xact.c:3812 access/transam/xact.c:3935 access/transam/xact.c:4086 access/transam/xact.c:4155 access/transam/xact.c:4266
+#: access/transam/xact.c:3448 access/transam/xact.c:3754 access/transam/xact.c:3833 access/transam/xact.c:3956 access/transam/xact.c:4107 access/transam/xact.c:4176 access/transam/xact.c:4287
 #, c-format
 msgid "%s can only be used in transaction blocks"
 msgstr "%s peut seulement être utilisé dans des blocs de transaction"
 
-#: access/transam/xact.c:3619
+#: access/transam/xact.c:3640
 #, c-format
 msgid "there is already a transaction in progress"
 msgstr "une transaction est déjà en cours"
 
-#: access/transam/xact.c:3738 access/transam/xact.c:3817 access/transam/xact.c:3940
+#: access/transam/xact.c:3759 access/transam/xact.c:3838 access/transam/xact.c:3961
 #, c-format
 msgid "there is no transaction in progress"
 msgstr "aucune transaction en cours"
 
-#: access/transam/xact.c:3828
+#: access/transam/xact.c:3849
 #, c-format
 msgid "cannot commit during a parallel operation"
 msgstr "ne peut pas valider pendant une opération parallèle"
 
-#: access/transam/xact.c:3951
+#: access/transam/xact.c:3972
 #, c-format
 msgid "cannot abort during a parallel operation"
 msgstr "ne peut pas annuler pendant une opération en parallèle"
 
-#: access/transam/xact.c:4050
+#: access/transam/xact.c:4071
 #, c-format
 msgid "cannot define savepoints during a parallel operation"
 msgstr "ne peut pas définir de points de sauvegarde lors d'une opération parallèle"
 
-#: access/transam/xact.c:4137
+#: access/transam/xact.c:4158
 #, c-format
 msgid "cannot release savepoints during a parallel operation"
 msgstr "ne peut pas relâcher de points de sauvegarde pendant une opération parallèle"
 
-#: access/transam/xact.c:4147 access/transam/xact.c:4198 access/transam/xact.c:4258 access/transam/xact.c:4307
+#: access/transam/xact.c:4168 access/transam/xact.c:4219 access/transam/xact.c:4279 access/transam/xact.c:4328
 #, c-format
 msgid "savepoint \"%s\" does not exist"
 msgstr "le point de sauvegarde « %s » n'existe pas"
 
-#: access/transam/xact.c:4204 access/transam/xact.c:4313
+#: access/transam/xact.c:4225 access/transam/xact.c:4334
 #, c-format
 msgid "savepoint \"%s\" does not exist within current savepoint level"
 msgstr "le point de sauvegarde « %s » n'existe pas dans le niveau de point de sauvegarde actuel"
 
-#: access/transam/xact.c:4246
+#: access/transam/xact.c:4267
 #, c-format
 msgid "cannot rollback to savepoints during a parallel operation"
 msgstr "ne peut pas retourner à un point de sauvegarde pendant un opération parallèle"
 
-#: access/transam/xact.c:4374
+#: access/transam/xact.c:4395
 #, c-format
 msgid "cannot start subtransactions during a parallel operation"
 msgstr "ne peut pas lancer de sous-transactions pendant une opération parallèle"
 
-#: access/transam/xact.c:4442
+#: access/transam/xact.c:4463
 #, c-format
 msgid "cannot commit subtransactions during a parallel operation"
 msgstr "ne peut pas valider de sous-transactions pendant une opération parallèle"
 
-#: access/transam/xact.c:5080
+#: access/transam/xact.c:5103
 #, c-format
 msgid "cannot have more than 2^32-1 subtransactions in a transaction"
 msgstr "ne peut pas avoir plus de 2^32-1 sous-transactions dans une transaction"
 
-#: access/transam/xlog.c:2506
+#: access/transam/xlog.c:2554
 #, c-format
 msgid "could not write to log file %s at offset %u, length %zu: %m"
 msgstr "n'a pas pu écrire le fichier de transactions %s au décalage %u, longueur %zu : %m"
 
-#: access/transam/xlog.c:2782
+#: access/transam/xlog.c:2830
 #, c-format
 msgid "updated min recovery point to %X/%X on timeline %u"
 msgstr "mise à jour du point minimum de restauration sur %X/%X pour la timeline %u"
 
-#: access/transam/xlog.c:3863 access/transam/xlogutils.c:703 replication/walsender.c:2446
+#: access/transam/xlog.c:3944 access/transam/xlogutils.c:802 replication/walsender.c:2510
 #, c-format
 msgid "requested WAL segment %s has already been removed"
 msgstr "le segment demandé du journal de transaction, %s, a déjà été supprimé"
 
-#: access/transam/xlog.c:4105
+#: access/transam/xlog.c:4187
 #, c-format
 msgid "recycled write-ahead log file \"%s\""
 msgstr "recyclage du journal de transactions « %s »"
 
-#: access/transam/xlog.c:4117
+#: access/transam/xlog.c:4199
 #, c-format
 msgid "removing write-ahead log file \"%s\""
 msgstr "suppression du journal de transactions « %s »"
 
-#: access/transam/xlog.c:4137
+#: access/transam/xlog.c:4219
 #, c-format
 msgid "could not rename file \"%s\": %m"
 msgstr "n'a pas pu renommer le fichier « %s » : %m"
 
-#: access/transam/xlog.c:4179 access/transam/xlog.c:4189
+#: access/transam/xlog.c:4261 access/transam/xlog.c:4271
 #, c-format
 msgid "required WAL directory \"%s\" does not exist"
 msgstr "le répertoire « %s » requis pour les journaux de transactions n'existe pas"
 
-#: access/transam/xlog.c:4195
+#: access/transam/xlog.c:4277
 #, c-format
 msgid "creating missing WAL directory \"%s\""
 msgstr "création du répertoire manquant pour les journaux de transactions « %s »"
 
-#: access/transam/xlog.c:4198
+#: access/transam/xlog.c:4280
 #, c-format
 msgid "could not create missing directory \"%s\": %m"
 msgstr "n'a pas pu créer le répertoire « %s » manquant : %m"
 
-#: access/transam/xlog.c:4303
+#: access/transam/xlog.c:4383
 #, c-format
 msgid "unexpected timeline ID %u in log segment %s, offset %u"
 msgstr "identifiant timeline %u inattendu dans le journal de transactions %s, décalage %u"
 
-#: access/transam/xlog.c:4431
+#: access/transam/xlog.c:4521
 #, c-format
 msgid "new timeline %u is not a child of database system timeline %u"
 msgstr "la nouvelle timeline %u n'est pas une enfant de la timeline %u du système"
 
-#: access/transam/xlog.c:4445
+#: access/transam/xlog.c:4535
 #, c-format
 msgid "new timeline %u forked off current database system timeline %u before current recovery point %X/%X"
 msgstr ""
 "la nouvelle timeline %u a été créée à partir de la timeline de la base de données système %u\n"
 "avant le point de restauration courant %X/%X"
 
-#: access/transam/xlog.c:4464
+#: access/transam/xlog.c:4554
 #, c-format
 msgid "new target timeline is %u"
 msgstr "la nouvelle timeline cible est %u"
 
-#: access/transam/xlog.c:4623 access/transam/xlog.c:4632 access/transam/xlog.c:4656 access/transam/xlog.c:4663 access/transam/xlog.c:4670 access/transam/xlog.c:4675 access/transam/xlog.c:4682 access/transam/xlog.c:4689 access/transam/xlog.c:4696 access/transam/xlog.c:4703 access/transam/xlog.c:4710 access/transam/xlog.c:4717 access/transam/xlog.c:4726 access/transam/xlog.c:4733 access/transam/xlog.c:4742 access/transam/xlog.c:4749
-#: utils/init/miscinit.c:1502
+#: access/transam/xlog.c:4590
+#, c-format
+msgid "could not generate secret authorization token"
+msgstr "n'a pas pu générer le jeton secret d'autorisation"
+
+#: access/transam/xlog.c:4749 access/transam/xlog.c:4758 access/transam/xlog.c:4782 access/transam/xlog.c:4789 access/transam/xlog.c:4796 access/transam/xlog.c:4801 access/transam/xlog.c:4808 access/transam/xlog.c:4815 access/transam/xlog.c:4822 access/transam/xlog.c:4829 access/transam/xlog.c:4836 access/transam/xlog.c:4843 access/transam/xlog.c:4852 access/transam/xlog.c:4859 utils/init/miscinit.c:1548
 #, c-format
 msgid "database files are incompatible with server"
 msgstr "les fichiers de la base de données sont incompatibles avec le serveur"
 
-#: access/transam/xlog.c:4624
+#: access/transam/xlog.c:4750
 #, 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 ""
@@ -1799,168 +1973,149 @@ msgstr ""
 "%d (0x%08x) alors que le serveur a été compilé avec un PG_CONTROL_VERSION à\n"
 "%d (0x%08x)."
 
-#: access/transam/xlog.c:4628
+#: access/transam/xlog.c:4754
 #, c-format
 msgid "This could be a problem of mismatched byte ordering.  It looks like you need to initdb."
 msgstr ""
 "Ceci peut être un problème d'incohérence dans l'ordre des octets.\n"
 "Il se peut que vous ayez besoin d'initdb."
 
-#: access/transam/xlog.c:4633
+#: access/transam/xlog.c:4759
 #, c-format
 msgid "The database cluster was initialized with PG_CONTROL_VERSION %d, but the server was compiled with PG_CONTROL_VERSION %d."
 msgstr ""
 "Le cluster de base de données a été initialisé avec un PG_CONTROL_VERSION à\n"
 "%d alors que le serveur a été compilé avec un PG_CONTROL_VERSION à %d."
 
-#: access/transam/xlog.c:4636 access/transam/xlog.c:4660 access/transam/xlog.c:4667 access/transam/xlog.c:4672
+#: access/transam/xlog.c:4762 access/transam/xlog.c:4786 access/transam/xlog.c:4793 access/transam/xlog.c:4798
 #, c-format
 msgid "It looks like you need to initdb."
 msgstr "Il semble que vous avez besoin d'initdb."
 
-#: access/transam/xlog.c:4647
+#: access/transam/xlog.c:4773
 #, c-format
 msgid "incorrect checksum in control file"
 msgstr "somme de contrôle incorrecte dans le fichier de contrôle"
 
-#: access/transam/xlog.c:4657
+#: access/transam/xlog.c:4783
 #, c-format
 msgid "The database cluster was initialized with CATALOG_VERSION_NO %d, but the server was compiled with CATALOG_VERSION_NO %d."
 msgstr ""
 "Le cluster de base de données a été initialisé avec un CATALOG_VERSION_NO à\n"
 "%d alors que le serveur a été compilé avec un CATALOG_VERSION_NO à %d."
 
-#: access/transam/xlog.c:4664
+#: access/transam/xlog.c:4790
 #, c-format
 msgid "The database cluster was initialized with MAXALIGN %d, but the server was compiled with MAXALIGN %d."
 msgstr ""
 "Le cluster de bases de données a été initialisé avec un MAXALIGN à %d alors\n"
 "que le serveur a été compilé avec un MAXALIGN à %d."
 
-#: access/transam/xlog.c:4671
+#: access/transam/xlog.c:4797
 #, c-format
 msgid "The database cluster appears to use a different floating-point number format than the server executable."
 msgstr ""
 "Le cluster de bases de données semble utiliser un format différent pour les\n"
 "nombres à virgule flottante de celui de l'exécutable serveur."
 
-#: access/transam/xlog.c:4676
+#: access/transam/xlog.c:4802
 #, c-format
 msgid "The database cluster was initialized with BLCKSZ %d, but the server was compiled with BLCKSZ %d."
 msgstr ""
 "Le cluster de base de données a été initialisé avec un BLCKSZ à %d alors que\n"
 "le serveur a été compilé avec un BLCKSZ à %d."
 
-#: access/transam/xlog.c:4679 access/transam/xlog.c:4686 access/transam/xlog.c:4693 access/transam/xlog.c:4700 access/transam/xlog.c:4707 access/transam/xlog.c:4714 access/transam/xlog.c:4721 access/transam/xlog.c:4729 access/transam/xlog.c:4736 access/transam/xlog.c:4745 access/transam/xlog.c:4752
+#: access/transam/xlog.c:4805 access/transam/xlog.c:4812 access/transam/xlog.c:4819 access/transam/xlog.c:4826 access/transam/xlog.c:4833 access/transam/xlog.c:4840 access/transam/xlog.c:4847 access/transam/xlog.c:4855 access/transam/xlog.c:4862
 #, c-format
 msgid "It looks like you need to recompile or initdb."
 msgstr "Il semble que vous avez besoin de recompiler ou de relancer initdb."
 
-#: access/transam/xlog.c:4683
+#: access/transam/xlog.c:4809
 #, c-format
 msgid "The database cluster was initialized with RELSEG_SIZE %d, but the server was compiled with RELSEG_SIZE %d."
 msgstr ""
 "Le cluster de bases de données a été initialisé avec un RELSEG_SIZE à %d\n"
 "alors que le serveur a été compilé avec un RELSEG_SIZE à %d."
 
-#: access/transam/xlog.c:4690
+#: access/transam/xlog.c:4816
 #, c-format
 msgid "The database cluster was initialized with XLOG_BLCKSZ %d, but the server was compiled with XLOG_BLCKSZ %d."
 msgstr ""
 "Le cluster de base de données a été initialisé avec un XLOG_BLCKSZ à %d\n"
 "alors que le serveur a été compilé avec un XLOG_BLCKSZ à %d."
 
-#: access/transam/xlog.c:4697
+#: access/transam/xlog.c:4823
 #, c-format
 msgid "The database cluster was initialized with NAMEDATALEN %d, but the server was compiled with NAMEDATALEN %d."
 msgstr ""
 "Le cluster de bases de données a été initialisé avec un NAMEDATALEN à %d\n"
 "alors que le serveur a été compilé avec un NAMEDATALEN à %d."
 
-#: access/transam/xlog.c:4704
+#: access/transam/xlog.c:4830
 #, c-format
 msgid "The database cluster was initialized with INDEX_MAX_KEYS %d, but the server was compiled with INDEX_MAX_KEYS %d."
 msgstr ""
 "Le groupe de bases de données a été initialisé avec un INDEX_MAX_KEYS à %d\n"
 "alors que le serveur a été compilé avec un INDEX_MAX_KEYS à %d."
 
-#: access/transam/xlog.c:4711
+#: access/transam/xlog.c:4837
 #, c-format
 msgid "The database cluster was initialized with TOAST_MAX_CHUNK_SIZE %d, but the server was compiled with TOAST_MAX_CHUNK_SIZE %d."
 msgstr ""
 "Le cluster de bases de données a été initialisé avec un TOAST_MAX_CHUNK_SIZE\n"
 "à %d alors que le serveur a été compilé avec un TOAST_MAX_CHUNK_SIZE à %d."
 
-#: access/transam/xlog.c:4718
+#: access/transam/xlog.c:4844
 #, c-format
 msgid "The database cluster was initialized with LOBLKSIZE %d, but the server was compiled with LOBLKSIZE %d."
 msgstr ""
 "Le cluster de base de données a été initialisé avec un LOBLKSIZE à %d alors que\n"
 "le serveur a été compilé avec un LOBLKSIZE à %d."
 
-#: access/transam/xlog.c:4727
-#, c-format
-msgid "The database cluster was initialized without USE_FLOAT4_BYVAL but the server was compiled with USE_FLOAT4_BYVAL."
-msgstr ""
-"Le cluster de base de données a été initialisé sans USE_FLOAT4_BYVAL\n"
-"alors que le serveur a été compilé avec USE_FLOAT4_BYVAL."
-
-#: access/transam/xlog.c:4734
-#, c-format
-msgid "The database cluster was initialized with USE_FLOAT4_BYVAL but the server was compiled without USE_FLOAT4_BYVAL."
-msgstr ""
-"Le cluster de base de données a été initialisé avec USE_FLOAT4_BYVAL\n"
-"alors que le serveur a été compilé sans USE_FLOAT4_BYVAL."
-
-#: access/transam/xlog.c:4743
+#: access/transam/xlog.c:4853
 #, c-format
 msgid "The database cluster was initialized without USE_FLOAT8_BYVAL but the server was compiled with USE_FLOAT8_BYVAL."
 msgstr ""
 "Le cluster de base de données a été initialisé sans USE_FLOAT8_BYVAL\n"
 "alors que le serveur a été compilé avec USE_FLOAT8_BYVAL."
 
-#: access/transam/xlog.c:4750
+#: access/transam/xlog.c:4860
 #, c-format
 msgid "The database cluster was initialized with USE_FLOAT8_BYVAL but the server was compiled without USE_FLOAT8_BYVAL."
 msgstr ""
 "Le cluster de base de données a été initialisé avec USE_FLOAT8_BYVAL\n"
 "alors que le serveur a été compilé sans USE_FLOAT8_BYVAL."
 
-#: access/transam/xlog.c:4759
+#: access/transam/xlog.c:4869
 #, c-format
 msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d byte"
 msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d bytes"
 msgstr[0] "La taille du segment WAL doit être une puissance de deux comprise entre 1 Mo et 1 Go, mais le fichier de contrôle indique %d octet"
 msgstr[1] "La taille du segment WAL doit être une puissance de deux comprise entre 1 Mo et 1 Go, mais le fichier de contrôle indique %d octets"
 
-#: access/transam/xlog.c:4771
+#: access/transam/xlog.c:4881
 #, c-format
 msgid "\"min_wal_size\" must be at least twice \"wal_segment_size\""
 msgstr "« min_wal_size » doit être au moins le double de « wal_segment_size »"
 
-#: access/transam/xlog.c:4775
+#: access/transam/xlog.c:4885
 #, c-format
 msgid "\"max_wal_size\" must be at least twice \"wal_segment_size\""
 msgstr "« max_wal_size » doit être au moins le double de « wal_segment_size »"
 
-#: access/transam/xlog.c:5127
-#, c-format
-msgid "could not generate secret authorization token"
-msgstr "n'a pas pu générer le jeton secret d'autorisation"
-
-#: access/transam/xlog.c:5217
+#: access/transam/xlog.c:5318
 #, c-format
 msgid "could not write bootstrap write-ahead log file: %m"
 msgstr "n'a pas pu écrire le « bootstrap » du journal des transactions : %m"
 
-#: access/transam/xlog.c:5225
+#: access/transam/xlog.c:5326
 #, c-format
 msgid "could not fsync bootstrap write-ahead log file: %m"
 msgstr ""
 "n'a pas pu synchroniser sur disque (fsync) le « bootstrap » du journal des\n"
 "transactions : %m"
 
-#: access/transam/xlog.c:5231
+#: access/transam/xlog.c:5332
 #, c-format
 msgid "could not close bootstrap write-ahead log file: %m"
 msgstr "n'a pas pu fermer le « bootstrap » du journal des transactions : %m"
@@ -1968,94 +2123,104 @@ msgstr "n'a pas pu fermer le « bootstrap » du journal des transactions : %m"
 #     /*
 #      * Check for old recovery API file: recovery.conf
 #      */
-#: access/transam/xlog.c:5310
+#: access/transam/xlog.c:5393
 #, c-format
 msgid "using recovery command file \"%s\" is not supported"
 msgstr "utiliser le fichier de commande de la restauration « %s » n'est plus supporté"
 
-#: access/transam/xlog.c:5375
+#: access/transam/xlog.c:5458
 #, c-format
 msgid "standby mode is not supported by single-user servers"
 msgstr "le mode de restauration n'est pas supporté pour les serveurs mono-utilisateur"
 
-#: access/transam/xlog.c:5392
+#: access/transam/xlog.c:5475
 #, c-format
 msgid "specified neither primary_conninfo nor restore_command"
 msgstr "ni primary_conninfo ni restore_command n'est spécifié"
 
-#: access/transam/xlog.c:5393
+#: access/transam/xlog.c:5476
 #, c-format
 msgid "The database server will regularly poll the pg_wal subdirectory to check for files placed there."
 msgstr ""
 "Le serveur de la base de données va régulièrement interroger le sous-répertoire\n"
 "pg_wal pour vérifier les fichiers placés ici."
 
-#: access/transam/xlog.c:5401
+#: access/transam/xlog.c:5484
 #, c-format
 msgid "must specify restore_command when standby mode is not enabled"
 msgstr "doir spécifier une restore_command quand standby_mode n'est pas activé"
 
-#: access/transam/xlog.c:5439
+#: access/transam/xlog.c:5522
 #, c-format
 msgid "recovery target timeline %u does not exist"
 msgstr "le timeline cible, %u, de la restauration n'existe pas"
 
-#: access/transam/xlog.c:5554
+#: access/transam/xlog.c:5644
 #, c-format
 msgid "archive recovery complete"
 msgstr "restauration de l'archive terminée"
 
-#: access/transam/xlog.c:5620 access/transam/xlog.c:5893
+#: access/transam/xlog.c:5710 access/transam/xlog.c:5983
 #, c-format
 msgid "recovery stopping after reaching consistency"
 msgstr "arrêt de la restauration après avoir atteint le point de cohérence"
 
-#: access/transam/xlog.c:5641
+#: access/transam/xlog.c:5731
 #, c-format
 msgid "recovery stopping before WAL location (LSN) \"%X/%X\""
 msgstr "arrêt de la restauration avant l'emplacement WAL (LSN) « %X/%X »"
 
-#: access/transam/xlog.c:5727
+#: access/transam/xlog.c:5817
 #, c-format
 msgid "recovery stopping before commit of transaction %u, time %s"
 msgstr "arrêt de la restauration avant validation de la transaction %u, %s"
 
-#: access/transam/xlog.c:5734
+#: access/transam/xlog.c:5824
 #, c-format
 msgid "recovery stopping before abort of transaction %u, time %s"
 msgstr "arrêt de la restauration avant annulation de la transaction %u, %s"
 
-#: access/transam/xlog.c:5787
+#: access/transam/xlog.c:5877
 #, c-format
 msgid "recovery stopping at restore point \"%s\", time %s"
 msgstr "restauration en arrêt au point de restauration « %s », heure %s"
 
-#: access/transam/xlog.c:5805
+#: access/transam/xlog.c:5895
 #, c-format
 msgid "recovery stopping after WAL location (LSN) \"%X/%X\""
 msgstr "arrêt de la restauration après l'emplacement WAL (LSN) « %X/%X »"
 
-#: access/transam/xlog.c:5873
+#: access/transam/xlog.c:5963
 #, c-format
 msgid "recovery stopping after commit of transaction %u, time %s"
 msgstr "arrêt de la restauration après validation de la transaction %u, %s"
 
-#: access/transam/xlog.c:5881
+#: access/transam/xlog.c:5971
 #, c-format
 msgid "recovery stopping after abort of transaction %u, time %s"
 msgstr "arrêt de la restauration après annulation de la transaction %u, %s"
 
-#: access/transam/xlog.c:5921
+#: access/transam/xlog.c:6020
+#, c-format
+msgid "pausing at the end of recovery"
+msgstr "pause à la fin de la restauration"
+
+#: access/transam/xlog.c:6021
+#, c-format
+msgid "Execute pg_wal_replay_resume() to promote."
+msgstr "Exécuter pg_wal_replay_resume() pour promouvoir."
+
+#: access/transam/xlog.c:6024
 #, c-format
 msgid "recovery has paused"
 msgstr "restauration en pause"
 
-#: access/transam/xlog.c:5922
+#: access/transam/xlog.c:6025
 #, c-format
 msgid "Execute pg_wal_replay_resume() to continue."
 msgstr "Exécuter pg_wal_replay_resume() pour continuer."
 
-#: access/transam/xlog.c:6130
+#: access/transam/xlog.c:6242
 #, c-format
 msgid "hot standby is not possible because %s = %d is a lower setting than on the master server (its value was %d)"
 msgstr ""
@@ -2063,129 +2228,134 @@ msgstr ""
 "paramètrage plus bas que celui du serveur maître des journaux de transactions\n"
 "(la valeur était %d)"
 
-#: access/transam/xlog.c:6156
+#: access/transam/xlog.c:6266
 #, c-format
 msgid "WAL was generated with wal_level=minimal, data may be missing"
 msgstr "le journal de transactions a été généré avec le paramètre wal_level=minimal, des données peuvent manquer"
 
-#: access/transam/xlog.c:6157
+#: access/transam/xlog.c:6267
 #, c-format
 msgid "This happens if you temporarily set wal_level=minimal without taking a new base backup."
 msgstr ""
 "Ceci peut arriver si vous configurez temporairement wal_level à minimal sans avoir\n"
 "pris une nouvelle sauvegarde de base."
 
-#: access/transam/xlog.c:6168
+#: access/transam/xlog.c:6278
 #, c-format
 msgid "hot standby is not possible because wal_level was not set to \"replica\" or higher on the master server"
 msgstr ""
 "les connexions en lecture seules ne sont pas possibles parce que le paramètre wal_level\n"
 "n'a pas été positionné à « replica » ou plus sur le serveur maître"
 
-#: access/transam/xlog.c:6169
+#: access/transam/xlog.c:6279
 #, c-format
 msgid "Either set wal_level to \"replica\" on the master, or turn off hot_standby here."
 msgstr ""
 "Vous devez soit positionner le paramètre wal_level à « replica » sur le maître,\n"
 "soit désactiver le hot_standby ici."
 
-#: access/transam/xlog.c:6233
+#: access/transam/xlog.c:6341
 #, c-format
-msgid "control file contains invalid data"
-msgstr "le fichier de contrôle contient des données invalides"
+msgid "control file contains invalid checkpoint location"
+msgstr "le fichier de contrôle contient un emplacement de checkpoint invalide"
 
-#: access/transam/xlog.c:6239
+#: access/transam/xlog.c:6352
 #, c-format
 msgid "database system was shut down at %s"
 msgstr "le système de bases de données a été arrêté à %s"
 
-#: access/transam/xlog.c:6244
+#: access/transam/xlog.c:6358
 #, c-format
 msgid "database system was shut down in recovery at %s"
 msgstr "le système de bases de données a été arrêté pendant la restauration à %s"
 
-#: access/transam/xlog.c:6248
+#: access/transam/xlog.c:6364
 #, c-format
 msgid "database system shutdown was interrupted; last known up at %s"
 msgstr "le système de bases de données a été interrompu ; dernier lancement connu à %s"
 
-#: access/transam/xlog.c:6252
+#: access/transam/xlog.c:6370
 #, c-format
 msgid "database system was interrupted while in recovery at %s"
 msgstr "le système de bases de données a été interrompu lors d'une restauration à %s"
 
-#: access/transam/xlog.c:6254
+#: access/transam/xlog.c:6372
 #, c-format
 msgid "This probably means that some data is corrupted and you will have to use the last backup for recovery."
 msgstr ""
 "Ceci signifie probablement que des données ont été corrompues et que vous\n"
 "devrez utiliser la dernière sauvegarde pour la restauration."
 
-#: access/transam/xlog.c:6258
+#: access/transam/xlog.c:6378
 #, c-format
 msgid "database system was interrupted while in recovery at log time %s"
 msgstr ""
 "le système de bases de données a été interrompu lors d'une récupération à %s\n"
 "(moment de la journalisation)"
 
-#: access/transam/xlog.c:6260
+#: access/transam/xlog.c:6380
 #, c-format
 msgid "If this has occurred more than once some data might be corrupted and you might need to choose an earlier recovery target."
 msgstr ""
 "Si c'est arrivé plus d'une fois, des données ont pu être corrompues et vous\n"
 "pourriez avoir besoin de choisir une cible de récupération antérieure."
 
-#: access/transam/xlog.c:6264
+#: access/transam/xlog.c:6386
 #, c-format
 msgid "database system was interrupted; last known up at %s"
 msgstr "le système de bases de données a été interrompu ; dernier lancement connu à %s"
 
-#: access/transam/xlog.c:6320
+#: access/transam/xlog.c:6392
+#, c-format
+msgid "control file contains invalid database cluster state"
+msgstr "le fichier de contrôle contient un état invalide de l'instance"
+
+#: access/transam/xlog.c:6449
 #, c-format
 msgid "entering standby mode"
 msgstr "entre en mode standby"
 
-#: access/transam/xlog.c:6323
+#: access/transam/xlog.c:6452
 #, c-format
 msgid "starting point-in-time recovery to XID %u"
 msgstr "début de la restauration de l'archive au XID %u"
 
-#: access/transam/xlog.c:6327
+#: access/transam/xlog.c:6456
 #, c-format
 msgid "starting point-in-time recovery to %s"
 msgstr "début de la restauration de l'archive à %s"
 
-#: access/transam/xlog.c:6331
+#: access/transam/xlog.c:6460
 #, c-format
 msgid "starting point-in-time recovery to \"%s\""
 msgstr "début de la restauration PITR à « %s »"
 
-#: access/transam/xlog.c:6335
+#: access/transam/xlog.c:6464
 #, c-format
 msgid "starting point-in-time recovery to WAL location (LSN) \"%X/%X\""
 msgstr "début de la restauration PITR à l'emplacement WAL (LSN) « %X/%X »"
 
-#: access/transam/xlog.c:6340
+#: access/transam/xlog.c:6469
 #, c-format
 msgid "starting point-in-time recovery to earliest consistent point"
 msgstr "début de la restauration de l'archive jusqu'au point de cohérence le plus proche"
 
-#: access/transam/xlog.c:6343
+#: access/transam/xlog.c:6472
 #, c-format
 msgid "starting archive recovery"
 msgstr "début de la restauration de l'archive"
 
-#: access/transam/xlog.c:6397 access/transam/xlog.c:6529
+#: access/transam/xlog.c:6531 access/transam/xlog.c:6664
 #, c-format
 msgid "checkpoint record is at %X/%X"
 msgstr "l'enregistrement du point de vérification est à %X/%X"
 
-#: access/transam/xlog.c:6411
+#: access/transam/xlog.c:6546
 #, c-format
 msgid "could not find redo location referenced by checkpoint record"
 msgstr "n'a pas pu localiser l'enregistrement redo référencé par le point de vérification"
 
-#: access/transam/xlog.c:6412 access/transam/xlog.c:6422
+#: access/transam/xlog.c:6547 access/transam/xlog.c:6557
 #, c-format
 msgid ""
 "If you are restoring from a backup, touch \"%s/recovery.signal\" and add required recovery options.\n"
@@ -2196,133 +2366,138 @@ msgstr ""
 "Si vous ne restaurez pas depuis une sauvegarde, essayez de supprimer « %s/backup_label ».\n"
 "Attention : supprimer « %s/backup_label » lors d'une restauration de sauvegarde entraînera la corruption de l'instance."
 
-#: access/transam/xlog.c:6421
+#: access/transam/xlog.c:6556
 #, c-format
 msgid "could not locate required checkpoint record"
 msgstr "n'a pas pu localiser l'enregistrement d'un point de vérification requis"
 
-#: access/transam/xlog.c:6450 commands/tablespace.c:655
+#: access/transam/xlog.c:6585 commands/tablespace.c:654
 #, c-format
 msgid "could not create symbolic link \"%s\": %m"
 msgstr "n'a pas pu créer le lien symbolique « %s » : %m"
 
-#: access/transam/xlog.c:6482 access/transam/xlog.c:6488
+#: access/transam/xlog.c:6617 access/transam/xlog.c:6623
 #, c-format
 msgid "ignoring file \"%s\" because no file \"%s\" exists"
 msgstr "ignore le fichier « %s » car le fichier « %s » n'existe pas"
 
-#: access/transam/xlog.c:6484 access/transam/xlog.c:11483
+#: access/transam/xlog.c:6619 access/transam/xlog.c:11828
 #, c-format
 msgid "File \"%s\" was renamed to \"%s\"."
 msgstr "Le fichier « %s » a été renommé en « %s »."
 
-#: access/transam/xlog.c:6490
+#: access/transam/xlog.c:6625
 #, c-format
 msgid "Could not rename file \"%s\" to \"%s\": %m."
 msgstr "N'a pas pu renommer le fichier « %s » en « %s » : %m."
 
-#: access/transam/xlog.c:6541
+#: access/transam/xlog.c:6676
 #, c-format
 msgid "could not locate a valid checkpoint record"
 msgstr "n'a pas pu localiser un enregistrement d'un point de vérification valide"
 
-#: access/transam/xlog.c:6579
+#: access/transam/xlog.c:6714
 #, c-format
 msgid "requested timeline %u is not a child of this server's history"
 msgstr "la timeline requise %u n'est pas un fils de l'historique de ce serveur"
 
-#: access/transam/xlog.c:6581
+#: access/transam/xlog.c:6716
 #, c-format
 msgid "Latest checkpoint is at %X/%X on timeline %u, but in the history of the requested timeline, the server forked off from that timeline at %X/%X."
 msgstr "Le dernier checkpoint est à %X/%X sur la timeline %u, mais dans l'historique de la timeline demandée, le serveur est sorti de cette timeline à %X/%X."
 
-#: access/transam/xlog.c:6597
+#: access/transam/xlog.c:6732
 #, c-format
 msgid "requested timeline %u does not contain minimum recovery point %X/%X on timeline %u"
 msgstr "la timeline requise, %u, ne contient pas le point de restauration minimum (%X/%X) sur la timeline %u"
 
-#: access/transam/xlog.c:6628
+#: access/transam/xlog.c:6763
 #, c-format
 msgid "invalid next transaction ID"
 msgstr "prochain ID de transaction invalide"
 
-#: access/transam/xlog.c:6722
+#: access/transam/xlog.c:6857
 #, c-format
 msgid "invalid redo in checkpoint record"
 msgstr "ré-exécution invalide dans l'enregistrement du point de vérification"
 
-#: access/transam/xlog.c:6733
+#: access/transam/xlog.c:6868
 #, c-format
 msgid "invalid redo record in shutdown checkpoint"
 msgstr "enregistrement de ré-exécution invalide dans le point de vérification d'arrêt"
 
-#: access/transam/xlog.c:6761
+#: access/transam/xlog.c:6902
 #, c-format
 msgid "database system was not properly shut down; automatic recovery in progress"
 msgstr ""
 "le système de bases de données n'a pas été arrêté proprement ; restauration\n"
 "automatique en cours"
 
-#: access/transam/xlog.c:6765
+#: access/transam/xlog.c:6906
 #, c-format
 msgid "crash recovery starts in timeline %u and has target timeline %u"
 msgstr "la restauration après crash commence par la timeline %u et a la timeline %u en cible"
 
-#: access/transam/xlog.c:6808
+#: access/transam/xlog.c:6953
 #, c-format
 msgid "backup_label contains data inconsistent with control file"
 msgstr "backup_label contient des données incohérentes avec le fichier de contrôle"
 
-#: access/transam/xlog.c:6809
+#: access/transam/xlog.c:6954
 #, c-format
 msgid "This means that the backup is corrupted and you will have to use another backup for recovery."
 msgstr ""
 "Ceci signifie que la sauvegarde a été corrompue et que vous devrez utiliser\n"
 "la dernière sauvegarde pour la restauration."
 
-#: access/transam/xlog.c:6900
+#: access/transam/xlog.c:7045
 #, c-format
 msgid "initializing for hot standby"
 msgstr "initialisation pour « Hot Standby »"
 
-#: access/transam/xlog.c:7032
+#: access/transam/xlog.c:7178
 #, c-format
 msgid "redo starts at %X/%X"
 msgstr "la ré-exécution commence à %X/%X"
 
-#: access/transam/xlog.c:7256
+#: access/transam/xlog.c:7402
 #, c-format
 msgid "requested recovery stop point is before consistent recovery point"
 msgstr ""
 "le point d'arrêt de la restauration demandée se trouve avant le point\n"
 "cohérent de restauration"
 
-#: access/transam/xlog.c:7294
+#: access/transam/xlog.c:7440
 #, c-format
 msgid "redo done at %X/%X"
 msgstr "ré-exécution faite à %X/%X"
 
-#: access/transam/xlog.c:7299
+#: access/transam/xlog.c:7445
 #, c-format
 msgid "last completed transaction was at log time %s"
 msgstr "la dernière transaction a eu lieu à %s (moment de la journalisation)"
 
-#: access/transam/xlog.c:7308
+#: access/transam/xlog.c:7454
 #, c-format
 msgid "redo is not required"
 msgstr "la ré-exécution n'est pas nécessaire"
 
-#: access/transam/xlog.c:7383 access/transam/xlog.c:7387
+#: access/transam/xlog.c:7466
+#, c-format
+msgid "recovery ended before configured recovery target was reached"
+msgstr ""
+
+#: access/transam/xlog.c:7545 access/transam/xlog.c:7549
 #, c-format
 msgid "WAL ends before end of online backup"
 msgstr "le journal de transactions se termine avant la fin de la sauvegarde de base"
 
-#: access/transam/xlog.c:7384
+#: access/transam/xlog.c:7546
 #, c-format
 msgid "All WAL generated while online backup was taken must be available at recovery."
 msgstr "Tous les journaux de transactions générés pendant la sauvegarde en ligne doivent être disponibles pour la restauration."
 
-#: access/transam/xlog.c:7388
+#: access/transam/xlog.c:7550
 #, c-format
 msgid "Online backup started with pg_start_backup() must be ended with pg_stop_backup(), and all WAL up to that point must be available at recovery."
 msgstr ""
@@ -2330,180 +2505,180 @@ msgstr ""
 "pg_stop_backup() et tous les journaux de transactions générés entre les deux\n"
 "doivent être disponibles pour la restauration."
 
-#: access/transam/xlog.c:7391
+#: access/transam/xlog.c:7553
 #, c-format
 msgid "WAL ends before consistent recovery point"
 msgstr "Le journal de transaction se termine avant un point de restauration cohérent"
 
-#: access/transam/xlog.c:7426
+#: access/transam/xlog.c:7588
 #, c-format
 msgid "selected new timeline ID: %u"
 msgstr "identifiant d'un timeline nouvellement sélectionné : %u"
 
-#: access/transam/xlog.c:7874
+#: access/transam/xlog.c:8036
 #, c-format
 msgid "consistent recovery state reached at %X/%X"
 msgstr "état de restauration cohérent atteint à %X/%X"
 
-#: access/transam/xlog.c:8066
+#: access/transam/xlog.c:8246
 #, c-format
 msgid "invalid primary checkpoint link in control file"
 msgstr "lien du point de vérification primaire invalide dans le fichier de contrôle"
 
-#: access/transam/xlog.c:8070
+#: access/transam/xlog.c:8250
 #, c-format
 msgid "invalid checkpoint link in backup_label file"
 msgstr "lien du point de vérification invalide dans le fichier backup_label"
 
-#: access/transam/xlog.c:8087
+#: access/transam/xlog.c:8268
 #, c-format
 msgid "invalid primary checkpoint record"
 msgstr "enregistrement du point de vérification primaire invalide"
 
-#: access/transam/xlog.c:8091
+#: access/transam/xlog.c:8272
 #, c-format
 msgid "invalid checkpoint record"
 msgstr "enregistrement du point de vérification invalide"
 
-#: access/transam/xlog.c:8102
+#: access/transam/xlog.c:8283
 #, c-format
 msgid "invalid resource manager ID in primary checkpoint record"
 msgstr "identifiant du gestionnaire de ressource invalide dans l'enregistrement primaire du point de vérification"
 
-#: access/transam/xlog.c:8106
+#: access/transam/xlog.c:8287
 #, c-format
 msgid "invalid resource manager ID in checkpoint record"
 msgstr "identifiant du gestionnaire de ressource invalide dans l'enregistrement du point de vérification"
 
-#: access/transam/xlog.c:8119
+#: access/transam/xlog.c:8300
 #, c-format
 msgid "invalid xl_info in primary checkpoint record"
 msgstr "xl_info invalide dans l'enregistrement du point de vérification primaire"
 
-#: access/transam/xlog.c:8123
+#: access/transam/xlog.c:8304
 #, c-format
 msgid "invalid xl_info in checkpoint record"
 msgstr "xl_info invalide dans l'enregistrement du point de vérification"
 
-#: access/transam/xlog.c:8134
+#: access/transam/xlog.c:8315
 #, c-format
 msgid "invalid length of primary checkpoint record"
 msgstr "longueur invalide de l'enregistrement primaire du point de vérification"
 
-#: access/transam/xlog.c:8138
+#: access/transam/xlog.c:8319
 #, c-format
 msgid "invalid length of checkpoint record"
 msgstr "longueur invalide de l'enregistrement du point de vérification"
 
-#: access/transam/xlog.c:8318
+#: access/transam/xlog.c:8499
 #, c-format
 msgid "shutting down"
 msgstr "arrêt en cours"
 
-#: access/transam/xlog.c:8638
+#: access/transam/xlog.c:8819
 #, c-format
 msgid "checkpoint skipped because system is idle"
 msgstr "checkpoint ignoré car le système est inactif"
 
-#: access/transam/xlog.c:8838
+#: access/transam/xlog.c:9019
 #, c-format
 msgid "concurrent write-ahead log activity while database system is shutting down"
 msgstr ""
 "activité en cours du journal de transactions alors que le système de bases\n"
 "de données est en cours d'arrêt"
 
-#: access/transam/xlog.c:9094
+#: access/transam/xlog.c:9276
 #, c-format
 msgid "skipping restartpoint, recovery has already ended"
 msgstr "restartpoint ignoré, la récupération est déjà terminée"
 
-#: access/transam/xlog.c:9117
+#: access/transam/xlog.c:9299
 #, c-format
 msgid "skipping restartpoint, already performed at %X/%X"
 msgstr "ignore le point de redémarrage, déjà réalisé à %X/%X"
 
-#: access/transam/xlog.c:9284
+#: access/transam/xlog.c:9467
 #, c-format
 msgid "recovery restart point at %X/%X"
 msgstr "la ré-exécution en restauration commence à %X/%X"
 
-#: access/transam/xlog.c:9286
+#: access/transam/xlog.c:9469
 #, c-format
 msgid "Last completed transaction was at log time %s."
 msgstr "La dernière transaction a eu lieu à %s (moment de la journalisation)."
 
-#: access/transam/xlog.c:9420
+#: access/transam/xlog.c:9711
 #, c-format
 msgid "restore point \"%s\" created at %X/%X"
 msgstr "point de restauration « %s » créé à %X/%X"
 
-#: access/transam/xlog.c:9561
+#: access/transam/xlog.c:9856
 #, c-format
 msgid "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint record"
 msgstr "identifiant de timeline précédent %u inattendu (identifiant de la timeline courante %u) dans l'enregistrement du point de vérification"
 
-#: access/transam/xlog.c:9570
+#: access/transam/xlog.c:9865
 #, c-format
 msgid "unexpected timeline ID %u (after %u) in checkpoint record"
 msgstr ""
 "identifiant timeline %u inattendu (après %u) dans l'enregistrement du point\n"
 "de vérification"
 
-#: access/transam/xlog.c:9586
+#: access/transam/xlog.c:9881
 #, c-format
 msgid "unexpected timeline ID %u in checkpoint record, before reaching minimum recovery point %X/%X on timeline %u"
 msgstr "identifiant timeline %u inattendu dans l'enregistrement du checkpoint, avant d'atteindre le point de restauration minimum %X/%X sur la timeline %u"
 
-#: access/transam/xlog.c:9662
+#: access/transam/xlog.c:9957
 #, c-format
 msgid "online backup was canceled, recovery cannot continue"
 msgstr "la sauvegarde en ligne a été annulée, la restauration ne peut pas continuer"
 
-#: access/transam/xlog.c:9716 access/transam/xlog.c:9770 access/transam/xlog.c:9793
+#: access/transam/xlog.c:10013 access/transam/xlog.c:10069 access/transam/xlog.c:10092
 #, c-format
 msgid "unexpected timeline ID %u (should be %u) in checkpoint record"
 msgstr ""
 "identifiant timeline %u inattendu (devrait être %u) dans l'enregistrement du\n"
 "point de vérification"
 
-#: access/transam/xlog.c:10113
+#: access/transam/xlog.c:10418
 #, c-format
 msgid "could not fsync write-through file \"%s\": %m"
 msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier %s : %m"
 
-#: access/transam/xlog.c:10122
+#: access/transam/xlog.c:10424
 #, c-format
 msgid "could not fdatasync file \"%s\": %m"
 msgstr "n'a pas pu synchroniser sur disque (fdatasync) le fichier « %s » : %m"
 
-#: access/transam/xlog.c:10215 access/transam/xlog.c:10744 access/transam/xlogfuncs.c:290 access/transam/xlogfuncs.c:317 access/transam/xlogfuncs.c:356 access/transam/xlogfuncs.c:377 access/transam/xlogfuncs.c:398
+#: access/transam/xlog.c:10523 access/transam/xlog.c:11061 access/transam/xlogfuncs.c:275 access/transam/xlogfuncs.c:302 access/transam/xlogfuncs.c:341 access/transam/xlogfuncs.c:362 access/transam/xlogfuncs.c:383
 #, c-format
 msgid "WAL control functions cannot be executed during recovery."
 msgstr "les fonctions de contrôle des journaux de transactions ne peuvent pas être exécutées lors de la restauration."
 
-#: access/transam/xlog.c:10224 access/transam/xlog.c:10753
+#: access/transam/xlog.c:10532 access/transam/xlog.c:11070
 #, c-format
 msgid "WAL level not sufficient for making an online backup"
 msgstr "Le niveau de journalisation n'est pas suffisant pour faire une sauvegarde en ligne"
 
-#: access/transam/xlog.c:10225 access/transam/xlog.c:10754 access/transam/xlogfuncs.c:323
+#: access/transam/xlog.c:10533 access/transam/xlog.c:11071 access/transam/xlogfuncs.c:308
 #, c-format
 msgid "wal_level must be set to \"replica\" or \"logical\" at server start."
 msgstr ""
 "wal_level doit être configuré à « replica » ou « logical »\n"
 "au démarrage du serveur."
 
-#: access/transam/xlog.c:10230
+#: access/transam/xlog.c:10538
 #, c-format
 msgid "backup label too long (max %d bytes)"
 msgstr "label de sauvegarde trop long (%d octets maximum)"
 
-#: access/transam/xlog.c:10267 access/transam/xlog.c:10543 access/transam/xlog.c:10581
+#: access/transam/xlog.c:10575 access/transam/xlog.c:10860 access/transam/xlog.c:10898
 #, c-format
 msgid "a backup is already in progress"
 msgstr "une sauvegarde est déjà en cours"
 
-#: access/transam/xlog.c:10268
+#: access/transam/xlog.c:10576
 #, c-format
 msgid "Run pg_stop_backup() and try again."
 msgstr "Exécutez pg_stop_backup() et tentez de nouveau."
@@ -2513,12 +2688,12 @@ msgstr "Exécutez pg_stop_backup() et tentez de nouveau."
 #                  * (i.e., since last restartpoint used as backup starting
 #                  * checkpoint) contain full-page writes.
 #                  */
-#: access/transam/xlog.c:10364
+#: access/transam/xlog.c:10672
 #, c-format
 msgid "WAL generated with full_page_writes=off was replayed since last restartpoint"
 msgstr "Un journal de transaction généré avec full_page_writes=off a été rejoué depuis le dernier point de reprise (restartpoint)"
 
-#: access/transam/xlog.c:10366 access/transam/xlog.c:10949
+#: access/transam/xlog.c:10674 access/transam/xlog.c:11266
 #, c-format
 msgid "This means that the backup being taken on the standby is corrupt and should not be used. Enable full_page_writes and run CHECKPOINT on the master, and then try an online backup again."
 msgstr ""
@@ -2526,167 +2701,177 @@ msgstr ""
 "corrompue et ne doit pas être utilisée. Activez full_page_writes et lancez\n"
 "CHECKPOINT sur le maître, puis recommencez la sauvegarde."
 
-#: access/transam/xlog.c:10441 replication/basebackup.c:1251 utils/adt/misc.c:329
+#: access/transam/xlog.c:10757 replication/basebackup.c:1423 utils/adt/misc.c:342
 #, c-format
 msgid "symbolic link \"%s\" target is too long"
 msgstr "la cible du lien symbolique « %s » est trop long"
 
-#: access/transam/xlog.c:10493 commands/tablespace.c:403 commands/tablespace.c:567 replication/basebackup.c:1266 utils/adt/misc.c:337
+#: access/transam/xlog.c:10810 commands/tablespace.c:402 commands/tablespace.c:566 replication/basebackup.c:1438 utils/adt/misc.c:350
 #, c-format
 msgid "tablespaces are not supported on this platform"
 msgstr "les tablespaces ne sont pas supportés sur cette plateforme"
 
-#: access/transam/xlog.c:10544 access/transam/xlog.c:10582
+#: access/transam/xlog.c:10861 access/transam/xlog.c:10899
 #, c-format
 msgid "If you're sure there is no backup in progress, remove file \"%s\" and try again."
 msgstr ""
 "Si vous êtes certain qu'aucune sauvegarde n'est en cours, supprimez le\n"
 "fichier « %s » et recommencez de nouveau."
 
-#: access/transam/xlog.c:10769
+#: access/transam/xlog.c:11086
 #, c-format
 msgid "exclusive backup not in progress"
 msgstr "une sauvegarde exclusive n'est pas en cours"
 
-#: access/transam/xlog.c:10796
+#: access/transam/xlog.c:11113
 #, c-format
 msgid "a backup is not in progress"
 msgstr "aucune sauvegarde n'est en cours"
 
-#: access/transam/xlog.c:10882 access/transam/xlog.c:10895 access/transam/xlog.c:11256 access/transam/xlog.c:11262 access/transam/xlog.c:11310 access/transam/xlog.c:11383 access/transam/xlogfuncs.c:693
+#: access/transam/xlog.c:11199 access/transam/xlog.c:11212 access/transam/xlog.c:11601 access/transam/xlog.c:11607 access/transam/xlog.c:11655 access/transam/xlog.c:11728 access/transam/xlogfuncs.c:692
 #, c-format
 msgid "invalid data in file \"%s\""
 msgstr "données invalides dans le fichier « %s »"
 
-#: access/transam/xlog.c:10899 replication/basebackup.c:1103
+#: access/transam/xlog.c:11216 replication/basebackup.c:1271
 #, c-format
 msgid "the standby was promoted during online backup"
 msgstr "le standby a été promu lors de la sauvegarde en ligne"
 
-#: access/transam/xlog.c:10900 replication/basebackup.c:1104
+#: access/transam/xlog.c:11217 replication/basebackup.c:1272
 #, c-format
 msgid "This means that the backup being taken is corrupt and should not be used. Try taking another online backup."
 msgstr ""
 "Cela signifie que la sauvegarde en cours de réalisation est corrompue et ne\n"
 "doit pas être utilisée. Recommencez la sauvegarde."
 
-#: access/transam/xlog.c:10947
+#: access/transam/xlog.c:11264
 #, c-format
 msgid "WAL generated with full_page_writes=off was replayed during online backup"
 msgstr "Un journal de transaction généré avec full_page_writes=off a été rejoué pendant la sauvegarde en ligne"
 
-#: access/transam/xlog.c:11067
+#: access/transam/xlog.c:11384
 #, c-format
 msgid "base backup done, waiting for required WAL segments to be archived"
 msgstr "backup de base terminé, en attente de l'archivage des journaux de transactions nécessaires"
 
-#: access/transam/xlog.c:11077
+#: access/transam/xlog.c:11396
 #, c-format
 msgid "still waiting for all required WAL segments to be archived (%d seconds elapsed)"
 msgstr "toujours en attente de la fin de l'archivage de tous les segments de journaux de transactions requis (%d secondes passées)"
 
-#: access/transam/xlog.c:11079
+#: access/transam/xlog.c:11398
 #, c-format
 msgid "Check that your archive_command is executing properly.  You can safely cancel this backup, but the database backup will not be usable without all the WAL segments."
 msgstr "Vérifiez que votre archive_command s'exécute correctement. Vous pouvez annuler cette sauvegarde sans souci, mais elle ne sera pas utilisable sans tous les segments WAL."
 
-#: access/transam/xlog.c:11086
+#: access/transam/xlog.c:11405
 #, c-format
 msgid "all required WAL segments have been archived"
 msgstr "tous les journaux de transactions requis ont été archivés"
 
-#: access/transam/xlog.c:11090
+#: access/transam/xlog.c:11409
 #, c-format
 msgid "WAL archiving is not enabled; you must ensure that all required WAL segments are copied through other means to complete the backup"
 msgstr "L'archivage des journaux de transactions n'est pas activé ; vous devez vous assurer que tous les des journaux de transactions requis sont copiés par d'autres moyens pour terminer la sauvegarde"
 
-#: access/transam/xlog.c:11293
+#: access/transam/xlog.c:11462
+#, c-format
+msgid "aborting backup due to backend exiting before pg_stop_backup was called"
+msgstr "annulation de la sauvegarde due à la déconnexion du processus serveur avant que pg_stop_backup ne soit appelé"
+
+#: access/transam/xlog.c:11638
 #, c-format
 msgid "backup time %s in file \"%s\""
 msgstr "heure de sauvegarde %s dans le fichier « %s »"
 
-#: access/transam/xlog.c:11298
+#: access/transam/xlog.c:11643
 #, c-format
 msgid "backup label %s in file \"%s\""
 msgstr "label de sauvegarde %s dans le fichier « %s »"
 
-#: access/transam/xlog.c:11311
+#: access/transam/xlog.c:11656
 #, c-format
 msgid "Timeline ID parsed is %u, but expected %u."
 msgstr "L'identifiant de timeline parsé est %u, mais %u était attendu."
 
-#: access/transam/xlog.c:11315
+#: access/transam/xlog.c:11660
 #, c-format
 msgid "backup timeline %u in file \"%s\""
 msgstr "timeline de sauvegarde %u dans le fichier « %s »"
 
 #. translator: %s is a WAL record description
-#: access/transam/xlog.c:11423
+#: access/transam/xlog.c:11768
 #, c-format
 msgid "WAL redo at %X/%X for %s"
 msgstr "rejeu des WAL à %X/%X pour %s"
 
-#: access/transam/xlog.c:11472
+#: access/transam/xlog.c:11817
 #, c-format
 msgid "online backup mode was not canceled"
 msgstr "le mode de sauvegarde en ligne n'a pas été annulé"
 
-#: access/transam/xlog.c:11473
+#: access/transam/xlog.c:11818
 #, c-format
 msgid "File \"%s\" could not be renamed to \"%s\": %m."
 msgstr "Le fichier « %s » n'a pas pu être renommé en « %s » : %m."
 
-#: access/transam/xlog.c:11482 access/transam/xlog.c:11494 access/transam/xlog.c:11504
+#: access/transam/xlog.c:11827 access/transam/xlog.c:11839 access/transam/xlog.c:11849
 #, c-format
 msgid "online backup mode canceled"
 msgstr "mode de sauvegarde en ligne annulé"
 
-#: access/transam/xlog.c:11495
+#: access/transam/xlog.c:11840
 #, c-format
 msgid "Files \"%s\" and \"%s\" were renamed to \"%s\" and \"%s\", respectively."
 msgstr "Les fichiers « %s » et « %s » sont renommés respectivement « %s » et « %s »."
 
-#: access/transam/xlog.c:11505
+#: access/transam/xlog.c:11850
 #, c-format
 msgid "File \"%s\" was renamed to \"%s\", but file \"%s\" could not be renamed to \"%s\": %m."
 msgstr "Le fichier « %s » a été renommé en « %s », mais le fichier « %s » n'a pas pu être renommé en « %s » : %m."
 
-#: access/transam/xlog.c:11638
+#: access/transam/xlog.c:11983 access/transam/xlogutils.c:971
 #, c-format
 msgid "could not read from log segment %s, offset %u: %m"
 msgstr "n'a pas pu lire le journal de transactions %s, décalage %u : %m"
 
-#: access/transam/xlog.c:11644 replication/walsender.c:2490
+#: access/transam/xlog.c:11989 access/transam/xlogutils.c:978
 #, c-format
 msgid "could not read from log segment %s, offset %u: read %d of %zu"
 msgstr "n'a pas pu lire à partir du segment %s du journal de transactions, décalage %u: lu %d sur %zu"
 
-#: access/transam/xlog.c:12177
+#: access/transam/xlog.c:12518
+#, c-format
+msgid "WAL receiver process shutdown requested"
+msgstr "le processus wal receiver a reçu une demande d'arrêt"
+
+#: access/transam/xlog.c:12624
 #, c-format
 msgid "received promote request"
 msgstr "a reçu une demande de promotion"
 
-#: access/transam/xlog.c:12190
+#: access/transam/xlog.c:12637
 #, c-format
 msgid "promote trigger file found: %s"
 msgstr "fichier trigger de promotion trouvé : %s"
 
-#: access/transam/xlog.c:12199
+#: access/transam/xlog.c:12646
 #, c-format
 msgid "could not stat promote trigger file \"%s\": %m"
 msgstr "n'a pas pu récupérer les propriétés du fichier trigger pour la promotion « %s » : %m"
 
-#: access/transam/xlogarchive.c:243
+#: access/transam/xlogarchive.c:205
 #, c-format
 msgid "archive file \"%s\" has wrong size: %lu instead of %lu"
 msgstr "le fichier d'archive « %s » a la mauvaise taille : %lu au lieu de %lu"
 
-#: access/transam/xlogarchive.c:252
+#: access/transam/xlogarchive.c:214
 #, c-format
 msgid "restored log file \"%s\" from archive"
 msgstr "restauration du journal de transactions « %s » à partir de l'archive"
 
-#: access/transam/xlogarchive.c:297
+#: access/transam/xlogarchive.c:259
 #, c-format
 msgid "could not restore file \"%s\" from archive: %s"
 msgstr "n'a pas pu restaurer le fichier « %s » à partir de l'archive : %s"
@@ -2694,270 +2879,265 @@ msgstr "n'a pas pu restaurer le fichier « %s » à partir de l'archive : %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:406
+#: access/transam/xlogarchive.c:368
 #, c-format
 msgid "%s \"%s\": %s"
 msgstr "%s « %s »: %s"
 
-#: access/transam/xlogarchive.c:516 access/transam/xlogarchive.c:580
+#: access/transam/xlogarchive.c:478 access/transam/xlogarchive.c:542
 #, c-format
 msgid "could not create archive status file \"%s\": %m"
 msgstr "n'a pas pu créer le fichier de statut d'archivage « %s » : %m"
 
-#: access/transam/xlogarchive.c:524 access/transam/xlogarchive.c:588
+#: access/transam/xlogarchive.c:486 access/transam/xlogarchive.c:550
 #, c-format
 msgid "could not write archive status file \"%s\": %m"
 msgstr "n'a pas pu écrire le fichier de statut d'archivage « %s » : %m"
 
-#: access/transam/xlogfuncs.c:57
-#, c-format
-msgid "aborting backup due to backend exiting before pg_stop_backup was called"
-msgstr "annulation de la sauvegarde due à la déconnexion du processus serveur avant que pg_stop_backup ne soit appelé"
-
-#: access/transam/xlogfuncs.c:87
+#: access/transam/xlogfuncs.c:74
 #, c-format
 msgid "a backup is already in progress in this session"
 msgstr "une sauvegarde est déjà en cours dans cette session"
 
-#: access/transam/xlogfuncs.c:145 access/transam/xlogfuncs.c:227
+#: access/transam/xlogfuncs.c:132 access/transam/xlogfuncs.c:213
 #, c-format
 msgid "non-exclusive backup in progress"
 msgstr "une sauvegarde non exclusive est en cours"
 
-#: access/transam/xlogfuncs.c:146 access/transam/xlogfuncs.c:228
+#: access/transam/xlogfuncs.c:133 access/transam/xlogfuncs.c:214
 #, c-format
 msgid "Did you mean to use pg_stop_backup('f')?"
 msgstr "Souhaitiez-vous utiliser pg_stop_backup('f') ?"
 
-#: access/transam/xlogfuncs.c:198 commands/event_trigger.c:1472 commands/event_trigger.c:2024 commands/extension.c:1908 commands/extension.c:2017 commands/extension.c:2241 commands/prepare.c:712 executor/execExpr.c:2201 executor/execSRF.c:720 executor/functions.c:1023 foreign/foreign.c:520 libpq/hba.c:2666 replication/logical/launcher.c:1112 replication/logical/logicalfuncs.c:176 replication/logical/origin.c:1487 replication/slotfuncs.c:236
-#: replication/walsender.c:3246 utils/adt/jsonfuncs.c:1700 utils/adt/jsonfuncs.c:1831 utils/adt/jsonfuncs.c:2019 utils/adt/jsonfuncs.c:2146 utils/adt/jsonfuncs.c:3608 utils/adt/pgstatfuncs.c:458 utils/adt/pgstatfuncs.c:563 utils/fmgr/funcapi.c:63 utils/misc/guc.c:9443 utils/mmgr/portalmem.c:1134
+#: access/transam/xlogfuncs.c:185 commands/event_trigger.c:1332 commands/event_trigger.c:1890 commands/extension.c:1944 commands/extension.c:2052 commands/extension.c:2337 commands/prepare.c:712 executor/execExpr.c:2203 executor/execSRF.c:728 executor/functions.c:1046 foreign/foreign.c:520 libpq/hba.c:2666 replication/logical/launcher.c:1086 replication/logical/logicalfuncs.c:157 replication/logical/origin.c:1486 replication/slotfuncs.c:252
+#: replication/walsender.c:3265 storage/ipc/shmem.c:550 utils/adt/datetime.c:4765 utils/adt/genfile.c:505 utils/adt/genfile.c:588 utils/adt/jsonfuncs.c:1792 utils/adt/jsonfuncs.c:1904 utils/adt/jsonfuncs.c:2092 utils/adt/jsonfuncs.c:2201 utils/adt/jsonfuncs.c:3663 utils/adt/misc.c:215 utils/adt/pgstatfuncs.c:476 utils/adt/pgstatfuncs.c:584 utils/adt/pgstatfuncs.c:1719 utils/fmgr/funcapi.c:72 utils/misc/guc.c:9648 utils/mmgr/portalmem.c:1136
 #, c-format
 msgid "set-valued function called in context that cannot accept a set"
 msgstr ""
 "la fonction avec set-value a été appelé dans un contexte qui n'accepte pas\n"
 "un ensemble"
 
-#: access/transam/xlogfuncs.c:202 commands/event_trigger.c:1476 commands/event_trigger.c:2028 commands/extension.c:1912 commands/extension.c:2021 commands/extension.c:2245 commands/prepare.c:716 foreign/foreign.c:525 libpq/hba.c:2670 replication/logical/launcher.c:1116 replication/logical/logicalfuncs.c:180 replication/logical/origin.c:1491 replication/slotfuncs.c:240 replication/walsender.c:3250 utils/adt/pgstatfuncs.c:462
-#: utils/adt/pgstatfuncs.c:567 utils/misc/guc.c:9447 utils/misc/pg_config.c:43 utils/mmgr/portalmem.c:1138
+#: access/transam/xlogfuncs.c:189 commands/event_trigger.c:1336 commands/event_trigger.c:1894 commands/extension.c:1948 commands/extension.c:2056 commands/extension.c:2341 commands/prepare.c:716 foreign/foreign.c:525 libpq/hba.c:2670 replication/logical/launcher.c:1090 replication/logical/logicalfuncs.c:161 replication/logical/origin.c:1490 replication/slotfuncs.c:256 replication/walsender.c:3269 storage/ipc/shmem.c:554 utils/adt/datetime.c:4769
+#: utils/adt/genfile.c:509 utils/adt/genfile.c:592 utils/adt/misc.c:219 utils/adt/pgstatfuncs.c:480 utils/adt/pgstatfuncs.c:588 utils/adt/pgstatfuncs.c:1723 utils/misc/guc.c:9652 utils/misc/pg_config.c:43 utils/mmgr/portalmem.c:1140
 #, c-format
 msgid "materialize mode required, but it is not allowed in this context"
 msgstr "mode matérialisé requis mais interdit dans ce contexte"
 
-#: access/transam/xlogfuncs.c:244
+#: access/transam/xlogfuncs.c:230
 #, c-format
 msgid "non-exclusive backup is not in progress"
 msgstr "une sauvegarde non exclusive n'est pas en cours"
 
-#: access/transam/xlogfuncs.c:245
+#: access/transam/xlogfuncs.c:231
 #, c-format
 msgid "Did you mean to use pg_stop_backup('t')?"
 msgstr "Souhaitiez-vous utiliser pg_stop_backup('t') ?"
 
-#: access/transam/xlogfuncs.c:322
+#: access/transam/xlogfuncs.c:307
 #, c-format
 msgid "WAL level not sufficient for creating a restore point"
 msgstr "le niveau de journalisation n'est pas suffisant pour créer un point de restauration"
 
-#: access/transam/xlogfuncs.c:330
+#: access/transam/xlogfuncs.c:315
 #, c-format
 msgid "value too long for restore point (maximum %d characters)"
 msgstr "valeur trop longue pour le point de restauration (%d caractères maximum)"
 
-#: access/transam/xlogfuncs.c:468 access/transam/xlogfuncs.c:525
+#: access/transam/xlogfuncs.c:453 access/transam/xlogfuncs.c:510
 #, c-format
 msgid "%s cannot be executed during recovery."
 msgstr "%s ne peut pas être exécuté lors de la restauration."
 
-#: access/transam/xlogfuncs.c:546 access/transam/xlogfuncs.c:566 access/transam/xlogfuncs.c:583 access/transam/xlogfuncs.c:723
+#: access/transam/xlogfuncs.c:531 access/transam/xlogfuncs.c:558 access/transam/xlogfuncs.c:582 access/transam/xlogfuncs.c:722
 #, c-format
 msgid "recovery is not in progress"
 msgstr "la restauration n'est pas en cours"
 
-#: access/transam/xlogfuncs.c:547 access/transam/xlogfuncs.c:567 access/transam/xlogfuncs.c:584 access/transam/xlogfuncs.c:724
+#: access/transam/xlogfuncs.c:532 access/transam/xlogfuncs.c:559 access/transam/xlogfuncs.c:583 access/transam/xlogfuncs.c:723
 #, c-format
 msgid "Recovery control functions can only be executed during recovery."
 msgstr ""
 "Les fonctions de contrôle de la restauration peuvent seulement être exécutées\n"
 "lors de la restauration."
 
-#: access/transam/xlogfuncs.c:729
+#: access/transam/xlogfuncs.c:537 access/transam/xlogfuncs.c:564
+#, c-format
+msgid "standby promotion is ongoing"
+msgstr ""
+
+#: access/transam/xlogfuncs.c:538 access/transam/xlogfuncs.c:565
+#, c-format
+msgid "%s cannot be executed after promotion is triggered."
+msgstr "%s ne peut pas être exécuté une fois la promotion en cours d'exécution."
+
+#: access/transam/xlogfuncs.c:728
 #, c-format
 msgid "\"wait_seconds\" must not be negative or zero"
 msgstr "« wait_seconds » ne doit pas être négatif ou nul"
 
-#: access/transam/xlogfuncs.c:749 storage/ipc/signalfuncs.c:164
+#: access/transam/xlogfuncs.c:748 storage/ipc/signalfuncs.c:164
 #, c-format
 msgid "failed to send signal to postmaster: %m"
 msgstr "n'a pas pu envoyer le signal au postmaster : %m"
 
-#: access/transam/xlogfuncs.c:785
+#: access/transam/xlogfuncs.c:784
 #, c-format
 msgid "server did not promote within %d seconds"
 msgstr "le serveur ne s'est pas promu dans les %d secondes"
 
-#: access/transam/xlogreader.c:299
+#: access/transam/xlogreader.c:349
 #, c-format
 msgid "invalid record offset at %X/%X"
 msgstr "décalage invalide de l'enregistrement %X/%X"
 
-#: access/transam/xlogreader.c:307
+#: access/transam/xlogreader.c:357
 #, c-format
 msgid "contrecord is requested by %X/%X"
 msgstr "« contrecord » est requis par %X/%X"
 
-#: access/transam/xlogreader.c:348 access/transam/xlogreader.c:645
+#: access/transam/xlogreader.c:398 access/transam/xlogreader.c:695
 #, c-format
 msgid "invalid record length at %X/%X: wanted %u, got %u"
 msgstr "longueur invalide de l'enregistrement à %X/%X : voulait %u, a eu %u"
 
-#: access/transam/xlogreader.c:372
+#: access/transam/xlogreader.c:422
 #, c-format
 msgid "record length %u at %X/%X too long"
 msgstr "longueur trop importante de l'enregistrement %u à %X/%X"
 
-#: access/transam/xlogreader.c:404
+#: access/transam/xlogreader.c:454
 #, c-format
 msgid "there is no contrecord flag at %X/%X"
 msgstr "il n'existe pas de drapeau contrecord à %X/%X"
 
-#: access/transam/xlogreader.c:417
+#: access/transam/xlogreader.c:467
 #, c-format
 msgid "invalid contrecord length %u at %X/%X"
 msgstr "longueur %u invalide du contrecord à %X/%X"
 
-#: access/transam/xlogreader.c:653
+#: access/transam/xlogreader.c:703
 #, c-format
 msgid "invalid resource manager ID %u at %X/%X"
 msgstr "identifiant du gestionnaire de ressources invalide %u à %X/%X"
 
-#: access/transam/xlogreader.c:667 access/transam/xlogreader.c:684
+#: access/transam/xlogreader.c:717 access/transam/xlogreader.c:734
 #, c-format
 msgid "record with incorrect prev-link %X/%X at %X/%X"
 msgstr "enregistrement avec prev-link %X/%X incorrect à %X/%X"
 
-#: access/transam/xlogreader.c:721
+#: access/transam/xlogreader.c:771
 #, c-format
 msgid "incorrect resource manager data checksum in record at %X/%X"
 msgstr ""
 "somme de contrôle des données du gestionnaire de ressources incorrecte à\n"
 "l'enregistrement %X/%X"
 
-#: access/transam/xlogreader.c:758
+#: access/transam/xlogreader.c:808
 #, c-format
 msgid "invalid magic number %04X in log segment %s, offset %u"
 msgstr "numéro magique invalide %04X dans le segment %s, décalage %u"
 
-#: access/transam/xlogreader.c:772 access/transam/xlogreader.c:823
+#: access/transam/xlogreader.c:822 access/transam/xlogreader.c:863
 #, c-format
 msgid "invalid info bits %04X in log segment %s, offset %u"
 msgstr "bits d'information %04X invalides dans le segment %s, décalage %u"
 
-#: access/transam/xlogreader.c:798
+#: access/transam/xlogreader.c:837
 #, c-format
-msgid "WAL file is from different database system: WAL file database system identifier is %s, pg_control database system identifier is %s"
-msgstr "le fichier WAL provient d'une instance différente : l'identifiant système de la base dans le fichier WAL est %s, alors que l'identifiant système de l'instance dans pg_control est %s"
+msgid "WAL file is from different database system: WAL file database system identifier is %llu, pg_control database system identifier is %llu"
+msgstr "le fichier WAL provient d'un système différent : l'identifiant système de la base dans le fichier WAL est %llu, alors que l'identifiant système de la base dans pg_control est %llu"
 
-#: access/transam/xlogreader.c:805
+#: access/transam/xlogreader.c:845
 #, c-format
 msgid "WAL file is from different database system: incorrect segment size in page header"
 msgstr "Le fichier WAL provient d'un système différent : taille invalide du segment dans l'en-tête de page"
 
-#: access/transam/xlogreader.c:811
+#: access/transam/xlogreader.c:851
 #, c-format
 msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header"
 msgstr "le fichier WAL provient d'une instance différente : XLOG_BLCKSZ incorrect dans l'en-tête de page"
 
-#: access/transam/xlogreader.c:842
+#: access/transam/xlogreader.c:882
 #, c-format
 msgid "unexpected pageaddr %X/%X in log segment %s, offset %u"
 msgstr "pageaddr %X/%X inattendue dans le journal de transactions %s, segment %u"
 
-#: access/transam/xlogreader.c:867
+#: access/transam/xlogreader.c:907
 #, c-format
 msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u"
 msgstr "identifiant timeline %u hors de la séquence (après %u) dans le segment %s, décalage %u"
 
-#: access/transam/xlogreader.c:1112
+#: access/transam/xlogreader.c:1247
 #, c-format
 msgid "out-of-order block_id %u at %X/%X"
 msgstr "block_id %u désordonné à %X/%X"
 
-#: access/transam/xlogreader.c:1135
+#: access/transam/xlogreader.c:1270
 #, c-format
 msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X"
 msgstr "BKPBLOCK_HAS_DATA configuré, mais aucune donnée inclus à %X/%X"
 
-#: access/transam/xlogreader.c:1142
+#: access/transam/xlogreader.c:1277
 #, c-format
 msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X"
 msgstr "BKPBLOCK_HAS_DATA non configuré, mais la longueur des données est %u à %X/%X"
 
-#: access/transam/xlogreader.c:1178
+#: access/transam/xlogreader.c:1313
 #, c-format
 msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X"
 msgstr "BKPIMAGE_HAS_HOLE configué, mais du trou rencontré à l'offset %u longueur %u longueur de l'image du bloc %u à %X/%X"
 
-#: access/transam/xlogreader.c:1194
+#: access/transam/xlogreader.c:1329
 #, c-format
 msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X"
 msgstr "BKPIMAGE_HAS_HOLE non configuré, mais trou rencontré à l'offset %u longueur %u à %X/%X"
 
-#: access/transam/xlogreader.c:1209
+#: access/transam/xlogreader.c:1344
 #, c-format
 msgid "BKPIMAGE_IS_COMPRESSED set, but block image length %u at %X/%X"
 msgstr "BKPIMAGE_IS_COMPRESSED configuré, mais la longueur de l'image du bloc est %u à %X/%X"
 
-#: access/transam/xlogreader.c:1224
+#: access/transam/xlogreader.c:1359
 #, c-format
 msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_IS_COMPRESSED set, but block image length is %u at %X/%X"
 msgstr "ni BKPIMAGE_HAS_HOLE ni BKPIMAGE_IS_COMPRESSED configuré, mais la longueur de l'image du bloc est %u à %X/%X"
 
-#: access/transam/xlogreader.c:1240
+#: access/transam/xlogreader.c:1375
 #, c-format
 msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X"
 msgstr "BKPBLOCK_SAME_REL configuré, mais pas de relation précédente à %X/%X"
 
-#: access/transam/xlogreader.c:1252
+#: access/transam/xlogreader.c:1387
 #, c-format
 msgid "invalid block_id %u at %X/%X"
 msgstr "block_id %u invalide à %X/%X"
 
-#: access/transam/xlogreader.c:1341
+#: access/transam/xlogreader.c:1476
 #, c-format
 msgid "record with invalid length at %X/%X"
 msgstr "enregistrement de longueur invalide à %X/%X"
 
-#: access/transam/xlogreader.c:1430
+#: access/transam/xlogreader.c:1565
 #, c-format
 msgid "invalid compressed image at %X/%X, block %d"
 msgstr "image compressée invalide à %X/%X, bloc %d"
 
-#: access/transam/xlogutils.c:727 replication/walreceiver.c:959 replication/walsender.c:2463
-#, c-format
-msgid "could not seek in log segment %s to offset %u: %m"
-msgstr "n'a pas pu se déplacer dans le journal de transactions %s au décalage %u : %m"
-
-#: access/transam/xlogutils.c:751
-#, c-format
-msgid "could not read from log segment %s, offset %u, length %lu: %m"
-msgstr "n'a pas pu lire le journal de transactions %s, décalage %u, longueur %lu : %m"
-
 #: bootstrap/bootstrap.c:271
 #, c-format
 msgid "-X requires a power of two value between 1 MB and 1 GB"
 msgstr "-X nécessite une puissance de deux entre 1 MB et 1 GB"
 
-#: bootstrap/bootstrap.c:288 postmaster/postmaster.c:821 tcop/postgres.c:3635
+#: bootstrap/bootstrap.c:288 postmaster/postmaster.c:842 tcop/postgres.c:3705
 #, c-format
 msgid "--%s requires a value"
 msgstr "--%s requiert une valeur"
 
-#: bootstrap/bootstrap.c:293 postmaster/postmaster.c:826 tcop/postgres.c:3640
+#: bootstrap/bootstrap.c:293 postmaster/postmaster.c:847 tcop/postgres.c:3710
 #, c-format
 msgid "-c %s requires a value"
 msgstr "-c %s requiert une valeur"
 
-#: bootstrap/bootstrap.c:304 postmaster/postmaster.c:838 postmaster/postmaster.c:851
+#: bootstrap/bootstrap.c:304 postmaster/postmaster.c:859 postmaster/postmaster.c:872
 #, c-format
 msgid "Try \"%s --help\" for more information.\n"
 msgstr "Essayez « %s --help » pour plus d'informations.\n"
@@ -2967,708 +3147,708 @@ msgstr "Essayez « %s --help » pour plus d'informations.\n"
 msgid "%s: invalid command-line arguments\n"
 msgstr "%s : arguments invalides en ligne de commande\n"
 
-#: catalog/aclchk.c:203
+#: catalog/aclchk.c:181
 #, c-format
 msgid "grant options can only be granted to roles"
 msgstr "les options grant peuvent seulement être données aux rôles"
 
-#: catalog/aclchk.c:326
+#: catalog/aclchk.c:300
 #, c-format
 msgid "no privileges were granted for column \"%s\" of relation \"%s\""
 msgstr "aucun droit n'a pu être accordé pour la colonne « %s » de la relation « %s »"
 
-#: catalog/aclchk.c:331
+#: catalog/aclchk.c:305
 #, c-format
 msgid "no privileges were granted for \"%s\""
 msgstr "aucun droit n'a été accordé pour « %s »"
 
-#: catalog/aclchk.c:339
+#: catalog/aclchk.c:313
 #, c-format
 msgid "not all privileges were granted for column \"%s\" of relation \"%s\""
 msgstr "certains droits n'ont pu être accordé pour la colonne « %s » de la relation « %s »"
 
-#: catalog/aclchk.c:344
+#: catalog/aclchk.c:318
 #, c-format
 msgid "not all privileges were granted for \"%s\""
 msgstr "tous les droits n'ont pas été accordés pour « %s »"
 
-#: catalog/aclchk.c:355
+#: catalog/aclchk.c:329
 #, c-format
 msgid "no privileges could be revoked for column \"%s\" of relation \"%s\""
 msgstr "aucun droit n'a pu être révoqué pour la colonne « %s » de la relation « %s »"
 
-#: catalog/aclchk.c:360
+#: catalog/aclchk.c:334
 #, c-format
 msgid "no privileges could be revoked for \"%s\""
 msgstr "aucun droit n'a pu être révoqué pour « %s »"
 
-#: catalog/aclchk.c:368
+#: catalog/aclchk.c:342
 #, c-format
 msgid "not all privileges could be revoked for column \"%s\" of relation \"%s\""
 msgstr "certains droits n'ont pu être révoqué pour la colonne « %s » de la relation « %s »"
 
-#: catalog/aclchk.c:373
+#: catalog/aclchk.c:347
 #, c-format
 msgid "not all privileges could be revoked for \"%s\""
 msgstr "certains droits n'ont pu être révoqué pour « %s »"
 
-#: catalog/aclchk.c:456 catalog/aclchk.c:999
+#: catalog/aclchk.c:430 catalog/aclchk.c:973
 #, c-format
 msgid "invalid privilege type %s for relation"
 msgstr "droit %s invalide pour la relation"
 
-#: catalog/aclchk.c:460 catalog/aclchk.c:1003
+#: catalog/aclchk.c:434 catalog/aclchk.c:977
 #, c-format
 msgid "invalid privilege type %s for sequence"
 msgstr "droit %s invalide pour la séquence"
 
-#: catalog/aclchk.c:464
+#: catalog/aclchk.c:438
 #, c-format
 msgid "invalid privilege type %s for database"
 msgstr "droit %s invalide pour la base de données"
 
-#: catalog/aclchk.c:468
+#: catalog/aclchk.c:442
 #, c-format
 msgid "invalid privilege type %s for domain"
 msgstr "type de droit %s invalide pour le domaine"
 
-#: catalog/aclchk.c:472 catalog/aclchk.c:1007
+#: catalog/aclchk.c:446 catalog/aclchk.c:981
 #, c-format
 msgid "invalid privilege type %s for function"
 msgstr "droit %s invalide pour la fonction"
 
-#: catalog/aclchk.c:476
+#: catalog/aclchk.c:450
 #, c-format
 msgid "invalid privilege type %s for language"
 msgstr "droit %s invalide pour le langage"
 
-#: catalog/aclchk.c:480
+#: catalog/aclchk.c:454
 #, c-format
 msgid "invalid privilege type %s for large object"
 msgstr "type de droit invalide, %s, pour le Large Object"
 
-#: catalog/aclchk.c:484 catalog/aclchk.c:1023
+#: catalog/aclchk.c:458 catalog/aclchk.c:997
 #, c-format
 msgid "invalid privilege type %s for schema"
 msgstr "droit %s invalide pour le schéma"
 
-#: catalog/aclchk.c:488 catalog/aclchk.c:1011
+#: catalog/aclchk.c:462 catalog/aclchk.c:985
 #, c-format
 msgid "invalid privilege type %s for procedure"
 msgstr "type de droit %s invalide pour la procédure "
 
-#: catalog/aclchk.c:492 catalog/aclchk.c:1015
+#: catalog/aclchk.c:466 catalog/aclchk.c:989
 #, c-format
 msgid "invalid privilege type %s for routine"
 msgstr "droit %s invalide pour la routine"
 
-#: catalog/aclchk.c:496
+#: catalog/aclchk.c:470
 #, c-format
 msgid "invalid privilege type %s for tablespace"
 msgstr "droit %s invalide pour le tablespace"
 
-#: catalog/aclchk.c:500 catalog/aclchk.c:1019
+#: catalog/aclchk.c:474 catalog/aclchk.c:993
 #, c-format
 msgid "invalid privilege type %s for type"
 msgstr "type de droit %s invalide pour le type"
 
-#: catalog/aclchk.c:504
+#: catalog/aclchk.c:478
 #, c-format
 msgid "invalid privilege type %s for foreign-data wrapper"
 msgstr "type de droit %s invalide pour le wrapper de données distantes"
 
-#: catalog/aclchk.c:508
+#: catalog/aclchk.c:482
 #, c-format
 msgid "invalid privilege type %s for foreign server"
 msgstr "type de droit %s invalide pour le serveur distant"
 
-#: catalog/aclchk.c:547
+#: catalog/aclchk.c:521
 #, c-format
 msgid "column privileges are only valid for relations"
 msgstr "les droits sur la colonne sont seulement valides pour les relations"
 
-#: catalog/aclchk.c:707 catalog/aclchk.c:4135 catalog/aclchk.c:4917 catalog/objectaddress.c:964 catalog/pg_largeobject.c:116 storage/large_object/inv_api.c:283
+#: catalog/aclchk.c:681 catalog/aclchk.c:4100 catalog/aclchk.c:4882 catalog/objectaddress.c:965 catalog/pg_largeobject.c:116 storage/large_object/inv_api.c:285
 #, c-format
 msgid "large object %u does not exist"
 msgstr "le « Large Object » %u n'existe pas"
 
-#: catalog/aclchk.c:936 catalog/aclchk.c:945 commands/collationcmds.c:117 commands/copy.c:1139 commands/copy.c:1159 commands/copy.c:1168 commands/copy.c:1177 commands/copy.c:1186 commands/copy.c:1195 commands/copy.c:1204 commands/copy.c:1213 commands/copy.c:1231 commands/copy.c:1247 commands/copy.c:1267 commands/copy.c:1284 commands/dbcommands.c:156 commands/dbcommands.c:165 commands/dbcommands.c:174 commands/dbcommands.c:183
-#: commands/dbcommands.c:192 commands/dbcommands.c:201 commands/dbcommands.c:210 commands/dbcommands.c:219 commands/dbcommands.c:228 commands/dbcommands.c:1448 commands/dbcommands.c:1457 commands/dbcommands.c:1466 commands/dbcommands.c:1475 commands/extension.c:1688 commands/extension.c:1698 commands/extension.c:1708 commands/extension.c:1718 commands/extension.c:2960 commands/foreigncmds.c:543 commands/foreigncmds.c:552
-#: commands/functioncmds.c:568 commands/functioncmds.c:734 commands/functioncmds.c:743 commands/functioncmds.c:752 commands/functioncmds.c:761 commands/functioncmds.c:2193 commands/functioncmds.c:2201 commands/publicationcmds.c:91 commands/sequence.c:1267 commands/sequence.c:1277 commands/sequence.c:1287 commands/sequence.c:1297 commands/sequence.c:1307 commands/sequence.c:1317 commands/sequence.c:1327 commands/sequence.c:1337
-#: commands/sequence.c:1347 commands/subscriptioncmds.c:111 commands/subscriptioncmds.c:121 commands/subscriptioncmds.c:131 commands/subscriptioncmds.c:141 commands/subscriptioncmds.c:155 commands/subscriptioncmds.c:166 commands/subscriptioncmds.c:180 commands/tablecmds.c:6553 commands/typecmds.c:299 commands/typecmds.c:1428 commands/typecmds.c:1437 commands/typecmds.c:1445 commands/typecmds.c:1453 commands/typecmds.c:1461
-#: commands/user.c:133 commands/user.c:147 commands/user.c:156 commands/user.c:165 commands/user.c:174 commands/user.c:183 commands/user.c:192 commands/user.c:201 commands/user.c:210 commands/user.c:219 commands/user.c:228 commands/user.c:237 commands/user.c:246 commands/user.c:571 commands/user.c:579 commands/user.c:587 commands/user.c:595 commands/user.c:603 commands/user.c:611 commands/user.c:619 commands/user.c:627 commands/user.c:636
-#: commands/user.c:644 commands/user.c:652 parser/parse_utilcmd.c:385 replication/pgoutput/pgoutput.c:111 replication/pgoutput/pgoutput.c:132 replication/walsender.c:817 replication/walsender.c:828 replication/walsender.c:838
+#: catalog/aclchk.c:910 catalog/aclchk.c:919 commands/collationcmds.c:118 commands/copy.c:1134 commands/copy.c:1154 commands/copy.c:1163 commands/copy.c:1172 commands/copy.c:1181 commands/copy.c:1190 commands/copy.c:1199 commands/copy.c:1208 commands/copy.c:1226 commands/copy.c:1242 commands/copy.c:1262 commands/copy.c:1279 commands/dbcommands.c:157 commands/dbcommands.c:166 commands/dbcommands.c:175 commands/dbcommands.c:184 commands/dbcommands.c:193
+#: commands/dbcommands.c:202 commands/dbcommands.c:211 commands/dbcommands.c:220 commands/dbcommands.c:229 commands/dbcommands.c:238 commands/dbcommands.c:260 commands/dbcommands.c:1502 commands/dbcommands.c:1511 commands/dbcommands.c:1520 commands/dbcommands.c:1529 commands/extension.c:1735 commands/extension.c:1745 commands/extension.c:1755 commands/extension.c:3055 commands/foreigncmds.c:539 commands/foreigncmds.c:548 commands/functioncmds.c:570
+#: commands/functioncmds.c:736 commands/functioncmds.c:745 commands/functioncmds.c:754 commands/functioncmds.c:763 commands/functioncmds.c:2014 commands/functioncmds.c:2022 commands/publicationcmds.c:90 commands/publicationcmds.c:133 commands/sequence.c:1267 commands/sequence.c:1277 commands/sequence.c:1287 commands/sequence.c:1297 commands/sequence.c:1307 commands/sequence.c:1317 commands/sequence.c:1327 commands/sequence.c:1337 commands/sequence.c:1347
+#: commands/subscriptioncmds.c:104 commands/subscriptioncmds.c:114 commands/subscriptioncmds.c:124 commands/subscriptioncmds.c:134 commands/subscriptioncmds.c:148 commands/subscriptioncmds.c:159 commands/subscriptioncmds.c:173 commands/tablecmds.c:7102 commands/typecmds.c:322 commands/typecmds.c:1355 commands/typecmds.c:1364 commands/typecmds.c:1372 commands/typecmds.c:1380 commands/typecmds.c:1388 commands/user.c:133 commands/user.c:147 commands/user.c:156
+#: commands/user.c:165 commands/user.c:174 commands/user.c:183 commands/user.c:192 commands/user.c:201 commands/user.c:210 commands/user.c:219 commands/user.c:228 commands/user.c:237 commands/user.c:246 commands/user.c:582 commands/user.c:590 commands/user.c:598 commands/user.c:606 commands/user.c:614 commands/user.c:622 commands/user.c:630 commands/user.c:638 commands/user.c:647 commands/user.c:655 commands/user.c:663 parser/parse_utilcmd.c:387
+#: replication/pgoutput/pgoutput.c:141 replication/pgoutput/pgoutput.c:162 replication/walsender.c:886 replication/walsender.c:897 replication/walsender.c:907
 #, c-format
 msgid "conflicting or redundant options"
 msgstr "options en conflit ou redondantes"
 
-#: catalog/aclchk.c:1056
+#: catalog/aclchk.c:1030
 #, c-format
 msgid "default privileges cannot be set for columns"
 msgstr "les droits par défaut ne peuvent pas être configurés pour les colonnes"
 
-#: catalog/aclchk.c:1216
+#: catalog/aclchk.c:1190
 #, c-format
 msgid "cannot use IN SCHEMA clause when using GRANT/REVOKE ON SCHEMAS"
 msgstr "ne peut pas utiliser la clause IN SCHEMA lors de l'utilisation de GRANT/REVOKE ON SCHEMAS"
 
-#: catalog/aclchk.c:1584 catalog/catalog.c:519 catalog/objectaddress.c:1426 commands/analyze.c:383 commands/copy.c:5134 commands/sequence.c:1702 commands/tablecmds.c:6095 commands/tablecmds.c:6253 commands/tablecmds.c:6327 commands/tablecmds.c:6397 commands/tablecmds.c:6478 commands/tablecmds.c:6572 commands/tablecmds.c:6631 commands/tablecmds.c:6770 commands/tablecmds.c:6852 commands/tablecmds.c:6944 commands/tablecmds.c:7038
-#: commands/tablecmds.c:10271 commands/tablecmds.c:10452 commands/tablecmds.c:10613 commands/tablecmds.c:11598 commands/trigger.c:928 parser/analyze.c:2330 parser/parse_relation.c:2788 parser/parse_relation.c:2851 parser/parse_target.c:1031 parser/parse_type.c:145 utils/adt/acl.c:2885 utils/adt/ruleutils.c:2511
+#: catalog/aclchk.c:1558 catalog/catalog.c:506 catalog/objectaddress.c:1427 commands/analyze.c:389 commands/copy.c:5080 commands/sequence.c:1702 commands/tablecmds.c:6578 commands/tablecmds.c:6721 commands/tablecmds.c:6771 commands/tablecmds.c:6845 commands/tablecmds.c:6915 commands/tablecmds.c:7027 commands/tablecmds.c:7121 commands/tablecmds.c:7180 commands/tablecmds.c:7253 commands/tablecmds.c:7282 commands/tablecmds.c:7437 commands/tablecmds.c:7519
+#: commands/tablecmds.c:7612 commands/tablecmds.c:7767 commands/tablecmds.c:10972 commands/tablecmds.c:11154 commands/tablecmds.c:11314 commands/tablecmds.c:12397 commands/trigger.c:876 parser/analyze.c:2339 parser/parse_relation.c:713 parser/parse_target.c:1036 parser/parse_type.c:144 parser/parse_utilcmd.c:3289 parser/parse_utilcmd.c:3324 parser/parse_utilcmd.c:3366 utils/adt/acl.c:2870 utils/adt/ruleutils.c:2535
 #, c-format
 msgid "column \"%s\" of relation \"%s\" does not exist"
 msgstr "la colonne « %s » de la relation « %s » n'existe pas"
 
-#: catalog/aclchk.c:1847 catalog/objectaddress.c:1266 commands/sequence.c:1140 commands/tablecmds.c:230 commands/tablecmds.c:14917 utils/adt/acl.c:2075 utils/adt/acl.c:2105 utils/adt/acl.c:2137 utils/adt/acl.c:2169 utils/adt/acl.c:2197 utils/adt/acl.c:2227
+#: catalog/aclchk.c:1821 catalog/objectaddress.c:1267 commands/sequence.c:1140 commands/tablecmds.c:236 commands/tablecmds.c:15706 utils/adt/acl.c:2060 utils/adt/acl.c:2090 utils/adt/acl.c:2122 utils/adt/acl.c:2154 utils/adt/acl.c:2182 utils/adt/acl.c:2212
 #, c-format
 msgid "\"%s\" is not a sequence"
 msgstr "« %s » n'est pas une séquence"
 
-#: catalog/aclchk.c:1885
+#: catalog/aclchk.c:1859
 #, c-format
 msgid "sequence \"%s\" only supports USAGE, SELECT, and UPDATE privileges"
 msgstr "la séquence « %s » accepte seulement les droits USAGE, SELECT et UPDATE"
 
-#: catalog/aclchk.c:1902
+#: catalog/aclchk.c:1876
 #, c-format
 msgid "invalid privilege type %s for table"
 msgstr "type de droit %s invalide pour la table"
 
-#: catalog/aclchk.c:2068
+#: catalog/aclchk.c:2042
 #, c-format
 msgid "invalid privilege type %s for column"
 msgstr "type de droit %s invalide pour la colonne"
 
-#: catalog/aclchk.c:2081
+#: catalog/aclchk.c:2055
 #, c-format
 msgid "sequence \"%s\" only supports SELECT column privileges"
 msgstr "la séquence « %s » accepte seulement le droit SELECT pour les colonnes"
 
-#: catalog/aclchk.c:2663
+#: catalog/aclchk.c:2637
 #, c-format
 msgid "language \"%s\" is not trusted"
 msgstr "le langage « %s » n'est pas de confiance"
 
-#: catalog/aclchk.c:2665
+#: catalog/aclchk.c:2639
 #, c-format
 msgid "GRANT and REVOKE are not allowed on untrusted languages, because only superusers can use untrusted languages."
 msgstr "GRANT et REVOKE ne sont pas autorisés sur des langages qui ne sont pas de confiance car seuls les super-utilisateurs peuvent utiliser ces langages."
 
-#: catalog/aclchk.c:3179
+#: catalog/aclchk.c:3153
 #, c-format
 msgid "cannot set privileges of array types"
 msgstr "ne peut pas configurer les droits des types tableau"
 
-#: catalog/aclchk.c:3180
+#: catalog/aclchk.c:3154
 #, c-format
 msgid "Set the privileges of the element type instead."
 msgstr "Configurez les droits du type élément à la place."
 
-#: catalog/aclchk.c:3187 catalog/objectaddress.c:1560
+#: catalog/aclchk.c:3161 catalog/objectaddress.c:1561
 #, c-format
 msgid "\"%s\" is not a domain"
 msgstr "« %s » n'est pas un domaine"
 
-#: catalog/aclchk.c:3307
+#: catalog/aclchk.c:3281
 #, c-format
 msgid "unrecognized privilege type \"%s\""
 msgstr "type de droit « %s » non reconnu"
 
-#: catalog/aclchk.c:3368
+#: catalog/aclchk.c:3342
 #, c-format
 msgid "permission denied for aggregate %s"
 msgstr "droit refusé pour l'aggrégat %s"
 
-#: catalog/aclchk.c:3371
+#: catalog/aclchk.c:3345
 #, c-format
 msgid "permission denied for collation %s"
 msgstr "droit refusé pour le collationnement %s"
 
-#: catalog/aclchk.c:3374
+#: catalog/aclchk.c:3348
 #, c-format
 msgid "permission denied for column %s"
 msgstr "droit refusé pour la colonne %s"
 
-#: catalog/aclchk.c:3377
+#: catalog/aclchk.c:3351
 #, c-format
 msgid "permission denied for conversion %s"
 msgstr "droit refusé pour la conversion %s"
 
-#: catalog/aclchk.c:3380
+#: catalog/aclchk.c:3354
 #, c-format
 msgid "permission denied for database %s"
 msgstr "droit refusé pour la base de données %s"
 
-#: catalog/aclchk.c:3383
+#: catalog/aclchk.c:3357
 #, c-format
 msgid "permission denied for domain %s"
 msgstr "droit refusé pour le domaine %s"
 
-#: catalog/aclchk.c:3386
+#: catalog/aclchk.c:3360
 #, c-format
 msgid "permission denied for event trigger %s"
 msgstr "droit refusé pour le trigger sur événement %s"
 
-#: catalog/aclchk.c:3389
+#: catalog/aclchk.c:3363
 #, c-format
 msgid "permission denied for extension %s"
 msgstr "droit refusé pour l'extension %s"
 
-#: catalog/aclchk.c:3392
+#: catalog/aclchk.c:3366
 #, c-format
 msgid "permission denied for foreign-data wrapper %s"
 msgstr "droit refusé pour le wrapper de données distantes %s"
 
-#: catalog/aclchk.c:3395
+#: catalog/aclchk.c:3369
 #, c-format
 msgid "permission denied for foreign server %s"
 msgstr "droit refusé pour le serveur distant %s"
 
-#: catalog/aclchk.c:3398
+#: catalog/aclchk.c:3372
 #, c-format
 msgid "permission denied for foreign table %s"
 msgstr "droit refusé pour la table distante %s"
 
-#: catalog/aclchk.c:3401
+#: catalog/aclchk.c:3375
 #, c-format
 msgid "permission denied for function %s"
 msgstr "droit refusé pour la fonction %s"
 
-#: catalog/aclchk.c:3404
+#: catalog/aclchk.c:3378
 #, c-format
 msgid "permission denied for index %s"
 msgstr "droit refusé pour l'index %s"
 
-#: catalog/aclchk.c:3407
+#: catalog/aclchk.c:3381
 #, c-format
 msgid "permission denied for language %s"
 msgstr "droit refusé pour le langage %s"
 
-#: catalog/aclchk.c:3410
+#: catalog/aclchk.c:3384
 #, c-format
 msgid "permission denied for large object %s"
 msgstr "droit refusé pour le Large Object %s"
 
-#: catalog/aclchk.c:3413
+#: catalog/aclchk.c:3387
 #, c-format
 msgid "permission denied for materialized view %s"
 msgstr "droit refusé pour la vue matérialisée %s"
 
-#: catalog/aclchk.c:3416
+#: catalog/aclchk.c:3390
 #, c-format
 msgid "permission denied for operator class %s"
 msgstr "droit refusé pour la classe d'opérateur %s"
 
-#: catalog/aclchk.c:3419
+#: catalog/aclchk.c:3393
 #, c-format
 msgid "permission denied for operator %s"
 msgstr "droit refusé pour l'opérateur %s"
 
-#: catalog/aclchk.c:3422
+#: catalog/aclchk.c:3396
 #, c-format
 msgid "permission denied for operator family %s"
 msgstr "droit refusé pour la famille d'opérateur %s"
 
-#: catalog/aclchk.c:3425
+#: catalog/aclchk.c:3399
 #, c-format
 msgid "permission denied for policy %s"
 msgstr "droit refusé pour la politique %s"
 
-#: catalog/aclchk.c:3428
+#: catalog/aclchk.c:3402
 #, c-format
 msgid "permission denied for procedure %s"
 msgstr "droit refusé pour la procédure %s"
 
-#: catalog/aclchk.c:3431
+#: catalog/aclchk.c:3405
 #, c-format
 msgid "permission denied for publication %s"
 msgstr "droit refusé pour la publication %s"
 
-#: catalog/aclchk.c:3434
+#: catalog/aclchk.c:3408
 #, c-format
 msgid "permission denied for routine %s"
 msgstr "droit refusé pour la routine %s"
 
-#: catalog/aclchk.c:3437
+#: catalog/aclchk.c:3411
 #, c-format
 msgid "permission denied for schema %s"
 msgstr "droit refusé pour le schéma %s"
 
-#: catalog/aclchk.c:3440 commands/sequence.c:610 commands/sequence.c:844 commands/sequence.c:886 commands/sequence.c:927 commands/sequence.c:1800 commands/sequence.c:1864
+#: catalog/aclchk.c:3414 commands/sequence.c:610 commands/sequence.c:844 commands/sequence.c:886 commands/sequence.c:927 commands/sequence.c:1800 commands/sequence.c:1864
 #, c-format
 msgid "permission denied for sequence %s"
 msgstr "droit refusé pour la séquence %s"
 
-#: catalog/aclchk.c:3443
+#: catalog/aclchk.c:3417
 #, c-format
 msgid "permission denied for statistics object %s"
 msgstr "droit refusé pour l'objet statistique %s"
 
-#: catalog/aclchk.c:3446
+#: catalog/aclchk.c:3420
 #, c-format
 msgid "permission denied for subscription %s"
 msgstr "droit refusé pour la souscription %s"
 
-#: catalog/aclchk.c:3449
+#: catalog/aclchk.c:3423
 #, c-format
 msgid "permission denied for table %s"
 msgstr "droit refusé pour la table %s"
 
-#: catalog/aclchk.c:3452
+#: catalog/aclchk.c:3426
 #, c-format
 msgid "permission denied for tablespace %s"
 msgstr "droit refusé pour le tablespace %s"
 
-#: catalog/aclchk.c:3455
+#: catalog/aclchk.c:3429
 #, c-format
 msgid "permission denied for text search configuration %s"
 msgstr "droit refusé pour la configuration de recherche plein texte %s"
 
-#: catalog/aclchk.c:3458
+#: catalog/aclchk.c:3432
 #, c-format
 msgid "permission denied for text search dictionary %s"
 msgstr "droit refusé pour le dictionnaire de recherche plein texte %s"
 
-#: catalog/aclchk.c:3461
+#: catalog/aclchk.c:3435
 #, c-format
 msgid "permission denied for type %s"
 msgstr "droit refusé pour le type %s"
 
-#: catalog/aclchk.c:3464
+#: catalog/aclchk.c:3438
 #, c-format
 msgid "permission denied for view %s"
 msgstr "droit refusé pour la vue %s"
 
-#: catalog/aclchk.c:3499
+#: catalog/aclchk.c:3473
 #, c-format
 msgid "must be owner of aggregate %s"
 msgstr "doit être le propriétaire de l'aggrégat %s"
 
-#: catalog/aclchk.c:3502
+#: catalog/aclchk.c:3476
 #, c-format
 msgid "must be owner of collation %s"
 msgstr "doit être le propriétaire du collationnement %s"
 
-#: catalog/aclchk.c:3505
+#: catalog/aclchk.c:3479
 #, c-format
 msgid "must be owner of conversion %s"
 msgstr "doit être le propriétaire de la conversion %s"
 
-#: catalog/aclchk.c:3508
+#: catalog/aclchk.c:3482
 #, c-format
 msgid "must be owner of database %s"
 msgstr "doit être le propriétaire de la base de données %s"
 
-#: catalog/aclchk.c:3511
+#: catalog/aclchk.c:3485
 #, c-format
 msgid "must be owner of domain %s"
 msgstr "doit être le propriétaire du domaine %s"
 
-#: catalog/aclchk.c:3514
+#: catalog/aclchk.c:3488
 #, c-format
 msgid "must be owner of event trigger %s"
 msgstr "doit être le propriétaire du trigger sur événement %s"
 
-#: catalog/aclchk.c:3517
+#: catalog/aclchk.c:3491
 #, c-format
 msgid "must be owner of extension %s"
 msgstr "doit être le propriétaire de l'extension %s"
 
-#: catalog/aclchk.c:3520
+#: catalog/aclchk.c:3494
 #, c-format
 msgid "must be owner of foreign-data wrapper %s"
 msgstr "doit être le propriétaire du wrapper de données distantes %s"
 
-#: catalog/aclchk.c:3523
+#: catalog/aclchk.c:3497
 #, c-format
 msgid "must be owner of foreign server %s"
 msgstr "doit être le propriétaire de serveur distant %s"
 
-#: catalog/aclchk.c:3526
+#: catalog/aclchk.c:3500
 #, c-format
 msgid "must be owner of foreign table %s"
 msgstr "doit être le propriétaire de la table distante %s"
 
-#: catalog/aclchk.c:3529
+#: catalog/aclchk.c:3503
 #, c-format
 msgid "must be owner of function %s"
 msgstr "doit être le propriétaire de la fonction %s"
 
-#: catalog/aclchk.c:3532
+#: catalog/aclchk.c:3506
 #, c-format
 msgid "must be owner of index %s"
 msgstr "doit être le propriétaire de l'index %s"
 
-#: catalog/aclchk.c:3535
+#: catalog/aclchk.c:3509
 #, c-format
 msgid "must be owner of language %s"
 msgstr "doit être le propriétaire du langage %s"
 
-#: catalog/aclchk.c:3538
+#: catalog/aclchk.c:3512
 #, c-format
 msgid "must be owner of large object %s"
 msgstr "doit être le propriétaire du Large Object %s"
 
-#: catalog/aclchk.c:3541
+#: catalog/aclchk.c:3515
 #, c-format
 msgid "must be owner of materialized view %s"
 msgstr "doit être le propriétaire de la vue matérialisée %s"
 
-#: catalog/aclchk.c:3544
+#: catalog/aclchk.c:3518
 #, c-format
 msgid "must be owner of operator class %s"
 msgstr "doit être le propriétaire de la classe d'opérateur %s"
 
-#: catalog/aclchk.c:3547
+#: catalog/aclchk.c:3521
 #, c-format
 msgid "must be owner of operator %s"
 msgstr "doit être le prorpriétaire de l'opérateur %s"
 
-#: catalog/aclchk.c:3550
+#: catalog/aclchk.c:3524
 #, c-format
 msgid "must be owner of operator family %s"
 msgstr "doit être le prorpriétaire de la famille d'opérateur %s"
 
-#: catalog/aclchk.c:3553
+#: catalog/aclchk.c:3527
 #, c-format
 msgid "must be owner of procedure %s"
 msgstr "doit être le prorpriétaire de la procédure %s"
 
-#: catalog/aclchk.c:3556
+#: catalog/aclchk.c:3530
 #, c-format
 msgid "must be owner of publication %s"
 msgstr "doit être le propriétaire de la publication %s"
 
-#: catalog/aclchk.c:3559
+#: catalog/aclchk.c:3533
 #, c-format
 msgid "must be owner of routine %s"
 msgstr "doit être le propriétaire de la routine %s"
 
-#: catalog/aclchk.c:3562
+#: catalog/aclchk.c:3536
 #, c-format
 msgid "must be owner of sequence %s"
 msgstr "doit être le propriétaire de la séquence %s"
 
-#: catalog/aclchk.c:3565
+#: catalog/aclchk.c:3539
 #, c-format
 msgid "must be owner of subscription %s"
 msgstr "doit être le propriétaire de la souscription %s"
 
-#: catalog/aclchk.c:3568
+#: catalog/aclchk.c:3542
 #, c-format
 msgid "must be owner of table %s"
 msgstr "doit être le propriétaire de la table %s"
 
-#: catalog/aclchk.c:3571
+#: catalog/aclchk.c:3545
 #, c-format
 msgid "must be owner of type %s"
 msgstr "doit être le propriétaire du type %s"
 
-#: catalog/aclchk.c:3574
+#: catalog/aclchk.c:3548
 #, c-format
 msgid "must be owner of view %s"
 msgstr "doit être le propriétaire de la vue %s"
 
-#: catalog/aclchk.c:3577
+#: catalog/aclchk.c:3551
 #, c-format
 msgid "must be owner of schema %s"
 msgstr "doit être le propriétaire du schéma %s"
 
-#: catalog/aclchk.c:3580
+#: catalog/aclchk.c:3554
 #, c-format
 msgid "must be owner of statistics object %s"
 msgstr "doit être le propriétaire de l'objet statistique %s"
 
-#: catalog/aclchk.c:3583
+#: catalog/aclchk.c:3557
 #, c-format
 msgid "must be owner of tablespace %s"
 msgstr "doit être le propriétaire du tablespace %s"
 
-#: catalog/aclchk.c:3586
+#: catalog/aclchk.c:3560
 #, c-format
 msgid "must be owner of text search configuration %s"
 msgstr "doit être le propriétaire de la configuration de recherche plein texte %s"
 
-#: catalog/aclchk.c:3589
+#: catalog/aclchk.c:3563
 #, c-format
 msgid "must be owner of text search dictionary %s"
 msgstr "doit être le propriétaire du dictionnaire de recherche plein texte %s"
 
-#: catalog/aclchk.c:3603
+#: catalog/aclchk.c:3577
 #, c-format
 msgid "must be owner of relation %s"
 msgstr "doit être le propriétaire de la relation %s"
 
-#: catalog/aclchk.c:3647
+#: catalog/aclchk.c:3621
 #, c-format
 msgid "permission denied for column \"%s\" of relation \"%s\""
 msgstr "droit refusé pour la colonne « %s » de la relation « %s »"
 
-#: catalog/aclchk.c:3768 catalog/aclchk.c:3776
+#: catalog/aclchk.c:3742 catalog/aclchk.c:3750
 #, c-format
 msgid "attribute %d of relation with OID %u does not exist"
 msgstr "l'attribut %d de la relation d'OID %u n'existe pas"
 
-#: catalog/aclchk.c:3849 catalog/aclchk.c:4768
+#: catalog/aclchk.c:3823 catalog/aclchk.c:4733
 #, c-format
 msgid "relation with OID %u does not exist"
 msgstr "la relation d'OID %u n'existe pas"
 
-#: catalog/aclchk.c:3948 catalog/aclchk.c:5186
+#: catalog/aclchk.c:3913 catalog/aclchk.c:5151
 #, c-format
 msgid "database with OID %u does not exist"
 msgstr "la base de données d'OID %u n'existe pas"
 
-#: catalog/aclchk.c:4002 catalog/aclchk.c:4846 tcop/fastpath.c:221 utils/fmgr/fmgr.c:2017
+#: catalog/aclchk.c:3967 catalog/aclchk.c:4811 tcop/fastpath.c:221 utils/fmgr/fmgr.c:2055
 #, c-format
 msgid "function with OID %u does not exist"
 msgstr "la fonction d'OID %u n'existe pas"
 
-#: catalog/aclchk.c:4056 catalog/aclchk.c:4872
+#: catalog/aclchk.c:4021 catalog/aclchk.c:4837
 #, c-format
 msgid "language with OID %u does not exist"
 msgstr "le langage d'OID %u n'existe pas"
 
-#: catalog/aclchk.c:4220 catalog/aclchk.c:4944
+#: catalog/aclchk.c:4185 catalog/aclchk.c:4909
 #, c-format
 msgid "schema with OID %u does not exist"
 msgstr "le schéma d'OID %u n'existe pas"
 
-#: catalog/aclchk.c:4274 catalog/aclchk.c:4971 utils/adt/genfile.c:637
+#: catalog/aclchk.c:4239 catalog/aclchk.c:4936 utils/adt/genfile.c:686
 #, c-format
 msgid "tablespace with OID %u does not exist"
 msgstr "le tablespace d'OID %u n'existe pas"
 
-#: catalog/aclchk.c:4333 catalog/aclchk.c:5105 commands/foreigncmds.c:328
+#: catalog/aclchk.c:4298 catalog/aclchk.c:5070 commands/foreigncmds.c:325
 #, c-format
 msgid "foreign-data wrapper with OID %u does not exist"
 msgstr "le wrapper de données distantes d'OID %u n'existe pas"
 
-#: catalog/aclchk.c:4395 catalog/aclchk.c:5132 commands/foreigncmds.c:465
+#: catalog/aclchk.c:4360 catalog/aclchk.c:5097 commands/foreigncmds.c:462
 #, c-format
 msgid "foreign server with OID %u does not exist"
 msgstr "le serveur distant d'OID %u n'existe pas"
 
-#: catalog/aclchk.c:4455 catalog/aclchk.c:4794 utils/cache/typcache.c:369
+#: catalog/aclchk.c:4420 catalog/aclchk.c:4759 utils/cache/typcache.c:378 utils/cache/typcache.c:432
 #, c-format
 msgid "type with OID %u does not exist"
 msgstr "le type d'OID %u n'existe pas"
 
-#: catalog/aclchk.c:4820
+#: catalog/aclchk.c:4785
 #, c-format
 msgid "operator with OID %u does not exist"
 msgstr "l'opérateur d'OID %u n'existe pas"
 
-#: catalog/aclchk.c:4997
+#: catalog/aclchk.c:4962
 #, c-format
 msgid "operator class with OID %u does not exist"
 msgstr "la classe d'opérateur d'OID %u n'existe pas"
 
-#: catalog/aclchk.c:5024
+#: catalog/aclchk.c:4989
 #, c-format
 msgid "operator family with OID %u does not exist"
 msgstr "la famille d'opérateur d'OID %u n'existe pas"
 
-#: catalog/aclchk.c:5051
+#: catalog/aclchk.c:5016
 #, c-format
 msgid "text search dictionary with OID %u does not exist"
 msgstr "le dictionnaire de recherche plein texte d'OID %u n'existe pas"
 
-#: catalog/aclchk.c:5078
+#: catalog/aclchk.c:5043
 #, c-format
 msgid "text search configuration with OID %u does not exist"
 msgstr "la configuration de recherche plein texte d'OID %u n'existe pas"
 
-#: catalog/aclchk.c:5159 commands/event_trigger.c:595
+#: catalog/aclchk.c:5124 commands/event_trigger.c:475
 #, c-format
 msgid "event trigger with OID %u does not exist"
 msgstr "le trigger sur événement d'OID %u n'existe pas"
 
-#: catalog/aclchk.c:5212 commands/collationcmds.c:366
+#: catalog/aclchk.c:5177 commands/collationcmds.c:367
 #, c-format
 msgid "collation with OID %u does not exist"
 msgstr "le collationnement d'OID %u n'existe pas"
 
-#: catalog/aclchk.c:5238
+#: catalog/aclchk.c:5203
 #, c-format
 msgid "conversion with OID %u does not exist"
 msgstr "la conversion d'OID %u n'existe pas"
 
-#: catalog/aclchk.c:5279
+#: catalog/aclchk.c:5244
 #, c-format
 msgid "extension with OID %u does not exist"
 msgstr "l'extension d'OID %u n'existe pas"
 
-#: catalog/aclchk.c:5306 commands/publicationcmds.c:759
+#: catalog/aclchk.c:5271 commands/publicationcmds.c:794
 #, c-format
 msgid "publication with OID %u does not exist"
 msgstr "la publication d'OID %u n'existe pas"
 
-#: catalog/aclchk.c:5332 commands/subscriptioncmds.c:1130
+#: catalog/aclchk.c:5297 commands/subscriptioncmds.c:1112
 #, c-format
 msgid "subscription with OID %u does not exist"
 msgstr "la souscription d'OID %u n'existe pas"
 
-#: catalog/aclchk.c:5358
+#: catalog/aclchk.c:5323
 #, c-format
 msgid "statistics object with OID %u does not exist"
 msgstr "l'objet statistique d'OID %u n'existe pas"
 
-#: catalog/catalog.c:498
+#: catalog/catalog.c:485
 #, c-format
 msgid "must be superuser to call pg_nextoid()"
 msgstr "doit être un super-utilisateur pour appeller pg_nextoid()"
 
-#: catalog/catalog.c:506
+#: catalog/catalog.c:493
 #, c-format
 msgid "pg_nextoid() can only be used on system catalogs"
 msgstr "pg_nextoid() ne peut être utilisé que pour les catalogues système"
 
-#: catalog/catalog.c:511 parser/parse_utilcmd.c:2064
+#: catalog/catalog.c:498 parser/parse_utilcmd.c:2191
 #, c-format
 msgid "index \"%s\" does not belong to table \"%s\""
 msgstr "l'index « %s » n'appartient pas à la table « %s »"
 
-#: catalog/catalog.c:528
+#: catalog/catalog.c:515
 #, c-format
 msgid "column \"%s\" is not of type oid"
 msgstr "la colonne « %s » n'est pas de type oid"
 
-#: catalog/catalog.c:535
+#: catalog/catalog.c:522
 #, c-format
 msgid "index \"%s\" is not the index for column \"%s\""
 msgstr "l'index « %s » n'est pas un index de la colonne « %s »"
 
-#: catalog/dependency.c:824 catalog/dependency.c:1062
+#: catalog/dependency.c:823 catalog/dependency.c:1061
 #, c-format
 msgid "cannot drop %s because %s requires it"
 msgstr "n'a pas pu supprimer %s car il est requis par %s"
 
-#: catalog/dependency.c:826 catalog/dependency.c:1064
+#: catalog/dependency.c:825 catalog/dependency.c:1063
 #, c-format
 msgid "You can drop %s instead."
 msgstr "Vous pouvez supprimer %s à la place."
 
-#: catalog/dependency.c:934 catalog/pg_shdepend.c:641
+#: catalog/dependency.c:933 catalog/pg_shdepend.c:640
 #, c-format
 msgid "cannot drop %s because it is required by the database system"
 msgstr "n'a pas pu supprimer %s car il est requis par le système de bases de données"
 
-#: catalog/dependency.c:1130
+#: catalog/dependency.c:1129
 #, c-format
 msgid "drop auto-cascades to %s"
 msgstr "DROP cascade automatiquement sur %s"
 
-#: catalog/dependency.c:1142 catalog/dependency.c:1151
+#: catalog/dependency.c:1141 catalog/dependency.c:1150
 #, c-format
 msgid "%s depends on %s"
 msgstr "%s dépend de %s"
 
-#: catalog/dependency.c:1163 catalog/dependency.c:1172
+#: catalog/dependency.c:1162 catalog/dependency.c:1171
 #, c-format
 msgid "drop cascades to %s"
 msgstr "DROP cascade sur %s"
 
-#: catalog/dependency.c:1180 catalog/pg_shdepend.c:770
+#: catalog/dependency.c:1179 catalog/pg_shdepend.c:769
 #, c-format
 msgid ""
 "\n"
@@ -3683,193 +3863,206 @@ msgstr[1] ""
 "\n"
 "et %d autres objets (voir le journal applicatif du serveur pour une liste)"
 
-#: catalog/dependency.c:1192
+#: catalog/dependency.c:1191
 #, c-format
 msgid "cannot drop %s because other objects depend on it"
 msgstr "n'a pas pu supprimer %s car d'autres objets en dépendent"
 
-#: catalog/dependency.c:1194 catalog/dependency.c:1195 catalog/dependency.c:1201 catalog/dependency.c:1202 catalog/dependency.c:1213 catalog/dependency.c:1214 commands/tablecmds.c:1215 commands/tablecmds.c:12215 commands/user.c:1082 commands/view.c:505 libpq/auth.c:332 replication/syncrep.c:1163 storage/lmgr/deadlock.c:1145 storage/lmgr/proc.c:1347 utils/adt/acl.c:5344 utils/misc/guc.c:6562 utils/misc/guc.c:6598 utils/misc/guc.c:6668
-#: utils/misc/guc.c:10714 utils/misc/guc.c:10748 utils/misc/guc.c:10782 utils/misc/guc.c:10816 utils/misc/guc.c:10851
+#: catalog/dependency.c:1193 catalog/dependency.c:1194 catalog/dependency.c:1200 catalog/dependency.c:1201 catalog/dependency.c:1212 catalog/dependency.c:1213 commands/tablecmds.c:1249 commands/tablecmds.c:13016 commands/user.c:1093 commands/view.c:495 libpq/auth.c:334 replication/syncrep.c:1032 storage/lmgr/deadlock.c:1154 storage/lmgr/proc.c:1350 utils/adt/acl.c:5329 utils/adt/jsonfuncs.c:614 utils/adt/jsonfuncs.c:620 utils/misc/guc.c:6771 utils/misc/guc.c:6807
+#: utils/misc/guc.c:6877 utils/misc/guc.c:10947 utils/misc/guc.c:10981 utils/misc/guc.c:11015 utils/misc/guc.c:11049 utils/misc/guc.c:11084
 #, c-format
 msgid "%s"
 msgstr "%s"
 
-#: catalog/dependency.c:1196 catalog/dependency.c:1203
+#: catalog/dependency.c:1195 catalog/dependency.c:1202
 #, c-format
 msgid "Use DROP ... CASCADE to drop the dependent objects too."
 msgstr "Utilisez DROP ... CASCADE pour supprimer aussi les objets dépendants."
 
-#: catalog/dependency.c:1200
+#: catalog/dependency.c:1199
 #, c-format
 msgid "cannot drop desired object(s) because other objects depend on them"
 msgstr "ne peut pas supprimer les objets désirés car d'autres objets en dépendent"
 
 #. translator: %d always has a value larger than 1
-#: catalog/dependency.c:1209
+#: catalog/dependency.c:1208
 #, c-format
 msgid "drop cascades to %d other object"
 msgid_plural "drop cascades to %d other objects"
 msgstr[0] "DROP cascade sur %d autre objet"
 msgstr[1] "DROP cascade sur %d autres objets"
 
-#: catalog/dependency.c:1886
+#: catalog/dependency.c:1875
 #, c-format
 msgid "constant of the type %s cannot be used here"
 msgstr "la constante de type %s ne peut pas être utilisée ici"
 
-#: catalog/heap.c:332
+#: catalog/heap.c:330
 #, c-format
 msgid "permission denied to create \"%s.%s\""
 msgstr "droit refusé pour créer « %s.%s »"
 
-#: catalog/heap.c:334
+#: catalog/heap.c:332
 #, c-format
 msgid "System catalog modifications are currently disallowed."
 msgstr "Les modifications du catalogue système sont actuellement interdites."
 
-#: catalog/heap.c:502 commands/tablecmds.c:2066 commands/tablecmds.c:2583 commands/tablecmds.c:5700
+#: catalog/heap.c:500 commands/tablecmds.c:2145 commands/tablecmds.c:2745 commands/tablecmds.c:6175
 #, c-format
 msgid "tables can have at most %d columns"
 msgstr "les tables peuvent avoir au plus %d colonnes"
 
-#: catalog/heap.c:520 commands/tablecmds.c:5985
+#: catalog/heap.c:518 commands/tablecmds.c:6468
 #, c-format
 msgid "column name \"%s\" conflicts with a system column name"
 msgstr "le nom de la colonne « %s » entre en conflit avec le nom d'une colonne système"
 
-#: catalog/heap.c:536
+#: catalog/heap.c:534
 #, c-format
 msgid "column name \"%s\" specified more than once"
 msgstr "colonne « %s » spécifiée plus d'une fois"
 
-#: catalog/heap.c:604
+#. translator: first %s is an integer not a name
+#: catalog/heap.c:609
+#, c-format
+msgid "partition key column %s has pseudo-type %s"
+msgstr "la colonne de clé de partitionnement %s a le pseudo type %s"
+
+#: catalog/heap.c:614
 #, c-format
 msgid "column \"%s\" has pseudo-type %s"
 msgstr "la colonne « %s » a le pseudo type %s"
 
-#: catalog/heap.c:634
+#: catalog/heap.c:645
 #, c-format
 msgid "composite type %s cannot be made a member of itself"
 msgstr "le type composite %s ne peut pas être membre de lui-même"
 
-#: catalog/heap.c:676 commands/createas.c:204 commands/createas.c:488
+#. translator: first %s is an integer not a name
+#: catalog/heap.c:700
+#, fuzzy, c-format
+#| msgid "no collation was derived for column \"%s\" with collatable type %s"
+msgid "no collation was derived for partition key column %s with collatable type %s"
+msgstr "aucun collationnement n'a été dérivé pour la colonne « %s » de type collationnable %s"
+
+#: catalog/heap.c:706 commands/createas.c:203 commands/createas.c:486
 #, c-format
 msgid "no collation was derived for column \"%s\" with collatable type %s"
 msgstr "aucun collationnement n'a été dérivé pour la colonne « %s » de type collationnable %s"
 
-#: catalog/heap.c:1122 catalog/index.c:864 commands/tablecmds.c:3350
+#: catalog/heap.c:1155 catalog/index.c:865 commands/tablecmds.c:3520
 #, c-format
 msgid "relation \"%s\" already exists"
 msgstr "la relation « %s » existe déjà"
 
-#: catalog/heap.c:1138 catalog/pg_type.c:427 catalog/pg_type.c:749 commands/typecmds.c:240 commands/typecmds.c:791 commands/typecmds.c:1191 commands/typecmds.c:1403 commands/typecmds.c:2160
+#: catalog/heap.c:1171 catalog/pg_type.c:428 catalog/pg_type.c:775 commands/typecmds.c:238 commands/typecmds.c:250 commands/typecmds.c:719 commands/typecmds.c:1125 commands/typecmds.c:1337 commands/typecmds.c:2124
 #, c-format
 msgid "type \"%s\" already exists"
 msgstr "le type « %s » existe déjà"
 
-#: catalog/heap.c:1139
+#: catalog/heap.c:1172
 #, 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 "Une relation a un type associé du même nom, donc vous devez utiliser un nom qui n'entre pas en conflit avec un type existant."
 
-#: catalog/heap.c:1168
+#: catalog/heap.c:1201
 #, c-format
 msgid "pg_class heap OID value not set when in binary upgrade mode"
 msgstr "OID du heap de pg_class non configuré en mode de mise à jour binaire"
 
-#: catalog/heap.c:2368
+#: catalog/heap.c:2400
 #, c-format
 msgid "cannot add NO INHERIT constraint to partitioned table \"%s\""
 msgstr "ne peut pas ajouter une contrainte NO INHERIT pour la table partitionnée « %s »"
 
-#: catalog/heap.c:2638
+#: catalog/heap.c:2670
 #, c-format
 msgid "check constraint \"%s\" already exists"
 msgstr "la contrainte de vérification « %s » existe déjà"
 
-#: catalog/heap.c:2808 catalog/index.c:878 catalog/pg_constraint.c:669 commands/tablecmds.c:7379
+#: catalog/heap.c:2840 catalog/index.c:879 catalog/pg_constraint.c:668 commands/tablecmds.c:8117
 #, c-format
 msgid "constraint \"%s\" for relation \"%s\" already exists"
 msgstr "la contrainte « %s » de la relation « %s » existe déjà"
 
-#: catalog/heap.c:2815
+#: catalog/heap.c:2847
 #, c-format
 msgid "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\""
 msgstr "la contrainte « %s » entre en conflit avec la constrainte non héritée sur la relation « %s »"
 
-#: catalog/heap.c:2826
+#: catalog/heap.c:2858
 #, c-format
 msgid "constraint \"%s\" conflicts with inherited constraint on relation \"%s\""
 msgstr "la contrainte « %s » entre en conflit avec une contrainte héritée sur la relation « %s »"
 
-#: catalog/heap.c:2836
+#: catalog/heap.c:2868
 #, c-format
 msgid "constraint \"%s\" conflicts with NOT VALID constraint on relation \"%s\""
 msgstr "la contrainte « %s » entre en conflit avec une contrainte NOT VALID sur la relation « %s »"
 
-#: catalog/heap.c:2841
+#: catalog/heap.c:2873
 #, c-format
 msgid "merging constraint \"%s\" with inherited definition"
 msgstr "assemblage de la contrainte « %s » avec une définition héritée"
 
-#: catalog/heap.c:2943
+#: catalog/heap.c:2975
 #, c-format
 msgid "cannot use generated column \"%s\" in column generation expression"
 msgstr "ne peut pas utiliser la colonne générée « %s » dans une expression de génération de colonne"
 
-#: catalog/heap.c:2945
+#: catalog/heap.c:2977
 #, c-format
 msgid "A generated column cannot reference another generated column."
 msgstr "Une colonne générée ne peut référencer une autre colonne générée."
 
-#: catalog/heap.c:2997
+#: catalog/heap.c:3029
 #, c-format
 msgid "generation expression is not immutable"
 msgstr "l'expression de génération n'est pas immuable"
 
-#: catalog/heap.c:3025 rewrite/rewriteHandler.c:1189
+#: catalog/heap.c:3057 rewrite/rewriteHandler.c:1192
 #, c-format
 msgid "column \"%s\" is of type %s but default expression is of type %s"
 msgstr "la colonne « %s » est de type %s alors que l'expression par défaut est de type %s"
 
-#: catalog/heap.c:3030 commands/prepare.c:384 parser/parse_node.c:434 parser/parse_target.c:591 parser/parse_target.c:866 parser/parse_target.c:876 rewrite/rewriteHandler.c:1194
+#: catalog/heap.c:3062 commands/prepare.c:367 parser/parse_node.c:412 parser/parse_target.c:589 parser/parse_target.c:869 parser/parse_target.c:879 rewrite/rewriteHandler.c:1197
 #, c-format
 msgid "You will need to rewrite or cast the expression."
 msgstr "Vous devez réécrire l'expression ou lui appliquer une transformation de type."
 
-#: catalog/heap.c:3077
+#: catalog/heap.c:3109
 #, c-format
 msgid "only table \"%s\" can be referenced in check constraint"
 msgstr "seule la table « %s » peut être référencée dans la contrainte de vérification"
 
-#: catalog/heap.c:3327
+#: catalog/heap.c:3366
 #, c-format
 msgid "unsupported ON COMMIT and foreign key combination"
 msgstr "combinaison ON COMMIT et clé étrangère non supportée"
 
-#: catalog/heap.c:3328
+#: catalog/heap.c:3367
 #, c-format
 msgid "Table \"%s\" references \"%s\", but they do not have the same ON COMMIT setting."
 msgstr ""
 "La table « %s » référence « %s » mais elles n'ont pas la même valeur pour le\n"
 "paramètre ON COMMIT."
 
-#: catalog/heap.c:3333
+#: catalog/heap.c:3372
 #, c-format
 msgid "cannot truncate a table referenced in a foreign key constraint"
 msgstr "ne peut pas tronquer une table référencée dans une contrainte de clé étrangère"
 
-#: catalog/heap.c:3334
+#: catalog/heap.c:3373
 #, c-format
 msgid "Table \"%s\" references \"%s\"."
 msgstr "La table « %s » référence « %s »."
 
-#: catalog/heap.c:3336
+#: catalog/heap.c:3375
 #, c-format
 msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE."
 msgstr "Tronquez la table « %s » en même temps, ou utilisez TRUNCATE ... CASCADE."
 
-#: catalog/index.c:219 parser/parse_utilcmd.c:1873 parser/parse_utilcmd.c:1972
+#: catalog/index.c:219 parser/parse_utilcmd.c:2097
 #, c-format
 msgid "multiple primary keys for table \"%s\" are not allowed"
 msgstr "les clés primaires multiples ne sont pas autorisées pour la table « %s »"
@@ -3884,419 +4077,429 @@ msgstr "les clés primaires ne peuvent pas être des expressions"
 msgid "primary key column \"%s\" is not marked NOT NULL"
 msgstr "la colonne de clé primaire « %s » n'est pas marquée NOT NULL"
 
-#: catalog/index.c:763 catalog/index.c:1816
+#: catalog/index.c:764 catalog/index.c:1843
 #, c-format
 msgid "user-defined indexes on system catalog tables are not supported"
 msgstr "les index définis par l'utilisateur sur les tables du catalogue système ne sont pas supportés"
 
-#: catalog/index.c:803
+#: catalog/index.c:804
 #, c-format
 msgid "nondeterministic collations are not supported for operator class \"%s\""
 msgstr "les collationnements non-déterministes ne sont pas supportés pour la classe d'opérateurs « %s »"
 
-#: catalog/index.c:818
+#: catalog/index.c:819
 #, c-format
 msgid "concurrent index creation on system catalog tables is not supported"
 msgstr ""
 "la création en parallèle d'un index sur les tables du catalogue système\n"
 "n'est pas supportée"
 
-#: catalog/index.c:827 catalog/index.c:1272
+#: catalog/index.c:828 catalog/index.c:1281
 #, c-format
 msgid "concurrent index creation for exclusion constraints is not supported"
 msgstr "la création de manière concurrente d'un index pour les contraintes d'exclusion n'est pas supportée"
 
-#: catalog/index.c:836
+#: catalog/index.c:837
 #, c-format
 msgid "shared indexes cannot be created after initdb"
 msgstr "les index partagés ne peuvent pas être créés après initdb"
 
-#: catalog/index.c:856 commands/createas.c:253 commands/sequence.c:154 parser/parse_utilcmd.c:208
+#: catalog/index.c:857 commands/createas.c:252 commands/sequence.c:154 parser/parse_utilcmd.c:210
 #, c-format
 msgid "relation \"%s\" already exists, skipping"
 msgstr "la relation « %s » existe déjà, poursuite du traitement"
 
-#: catalog/index.c:906
+#: catalog/index.c:907
 #, c-format
 msgid "pg_class index OID value not set when in binary upgrade mode"
 msgstr "OID de l'index de pg_class non configuré en mode de mise à jour binaire"
 
-#: catalog/index.c:2092
+#: catalog/index.c:2128
 #, c-format
 msgid "DROP INDEX CONCURRENTLY must be first action in transaction"
 msgstr "DROP INDEX CONCURRENTLY doit être la première action dans une transaction"
 
-#: catalog/index.c:2789
+#: catalog/index.c:2859
 #, c-format
 msgid "building index \"%s\" on table \"%s\" serially"
 msgstr "construction de l'index « %s » sur la table « %s » séquentiellement"
 
-#: catalog/index.c:2794
+#: catalog/index.c:2864
 #, c-format
 msgid "building index \"%s\" on table \"%s\" with request for %d parallel worker"
 msgid_plural "building index \"%s\" on table \"%s\" with request for %d parallel workers"
 msgstr[0] "construction de l'index « %s » sur la table « %s » avec une demande de %d processus parallèle"
 msgstr[1] "construction de l'index « %s » sur la table « %s » avec une demande de %d processus parallèles"
 
-#: catalog/index.c:3422
+#: catalog/index.c:3492
 #, c-format
 msgid "cannot reindex temporary tables of other sessions"
 msgstr "ne peut pas ré-indexer les tables temporaires des autres sessions"
 
-#: catalog/index.c:3553
+#: catalog/index.c:3503
+#, c-format
+msgid "cannot reindex invalid index on TOAST table"
+msgstr "ne peut pas réindexer un index invalide sur une table TOAST"
+
+#: catalog/index.c:3625
 #, c-format
 msgid "index \"%s\" was reindexed"
 msgstr "l'index « %s » a été réindexée"
 
-#: catalog/index.c:3627 commands/indexcmds.c:2882
+#: catalog/index.c:3701 commands/indexcmds.c:3017
 #, c-format
 msgid "REINDEX of partitioned tables is not yet implemented, skipping \"%s\""
 msgstr "REINDEX n'est pas encore implémenté pour les tables partitionnées, « %s » ignoré"
 
-#: catalog/namespace.c:249 catalog/namespace.c:453 catalog/namespace.c:545 commands/trigger.c:5394
+#: catalog/index.c:3756
+#, c-format
+msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping"
+msgstr "ne peut pas réindexer l'index invalide « %s.%s » sur une table TOAST, ignoré"
+
+#: catalog/namespace.c:257 catalog/namespace.c:461 catalog/namespace.c:553 commands/trigger.c:5043
 #, c-format
 msgid "cross-database references are not implemented: \"%s.%s.%s\""
 msgstr "les références entre bases de données ne sont pas implémentées : « %s.%s.%s »"
 
-#: catalog/namespace.c:306
+#: catalog/namespace.c:314
 #, c-format
 msgid "temporary tables cannot specify a schema name"
 msgstr "les tables temporaires ne peuvent pas spécifier un nom de schéma"
 
-#: catalog/namespace.c:387
+#: catalog/namespace.c:395
 #, c-format
 msgid "could not obtain lock on relation \"%s.%s\""
 msgstr "n'a pas pu obtenir un verrou sur la relation « %s.%s »"
 
-#: catalog/namespace.c:392 commands/lockcmds.c:162 commands/lockcmds.c:249
+#: catalog/namespace.c:400 commands/lockcmds.c:142 commands/lockcmds.c:227
 #, c-format
 msgid "could not obtain lock on relation \"%s\""
 msgstr "n'a pas pu obtenir un verrou sur la relation « %s »"
 
-#: catalog/namespace.c:420 parser/parse_relation.c:1172
+#: catalog/namespace.c:428 parser/parse_relation.c:1357
 #, c-format
 msgid "relation \"%s.%s\" does not exist"
 msgstr "la relation « %s.%s » n'existe pas"
 
-#: catalog/namespace.c:425 parser/parse_relation.c:1185 parser/parse_relation.c:1193
+#: catalog/namespace.c:433 parser/parse_relation.c:1370 parser/parse_relation.c:1378
 #, c-format
 msgid "relation \"%s\" does not exist"
 msgstr "la relation « %s » n'existe pas"
 
-#: catalog/namespace.c:491 catalog/namespace.c:3022 commands/extension.c:1469 commands/extension.c:1475
+#: catalog/namespace.c:499 catalog/namespace.c:3030 commands/extension.c:1519 commands/extension.c:1525
 #, c-format
 msgid "no schema has been selected to create in"
 msgstr "aucun schéma n'a été sélectionné pour cette création"
 
-#: catalog/namespace.c:643 catalog/namespace.c:656
+#: catalog/namespace.c:651 catalog/namespace.c:664
 #, c-format
 msgid "cannot create relations in temporary schemas of other sessions"
 msgstr "ne peut pas créer les relations dans les schémas temporaires d'autres sessions"
 
-#: catalog/namespace.c:647
+#: catalog/namespace.c:655
 #, c-format
 msgid "cannot create temporary relation in non-temporary schema"
 msgstr "ne peut pas créer une relation temporaire dans un schéma non temporaire"
 
-#: catalog/namespace.c:662
+#: catalog/namespace.c:670
 #, c-format
 msgid "only temporary relations may be created in temporary schemas"
 msgstr "seules les relations temporaires peuvent être créées dans des schémas temporaires"
 
-#: catalog/namespace.c:2214
+#: catalog/namespace.c:2222
 #, c-format
 msgid "statistics object \"%s\" does not exist"
 msgstr "l'objet statistique « %s » n'existe pas"
 
-#: catalog/namespace.c:2337
+#: catalog/namespace.c:2345
 #, c-format
 msgid "text search parser \"%s\" does not exist"
 msgstr "l'analyseur de recherche plein texte « %s » n'existe pas"
 
-#: catalog/namespace.c:2463
+#: catalog/namespace.c:2471
 #, c-format
 msgid "text search dictionary \"%s\" does not exist"
 msgstr "le dictionnaire de recherche plein texte « %s » n'existe pas"
 
-#: catalog/namespace.c:2590
+#: catalog/namespace.c:2598
 #, c-format
 msgid "text search template \"%s\" does not exist"
 msgstr "le modèle de recherche plein texte « %s » n'existe pas"
 
-#: catalog/namespace.c:2716 commands/tsearchcmds.c:1197 utils/cache/ts_cache.c:617
+#: catalog/namespace.c:2724 commands/tsearchcmds.c:1194 utils/cache/ts_cache.c:617
 #, c-format
 msgid "text search configuration \"%s\" does not exist"
 msgstr "la configuration de recherche plein texte « %s » n'existe pas"
 
-#: catalog/namespace.c:2829 parser/parse_expr.c:866 parser/parse_target.c:1221
+#: catalog/namespace.c:2837 parser/parse_expr.c:872 parser/parse_target.c:1228
 #, c-format
 msgid "cross-database references are not implemented: %s"
 msgstr "les références entre bases de données ne sont pas implémentées : %s"
 
-#: catalog/namespace.c:2835 gram.y:14731 gram.y:16165 parser/parse_expr.c:873 parser/parse_target.c:1228
+#: catalog/namespace.c:2843 gram.y:14981 gram.y:16435 parser/parse_expr.c:879 parser/parse_target.c:1235
 #, c-format
 msgid "improper qualified name (too many dotted names): %s"
 msgstr "mauvaise qualification du nom (trop de points entre les noms) : %s"
 
-#: catalog/namespace.c:2965
+#: catalog/namespace.c:2973
 #, c-format
 msgid "cannot move objects into or out of temporary schemas"
 msgstr "ne peut pas déplacer les objets dans ou à partir des schémas temporaires"
 
-#: catalog/namespace.c:2971
+#: catalog/namespace.c:2979
 #, c-format
 msgid "cannot move objects into or out of TOAST schema"
 msgstr "ne peut pas déplacer les objets dans ou à partir des schémas TOAST"
 
-#: catalog/namespace.c:3044 commands/schemacmds.c:257 commands/schemacmds.c:337 commands/tablecmds.c:1160
+#: catalog/namespace.c:3052 commands/schemacmds.c:256 commands/schemacmds.c:336 commands/tablecmds.c:1194
 #, c-format
 msgid "schema \"%s\" does not exist"
 msgstr "le schéma « %s » n'existe pas"
 
-#: catalog/namespace.c:3075
+#: catalog/namespace.c:3083
 #, c-format
 msgid "improper relation name (too many dotted names): %s"
 msgstr "nom de relation incorrecte (trop de points entre les noms) : %s"
 
-#: catalog/namespace.c:3609
+#: catalog/namespace.c:3646
 #, c-format
 msgid "collation \"%s\" for encoding \"%s\" does not exist"
 msgstr "le collationnement « %s » pour l'encodage « %s » n'existe pas"
 
-#: catalog/namespace.c:3664
+#: catalog/namespace.c:3701
 #, c-format
 msgid "conversion \"%s\" does not exist"
 msgstr "la conversion « %s » n'existe pas"
 
-#: catalog/namespace.c:3904
+#: catalog/namespace.c:3965
 #, c-format
 msgid "permission denied to create temporary tables in database \"%s\""
 msgstr "droit refusé pour la création de tables temporaires dans la base de données « %s »"
 
-#: catalog/namespace.c:3920
+#: catalog/namespace.c:3981
 #, c-format
 msgid "cannot create temporary tables during recovery"
 msgstr "ne peut pas créer des tables temporaires lors de la restauration"
 
-#: catalog/namespace.c:3926
+#: catalog/namespace.c:3987
 #, c-format
 msgid "cannot create temporary tables during a parallel operation"
 msgstr "ne peut pas créer de tables temporaires pendant une opération parallèle"
 
-#: catalog/namespace.c:4209 commands/tablespace.c:1205 commands/variable.c:64 utils/misc/guc.c:10883 utils/misc/guc.c:10961
+#: catalog/namespace.c:4286 commands/tablespace.c:1205 commands/variable.c:64 utils/misc/guc.c:11116 utils/misc/guc.c:11194
 #, c-format
 msgid "List syntax is invalid."
 msgstr "La syntaxe de la liste est invalide."
 
-#: catalog/objectaddress.c:1274 catalog/pg_publication.c:66 commands/policy.c:95 commands/policy.c:395 commands/policy.c:485 commands/tablecmds.c:224 commands/tablecmds.c:266 commands/tablecmds.c:1922 commands/tablecmds.c:5173 commands/tablecmds.c:10387
+#: catalog/objectaddress.c:1275 catalog/pg_publication.c:57 commands/policy.c:95 commands/policy.c:395 commands/policy.c:485 commands/tablecmds.c:230 commands/tablecmds.c:272 commands/tablecmds.c:1989 commands/tablecmds.c:5626 commands/tablecmds.c:11089
 #, c-format
 msgid "\"%s\" is not a table"
 msgstr "« %s » n'est pas une table"
 
-#: catalog/objectaddress.c:1281 commands/tablecmds.c:236 commands/tablecmds.c:5203 commands/tablecmds.c:14922 commands/view.c:138
+#: catalog/objectaddress.c:1282 commands/tablecmds.c:242 commands/tablecmds.c:5656 commands/tablecmds.c:15711 commands/view.c:119
 #, c-format
 msgid "\"%s\" is not a view"
 msgstr "« %s » n'est pas une vue"
 
-#: catalog/objectaddress.c:1288 commands/matview.c:175 commands/tablecmds.c:242 commands/tablecmds.c:14927
+#: catalog/objectaddress.c:1289 commands/matview.c:175 commands/tablecmds.c:248 commands/tablecmds.c:15716
 #, c-format
 msgid "\"%s\" is not a materialized view"
 msgstr "« %s » n'est pas une vue matérialisée"
 
-#: catalog/objectaddress.c:1295 commands/tablecmds.c:260 commands/tablecmds.c:5206 commands/tablecmds.c:14932
+#: catalog/objectaddress.c:1296 commands/tablecmds.c:266 commands/tablecmds.c:5659 commands/tablecmds.c:15721
 #, c-format
 msgid "\"%s\" is not a foreign table"
 msgstr "« %s » n'est pas une table distante"
 
-#: catalog/objectaddress.c:1336
+#: catalog/objectaddress.c:1337
 #, c-format
 msgid "must specify relation and object name"
 msgstr "doit indiquer les noms de relation et d'objet"
 
-#: catalog/objectaddress.c:1412 catalog/objectaddress.c:1465
+#: catalog/objectaddress.c:1413 catalog/objectaddress.c:1466
 #, c-format
 msgid "column name must be qualified"
 msgstr "le nom de la colonne doit être qualifié"
 
-#: catalog/objectaddress.c:1512
+#: catalog/objectaddress.c:1513
 #, c-format
 msgid "default value for column \"%s\" of relation \"%s\" does not exist"
 msgstr "la valeur par défaut de la colonne « %s » de la relation « %s » n'existe pas"
 
-#: catalog/objectaddress.c:1549 commands/functioncmds.c:132 commands/tablecmds.c:252 commands/typecmds.c:3321 parser/parse_type.c:244 parser/parse_type.c:273 parser/parse_type.c:846 utils/adt/acl.c:4451
+#: catalog/objectaddress.c:1550 commands/functioncmds.c:133 commands/tablecmds.c:258 commands/typecmds.c:263 commands/typecmds.c:3275 parser/parse_type.c:243 parser/parse_type.c:272 parser/parse_type.c:845 utils/adt/acl.c:4436
 #, c-format
 msgid "type \"%s\" does not exist"
 msgstr "le type « %s » n'existe pas"
 
-#: catalog/objectaddress.c:1668
+#: catalog/objectaddress.c:1669
 #, c-format
 msgid "operator %d (%s, %s) of %s does not exist"
 msgstr "l'opérateur %d (%s, %s) de %s n'existe pas"
 
-#: catalog/objectaddress.c:1699
+#: catalog/objectaddress.c:1700
 #, c-format
 msgid "function %d (%s, %s) of %s does not exist"
 msgstr "la fonction %d (%s, %s) de %s n'existe pas"
 
-#: catalog/objectaddress.c:1750 catalog/objectaddress.c:1776
+#: catalog/objectaddress.c:1751 catalog/objectaddress.c:1777
 #, c-format
 msgid "user mapping for user \"%s\" on server \"%s\" does not exist"
 msgstr "la correspondance pour l'utilisateur « %s » sur le serveur « %s » n'existe pas"
 
-#: catalog/objectaddress.c:1765 commands/foreigncmds.c:433 commands/foreigncmds.c:1016 commands/foreigncmds.c:1396 foreign/foreign.c:723
+#: catalog/objectaddress.c:1766 commands/foreigncmds.c:430 commands/foreigncmds.c:1012 commands/foreigncmds.c:1395 foreign/foreign.c:723
 #, c-format
 msgid "server \"%s\" does not exist"
 msgstr "le serveur « %s » n'existe pas"
 
-#: catalog/objectaddress.c:1832
+#: catalog/objectaddress.c:1833
 #, c-format
 msgid "publication relation \"%s\" in publication \"%s\" does not exist"
 msgstr "la relation de publication « %s » dans la publication « %s » n'existe pas"
 
-#: catalog/objectaddress.c:1894
+#: catalog/objectaddress.c:1895
 #, c-format
 msgid "unrecognized default ACL object type \"%c\""
 msgstr "type d'objet de droits par défaut non reconnu « %c »"
 
-#: catalog/objectaddress.c:1895
+#: catalog/objectaddress.c:1896
 #, c-format
 msgid "Valid object types are \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"."
 msgstr "Les types d'objet valides sont « %c », « %c », « %c », « %c », « %c »."
 
-#: catalog/objectaddress.c:1946
+#: catalog/objectaddress.c:1947
 #, c-format
 msgid "default ACL for user \"%s\" in schema \"%s\" on %s does not exist"
 msgstr "le droit par défaut pour l'utilisateur « %s » dans le schéma « %s » de %s n'existe pas"
 
-#: catalog/objectaddress.c:1951
+#: catalog/objectaddress.c:1952
 #, c-format
 msgid "default ACL for user \"%s\" on %s does not exist"
 msgstr "le droit par défaut pour l'utilisateur « %s » sur %s n'existe pas"
 
-#: catalog/objectaddress.c:1978 catalog/objectaddress.c:2036 catalog/objectaddress.c:2093
+#: catalog/objectaddress.c:1979 catalog/objectaddress.c:2037 catalog/objectaddress.c:2094
 #, c-format
 msgid "name or argument lists may not contain nulls"
 msgstr "le nom ou les listes d'arguments ne peuvent pas contenir de valeurs NULL"
 
-#: catalog/objectaddress.c:2012
+#: catalog/objectaddress.c:2013
 #, c-format
 msgid "unsupported object type \"%s\""
 msgstr "type d'objet « %s » non supporté"
 
-#: catalog/objectaddress.c:2032 catalog/objectaddress.c:2050 catalog/objectaddress.c:2191
+#: catalog/objectaddress.c:2033 catalog/objectaddress.c:2051 catalog/objectaddress.c:2192
 #, c-format
 msgid "name list length must be exactly %d"
 msgstr "la liste de nom doit être exactement de longueur %d"
 
-#: catalog/objectaddress.c:2054
+#: catalog/objectaddress.c:2055
 #, c-format
 msgid "large object OID may not be null"
 msgstr "l'OID du Large Object peut ne pas être NULL"
 
-#: catalog/objectaddress.c:2063 catalog/objectaddress.c:2126 catalog/objectaddress.c:2133
+#: catalog/objectaddress.c:2064 catalog/objectaddress.c:2127 catalog/objectaddress.c:2134
 #, c-format
 msgid "name list length must be at least %d"
 msgstr "la longueur de la liste de nom doit au moins être %d"
 
-#: catalog/objectaddress.c:2119 catalog/objectaddress.c:2140
+#: catalog/objectaddress.c:2120 catalog/objectaddress.c:2141
 #, c-format
 msgid "argument list length must be exactly %d"
 msgstr "la longueur de la liste d'arguments doit être %d exactement"
 
-#: catalog/objectaddress.c:2392 libpq/be-fsstubs.c:321
+#: catalog/objectaddress.c:2393 libpq/be-fsstubs.c:321
 #, c-format
 msgid "must be owner of large object %u"
 msgstr "doit être le propriétaire du Large Object %u"
 
-#: catalog/objectaddress.c:2407 commands/functioncmds.c:1535
+#: catalog/objectaddress.c:2408 commands/functioncmds.c:1445
 #, c-format
 msgid "must be owner of type %s or type %s"
 msgstr "doit être le propriétaire du type %s ou du type %s"
 
-#: catalog/objectaddress.c:2457 catalog/objectaddress.c:2474
+#: catalog/objectaddress.c:2458 catalog/objectaddress.c:2475
 #, c-format
 msgid "must be superuser"
 msgstr "doit être super-utilisateur"
 
-#: catalog/objectaddress.c:2464
+#: catalog/objectaddress.c:2465
 #, c-format
 msgid "must have CREATEROLE privilege"
 msgstr "doit avoir l'attribut CREATEROLE"
 
-#: catalog/objectaddress.c:2543
+#: catalog/objectaddress.c:2544
 #, c-format
 msgid "unrecognized object type \"%s\""
 msgstr "type d'objet non reconnu « %s »"
 
 #. translator: second %s is, e.g., "table %s"
-#: catalog/objectaddress.c:2764
+#: catalog/objectaddress.c:2772
 #, c-format
 msgid "column %s of %s"
 msgstr "colonne %s de %s"
 
-#: catalog/objectaddress.c:2774
+#: catalog/objectaddress.c:2782
 #, c-format
 msgid "function %s"
 msgstr "fonction %s"
 
-#: catalog/objectaddress.c:2779
+#: catalog/objectaddress.c:2787
 #, c-format
 msgid "type %s"
 msgstr "type %s"
 
-#: catalog/objectaddress.c:2809
+#: catalog/objectaddress.c:2817
 #, c-format
 msgid "cast from %s to %s"
 msgstr "conversion de %s en %s"
 
-#: catalog/objectaddress.c:2837
+#: catalog/objectaddress.c:2845
 #, c-format
 msgid "collation %s"
 msgstr "collationnement %s"
 
 #. translator: second %s is, e.g., "table %s"
-#: catalog/objectaddress.c:2863
+#: catalog/objectaddress.c:2871
 #, c-format
 msgid "constraint %s on %s"
 msgstr "contrainte %s sur %s"
 
-#: catalog/objectaddress.c:2869
+#: catalog/objectaddress.c:2877
 #, c-format
 msgid "constraint %s"
 msgstr "contrainte %s"
 
-#: catalog/objectaddress.c:2896
+#: catalog/objectaddress.c:2904
 #, c-format
 msgid "conversion %s"
 msgstr "conversion %s"
 
 #. translator: %s is typically "column %s of table %s"
-#: catalog/objectaddress.c:2935
+#: catalog/objectaddress.c:2943
 #, c-format
 msgid "default value for %s"
 msgstr "valeur par défaut pour %s"
 
-#: catalog/objectaddress.c:2944
+#: catalog/objectaddress.c:2952
 #, c-format
 msgid "language %s"
 msgstr "langage %s"
 
-#: catalog/objectaddress.c:2949
+#: catalog/objectaddress.c:2957
 #, c-format
 msgid "large object %u"
 msgstr "« Large Object » %u"
 
-#: catalog/objectaddress.c:2954
+#: catalog/objectaddress.c:2962
 #, c-format
 msgid "operator %s"
 msgstr "opérateur %s"
 
-#: catalog/objectaddress.c:2986
+#: catalog/objectaddress.c:2994
 #, c-format
 msgid "operator class %s for access method %s"
 msgstr "classe d'opérateur %s pour la méthode d'accès %s"
 
-#: catalog/objectaddress.c:3009
+#: catalog/objectaddress.c:3017
 #, c-format
 msgid "access method %s"
 msgstr "méthode d'accès %s"
@@ -4305,7 +4508,7 @@ msgstr "méthode d'accès %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:3051
+#: catalog/objectaddress.c:3059
 #, c-format
 msgid "operator %d (%s, %s) of %s: %s"
 msgstr "opérateur %d (%s, %s) de %s : %s"
@@ -4314,263 +4517,253 @@ msgstr "opérateur %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:3101
+#: catalog/objectaddress.c:3109
 #, c-format
 msgid "function %d (%s, %s) of %s: %s"
 msgstr "fonction %d (%s, %s) de %s : %s"
 
 #. translator: second %s is, e.g., "table %s"
-#: catalog/objectaddress.c:3145
+#: catalog/objectaddress.c:3153
 #, c-format
 msgid "rule %s on %s"
 msgstr "règle %s sur %s"
 
 #. translator: second %s is, e.g., "table %s"
-#: catalog/objectaddress.c:3183
+#: catalog/objectaddress.c:3191
 #, c-format
 msgid "trigger %s on %s"
 msgstr "trigger %s sur %s"
 
-#: catalog/objectaddress.c:3199
+#: catalog/objectaddress.c:3207
 #, c-format
 msgid "schema %s"
 msgstr "schéma %s"
 
-#: catalog/objectaddress.c:3222
+#: catalog/objectaddress.c:3230
 #, c-format
 msgid "statistics object %s"
 msgstr "objet statistique %s"
 
-#: catalog/objectaddress.c:3249
+#: catalog/objectaddress.c:3257
 #, c-format
 msgid "text search parser %s"
 msgstr "analyseur %s de la recherche plein texte"
 
-#: catalog/objectaddress.c:3275
+#: catalog/objectaddress.c:3283
 #, c-format
 msgid "text search dictionary %s"
 msgstr "dictionnaire %s de la recherche plein texte"
 
-#: catalog/objectaddress.c:3301
+#: catalog/objectaddress.c:3309
 #, c-format
 msgid "text search template %s"
 msgstr "modèle %s de la recherche plein texte"
 
-#: catalog/objectaddress.c:3327
+#: catalog/objectaddress.c:3335
 #, c-format
 msgid "text search configuration %s"
 msgstr "configuration %s de recherche plein texte"
 
-#: catalog/objectaddress.c:3336
+#: catalog/objectaddress.c:3344
 #, c-format
 msgid "role %s"
 msgstr "rôle %s"
 
-#: catalog/objectaddress.c:3349
+#: catalog/objectaddress.c:3357
 #, c-format
 msgid "database %s"
 msgstr "base de données %s"
 
-#: catalog/objectaddress.c:3361
+#: catalog/objectaddress.c:3369
 #, c-format
 msgid "tablespace %s"
 msgstr "tablespace %s"
 
-#: catalog/objectaddress.c:3370
+#: catalog/objectaddress.c:3378
 #, c-format
 msgid "foreign-data wrapper %s"
 msgstr "wrapper de données distantes %s"
 
-#: catalog/objectaddress.c:3379
+#: catalog/objectaddress.c:3387
 #, c-format
 msgid "server %s"
 msgstr "serveur %s"
 
-#: catalog/objectaddress.c:3407
+#: catalog/objectaddress.c:3415
 #, c-format
 msgid "user mapping for %s on server %s"
 msgstr "correspondance utilisateur pour %s sur le serveur %s"
 
-#: catalog/objectaddress.c:3452
+#: catalog/objectaddress.c:3460
 #, c-format
 msgid "default privileges on new relations belonging to role %s in schema %s"
 msgstr "droits par défaut pour les nouvelles relations appartenant au rôle %s dans le schéma %s"
 
-#: catalog/objectaddress.c:3456
+#: catalog/objectaddress.c:3464
 #, c-format
 msgid "default privileges on new relations belonging to role %s"
 msgstr "droits par défaut pour les nouvelles relations appartenant au rôle %s"
 
-#: catalog/objectaddress.c:3462
+#: catalog/objectaddress.c:3470
 #, c-format
 msgid "default privileges on new sequences belonging to role %s in schema %s"
 msgstr "droits par défaut pour les nouvelles séquences appartenant au rôle %s dans le schéma %s"
 
-#: catalog/objectaddress.c:3466
+#: catalog/objectaddress.c:3474
 #, c-format
 msgid "default privileges on new sequences belonging to role %s"
 msgstr "droits par défaut pour les nouvelles séquences appartenant au rôle %s"
 
-#: catalog/objectaddress.c:3472
+#: catalog/objectaddress.c:3480
 #, c-format
 msgid "default privileges on new functions belonging to role %s in schema %s"
 msgstr "droits par défaut pour les nouvelles fonctions appartenant au rôle %s dans le schéma %s"
 
-#: catalog/objectaddress.c:3476
+#: catalog/objectaddress.c:3484
 #, c-format
 msgid "default privileges on new functions belonging to role %s"
 msgstr "droits par défaut pour les nouvelles fonctions appartenant au rôle %s"
 
-#: catalog/objectaddress.c:3482
+#: catalog/objectaddress.c:3490
 #, c-format
 msgid "default privileges on new types belonging to role %s in schema %s"
 msgstr "droits par défaut pour les nouveaux types appartenant au rôle %s dans le schéma %s"
 
-#: catalog/objectaddress.c:3486
+#: catalog/objectaddress.c:3494
 #, c-format
 msgid "default privileges on new types belonging to role %s"
 msgstr "droits par défaut pour les nouveaux types appartenant au rôle %s"
 
-#: catalog/objectaddress.c:3492
+#: catalog/objectaddress.c:3500
 #, c-format
 msgid "default privileges on new schemas belonging to role %s"
 msgstr "droits par défaut pour les nouveaux schémas appartenant au rôle %s"
 
-#: catalog/objectaddress.c:3499
+#: catalog/objectaddress.c:3507
 #, c-format
 msgid "default privileges belonging to role %s in schema %s"
 msgstr "droits par défaut appartenant au rôle %s dans le schéma %s"
 
-#: catalog/objectaddress.c:3503
+#: catalog/objectaddress.c:3511
 #, c-format
 msgid "default privileges belonging to role %s"
 msgstr "droits par défaut appartenant au rôle %s"
 
-#: catalog/objectaddress.c:3521
+#: catalog/objectaddress.c:3529
 #, c-format
 msgid "extension %s"
 msgstr "extension %s"
 
-#: catalog/objectaddress.c:3534
+#: catalog/objectaddress.c:3542
 #, c-format
 msgid "event trigger %s"
 msgstr "trigger sur événement %s"
 
 #. translator: second %s is, e.g., "table %s"
-#: catalog/objectaddress.c:3570
+#: catalog/objectaddress.c:3578
 #, c-format
 msgid "policy %s on %s"
 msgstr "politique %s sur %s"
 
-#: catalog/objectaddress.c:3580
+#: catalog/objectaddress.c:3588
 #, c-format
 msgid "publication %s"
 msgstr "publication %s"
 
 #. translator: first %s is, e.g., "table %s"
-#: catalog/objectaddress.c:3606
+#: catalog/objectaddress.c:3614
 #, c-format
 msgid "publication of %s in publication %s"
 msgstr "publication de %s dans la publication %s"
 
-#: catalog/objectaddress.c:3615
+#: catalog/objectaddress.c:3623
 #, c-format
 msgid "subscription %s"
 msgstr "souscription %s"
 
-#: catalog/objectaddress.c:3634
+#: catalog/objectaddress.c:3642
 #, c-format
 msgid "transform for %s language %s"
 msgstr "transformation pour %s langage %s"
 
-#: catalog/objectaddress.c:3697
+#: catalog/objectaddress.c:3705
 #, c-format
 msgid "table %s"
 msgstr "table %s"
 
-#: catalog/objectaddress.c:3702
+#: catalog/objectaddress.c:3710
 #, c-format
 msgid "index %s"
 msgstr "index %s"
 
-#: catalog/objectaddress.c:3706
+#: catalog/objectaddress.c:3714
 #, c-format
 msgid "sequence %s"
 msgstr "séquence %s"
 
-#: catalog/objectaddress.c:3710
+#: catalog/objectaddress.c:3718
 #, c-format
 msgid "toast table %s"
 msgstr "table TOAST %s"
 
-#: catalog/objectaddress.c:3714
+#: catalog/objectaddress.c:3722
 #, c-format
 msgid "view %s"
 msgstr "vue %s"
 
-#: catalog/objectaddress.c:3718
+#: catalog/objectaddress.c:3726
 #, c-format
 msgid "materialized view %s"
 msgstr "vue matérialisée %s"
 
-#: catalog/objectaddress.c:3722
+#: catalog/objectaddress.c:3730
 #, c-format
 msgid "composite type %s"
 msgstr "type composite %s"
 
-#: catalog/objectaddress.c:3726
+#: catalog/objectaddress.c:3734
 #, c-format
 msgid "foreign table %s"
 msgstr "table distante %s"
 
-#: catalog/objectaddress.c:3731
+#: catalog/objectaddress.c:3739
 #, c-format
 msgid "relation %s"
 msgstr "relation %s"
 
-#: catalog/objectaddress.c:3768
+#: catalog/objectaddress.c:3776
 #, c-format
 msgid "operator family %s for access method %s"
 msgstr "famille d'opérateur %s pour la méthode d'accès %s"
 
-#: catalog/partition.c:214 commands/analyze.c:1359 commands/indexcmds.c:1090 commands/tablecmds.c:1091 commands/tablecmds.c:8176 commands/tablecmds.c:8319 commands/tablecmds.c:8510 commands/tablecmds.c:8647 commands/tablecmds.c:10478 commands/tablecmds.c:15865 commands/tablecmds.c:16442 executor/execExprInterp.c:3303 executor/execMain.c:1863 executor/execMain.c:1949 executor/execMain.c:1999 executor/execMain.c:2107
-#: executor/execPartition.c:590 executor/execPartition.c:650 executor/execPartition.c:794 executor/execPartition.c:908 executor/execPartition.c:941 executor/execPartition.c:1046 executor/nodeModifyTable.c:1960
-msgid "could not convert row type"
-msgstr "n'a pas pu convertir le type de ligne"
-
-#: catalog/pg_aggregate.c:129
+#: catalog/pg_aggregate.c:128
 #, c-format
 msgid "aggregates cannot have more than %d argument"
 msgid_plural "aggregates cannot have more than %d arguments"
 msgstr[0] "les agrégats ne peuvent avoir plus de %d argument"
 msgstr[1] "les agrégats ne peuvent avoir plus de %d arguments"
 
-#: catalog/pg_aggregate.c:152 catalog/pg_aggregate.c:162
+#: catalog/pg_aggregate.c:143 catalog/pg_aggregate.c:157
 #, c-format
 msgid "cannot determine transition data type"
 msgstr "n'a pas pu déterminer le type de données de transition"
 
-#: catalog/pg_aggregate.c:153 catalog/pg_aggregate.c:163
-#, c-format
-msgid "An aggregate using a polymorphic transition type must have at least one polymorphic argument."
-msgstr "Un agrégat utilisant un type de transition polymorphique doit avoir au moins un argument polymorphique."
-
-#: catalog/pg_aggregate.c:176
+#: catalog/pg_aggregate.c:172
 #, c-format
 msgid "a variadic ordered-set aggregate must use VARIADIC type ANY"
 msgstr "un agrégat à ensemble trié variadique doit être VARIADIC sur le type ANY"
 
-#: catalog/pg_aggregate.c:202
+#: catalog/pg_aggregate.c:198
 #, c-format
 msgid "a hypothetical-set aggregate must have direct arguments matching its aggregated arguments"
 msgstr "un agrégat d'ensemble hypothétique doit avoir des arguments directs correspondant aux arguments agrégés"
 
-#: catalog/pg_aggregate.c:249 catalog/pg_aggregate.c:293
+#: catalog/pg_aggregate.c:245 catalog/pg_aggregate.c:289
 #, c-format
 msgid "return type of transition function %s is not %s"
 msgstr "le type de retour de la fonction de transition %s n'est pas %s"
 
-#: catalog/pg_aggregate.c:269 catalog/pg_aggregate.c:312
+#: catalog/pg_aggregate.c:265 catalog/pg_aggregate.c:308
 #, c-format
 msgid "must not omit initial value when transition function is strict and transition type is not compatible with input type"
 msgstr ""
@@ -4578,117 +4771,112 @@ msgstr ""
 "stricte et que le type de transition n'est pas compatible avec le type en\n"
 "entrée"
 
-#: catalog/pg_aggregate.c:338
+#: catalog/pg_aggregate.c:334
 #, c-format
 msgid "return type of inverse transition function %s is not %s"
 msgstr "le type de retour de la fonction de transition inverse %s n'est pas %s"
 
-#: catalog/pg_aggregate.c:355 executor/nodeWindowAgg.c:2851
+#: catalog/pg_aggregate.c:351 executor/nodeWindowAgg.c:2852
 #, c-format
 msgid "strictness of aggregate's forward and inverse transition functions must match"
 msgstr "la fonction de transition d'agrégat en déplacement ne doit pas renvoyer null"
 
-#: catalog/pg_aggregate.c:399 catalog/pg_aggregate.c:552
+#: catalog/pg_aggregate.c:395 catalog/pg_aggregate.c:553
 #, c-format
 msgid "final function with extra arguments must not be declared STRICT"
 msgstr "la fonction finale avec des arguments supplémentaires ne doit pas être déclarée avec la clause STRICT"
 
-#: catalog/pg_aggregate.c:430
+#: catalog/pg_aggregate.c:426
 #, c-format
 msgid "return type of combine function %s is not %s"
 msgstr "le type de retour de la fonction de d'unification %s n'est pas %s"
 
-#: catalog/pg_aggregate.c:442 executor/nodeAgg.c:3003
+#: catalog/pg_aggregate.c:438 executor/nodeAgg.c:4177
 #, c-format
 msgid "combine function with transition type %s must not be declared STRICT"
 msgstr "la fonction d'unification avec le type de transaction %s ne doit pas être déclaré STRICT"
 
-#: catalog/pg_aggregate.c:461
+#: catalog/pg_aggregate.c:457
 #, c-format
 msgid "return type of serialization function %s is not %s"
 msgstr "le type de retour de la fonction de sérialisation %s n'est pas %s"
 
-#: catalog/pg_aggregate.c:482
+#: catalog/pg_aggregate.c:478
 #, c-format
 msgid "return type of deserialization function %s is not %s"
 msgstr "le type de retour de la fonction de désérialisation %s n'est pas %s"
 
-#: catalog/pg_aggregate.c:498 catalog/pg_proc.c:243 catalog/pg_proc.c:250
+#: catalog/pg_aggregate.c:497 catalog/pg_proc.c:186 catalog/pg_proc.c:220
 #, c-format
 msgid "cannot determine result data type"
 msgstr "n'a pas pu déterminer le type de données en résultat"
 
-#: catalog/pg_aggregate.c:499
-#, c-format
-msgid "An aggregate returning a polymorphic type must have at least one polymorphic argument."
-msgstr "Un agrégat renvoyant un type polymorphique doit avoir au moins un argument de type polymorphique."
-
-#: catalog/pg_aggregate.c:511 catalog/pg_proc.c:256
+#: catalog/pg_aggregate.c:512 catalog/pg_proc.c:199 catalog/pg_proc.c:228
 #, c-format
 msgid "unsafe use of pseudo-type \"internal\""
 msgstr "utilisation non sûre des pseudo-types « INTERNAL »"
 
-#: catalog/pg_aggregate.c:512 catalog/pg_proc.c:257
-#, c-format
-msgid "A function returning \"internal\" must have at least one \"internal\" argument."
-msgstr "Une fonction renvoyant « internal » doit avoir au moins un argument du type « internal »."
-
-#: catalog/pg_aggregate.c:565
+#: catalog/pg_aggregate.c:566
 #, c-format
 msgid "moving-aggregate implementation returns type %s, but plain implementation returns type %s"
 msgstr "l'impémentation d'aggrégat glissant retourne le type %s, mais l'implémentation standard retourne le type %s"
 
-#: catalog/pg_aggregate.c:576
+#: catalog/pg_aggregate.c:577
 #, c-format
 msgid "sort operator can only be specified for single-argument aggregates"
 msgstr "l'opérateur de tri peut seulement être indiqué pour des agrégats à un seul argument"
 
-#: catalog/pg_aggregate.c:703 catalog/pg_proc.c:396
+#: catalog/pg_aggregate.c:704 catalog/pg_proc.c:374
 #, c-format
 msgid "cannot change routine kind"
 msgstr "ne peut pas modifier le type de routine"
 
-#: catalog/pg_aggregate.c:705
+#: catalog/pg_aggregate.c:706
 #, c-format
 msgid "\"%s\" is an ordinary aggregate function."
 msgstr "« %s » est une fonction d'agrégat ordinaire."
 
-#: catalog/pg_aggregate.c:707
+#: catalog/pg_aggregate.c:708
 #, c-format
 msgid "\"%s\" is an ordered-set aggregate."
 msgstr "« %s » est un agrégat d'ensemble trié."
 
-#: catalog/pg_aggregate.c:709
+#: catalog/pg_aggregate.c:710
 #, c-format
 msgid "\"%s\" is a hypothetical-set aggregate."
 msgstr "« %s » est un agrégat d'ensemble hypothétique."
 
-#: catalog/pg_aggregate.c:714
+#: catalog/pg_aggregate.c:715
 #, c-format
 msgid "cannot change number of direct arguments of an aggregate function"
 msgstr "ne peut pas changer le nombre d'arguments directs d'une fonction d'agrégation"
 
-#: catalog/pg_aggregate.c:869 commands/functioncmds.c:665 commands/typecmds.c:1751 commands/typecmds.c:1802 commands/typecmds.c:1833 commands/typecmds.c:1856 commands/typecmds.c:1877 commands/typecmds.c:1904 commands/typecmds.c:1931 commands/typecmds.c:2008 commands/typecmds.c:2050 parser/parse_func.c:418 parser/parse_func.c:447 parser/parse_func.c:472 parser/parse_func.c:486 parser/parse_func.c:606 parser/parse_func.c:626
-#: parser/parse_func.c:2144 parser/parse_func.c:2335
+#: catalog/pg_aggregate.c:870 commands/functioncmds.c:667 commands/typecmds.c:1658 commands/typecmds.c:1704 commands/typecmds.c:1756 commands/typecmds.c:1793 commands/typecmds.c:1827 commands/typecmds.c:1861 commands/typecmds.c:1895 commands/typecmds.c:1972 commands/typecmds.c:2014 parser/parse_func.c:414 parser/parse_func.c:443 parser/parse_func.c:468 parser/parse_func.c:482 parser/parse_func.c:602 parser/parse_func.c:622 parser/parse_func.c:2129
+#: parser/parse_func.c:2320
 #, c-format
 msgid "function %s does not exist"
 msgstr "la fonction %s n'existe pas"
 
-#: catalog/pg_aggregate.c:875
+#: catalog/pg_aggregate.c:876
 #, c-format
 msgid "function %s returns a set"
 msgstr "la fonction %s renvoie un ensemble"
 
-#: catalog/pg_aggregate.c:890
+#: catalog/pg_aggregate.c:891
 #, c-format
 msgid "function %s must accept VARIADIC ANY to be used in this aggregate"
 msgstr "la fonction %s doit accepter VARIADIC ANY pour être utilisé dans cet agrégat"
 
-#: catalog/pg_aggregate.c:914
+#: catalog/pg_aggregate.c:915
 #, c-format
 msgid "function %s requires run-time type coercion"
 msgstr "la fonction %s requiert une coercion sur le type à l'exécution"
 
+#: catalog/pg_cast.c:67
+#, c-format
+msgid "cast from type %s to type %s already exists"
+msgstr "la conversion du type %s vers le type %s existe déjà"
+
 #: catalog/pg_collation.c:93 catalog/pg_collation.c:140
 #, c-format
 msgid "collation \"%s\" already exists, skipping"
@@ -4709,17 +4897,17 @@ msgstr "le collationnement « %s » existe déjà"
 msgid "collation \"%s\" for encoding \"%s\" already exists"
 msgstr "le collationnement « %s » pour l'encodage « %s » existe déjà"
 
-#: catalog/pg_constraint.c:677
+#: catalog/pg_constraint.c:676
 #, c-format
 msgid "constraint \"%s\" for domain %s already exists"
 msgstr "la contrainte « %s » du domaine %s existe déjà"
 
-#: catalog/pg_constraint.c:875 catalog/pg_constraint.c:968
+#: catalog/pg_constraint.c:874 catalog/pg_constraint.c:967
 #, c-format
 msgid "constraint \"%s\" for table \"%s\" does not exist"
 msgstr "la contrainte « %s » de la table « %s » n'existe pas"
 
-#: catalog/pg_constraint.c:1057
+#: catalog/pg_constraint.c:1056
 #, c-format
 msgid "constraint \"%s\" for domain %s does not exist"
 msgstr "la contrainte « %s » du domaine %s n'existe pas"
@@ -4734,52 +4922,52 @@ msgstr "la conversion « %s » existe déjà"
 msgid "default conversion for %s to %s already exists"
 msgstr "la conversion par défaut de %s vers %s existe déjà"
 
-#: catalog/pg_depend.c:162 commands/extension.c:3229
+#: catalog/pg_depend.c:162 commands/extension.c:3324
 #, c-format
 msgid "%s is already a member of extension \"%s\""
 msgstr "%s est déjà un membre de l'extension « %s »"
 
-#: catalog/pg_depend.c:489
+#: catalog/pg_depend.c:538
 #, c-format
 msgid "cannot remove dependency on %s because it is a system object"
 msgstr "ne peut pas supprimer la dépendance sur %s car il s'agit d'un objet système"
 
-#: catalog/pg_enum.c:128 catalog/pg_enum.c:231 catalog/pg_enum.c:526
+#: catalog/pg_enum.c:127 catalog/pg_enum.c:230 catalog/pg_enum.c:525
 #, c-format
 msgid "invalid enum label \"%s\""
 msgstr "nom du label enum « %s » invalide"
 
-#: catalog/pg_enum.c:129 catalog/pg_enum.c:232 catalog/pg_enum.c:527
+#: catalog/pg_enum.c:128 catalog/pg_enum.c:231 catalog/pg_enum.c:526
 #, c-format
 msgid "Labels must be %d characters or less."
 msgstr "Les labels doivent avoir au plus %d caractères."
 
-#: catalog/pg_enum.c:260
+#: catalog/pg_enum.c:259
 #, c-format
 msgid "enum label \"%s\" already exists, skipping"
 msgstr "le label « %s » existe déjà, poursuite du traitement"
 
-#: catalog/pg_enum.c:267 catalog/pg_enum.c:570
+#: catalog/pg_enum.c:266 catalog/pg_enum.c:569
 #, c-format
 msgid "enum label \"%s\" already exists"
 msgstr "le label « %s » existe déjà"
 
-#: catalog/pg_enum.c:322 catalog/pg_enum.c:565
+#: catalog/pg_enum.c:321 catalog/pg_enum.c:564
 #, c-format
 msgid "\"%s\" is not an existing enum label"
 msgstr "« %s » n'est pas un label d'enum existant"
 
-#: catalog/pg_enum.c:380
+#: catalog/pg_enum.c:379
 #, c-format
 msgid "pg_enum OID value not set when in binary upgrade mode"
 msgstr "OID de pg_enum non configuré en mode de mise à jour binaire"
 
-#: catalog/pg_enum.c:390
+#: catalog/pg_enum.c:389
 #, c-format
 msgid "ALTER TYPE ADD BEFORE/AFTER is incompatible with binary upgrade"
 msgstr "ALTER TYPE ADD BEFORE/AFTER est incompatible avec la mise à jour binaire"
 
-#: catalog/pg_namespace.c:64 commands/schemacmds.c:266
+#: catalog/pg_namespace.c:64 commands/schemacmds.c:265
 #, c-format
 msgid "schema \"%s\" already exists"
 msgstr "le schéma « %s » existe déjà"
@@ -4794,7 +4982,7 @@ msgstr "« %s » n'est pas un nom d'opérateur valide"
 msgid "only binary operators can have commutators"
 msgstr "seuls les opérateurs binaires peuvent avoir des commutateurs"
 
-#: catalog/pg_operator.c:374 commands/operatorcmds.c:485
+#: catalog/pg_operator.c:374 commands/operatorcmds.c:495
 #, c-format
 msgid "only binary operators can have join selectivity"
 msgstr "seuls les opérateurs binaires peuvent avoir une sélectivité des jointures"
@@ -4814,12 +5002,12 @@ msgstr "seuls les opérateurs binaires ont du hachage"
 msgid "only boolean operators can have negators"
 msgstr "seuls les opérateurs booléens peuvent avoir des négations"
 
-#: catalog/pg_operator.c:397 commands/operatorcmds.c:493
+#: catalog/pg_operator.c:397 commands/operatorcmds.c:503
 #, c-format
 msgid "only boolean operators can have restriction selectivity"
 msgstr "seuls les opérateurs booléens peuvent avoir une sélectivité des restrictions"
 
-#: catalog/pg_operator.c:401 commands/operatorcmds.c:497
+#: catalog/pg_operator.c:401 commands/operatorcmds.c:507
 #, c-format
 msgid "only boolean operators can have join selectivity"
 msgstr "seuls les opérateurs booléens peuvent avoir une sélectivité des jointures"
@@ -4844,54 +5032,44 @@ msgstr "l'opérateur %s existe déjà"
 msgid "operator cannot be its own negator or sort operator"
 msgstr "l'opérateur ne peut pas être son propre opérateur de négation ou de tri"
 
-#: catalog/pg_proc.c:131 parser/parse_func.c:2206
+#: catalog/pg_proc.c:127 parser/parse_func.c:2191
 #, c-format
 msgid "functions cannot have more than %d argument"
 msgid_plural "functions cannot have more than %d arguments"
 msgstr[0] "les fonctions ne peuvent avoir plus de %d argument"
 msgstr[1] "les fonctions ne peuvent avoir plus de %d arguments"
 
-#: catalog/pg_proc.c:244
-#, c-format
-msgid "A function returning a polymorphic type must have at least one polymorphic argument."
-msgstr "Une fonction renvoyant un type polymorphique doit avoir au moins un argument de type polymorphique."
-
-#: catalog/pg_proc.c:251
-#, c-format
-msgid "A function returning \"anyrange\" must have at least one \"anyrange\" argument."
-msgstr "Une fonction renvoyant « anyrange » doit avoir au moins un argument du type « anyrange »."
-
-#: catalog/pg_proc.c:386
+#: catalog/pg_proc.c:364
 #, c-format
 msgid "function \"%s\" already exists with same argument types"
 msgstr "la fonction « %s » existe déjà avec des types d'arguments identiques"
 
-#: catalog/pg_proc.c:398
+#: catalog/pg_proc.c:376
 #, c-format
 msgid "\"%s\" is an aggregate function."
 msgstr "« %s » est une fonction d'agrégat."
 
-#: catalog/pg_proc.c:400
+#: catalog/pg_proc.c:378
 #, c-format
 msgid "\"%s\" is a function."
 msgstr "« %s » est une fonction."
 
-#: catalog/pg_proc.c:402
+#: catalog/pg_proc.c:380
 #, c-format
 msgid "\"%s\" is a procedure."
 msgstr "« %s » est une procédure."
 
-#: catalog/pg_proc.c:404
+#: catalog/pg_proc.c:382
 #, c-format
 msgid "\"%s\" is a window function."
 msgstr "la fonction « %s » est une fonction window."
 
-#: catalog/pg_proc.c:424
+#: catalog/pg_proc.c:402
 #, c-format
 msgid "cannot change whether a procedure has output parameters"
 msgstr "ne peut pas changer le fait qu'une procédure ait des paramètres en sortie ou non"
 
-#: catalog/pg_proc.c:425 catalog/pg_proc.c:455
+#: catalog/pg_proc.c:403 catalog/pg_proc.c:433
 #, c-format
 msgid "cannot change return type of existing function"
 msgstr "ne peut pas modifier le type de retour d'une fonction existante"
@@ -4900,106 +5078,91 @@ msgstr "ne peut pas modifier le type de retour d'une fonction existante"
 #. AGGREGATE
 #.
 #. translator: first %s is DROP FUNCTION or DROP PROCEDURE
-#: catalog/pg_proc.c:431 catalog/pg_proc.c:458 catalog/pg_proc.c:503 catalog/pg_proc.c:529 catalog/pg_proc.c:557
+#: catalog/pg_proc.c:409 catalog/pg_proc.c:436 catalog/pg_proc.c:481 catalog/pg_proc.c:507 catalog/pg_proc.c:533
 #, c-format
 msgid "Use %s %s first."
 msgstr "Utilisez tout d'abord %s %s."
 
-#: catalog/pg_proc.c:456
+#: catalog/pg_proc.c:434
 #, c-format
 msgid "Row type defined by OUT parameters is different."
 msgstr "Le type de ligne défini par les paramètres OUT est différent."
 
-#: catalog/pg_proc.c:500
+#: catalog/pg_proc.c:478
 #, c-format
 msgid "cannot change name of input parameter \"%s\""
 msgstr "ne peut pas modifier le nom du paramètre en entrée « %s »"
 
-#: catalog/pg_proc.c:527
+#: catalog/pg_proc.c:505
 #, c-format
 msgid "cannot remove parameter defaults from existing function"
 msgstr ""
 "ne peut pas supprimer les valeurs par défaut des paramètres de la\n"
 "fonction existante"
 
-#: catalog/pg_proc.c:555
+#: catalog/pg_proc.c:531
 #, c-format
 msgid "cannot change data type of existing parameter default value"
 msgstr ""
 "ne peut pas modifier le type de données d'un paramètre avec une valeur\n"
 "par défaut"
 
-#: catalog/pg_proc.c:772
+#: catalog/pg_proc.c:748
 #, c-format
 msgid "there is no built-in function named \"%s\""
 msgstr "il n'existe pas de fonction intégrée nommée « %s »"
 
-#: catalog/pg_proc.c:870
+#: catalog/pg_proc.c:846
 #, c-format
 msgid "SQL functions cannot return type %s"
 msgstr "les fonctions SQL ne peuvent pas renvoyer un type %s"
 
-#: catalog/pg_proc.c:885
+#: catalog/pg_proc.c:861
 #, c-format
 msgid "SQL functions cannot have arguments of type %s"
 msgstr "les fonctions SQL ne peuvent avoir d'arguments du type %s"
 
-#: catalog/pg_proc.c:973 executor/functions.c:1423
+#: catalog/pg_proc.c:954 executor/functions.c:1446
 #, c-format
 msgid "SQL function \"%s\""
 msgstr "Fonction SQL « %s »"
 
-#: catalog/pg_publication.c:57 commands/trigger.c:238 commands/trigger.c:256
-#, c-format
-msgid "\"%s\" is a partitioned table"
-msgstr "« %s » est une table partitionnée"
-
 #: catalog/pg_publication.c:59
 #, c-format
-msgid "Adding partitioned tables to publications is not supported."
-msgstr "Ajouter des tables partitionnées à des publications n'est pas supporté."
-
-#: catalog/pg_publication.c:60
-#, c-format
-msgid "You can add the table partitions individually."
-msgstr "Vous pouvez ajouter les partitions de table individuellement."
-
-#: catalog/pg_publication.c:68
-#, c-format
 msgid "Only tables can be added to publications."
 msgstr "Seules des tables peuvent être ajoutées aux publications."
 
-#: catalog/pg_publication.c:74
+#: catalog/pg_publication.c:65
 #, c-format
 msgid "\"%s\" is a system table"
 msgstr "« %s » est une table système"
 
-#: catalog/pg_publication.c:76
+#: catalog/pg_publication.c:67
 #, c-format
 msgid "System tables cannot be added to publications."
 msgstr "Les tables systèmes ne peuvent pas être ajoutées à une publication."
 
-#: catalog/pg_publication.c:82
+#: catalog/pg_publication.c:73
 #, c-format
 msgid "table \"%s\" cannot be replicated"
 msgstr "la table « %s » ne peut pas être répliquée"
 
-#: catalog/pg_publication.c:84
+#: catalog/pg_publication.c:75
 #, c-format
 msgid "Temporary and unlogged relations cannot be replicated."
 msgstr "Les tables tremporaires et les tables non journalisées ne peuvent pas être répliquées."
 
-#: catalog/pg_publication.c:182
+#: catalog/pg_publication.c:174
 #, c-format
 msgid "relation \"%s\" is already member of publication \"%s\""
 msgstr "la relation « %s » est déjà un membre de la publication « %s »"
 
-#: catalog/pg_publication.c:418 catalog/pg_publication.c:440 commands/publicationcmds.c:422 commands/publicationcmds.c:727
+#: catalog/pg_publication.c:470 commands/publicationcmds.c:451 commands/publicationcmds.c:762
 #, c-format
 msgid "publication \"%s\" does not exist"
 msgstr "la publication « %s » n'existe pas"
 
-#: catalog/pg_shdepend.c:777
+#: catalog/pg_shdepend.c:776
 #, c-format
 msgid ""
 "\n"
@@ -5014,62 +5177,62 @@ msgstr[1] ""
 "\n"
 "et des objets dans %d autres bases de données (voir le journal applicatif du serveur pour une liste)"
 
-#: catalog/pg_shdepend.c:1083
+#: catalog/pg_shdepend.c:1082
 #, c-format
 msgid "role %u was concurrently dropped"
 msgstr "le rôle %u a été supprimé simultanément"
 
-#: catalog/pg_shdepend.c:1102
+#: catalog/pg_shdepend.c:1101
 #, c-format
 msgid "tablespace %u was concurrently dropped"
 msgstr "le tablespace %u a été supprimé simultanément"
 
-#: catalog/pg_shdepend.c:1117
+#: catalog/pg_shdepend.c:1116
 #, c-format
 msgid "database %u was concurrently dropped"
 msgstr "la base de données %u a été supprimé simultanément"
 
-#: catalog/pg_shdepend.c:1162
+#: catalog/pg_shdepend.c:1161
 #, c-format
 msgid "owner of %s"
 msgstr "propriétaire de %s"
 
-#: catalog/pg_shdepend.c:1164
+#: catalog/pg_shdepend.c:1163
 #, c-format
 msgid "privileges for %s"
 msgstr "droits pour %s"
 
-#: catalog/pg_shdepend.c:1166
+#: catalog/pg_shdepend.c:1165
 #, c-format
 msgid "target of %s"
 msgstr "cible de %s"
 
 #. translator: %s will always be "database %s"
-#: catalog/pg_shdepend.c:1174
+#: catalog/pg_shdepend.c:1173
 #, c-format
 msgid "%d object in %s"
 msgid_plural "%d objects in %s"
 msgstr[0] "%d objet dans %s"
 msgstr[1] "%d objets dans %s"
 
-#: catalog/pg_shdepend.c:1285
+#: catalog/pg_shdepend.c:1284
 #, c-format
 msgid "cannot drop objects owned by %s because they are required by the database system"
 msgstr "n'a pas pu supprimer les objets appartenant à %s car ils sont nécessaires au système de bases de données"
 
-#: catalog/pg_shdepend.c:1408
+#: catalog/pg_shdepend.c:1431
 #, c-format
 msgid "cannot reassign ownership of objects owned by %s because they are required by the database system"
 msgstr ""
 "ne peut pas réaffecter les objets appartenant à %s car ils sont nécessaires au\n"
 "système de bases de données"
 
-#: catalog/pg_subscription.c:177 commands/subscriptioncmds.c:657 commands/subscriptioncmds.c:871 commands/subscriptioncmds.c:1098
+#: catalog/pg_subscription.c:171 commands/subscriptioncmds.c:644 commands/subscriptioncmds.c:858 commands/subscriptioncmds.c:1080
 #, c-format
 msgid "subscription \"%s\" does not exist"
 msgstr "la souscription « %s » n'existe pas"
 
-#: catalog/pg_type.c:131 catalog/pg_type.c:467
+#: catalog/pg_type.c:131 catalog/pg_type.c:468
 #, c-format
 msgid "pg_type OID value not set when in binary upgrade mode"
 msgstr "OID de pg_type non configuré en mode de mise à jour binaire"
@@ -5089,27 +5252,27 @@ msgstr "l'alignement « %c » est invalide pour le type passé par valeur de tai
 msgid "internal size %d is invalid for passed-by-value type"
 msgstr "la taille interne %d est invalide pour le type passé par valeur"
 
-#: catalog/pg_type.c:306 catalog/pg_type.c:312
+#: catalog/pg_type.c:307 catalog/pg_type.c:313
 #, c-format
 msgid "alignment \"%c\" is invalid for variable-length type"
 msgstr "l'alignement « %c » est invalide pour le type de longueur variable"
 
-#: catalog/pg_type.c:320
+#: catalog/pg_type.c:321 commands/typecmds.c:3727
 #, c-format
 msgid "fixed-size types must have storage PLAIN"
 msgstr "les types de taille fixe doivent avoir un stockage de base"
 
-#: catalog/pg_type.c:818
+#: catalog/pg_type.c:839
 #, c-format
 msgid "could not form array type name for type \"%s\""
 msgstr "n'a pas pu former le nom du type array pour le type de données « %s »"
 
-#: catalog/storage.c:344 storage/buffer/bufmgr.c:922
+#: catalog/storage.c:449 storage/buffer/bufmgr.c:933
 #, c-format
 msgid "invalid page in block %u of relation %s"
 msgstr "page invalide dans le bloc %u de la relation %s"
 
-#: catalog/toasting.c:106 commands/indexcmds.c:575 commands/tablecmds.c:5185 commands/tablecmds.c:14788
+#: catalog/toasting.c:106 commands/indexcmds.c:639 commands/tablecmds.c:5638 commands/tablecmds.c:15576
 #, c-format
 msgid "\"%s\" is not a table or materialized view"
 msgstr "« %s » n'est ni une table ni une vue matérialisée"
@@ -5194,7 +5357,7 @@ msgstr "les fonctions de sérialisation ne peuvent être spécifiées que quand
 msgid "must specify both or neither of serialization and deserialization functions"
 msgstr "doit spécifier soit toutes soit aucunes des fonctions de sérialisation et désérialisation"
 
-#: commands/aggregatecmds.c:436 commands/functioncmds.c:613
+#: commands/aggregatecmds.c:436 commands/functioncmds.c:615
 #, c-format
 msgid "parameter \"parallel\" must be SAFE, RESTRICTED, or UNSAFE"
 msgstr "le paramètre « parallel » doit être SAFE, RESTRICTED ou UNSAFE"
@@ -5204,117 +5367,117 @@ msgstr "le paramètre « parallel » doit être SAFE, RESTRICTED ou UNSAFE"
 msgid "parameter \"%s\" must be READ_ONLY, SHAREABLE, or READ_WRITE"
 msgstr "le paramètre « %s » doit être READ_ONLY, SHAREABLE, ou READ_WRITE"
 
-#: commands/alter.c:85 commands/event_trigger.c:236
+#: commands/alter.c:84 commands/event_trigger.c:174
 #, c-format
 msgid "event trigger \"%s\" already exists"
 msgstr "le trigger sur événement « %s » existe déjà"
 
-#: commands/alter.c:88 commands/foreigncmds.c:601
+#: commands/alter.c:87 commands/foreigncmds.c:597
 #, c-format
 msgid "foreign-data wrapper \"%s\" already exists"
 msgstr "le wrapper de données distantes « %s » existe déjà"
 
-#: commands/alter.c:91 commands/foreigncmds.c:907
+#: commands/alter.c:90 commands/foreigncmds.c:903
 #, c-format
 msgid "server \"%s\" already exists"
 msgstr "le serveur « %s » existe déjà"
 
-#: commands/alter.c:94 commands/proclang.c:368
+#: commands/alter.c:93 commands/proclang.c:132
 #, c-format
 msgid "language \"%s\" already exists"
 msgstr "le langage « %s » existe déjà"
 
-#: commands/alter.c:97 commands/publicationcmds.c:176
+#: commands/alter.c:96 commands/publicationcmds.c:183
 #, c-format
 msgid "publication \"%s\" already exists"
 msgstr "la publication « %s » existe déjà"
 
-#: commands/alter.c:100 commands/subscriptioncmds.c:378
+#: commands/alter.c:99 commands/subscriptioncmds.c:371
 #, c-format
 msgid "subscription \"%s\" already exists"
 msgstr "la souscription « %s » existe déjà"
 
-#: commands/alter.c:123
+#: commands/alter.c:122
 #, c-format
 msgid "conversion \"%s\" already exists in schema \"%s\""
 msgstr "la conversion « %s » existe déjà dans le schéma « %s »"
 
-#: commands/alter.c:127
+#: commands/alter.c:126
 #, c-format
 msgid "statistics object \"%s\" already exists in schema \"%s\""
 msgstr "l'objet statistique « %s » existe déjà dans le schéma « %s »"
 
-#: commands/alter.c:131
+#: commands/alter.c:130
 #, c-format
 msgid "text search parser \"%s\" already exists in schema \"%s\""
 msgstr "l'analyseur de recherche plein texte « %s » existe déjà dans le schéma « %s »"
 
-#: commands/alter.c:135
+#: commands/alter.c:134
 #, c-format
 msgid "text search dictionary \"%s\" already exists in schema \"%s\""
 msgstr "le dictionnaire de recherche plein texte « %s » existe déjà dans le schéma « %s »"
 
-#: commands/alter.c:139
+#: commands/alter.c:138
 #, c-format
 msgid "text search template \"%s\" already exists in schema \"%s\""
 msgstr "le modèle de recherche plein texte « %s » existe déjà dans le schéma « %s »"
 
-#: commands/alter.c:143
+#: commands/alter.c:142
 #, c-format
 msgid "text search configuration \"%s\" already exists in schema \"%s\""
 msgstr "la configuration de recherche plein texte « %s » existe déjà dans le schéma « %s »"
 
-#: commands/alter.c:217
+#: commands/alter.c:215
 #, c-format
 msgid "must be superuser to rename %s"
 msgstr "doit être super-utilisateur pour renommer « %s »"
 
-#: commands/alter.c:720
+#: commands/alter.c:744
 #, c-format
 msgid "must be superuser to set schema of %s"
 msgstr "doit être super-utilisateur pour configurer le schéma de %s"
 
-#: commands/amcmds.c:59
+#: commands/amcmds.c:60
 #, c-format
 msgid "permission denied to create access method \"%s\""
 msgstr "droit refusé pour créer la méthode d'accès « %s »"
 
-#: commands/amcmds.c:61
+#: commands/amcmds.c:62
 #, c-format
 msgid "Must be superuser to create an access method."
 msgstr "Doit être super-utilisateur pour créer une méthode d'accès."
 
-#: commands/amcmds.c:70
+#: commands/amcmds.c:71
 #, c-format
 msgid "access method \"%s\" already exists"
 msgstr "la méthode d'accès « %s » existe déjà"
 
-#: commands/amcmds.c:127
+#: commands/amcmds.c:130
 #, c-format
 msgid "must be superuser to drop access methods"
 msgstr "doit être super-utilisateur pour supprimer des méthodes d'accès"
 
-#: commands/amcmds.c:178 commands/indexcmds.c:187 commands/indexcmds.c:720 commands/opclasscmds.c:372 commands/opclasscmds.c:791
+#: commands/amcmds.c:181 commands/indexcmds.c:188 commands/indexcmds.c:790 commands/opclasscmds.c:373 commands/opclasscmds.c:793
 #, c-format
 msgid "access method \"%s\" does not exist"
 msgstr "la méthode d'accès « %s » n'existe pas"
 
-#: commands/amcmds.c:267
+#: commands/amcmds.c:270
 #, c-format
 msgid "handler function is not specified"
 msgstr "la fonction handler n'est pas spécifiée"
 
-#: commands/amcmds.c:288 commands/event_trigger.c:245 commands/foreigncmds.c:493 commands/proclang.c:115 commands/proclang.c:287 commands/trigger.c:719 parser/parse_clause.c:950
+#: commands/amcmds.c:291 commands/event_trigger.c:183 commands/foreigncmds.c:489 commands/proclang.c:79 commands/trigger.c:687 parser/parse_clause.c:941
 #, c-format
 msgid "function %s must return type %s"
 msgstr "la fonction %s doit renvoyer le type %s"
 
-#: commands/analyze.c:225
+#: commands/analyze.c:226
 #, c-format
 msgid "skipping \"%s\" --- cannot analyze this foreign table"
 msgstr "ignore « %s » --- ne peut pas analyser cette table distante"
 
-#: commands/analyze.c:242
+#: commands/analyze.c:243
 #, c-format
 msgid "skipping \"%s\" --- cannot analyze non-tables or special system tables"
 msgstr "ignore « %s » --- ne peut pas analyser les objets autres que les tables et les tables système"
@@ -5323,158 +5486,158 @@ msgstr "ignore « %s » --- ne peut pas analyser les objets autres que les table
 #                 (errmsg("analyzing \"%s.%s\" inheritance tree",
 #                         get_namespace_name(RelationGetNamespace(onerel)),
 #                         RelationGetRelationName(onerel))));
-#: commands/analyze.c:323
+#: commands/analyze.c:329
 #, c-format
 msgid "analyzing \"%s.%s\" inheritance tree"
 msgstr "analyse de l'arbre d'héritage de « %s.%s »"
 
-#: commands/analyze.c:328
+#: commands/analyze.c:334
 #, c-format
 msgid "analyzing \"%s.%s\""
 msgstr "analyse « %s.%s »"
 
-#: commands/analyze.c:388
+#: commands/analyze.c:394
 #, c-format
 msgid "column \"%s\" of relation \"%s\" appears more than once"
 msgstr "la colonne « %s » de la relation « %s » apparait plus d'une fois"
 
-#: commands/analyze.c:674
+#: commands/analyze.c:700
 #, c-format
 msgid "automatic analyze of table \"%s.%s.%s\" system usage: %s"
 msgstr "ANALYZE automatique de la table « %s.%s.%s » ; utilisation système : %s"
 
-#: commands/analyze.c:1133
+#: commands/analyze.c:1169
 #, c-format
 msgid "\"%s\": scanned %d of %u pages, containing %.0f live rows and %.0f dead rows; %d rows in sample, %.0f estimated total rows"
 msgstr "« %s » : %d pages parcourues parmi %u, contenant %.0f lignes à conserver et %.0f lignes à supprimer ; %d lignes dans l'échantillon, %.0f lignes totales estimées"
 
-#: commands/analyze.c:1213
+#: commands/analyze.c:1249
 #, c-format
 msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no child tables"
 msgstr "ignore l'analyse de l'arbre d'héritage « %s.%s » --- cet arbre d'héritage ne contient pas de tables enfants"
 
-#: commands/analyze.c:1311
+#: commands/analyze.c:1347
 #, c-format
 msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no analyzable child tables"
 msgstr "ignore l'analyse de l'arbre d'héritage « %s.%s » --- cet arbre d'héritage ne contient pas de tables enfants analysables"
 
-#: commands/async.c:557
+#: commands/async.c:634
 #, c-format
 msgid "channel name cannot be empty"
 msgstr "le nom du canal ne peut pas être vide"
 
-#: commands/async.c:562
+#: commands/async.c:640
 #, c-format
 msgid "channel name too long"
 msgstr "nom du canal trop long"
 
-#: commands/async.c:569
+#: commands/async.c:645
 #, c-format
 msgid "payload string too long"
 msgstr "chaîne de charge trop longue"
 
-#: commands/async.c:755
+#: commands/async.c:864
 #, c-format
 msgid "cannot PREPARE a transaction that has executed LISTEN, UNLISTEN, or NOTIFY"
 msgstr ""
 "ne peut pas exécuter PREPARE sur une transaction qui a exécuté LISTEN,\n"
 "UNLISTEN ou NOTIFY"
 
-#: commands/async.c:858
+#: commands/async.c:970
 #, c-format
 msgid "too many notifications in the NOTIFY queue"
 msgstr "trop de notifications dans la queue NOTIFY"
 
-#: commands/async.c:1490
+#: commands/async.c:1636
 #, c-format
 msgid "NOTIFY queue is %.0f%% full"
 msgstr "la queue NOTIFY est pleine à %.0f%%"
 
-#: commands/async.c:1492
+#: commands/async.c:1638
 #, c-format
 msgid "The server process with PID %d is among those with the oldest transactions."
 msgstr "Le processus serveur de PID %d est parmi ceux qui ont les transactions les plus anciennes."
 
-#: commands/async.c:1495
+#: commands/async.c:1641
 #, c-format
 msgid "The NOTIFY queue cannot be emptied until that process ends its current transaction."
 msgstr ""
 "La queue NOTIFY ne peut pas être vidée jusqu'à ce que le processus finisse\n"
 "sa transaction en cours."
 
-#: commands/cluster.c:126 commands/cluster.c:388
+#: commands/cluster.c:125 commands/cluster.c:362
 #, c-format
 msgid "cannot cluster temporary tables of other sessions"
 msgstr "ne peut pas exécuter CLUSTER sur les tables temporaires des autres sessions"
 
-#: commands/cluster.c:134
+#: commands/cluster.c:133
 #, c-format
 msgid "cannot cluster a partitioned table"
 msgstr "ne peut pas exécuter CLUSTER sur une table partitionnée"
 
-#: commands/cluster.c:164
+#: commands/cluster.c:151
 #, c-format
 msgid "there is no previously clustered index for table \"%s\""
 msgstr "il n'y a pas d'index CLUSTER précédent pour la table « %s »"
 
-#: commands/cluster.c:178 commands/tablecmds.c:12054 commands/tablecmds.c:13856
+#: commands/cluster.c:165 commands/tablecmds.c:12853 commands/tablecmds.c:14659
 #, c-format
 msgid "index \"%s\" for table \"%s\" does not exist"
 msgstr "l'index « %s » pour la table « %s » n'existe pas"
 
-#: commands/cluster.c:377
+#: commands/cluster.c:351
 #, c-format
 msgid "cannot cluster a shared catalog"
 msgstr "ne peut pas exécuter CLUSTER sur un catalogue partagé"
 
-#: commands/cluster.c:392
+#: commands/cluster.c:366
 #, c-format
 msgid "cannot vacuum temporary tables of other sessions"
 msgstr "ne peut pas exécuter VACUUM sur les tables temporaires des autres sessions"
 
-#: commands/cluster.c:458 commands/tablecmds.c:13866
+#: commands/cluster.c:432 commands/tablecmds.c:14669
 #, c-format
 msgid "\"%s\" is not an index for table \"%s\""
 msgstr "« %s » n'est pas un index de la table « %s »"
 
-#: commands/cluster.c:466
+#: commands/cluster.c:440
 #, c-format
 msgid "cannot cluster on index \"%s\" because access method does not support clustering"
 msgstr ""
 "ne peut pas exécuter CLUSTER sur l'index « %s » car la méthode d'accès de\n"
 "l'index ne gère pas cette commande"
 
-#: commands/cluster.c:478
+#: commands/cluster.c:452
 #, c-format
 msgid "cannot cluster on partial index \"%s\""
 msgstr "ne peut pas exécuter CLUSTER sur l'index partiel « %s »"
 
-#: commands/cluster.c:492
+#: commands/cluster.c:466
 #, c-format
 msgid "cannot cluster on invalid index \"%s\""
 msgstr "ne peut pas exécuter la commande CLUSTER sur l'index invalide « %s »"
 
-#: commands/cluster.c:516
+#: commands/cluster.c:490
 #, c-format
 msgid "cannot mark index clustered in partitioned table"
 msgstr "ne peut pas marquer un index comme CLUSTER sur une table partitionnée"
 
-#: commands/cluster.c:899
+#: commands/cluster.c:863
 #, c-format
 msgid "clustering \"%s.%s\" using index scan on \"%s\""
 msgstr "cluster sur « %s.%s » en utilisant un parcours d'index sur « %s »"
 
-#: commands/cluster.c:905
+#: commands/cluster.c:869
 #, c-format
 msgid "clustering \"%s.%s\" using sequential scan and sort"
 msgstr "cluster sur « %s.%s » en utilisant un parcours séquentiel puis un tri"
 
-#: commands/cluster.c:936
+#: commands/cluster.c:900
 #, c-format
 msgid "\"%s\": found %.0f removable, %.0f nonremovable row versions in %u pages"
 msgstr "« %s » : %.0f versions de ligne supprimables, %.0f non supprimables, dans %u pages"
 
-#: commands/cluster.c:940
+#: commands/cluster.c:904
 #, c-format
 msgid ""
 "%.0f dead row versions cannot be removed yet.\n"
@@ -5483,92 +5646,92 @@ msgstr ""
 "%.0f versions de lignes ne peuvent pas encore être supprimées.\n"
 "%s."
 
-#: commands/collationcmds.c:104
+#: commands/collationcmds.c:105
 #, c-format
 msgid "collation attribute \"%s\" not recognized"
 msgstr "attribut de collationnement « %s » non reconnu"
 
-#: commands/collationcmds.c:147
+#: commands/collationcmds.c:148
 #, c-format
 msgid "collation \"default\" cannot be copied"
 msgstr "le collationnement « default » ne peut pas être copié"
 
-#: commands/collationcmds.c:180
+#: commands/collationcmds.c:181
 #, c-format
 msgid "unrecognized collation provider: %s"
 msgstr "fournisseur de collationnement non reconnu : %s"
 
-#: commands/collationcmds.c:189
+#: commands/collationcmds.c:190
 #, c-format
 msgid "parameter \"lc_collate\" must be specified"
 msgstr "le paramètre « lc_collate » doit être spécifié"
 
-#: commands/collationcmds.c:194
+#: commands/collationcmds.c:195
 #, c-format
 msgid "parameter \"lc_ctype\" must be specified"
 msgstr "le paramètre « lc_ctype » doit être spécifié"
 
-#: commands/collationcmds.c:204
+#: commands/collationcmds.c:205
 #, c-format
 msgid "nondeterministic collations not supported with this provider"
 msgstr "les collationnements non déterministes ne sont pas supportés avec ce fournisseur"
 
-#: commands/collationcmds.c:264
+#: commands/collationcmds.c:265
 #, c-format
 msgid "collation \"%s\" for encoding \"%s\" already exists in schema \"%s\""
 msgstr "le collationnament « %s » pour l'encodage « %s » existe déjà dans le schéma « %s »"
 
-#: commands/collationcmds.c:275
+#: commands/collationcmds.c:276
 #, c-format
 msgid "collation \"%s\" already exists in schema \"%s\""
 msgstr "le collationnement « %s » existe déjà dans le schéma « %s »"
 
-#: commands/collationcmds.c:323
+#: commands/collationcmds.c:324
 #, c-format
 msgid "changing version from %s to %s"
 msgstr "changement de version de %s à %s"
 
-#: commands/collationcmds.c:338
+#: commands/collationcmds.c:339
 #, c-format
 msgid "version has not changed"
 msgstr "la version n'a pas changé"
 
-#: commands/collationcmds.c:469
+#: commands/collationcmds.c:470
 #, c-format
 msgid "could not convert locale name \"%s\" to language tag: %s"
 msgstr "n'a pas pu convertir le nom de locale « %s » en balise de langage : %s"
 
-#: commands/collationcmds.c:530
+#: commands/collationcmds.c:531
 #, c-format
 msgid "must be superuser to import system collations"
 msgstr "doit être super-utilisateur pour importer les collationnements systèmes"
 
-#: commands/collationcmds.c:553 commands/copy.c:1898 commands/copy.c:3534 libpq/be-secure-common.c:80
+#: commands/collationcmds.c:554 commands/copy.c:1894 commands/copy.c:3480 libpq/be-secure-common.c:81
 #, c-format
 msgid "could not execute command \"%s\": %m"
 msgstr "n'a pas pu exécuter la commande « %s » : %m"
 
-#: commands/collationcmds.c:684
+#: commands/collationcmds.c:685
 #, c-format
 msgid "no usable system locales were found"
 msgstr "aucune locale système utilisable n'a été trouvée"
 
-#: commands/comment.c:61 commands/dbcommands.c:820 commands/dbcommands.c:1008 commands/dbcommands.c:1121 commands/dbcommands.c:1311 commands/dbcommands.c:1534 commands/dbcommands.c:1648 commands/dbcommands.c:2065 utils/init/postinit.c:890 utils/init/postinit.c:995 utils/init/postinit.c:1012
+#: commands/comment.c:61 commands/dbcommands.c:841 commands/dbcommands.c:1037 commands/dbcommands.c:1150 commands/dbcommands.c:1340 commands/dbcommands.c:1588 commands/dbcommands.c:1702 commands/dbcommands.c:2142 utils/init/postinit.c:888 utils/init/postinit.c:993 utils/init/postinit.c:1010
 #, c-format
 msgid "database \"%s\" does not exist"
 msgstr "la base de données « %s » n'existe pas"
 
-#: commands/comment.c:101 commands/seclabel.c:117 parser/parse_utilcmd.c:944
+#: commands/comment.c:101 commands/seclabel.c:117 parser/parse_utilcmd.c:957
 #, c-format
 msgid "\"%s\" is not a table, view, materialized view, composite type, or foreign table"
 msgstr "« %s » n'est ni une table, ni une vue, ni une vue matérialisée, ni un type composite, ni une table distante"
 
-#: commands/constraint.c:63 utils/adt/ri_triggers.c:1915
+#: commands/constraint.c:63 utils/adt/ri_triggers.c:1923
 #, c-format
 msgid "function \"%s\" was not called by trigger manager"
 msgstr "la fonction « %s » n'a pas été appelée par le gestionnaire de triggers"
 
-#: commands/constraint.c:70 utils/adt/ri_triggers.c:1924
+#: commands/constraint.c:70 utils/adt/ri_triggers.c:1932
 #, c-format
 msgid "function \"%s\" must be fired AFTER ROW"
 msgstr "la fonction « %s » doit être exécutée pour l'instruction AFTER ROW"
@@ -5578,790 +5741,806 @@ msgstr "la fonction « %s » doit être exécutée pour l'instruction AFTER ROW"
 msgid "function \"%s\" must be fired for INSERT or UPDATE"
 msgstr "la fonction « %s » doit être exécutée pour les instructions INSERT ou UPDATE"
 
-#: commands/conversioncmds.c:65
+#: commands/conversioncmds.c:66
 #, c-format
 msgid "source encoding \"%s\" does not exist"
 msgstr "le codage source « %s » n'existe pas"
 
-#: commands/conversioncmds.c:72
+#: commands/conversioncmds.c:73
 #, c-format
 msgid "destination encoding \"%s\" does not exist"
 msgstr "l'encodage de destination « %s » n'existe pas"
 
 #: commands/conversioncmds.c:86
+#, fuzzy, c-format
+#| msgid "encoding conversion from %s to ASCII not supported"
+msgid "encoding conversion to or from \"SQL_ASCII\" is not supported"
+msgstr "la conversion de l'encodage de %s vers l'ASCII n'est pas supportée"
+
+#: commands/conversioncmds.c:99
 #, c-format
 msgid "encoding conversion function %s must return type %s"
 msgstr "la fonction de conversion d'encodage %s doit renvoyer le type %s"
 
-#: commands/copy.c:427 commands/copy.c:461
+#: commands/copy.c:426 commands/copy.c:460
 #, c-format
 msgid "COPY BINARY is not supported to stdout or from stdin"
 msgstr "COPY BINARY n'est pas supporté vers stdout ou à partir de stdin"
 
-#: commands/copy.c:561
+#: commands/copy.c:560
 #, c-format
 msgid "could not write to COPY program: %m"
 msgstr "n'a pas pu écrire vers le programme COPY : %m"
 
-#: commands/copy.c:566
+#: commands/copy.c:565
 #, c-format
 msgid "could not write to COPY file: %m"
 msgstr "n'a pas pu écrire dans le fichier COPY : %m"
 
-#: commands/copy.c:579
+#: commands/copy.c:578
 #, c-format
 msgid "connection lost during COPY to stdout"
 msgstr "connexion perdue lors de l'opération COPY vers stdout"
 
-#: commands/copy.c:623
+#: commands/copy.c:622
 #, c-format
 msgid "could not read from COPY file: %m"
 msgstr "n'a pas pu lire le fichier COPY : %m"
 
-#: commands/copy.c:641 commands/copy.c:662 commands/copy.c:666 tcop/postgres.c:348 tcop/postgres.c:384 tcop/postgres.c:411
+#: commands/copy.c:640 commands/copy.c:661 commands/copy.c:665 tcop/postgres.c:344 tcop/postgres.c:380 tcop/postgres.c:407
 #, c-format
 msgid "unexpected EOF on client connection with an open transaction"
 msgstr ""
 "fin de fichier (EOF) inattendue de la connexion du client avec une\n"
 "transaction ouverte"
 
-#: commands/copy.c:679
+#: commands/copy.c:678
 #, c-format
 msgid "COPY from stdin failed: %s"
 msgstr "échec de la commande COPY à partir de stdin : %s"
 
-#: commands/copy.c:695
+#: commands/copy.c:694
 #, c-format
 msgid "unexpected message type 0x%02X during COPY from stdin"
 msgstr "type 0x%02X du message, inattendu, lors d'une opération COPY à partir de stdin"
 
-#: commands/copy.c:862
+#: commands/copy.c:861
 #, c-format
 msgid "must be superuser or a member of the pg_execute_server_program role to COPY to or from an external program"
 msgstr "doit être super-utilisateur ou membre du rôle pg_execute_server_program pour utiliser COPY avec un programme externe"
 
-#: commands/copy.c:863 commands/copy.c:872 commands/copy.c:879
+#: commands/copy.c:862 commands/copy.c:871 commands/copy.c:878
 #, c-format
 msgid "Anyone can COPY to stdout or from stdin. psql's \\copy command also works for anyone."
 msgstr "Tout le monde peut utiliser COPY vers stdout ou à partir de stdin. La commande \\copy de psql fonctionne aussi pour tout le monde."
 
-#: commands/copy.c:871
+#: commands/copy.c:870
 #, c-format
 msgid "must be superuser or a member of the pg_read_server_files role to COPY from a file"
 msgstr "doit être super-utilisateur ou membre du rôle pg_read_all_settings pour utiliser COPY depuis un fichier"
 
-#: commands/copy.c:878
+#: commands/copy.c:877
 #, c-format
 msgid "must be superuser or a member of the pg_write_server_files role to COPY to a file"
 msgstr "doit être super-utilisateur ou membre de pg_read_all_settings pour utiliser COPY vers un fichier"
 
-#: commands/copy.c:962
+#: commands/copy.c:963
 #, c-format
 msgid "COPY FROM not supported with row-level security"
 msgstr "COPY FROM non supporté avec la sécurité niveau ligne"
 
-#: commands/copy.c:963
+#: commands/copy.c:964
 #, c-format
 msgid "Use INSERT statements instead."
 msgstr "Utilisez des instructions INSERT à la place."
 
-#: commands/copy.c:1151
+#: commands/copy.c:1146
 #, c-format
 msgid "COPY format \"%s\" not recognized"
 msgstr "format COPY « %s » non reconnu"
 
-#: commands/copy.c:1222 commands/copy.c:1238 commands/copy.c:1253 commands/copy.c:1275
+#: commands/copy.c:1217 commands/copy.c:1233 commands/copy.c:1248 commands/copy.c:1270
 #, c-format
 msgid "argument to option \"%s\" must be a list of column names"
 msgstr "l'argument de l'option « %s » doit être une liste de noms de colonnes"
 
-#: commands/copy.c:1290
+#: commands/copy.c:1285
 #, c-format
 msgid "argument to option \"%s\" must be a valid encoding name"
 msgstr "l'argument de l'option « %s » doit être un nom d'encodage valide"
 
-#: commands/copy.c:1297 commands/dbcommands.c:243 commands/dbcommands.c:1482
+#: commands/copy.c:1292 commands/dbcommands.c:253 commands/dbcommands.c:1536
 #, c-format
 msgid "option \"%s\" not recognized"
 msgstr "option « %s » non reconnu"
 
-#: commands/copy.c:1309
+#: commands/copy.c:1304
 #, c-format
 msgid "cannot specify DELIMITER in BINARY mode"
 msgstr "ne peut pas spécifier le délimiteur (DELIMITER) en mode binaire (BINARY)"
 
-#: commands/copy.c:1314
+#: commands/copy.c:1309
 #, c-format
 msgid "cannot specify NULL in BINARY mode"
 msgstr "ne peut pas spécifier NULL en mode binaire (BINARY)"
 
-#: commands/copy.c:1336
+#: commands/copy.c:1331
 #, c-format
 msgid "COPY delimiter must be a single one-byte character"
 msgstr "le délimiteur COPY doit être un seul caractère d'un octet"
 
-#: commands/copy.c:1343
+#: commands/copy.c:1338
 #, c-format
 msgid "COPY delimiter cannot be newline or carriage return"
 msgstr "le délimiteur de COPY ne peut pas être un retour à la ligne ou un retour chariot"
 
-#: commands/copy.c:1349
+#: commands/copy.c:1344
 #, c-format
 msgid "COPY null representation cannot use newline or carriage return"
 msgstr "la représentation du NULL dans COPY ne peut pas utiliser un retour à la ligne ou un retour chariot"
 
-#: commands/copy.c:1366
+#: commands/copy.c:1361
 #, c-format
 msgid "COPY delimiter cannot be \"%s\""
 msgstr "le délimiteur de COPY ne peut pas être « %s »"
 
-#: commands/copy.c:1372
+#: commands/copy.c:1367
 #, c-format
 msgid "COPY HEADER available only in CSV mode"
 msgstr "COPY HEADER disponible uniquement en mode CSV"
 
-#: commands/copy.c:1378
+#: commands/copy.c:1373
 #, c-format
 msgid "COPY quote available only in CSV mode"
 msgstr "le guillemet dans COPY n'est disponible que dans le mode CSV"
 
-#: commands/copy.c:1383
+#: commands/copy.c:1378
 #, c-format
 msgid "COPY quote must be a single one-byte character"
 msgstr "le guillemet dans COPY doit être un seul caractère d'un octet"
 
-#: commands/copy.c:1388
+#: commands/copy.c:1383
 #, c-format
 msgid "COPY delimiter and quote must be different"
 msgstr "le délimiteur de COPY ne doit pas être un guillemet"
 
-#: commands/copy.c:1394
+#: commands/copy.c:1389
 #, c-format
 msgid "COPY escape available only in CSV mode"
 msgstr "le caractère d'échappement COPY n'est disponible que dans le mode CSV"
 
-#: commands/copy.c:1399
+#: commands/copy.c:1394
 #, c-format
 msgid "COPY escape must be a single one-byte character"
 msgstr "le caractère d'échappement COPY doit être un seul caractère d'un octet"
 
-#: commands/copy.c:1405
+#: commands/copy.c:1400
 #, c-format
 msgid "COPY force quote available only in CSV mode"
 msgstr "le guillemet forcé COPY n'est disponible que dans le mode CSV"
 
-#: commands/copy.c:1409
+#: commands/copy.c:1404
 #, c-format
 msgid "COPY force quote only available using COPY TO"
 msgstr "le guillemet forcé pour COPY n'est disponible qu'en utilisant COPY TO"
 
-#: commands/copy.c:1415
+#: commands/copy.c:1410
 #, c-format
 msgid "COPY force not null available only in CSV mode"
 msgstr "« COPY force not null » n'est disponible que dans la version CSV"
 
-#: commands/copy.c:1419
+#: commands/copy.c:1414
 #, c-format
 msgid "COPY force not null only available using COPY FROM"
 msgstr "« COPY force not null » n'est disponible qu'en utilisant COPY FROM"
 
-#: commands/copy.c:1425
+#: commands/copy.c:1420
 #, c-format
 msgid "COPY force null available only in CSV mode"
 msgstr "« COPY force null » n'est disponible que dans le mode CSV"
 
-#: commands/copy.c:1430
+#: commands/copy.c:1425
 #, c-format
 msgid "COPY force null only available using COPY FROM"
 msgstr "« COPY force null » n'est disponible qu'en utilisant COPY FROM"
 
-#: commands/copy.c:1436
+#: commands/copy.c:1431
 #, c-format
 msgid "COPY delimiter must not appear in the NULL specification"
 msgstr "le délimiteur COPY ne doit pas apparaître dans la spécification de NULL"
 
-#: commands/copy.c:1443
+#: commands/copy.c:1438
 #, c-format
 msgid "CSV quote character must not appear in the NULL specification"
 msgstr "le caractère guillemet pour CSV ne doit pas apparaître dans la spécification de NULL"
 
-#: commands/copy.c:1529
+#: commands/copy.c:1524
 #, c-format
 msgid "DO INSTEAD NOTHING rules are not supported for COPY"
 msgstr "les règles DO INSTEAD NOTHING ne sont pas supportées pour COPY"
 
-#: commands/copy.c:1543
+#: commands/copy.c:1538
 #, c-format
 msgid "conditional DO INSTEAD rules are not supported for COPY"
 msgstr "les règles DO INSTEAD conditionnelles ne sont pas supportées par l'instruction COPY"
 
-#: commands/copy.c:1547
+#: commands/copy.c:1542
 #, c-format
 msgid "DO ALSO rules are not supported for the COPY"
 msgstr "les règles DO ALSO ne sont pas supportées pour COPY"
 
-#: commands/copy.c:1552
+#: commands/copy.c:1547
 #, c-format
 msgid "multi-statement DO INSTEAD rules are not supported for COPY"
 msgstr "les règles DO INSTEAD multi-instructions ne sont pas supportées par l'instruction COPY"
 
-#: commands/copy.c:1562
+#: commands/copy.c:1557
 #, c-format
 msgid "COPY (SELECT INTO) is not supported"
 msgstr "COPY (SELECT INTO) n'est pas supporté"
 
-#: commands/copy.c:1579
+#: commands/copy.c:1574
 #, c-format
 msgid "COPY query must have a RETURNING clause"
 msgstr "La requête COPY doit avoir une clause RETURNING"
 
-#: commands/copy.c:1607
+#: commands/copy.c:1603
 #, c-format
 msgid "relation referenced by COPY statement has changed"
 msgstr "la relation référencée par l'instruction COPY a changé"
 
-#: commands/copy.c:1666
+#: commands/copy.c:1662
 #, c-format
 msgid "FORCE_QUOTE column \"%s\" not referenced by COPY"
 msgstr "la colonne « %s » FORCE_QUOTE n'est pas référencée par COPY"
 
-#: commands/copy.c:1689
+#: commands/copy.c:1685
 #, c-format
 msgid "FORCE_NOT_NULL column \"%s\" not referenced by COPY"
 msgstr "la colonne « %s » FORCE_NOT_NULL n'est pas référencée par COPY"
 
-#: commands/copy.c:1712
+#: commands/copy.c:1708
 #, c-format
 msgid "FORCE_NULL column \"%s\" not referenced by COPY"
 msgstr "la colonne « %s » FORCE_NULL n'est pas référencée par COPY"
 
-#: commands/copy.c:1778 libpq/be-secure-common.c:102
+#: commands/copy.c:1774 libpq/be-secure-common.c:105
 #, c-format
 msgid "could not close pipe to external command: %m"
 msgstr "n'a pas pu fermer le fichier pipe vers la commande externe : %m"
 
-#: commands/copy.c:1793
+#: commands/copy.c:1789
 #, c-format
 msgid "program \"%s\" failed"
 msgstr "le programme « %s » a échoué"
 
-#: commands/copy.c:1844
+#: commands/copy.c:1840
 #, c-format
 msgid "cannot copy from view \"%s\""
 msgstr "ne peut pas copier à partir de la vue « %s »"
 
-#: commands/copy.c:1846 commands/copy.c:1852 commands/copy.c:1858 commands/copy.c:1869
+#: commands/copy.c:1842 commands/copy.c:1848 commands/copy.c:1854 commands/copy.c:1865
 #, c-format
 msgid "Try the COPY (SELECT ...) TO variant."
 msgstr "Tentez la variante COPY (SELECT ...) TO."
 
-#: commands/copy.c:1850
+#: commands/copy.c:1846
 #, c-format
 msgid "cannot copy from materialized view \"%s\""
 msgstr "ne peut pas copier à partir de la vue matérialisée « %s »"
 
-#: commands/copy.c:1856
+#: commands/copy.c:1852
 #, c-format
 msgid "cannot copy from foreign table \"%s\""
 msgstr "ne peut pas copier à partir de la table distante « %s »"
 
-#: commands/copy.c:1862
+#: commands/copy.c:1858
 #, c-format
 msgid "cannot copy from sequence \"%s\""
 msgstr "ne peut pas copier à partir de la séquence « %s »"
 
-#: commands/copy.c:1867
+#: commands/copy.c:1863
 #, c-format
 msgid "cannot copy from partitioned table \"%s\""
 msgstr "ne peut pas copier à partir de la table partitionnée « %s »"
 
-#: commands/copy.c:1873
+#: commands/copy.c:1869
 #, c-format
 msgid "cannot copy from non-table relation \"%s\""
 msgstr "ne peut pas copier depuis la relation « %s », qui n'est pas une table"
 
-#: commands/copy.c:1913
+#: commands/copy.c:1909
 #, c-format
 msgid "relative path not allowed for COPY to file"
 msgstr "un chemin relatif n'est pas autorisé à utiliser COPY vers un fichier"
 
-#: commands/copy.c:1934
+#: commands/copy.c:1928
 #, c-format
 msgid "could not open file \"%s\" for writing: %m"
 msgstr "n'a pas pu ouvrir le fichier « %s » en écriture : %m"
 
-#: commands/copy.c:1937
+#: commands/copy.c:1931
 #, 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 indique au serveur PostgreSQL d'écrire un fichier. Vous pourriez vouloir utiliser la fonctionnalité \\copy de psql pour écrire en local."
 
-#: commands/copy.c:1950 commands/copy.c:3565
+#: commands/copy.c:1944 commands/copy.c:3511
 #, c-format
 msgid "\"%s\" is a directory"
 msgstr "« %s » est un répertoire"
 
-#: commands/copy.c:2252
+#: commands/copy.c:2246
 #, c-format
 msgid "COPY %s, line %s, column %s"
 msgstr "COPY %s, ligne %s, colonne %s"
 
-#: commands/copy.c:2256 commands/copy.c:2303
+#: commands/copy.c:2250 commands/copy.c:2297
 #, c-format
 msgid "COPY %s, line %s"
 msgstr "COPY %s, ligne %s"
 
-#: commands/copy.c:2267
+#: commands/copy.c:2261
 #, c-format
 msgid "COPY %s, line %s, column %s: \"%s\""
 msgstr "COPY %s, ligne %s, colonne %s : « %s »"
 
-#: commands/copy.c:2275
+#: commands/copy.c:2269
 #, c-format
 msgid "COPY %s, line %s, column %s: null input"
 msgstr "COPY %s, ligne %s, colonne %s : NULL en entrée"
 
-#: commands/copy.c:2297
+#: commands/copy.c:2291
 #, c-format
 msgid "COPY %s, line %s: \"%s\""
 msgstr "COPY %s, ligne %s : « %s »"
 
-#: commands/copy.c:2698
+#: commands/copy.c:2692
 #, c-format
 msgid "cannot copy to view \"%s\""
 msgstr "ne peut pas copier vers la vue « %s »"
 
-#: commands/copy.c:2700
+#: commands/copy.c:2694
 #, c-format
 msgid "To enable copying to a view, provide an INSTEAD OF INSERT trigger."
 msgstr "Pour activer la copie d'une vue, fournissez un trigger INSTEAD OF INSERT."
 
-#: commands/copy.c:2704
+#: commands/copy.c:2698
 #, c-format
 msgid "cannot copy to materialized view \"%s\""
 msgstr "ne peut pas copier vers la vue matérialisée « %s »"
 
-#: commands/copy.c:2709
+#: commands/copy.c:2703
 #, c-format
 msgid "cannot copy to sequence \"%s\""
 msgstr "ne peut pas copier vers la séquence « %s »"
 
-#: commands/copy.c:2714
+#: commands/copy.c:2708
 #, c-format
 msgid "cannot copy to non-table relation \"%s\""
 msgstr "ne peut pas copier vers la relation « %s », qui n'est pas une table"
 
-#: commands/copy.c:2802
+#: commands/copy.c:2748
 #, c-format
 msgid "cannot perform COPY FREEZE on a partitioned table"
 msgstr "ne peut pas exécuter COPY FREEZE sur une table partitionnée"
 
-#: commands/copy.c:2817
+#: commands/copy.c:2763
 #, c-format
 msgid "cannot perform COPY FREEZE because of prior transaction activity"
 msgstr "n'a pas pu exécuter un COPY FREEZE à cause d'une activité transactionnelle précédente"
 
-#: commands/copy.c:2823
+#: commands/copy.c:2769
 #, c-format
 msgid "cannot perform COPY FREEZE because the table was not created or truncated in the current subtransaction"
 msgstr "n'a pas pu exécuter un COPY FREEZE parce que la table n'a pas été créée ou tronquée dans la transaction en cours"
 
-#: commands/copy.c:3552
+#: commands/copy.c:3498
 #, c-format
 msgid "COPY FROM instructs the PostgreSQL server process to read a file. You may want a client-side facility such as psql's \\copy."
 msgstr "COPY TO indique au serveur PostgreSQL de lire un fichier. Vous pourriez vouloir utiliser la fonctionnalité \\copy de psql pour lire en local."
 
-#: commands/copy.c:3580
+#: commands/copy.c:3526
 #, c-format
 msgid "COPY file signature not recognized"
 msgstr "la signature du fichier COPY n'est pas reconnue"
 
-#: commands/copy.c:3585
+#: commands/copy.c:3531
 #, c-format
 msgid "invalid COPY file header (missing flags)"
 msgstr "en-tête du fichier COPY invalide (options manquantes)"
 
-#: commands/copy.c:3589
+#: commands/copy.c:3535
 #, c-format
 msgid "invalid COPY file header (WITH OIDS)"
 msgstr "en-tête du fichier COPY invalide (WITH OIDS)"
 
-#: commands/copy.c:3594
+#: commands/copy.c:3540
 #, c-format
 msgid "unrecognized critical flags in COPY file header"
 msgstr "options critiques non reconnues dans l'en-tête du fichier COPY"
 
-#: commands/copy.c:3600
+#: commands/copy.c:3546
 #, c-format
 msgid "invalid COPY file header (missing length)"
 msgstr "en-tête du fichier COPY invalide (longueur manquante)"
 
-#: commands/copy.c:3607
+#: commands/copy.c:3553
 #, c-format
 msgid "invalid COPY file header (wrong length)"
 msgstr "en-tête du fichier COPY invalide (mauvaise longueur)"
 
-#: commands/copy.c:3726 commands/copy.c:4391 commands/copy.c:4621
+#: commands/copy.c:3672 commands/copy.c:4337 commands/copy.c:4567
 #, c-format
 msgid "extra data after last expected column"
 msgstr "données supplémentaires après la dernière colonne attendue"
 
-#: commands/copy.c:3740
+#: commands/copy.c:3686
 #, c-format
 msgid "missing data for column \"%s\""
 msgstr "données manquantes pour la colonne « %s »"
 
-#: commands/copy.c:3823
+#: commands/copy.c:3769
 #, c-format
 msgid "received copy data after EOF marker"
 msgstr "a reçu des données de COPY après le marqueur de fin"
 
-#: commands/copy.c:3830
+#: commands/copy.c:3776
 #, c-format
 msgid "row field count is %d, expected %d"
 msgstr "le nombre de champs de la ligne est %d, %d attendus"
 
-#: commands/copy.c:4150 commands/copy.c:4167
+#: commands/copy.c:4096 commands/copy.c:4113
 #, c-format
 msgid "literal carriage return found in data"
 msgstr "retour chariot trouvé dans les données"
 
-#: commands/copy.c:4151 commands/copy.c:4168
+#: commands/copy.c:4097 commands/copy.c:4114
 #, c-format
 msgid "unquoted carriage return found in data"
 msgstr "retour chariot sans guillemet trouvé dans les données"
 
-#: commands/copy.c:4153 commands/copy.c:4170
+#: commands/copy.c:4099 commands/copy.c:4116
 #, c-format
 msgid "Use \"\\r\" to represent carriage return."
 msgstr "Utilisez « \\r » pour représenter un retour chariot."
 
-#: commands/copy.c:4154 commands/copy.c:4171
+#: commands/copy.c:4100 commands/copy.c:4117
 #, c-format
 msgid "Use quoted CSV field to represent carriage return."
 msgstr "Utiliser le champ CSV entre guillemets pour représenter un retour chariot."
 
-#: commands/copy.c:4183
+#: commands/copy.c:4129
 #, c-format
 msgid "literal newline found in data"
 msgstr "retour à la ligne trouvé dans les données"
 
-#: commands/copy.c:4184
+#: commands/copy.c:4130
 #, c-format
 msgid "unquoted newline found in data"
 msgstr "retour à la ligne trouvé dans les données"
 
-#: commands/copy.c:4186
+#: commands/copy.c:4132
 #, c-format
 msgid "Use \"\\n\" to represent newline."
 msgstr "Utilisez « \\n » pour représenter un retour à la ligne."
 
-#: commands/copy.c:4187
+#: commands/copy.c:4133
 #, c-format
 msgid "Use quoted CSV field to represent newline."
 msgstr "Utiliser un champ CSV entre guillemets pour représenter un retour à la ligne."
 
-#: commands/copy.c:4233 commands/copy.c:4269
+#: commands/copy.c:4179 commands/copy.c:4215
 #, c-format
 msgid "end-of-copy marker does not match previous newline style"
 msgstr "le marqueur fin-de-copie ne correspond pas à un précédent style de fin de ligne"
 
-#: commands/copy.c:4242 commands/copy.c:4258
+#: commands/copy.c:4188 commands/copy.c:4204
 #, c-format
 msgid "end-of-copy marker corrupt"
 msgstr "marqueur fin-de-copie corrompu"
 
-#: commands/copy.c:4705
+#: commands/copy.c:4651
 #, c-format
 msgid "unterminated CSV quoted field"
 msgstr "champ CSV entre guillemets non terminé"
 
-#: commands/copy.c:4782 commands/copy.c:4801
+#: commands/copy.c:4728 commands/copy.c:4747
 #, c-format
 msgid "unexpected EOF in COPY data"
 msgstr "fin de fichier (EOF) inattendu dans les données du COPY"
 
-#: commands/copy.c:4791
+#: commands/copy.c:4737
 #, c-format
 msgid "invalid field size"
 msgstr "taille du champ invalide"
 
-#: commands/copy.c:4814
+#: commands/copy.c:4760
 #, c-format
 msgid "incorrect binary data format"
 msgstr "format de données binaires incorrect"
 
-#: commands/copy.c:5122
+#: commands/copy.c:5068
 #, c-format
 msgid "column \"%s\" is a generated column"
 msgstr "la colonne « %s » est une colonne générée"
 
-#: commands/copy.c:5124
+#: commands/copy.c:5070
 #, c-format
 msgid "Generated columns cannot be used in COPY."
 msgstr "Les colonnes générées ne peuvent pas être utilisées dans COPY."
 
-#: commands/copy.c:5139 commands/indexcmds.c:1579 commands/statscmds.c:214 commands/tablecmds.c:2092 commands/tablecmds.c:2633 commands/tablecmds.c:3012 parser/parse_relation.c:3353 parser/parse_relation.c:3373 utils/adt/tsvector_op.c:2559
+#: commands/copy.c:5085 commands/indexcmds.c:1700 commands/statscmds.c:217 commands/tablecmds.c:2176 commands/tablecmds.c:2795 commands/tablecmds.c:3182 parser/parse_relation.c:3507 parser/parse_relation.c:3527 utils/adt/tsvector_op.c:2668
 #, c-format
 msgid "column \"%s\" does not exist"
 msgstr "la colonne « %s » n'existe pas"
 
-#: commands/copy.c:5146 commands/tablecmds.c:2125 commands/trigger.c:937 parser/parse_target.c:1047 parser/parse_target.c:1058
+#: commands/copy.c:5092 commands/tablecmds.c:2202 commands/trigger.c:885 parser/parse_target.c:1052 parser/parse_target.c:1063
 #, c-format
 msgid "column \"%s\" specified more than once"
 msgstr "la colonne « %s » est spécifiée plus d'une fois"
 
-#: commands/createas.c:216 commands/createas.c:499
+#: commands/createas.c:215 commands/createas.c:497
 #, c-format
 msgid "too many column names were specified"
 msgstr "trop de noms de colonnes ont été spécifiés"
 
-#: commands/createas.c:541
+#: commands/createas.c:539
 #, c-format
 msgid "policies not yet implemented for this command"
 msgstr "politiques non encore implémentées pour cette commande"
 
-#: commands/dbcommands.c:236
+#: commands/dbcommands.c:246
 #, c-format
 msgid "LOCATION is not supported anymore"
 msgstr "LOCATION n'est plus supporté"
 
-#: commands/dbcommands.c:237
+#: commands/dbcommands.c:247
 #, c-format
 msgid "Consider using tablespaces instead."
 msgstr "Considérer l'utilisation de tablespaces."
 
-#: commands/dbcommands.c:263 utils/adt/ascii.c:145
+#: commands/dbcommands.c:261
+#, c-format
+msgid "LOCALE cannot be specified together with LC_COLLATE or LC_CTYPE."
+msgstr ""
+
+#: commands/dbcommands.c:279 utils/adt/ascii.c:145
 #, c-format
 msgid "%d is not a valid encoding code"
 msgstr "%d n'est pas un code d'encodage valide"
 
-#: commands/dbcommands.c:274 utils/adt/ascii.c:127
+#: commands/dbcommands.c:290 utils/adt/ascii.c:127
 #, c-format
 msgid "%s is not a valid encoding name"
 msgstr "%s n'est pas un nom d'encodage valide"
 
-#: commands/dbcommands.c:293 commands/dbcommands.c:1515 commands/user.c:275 commands/user.c:680
+#: commands/dbcommands.c:314 commands/dbcommands.c:1569 commands/user.c:275 commands/user.c:691
 #, c-format
 msgid "invalid connection limit: %d"
 msgstr "limite de connexion invalide : %d"
 
-#: commands/dbcommands.c:312
+#: commands/dbcommands.c:333
 #, c-format
 msgid "permission denied to create database"
 msgstr "droit refusé pour créer une base de données"
 
-#: commands/dbcommands.c:335
+#: commands/dbcommands.c:356
 #, c-format
 msgid "template database \"%s\" does not exist"
 msgstr "la base de données modèle « %s » n'existe pas"
 
-#: commands/dbcommands.c:347
+#: commands/dbcommands.c:368
 #, c-format
 msgid "permission denied to copy database \"%s\""
 msgstr "droit refusé pour copier la base de données « %s »"
 
-#: commands/dbcommands.c:363
+#: commands/dbcommands.c:384
 #, c-format
 msgid "invalid server encoding %d"
 msgstr "encodage serveur %d invalide"
 
-#: commands/dbcommands.c:369 commands/dbcommands.c:374
+#: commands/dbcommands.c:390 commands/dbcommands.c:395
 #, c-format
 msgid "invalid locale name: \"%s\""
 msgstr "nom de locale invalide : « %s »"
 
-#: commands/dbcommands.c:394
+#: commands/dbcommands.c:415
 #, c-format
 msgid "new encoding (%s) is incompatible with the encoding of the template database (%s)"
 msgstr ""
 "le nouvel encodage (%sà est incompatible avec l'encodage de la base de\n"
 "données modèle (%s)"
 
-#: commands/dbcommands.c:397
+#: commands/dbcommands.c:418
 #, c-format
 msgid "Use the same encoding as in the template database, or use template0 as template."
 msgstr ""
 "Utilisez le même encodage que celui de la base de données modèle,\n"
 "ou utilisez template0 comme modèle."
 
-#: commands/dbcommands.c:402
+#: commands/dbcommands.c:423
 #, c-format
 msgid "new collation (%s) is incompatible with the collation of the template database (%s)"
 msgstr ""
 "le nouveau tri (%s) est incompatible avec le tri de la base de\n"
 "données modèle (%s)"
 
-#: commands/dbcommands.c:404
+#: commands/dbcommands.c:425
 #, c-format
 msgid "Use the same collation as in the template database, or use template0 as template."
 msgstr ""
 "Utilisez le même tri que celui de la base de données modèle,\n"
 "ou utilisez template0 comme modèle."
 
-#: commands/dbcommands.c:409
+#: commands/dbcommands.c:430
 #, c-format
 msgid "new LC_CTYPE (%s) is incompatible with the LC_CTYPE of the template database (%s)"
 msgstr ""
 "le nouveau LC_CTYPE (%s) est incompatible avec le LC_CTYPE de la base de\n"
 "données modèle (%s)"
 
-#: commands/dbcommands.c:411
+#: commands/dbcommands.c:432
 #, c-format
 msgid "Use the same LC_CTYPE as in the template database, or use template0 as template."
 msgstr ""
 "Utilisez le même LC_CTYPE que celui de la base de données modèle,\n"
 "ou utilisez template0 comme modèle."
 
-#: commands/dbcommands.c:433 commands/dbcommands.c:1167
+#: commands/dbcommands.c:454 commands/dbcommands.c:1196
 #, c-format
 msgid "pg_global cannot be used as default tablespace"
 msgstr "pg_global ne peut pas être utilisé comme tablespace par défaut"
 
-#: commands/dbcommands.c:459
+#: commands/dbcommands.c:480
 #, c-format
 msgid "cannot assign new default tablespace \"%s\""
 msgstr "ne peut pas affecter un nouveau tablespace par défaut « %s »"
 
-#: commands/dbcommands.c:461
+#: commands/dbcommands.c:482
 #, c-format
 msgid "There is a conflict because database \"%s\" already has some tables in this tablespace."
 msgstr ""
 "Il existe un conflit car la base de données « %s » a déjà quelques tables\n"
 "dans son tablespace."
 
-#: commands/dbcommands.c:491 commands/dbcommands.c:1037
+#: commands/dbcommands.c:512 commands/dbcommands.c:1066
 #, c-format
 msgid "database \"%s\" already exists"
 msgstr "la base de données « %s » existe déjà"
 
-#: commands/dbcommands.c:505
+#: commands/dbcommands.c:526
 #, c-format
 msgid "source database \"%s\" is being accessed by other users"
 msgstr "la base de données source « %s » est accédée par d'autres utilisateurs"
 
-#: commands/dbcommands.c:748 commands/dbcommands.c:763
+#: commands/dbcommands.c:769 commands/dbcommands.c:784
 #, c-format
 msgid "encoding \"%s\" does not match locale \"%s\""
 msgstr "l'encodage « %s » ne correspond pas à la locale « %s »"
 
-#: commands/dbcommands.c:751
+#: commands/dbcommands.c:772
 #, c-format
 msgid "The chosen LC_CTYPE setting requires encoding \"%s\"."
 msgstr "Le paramètre LC_CTYPE choisi nécessite l'encodage « %s »."
 
-#: commands/dbcommands.c:766
+#: commands/dbcommands.c:787
 #, c-format
 msgid "The chosen LC_COLLATE setting requires encoding \"%s\"."
 msgstr "Le paramètre LC_COLLATE choisi nécessite l'encodage « %s »."
 
-#: commands/dbcommands.c:827
+#: commands/dbcommands.c:848
 #, c-format
 msgid "database \"%s\" does not exist, skipping"
 msgstr "la base de données « %s » n'existe pas, poursuite du traitement"
 
-#: commands/dbcommands.c:851
+#: commands/dbcommands.c:872
 #, c-format
 msgid "cannot drop a template database"
 msgstr "ne peut pas supprimer une base de données modèle"
 
-#: commands/dbcommands.c:857
+#: commands/dbcommands.c:878
 #, c-format
 msgid "cannot drop the currently open database"
 msgstr "ne peut pas supprimer la base de données actuellement ouverte"
 
-#: commands/dbcommands.c:870
+#: commands/dbcommands.c:891
 #, c-format
 msgid "database \"%s\" is used by an active logical replication slot"
 msgstr "la base de données « %s » est utilisée par un slot de réplication logique actif"
 
-#: commands/dbcommands.c:872
+#: commands/dbcommands.c:893
 #, c-format
 msgid "There is %d active slot."
 msgid_plural "There are %d active slots."
 msgstr[0] "Il existe %d slot actif."
 msgstr[1] "Il existe %d slots actifs."
 
-#: commands/dbcommands.c:886 commands/dbcommands.c:1059 commands/dbcommands.c:1189
-#, c-format
-msgid "database \"%s\" is being accessed by other users"
-msgstr "la base de données « %s » est en cours d'utilisation par d'autres utilisateurs"
-
-#: commands/dbcommands.c:899
+#: commands/dbcommands.c:907
 #, c-format
 msgid "database \"%s\" is being used by logical replication subscription"
 msgstr "la base de données « %s » est utilisée par une souscription de réplication logique"
 
-#: commands/dbcommands.c:901
+#: commands/dbcommands.c:909
 #, c-format
 msgid "There is %d subscription."
 msgid_plural "There are %d subscriptions."
 msgstr[0] "Il existe %d souscription."
 msgstr[1] "Il existe %d souscriptions."
 
-#: commands/dbcommands.c:1019
+#: commands/dbcommands.c:930 commands/dbcommands.c:1088 commands/dbcommands.c:1218
+#, c-format
+msgid "database \"%s\" is being accessed by other users"
+msgstr "la base de données « %s » est en cours d'utilisation par d'autres utilisateurs"
+
+#: commands/dbcommands.c:1048
 #, c-format
 msgid "permission denied to rename database"
 msgstr "droit refusé pour le renommage de la base de données"
 
-#: commands/dbcommands.c:1048
+#: commands/dbcommands.c:1077
 #, c-format
 msgid "current database cannot be renamed"
 msgstr "la base de données actuelle ne peut pas être renommée"
 
-#: commands/dbcommands.c:1145
+#: commands/dbcommands.c:1174
 #, c-format
 msgid "cannot change the tablespace of the currently open database"
 msgstr "ne peut pas modifier le tablespace de la base de données actuellement ouverte"
 
-#: commands/dbcommands.c:1248
+#: commands/dbcommands.c:1277
 #, c-format
 msgid "some relations of database \"%s\" are already in tablespace \"%s\""
 msgstr ""
 "certaines relations de la base de données « %s » sont déjà dans le\n"
 "tablespace « %s »"
 
-#: commands/dbcommands.c:1250
+#: commands/dbcommands.c:1279
 #, c-format
 msgid "You must move them back to the database's default tablespace before using this command."
 msgstr ""
 "Vous devez d'abord les déplacer dans le tablespace par défaut de la base\n"
 "de données avant d'utiliser cette commande."
 
-#: commands/dbcommands.c:1375 commands/dbcommands.c:1921 commands/dbcommands.c:2126 commands/dbcommands.c:2181 commands/tablespace.c:620
+#: commands/dbcommands.c:1404 commands/dbcommands.c:1980 commands/dbcommands.c:2203 commands/dbcommands.c:2261 commands/tablespace.c:619
 #, c-format
 msgid "some useless files may be left behind in old database directory \"%s\""
 msgstr ""
 "certains fichiers inutiles pourraient se trouver dans l'ancien répertoire\n"
 "de la base de données « %s »"
 
-#: commands/dbcommands.c:1496
+#: commands/dbcommands.c:1460
+#, c-format
+msgid "unrecognized DROP DATABASE option \"%s\""
+msgstr "option de DROP DATABASE « %s » non reconnue"
+
+#: commands/dbcommands.c:1550
 #, c-format
 msgid "option \"%s\" cannot be specified with other options"
 msgstr "l'option « %s » ne peut pas être spécifié avec d'autres options"
 
-#: commands/dbcommands.c:1552
+#: commands/dbcommands.c:1606
 #, c-format
 msgid "cannot disallow connections for current database"
 msgstr "ne peut pas désactiver les connexions pour la base de données courante"
 
-#: commands/dbcommands.c:1688
+#: commands/dbcommands.c:1742
 #, c-format
 msgid "permission denied to change owner of database"
 msgstr "droit refusé pour modifier le propriétaire de la base de données"
 
-#: commands/dbcommands.c:2009
+#: commands/dbcommands.c:2086
 #, c-format
 msgid "There are %d other session(s) and %d prepared transaction(s) using the database."
 msgstr "%d autres sessions et %d transactions préparées utilisent la base de données."
 
-#: commands/dbcommands.c:2012
+#: commands/dbcommands.c:2089
 #, c-format
 msgid "There is %d other session using the database."
 msgid_plural "There are %d other sessions using the database."
 msgstr[0] "%d autre session utilise la base de données."
 msgstr[1] "%d autres sessions utilisent la base de données."
 
-#: commands/dbcommands.c:2017
+#: commands/dbcommands.c:2094 storage/ipc/procarray.c:3016
 #, c-format
 msgid "There is %d prepared transaction using the database."
 msgid_plural "There are %d prepared transactions using the database."
@@ -6403,1241 +6582,1246 @@ msgstr "l'argument de %s doit être un nom de type"
 msgid "invalid argument for %s: \"%s\""
 msgstr "argument invalide pour %s : « %s »"
 
-#: commands/dropcmds.c:99 commands/functioncmds.c:1272 utils/adt/ruleutils.c:2609
+#: commands/dropcmds.c:100 commands/functioncmds.c:1274 utils/adt/ruleutils.c:2633
 #, c-format
 msgid "\"%s\" is an aggregate function"
 msgstr "« %s » est une fonction d'agrégat"
 
-#: commands/dropcmds.c:101
+#: commands/dropcmds.c:102
 #, c-format
 msgid "Use DROP AGGREGATE to drop aggregate functions."
 msgstr "Utiliser DROP AGGREGATE pour supprimer les fonctions d'agrégat."
 
-#: commands/dropcmds.c:157 commands/sequence.c:447 commands/tablecmds.c:3096 commands/tablecmds.c:3254 commands/tablecmds.c:3299 commands/tablecmds.c:14235 tcop/utility.c:1174
+#: commands/dropcmds.c:158 commands/sequence.c:447 commands/tablecmds.c:3266 commands/tablecmds.c:3424 commands/tablecmds.c:3469 commands/tablecmds.c:15038 tcop/utility.c:1309
 #, c-format
 msgid "relation \"%s\" does not exist, skipping"
 msgstr "la relation « %s » n'existe pas, poursuite du traitement"
 
-#: commands/dropcmds.c:187 commands/dropcmds.c:286 commands/tablecmds.c:1165
+#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1199
 #, c-format
 msgid "schema \"%s\" does not exist, skipping"
 msgstr "le schéma « %s » n'existe pas, poursuite du traitement"
 
-#: commands/dropcmds.c:227 commands/dropcmds.c:266 commands/tablecmds.c:253
+#: commands/dropcmds.c:228 commands/dropcmds.c:267 commands/tablecmds.c:259
 #, c-format
 msgid "type \"%s\" does not exist, skipping"
 msgstr "le type « %s » n'existe pas, poursuite du traitement"
 
-#: commands/dropcmds.c:256
+#: commands/dropcmds.c:257
 #, c-format
 msgid "access method \"%s\" does not exist, skipping"
 msgstr "la méthode d'accès « %s » n'existe pas, ignoré"
 
-#: commands/dropcmds.c:274
+#: commands/dropcmds.c:275
 #, c-format
 msgid "collation \"%s\" does not exist, skipping"
 msgstr "le collationnement « %s » n'existe pas, poursuite du traitement"
 
-#: commands/dropcmds.c:281
+#: commands/dropcmds.c:282
 #, c-format
 msgid "conversion \"%s\" does not exist, skipping"
 msgstr "la conversion « %s » n'existe pas, poursuite du traitement"
 
-#: commands/dropcmds.c:292
+#: commands/dropcmds.c:293 commands/statscmds.c:479
 #, c-format
 msgid "statistics object \"%s\" does not exist, skipping"
 msgstr "l'objet statistique « %s » n'existe pas, poursuite du traitement"
 
-#: commands/dropcmds.c:299
+#: commands/dropcmds.c:300
 #, c-format
 msgid "text search parser \"%s\" does not exist, skipping"
 msgstr ""
 "l'analyseur de recherche plein texte « %s » n'existe pas, poursuite du\n"
 "traitement"
 
-#: commands/dropcmds.c:306
+#: commands/dropcmds.c:307
 #, c-format
 msgid "text search dictionary \"%s\" does not exist, skipping"
 msgstr ""
 "le dictionnaire de recherche plein texte « %s » n'existe pas, poursuite du\n"
 "traitement"
 
-#: commands/dropcmds.c:313
+#: commands/dropcmds.c:314
 #, c-format
 msgid "text search template \"%s\" does not exist, skipping"
 msgstr "le modèle de recherche plein texte « %s » n'existe pas, poursuite du traitement"
 
-#: commands/dropcmds.c:320
+#: commands/dropcmds.c:321
 #, c-format
 msgid "text search configuration \"%s\" does not exist, skipping"
 msgstr ""
 "la configuration de recherche plein texte « %s » n'existe pas, poursuite du\n"
 "traitement"
 
-#: commands/dropcmds.c:325
+#: commands/dropcmds.c:326
 #, c-format
 msgid "extension \"%s\" does not exist, skipping"
 msgstr "l'extension « %s » n'existe pas, poursuite du traitement"
 
-#: commands/dropcmds.c:335
+#: commands/dropcmds.c:336
 #, c-format
 msgid "function %s(%s) does not exist, skipping"
 msgstr "la fonction %s(%s) n'existe pas, poursuite du traitement"
 
-#: commands/dropcmds.c:348
+#: commands/dropcmds.c:349
 #, c-format
 msgid "procedure %s(%s) does not exist, skipping"
 msgstr "la procédure %s(%s) n'existe pas, ignoré"
 
-#: commands/dropcmds.c:361
+#: commands/dropcmds.c:362
 #, c-format
 msgid "routine %s(%s) does not exist, skipping"
 msgstr "la routine %s(%s) n'existe pas, poursuite du traitement"
 
-#: commands/dropcmds.c:374
+#: commands/dropcmds.c:375
 #, c-format
 msgid "aggregate %s(%s) does not exist, skipping"
 msgstr "l'agrégat %s(%s) n'existe pas, poursuite du traitement"
 
-#: commands/dropcmds.c:387
+#: commands/dropcmds.c:388
 #, c-format
 msgid "operator %s does not exist, skipping"
 msgstr "l'opérateur %s n'existe pas, poursuite du traitement"
 
-#: commands/dropcmds.c:393
+#: commands/dropcmds.c:394
 #, c-format
 msgid "language \"%s\" does not exist, skipping"
 msgstr "le langage « %s » n'existe pas, poursuite du traitement"
 
-#: commands/dropcmds.c:402
+#: commands/dropcmds.c:403
 #, c-format
 msgid "cast from type %s to type %s does not exist, skipping"
 msgstr "la conversion du type %s vers le type %s n'existe pas, poursuite du traitement"
 
-#: commands/dropcmds.c:411
+#: commands/dropcmds.c:412
 #, c-format
 msgid "transform for type %s language \"%s\" does not exist, skipping"
 msgstr "la transformation pour le type %s et le langage « %s » n'existe pas, poursuite du traitement"
 
-#: commands/dropcmds.c:419
+#: commands/dropcmds.c:420
 #, c-format
 msgid "trigger \"%s\" for relation \"%s\" does not exist, skipping"
 msgstr "le trigger « %s » de la relation « %s » n'existe pas, poursuite du traitement"
 
-#: commands/dropcmds.c:428
+#: commands/dropcmds.c:429
 #, c-format
 msgid "policy \"%s\" for relation \"%s\" does not exist, skipping"
 msgstr "la politique « %s » de la relation « %s » n'existe pas, poursuite du traitement"
 
-#: commands/dropcmds.c:435
+#: commands/dropcmds.c:436
 #, c-format
 msgid "event trigger \"%s\" does not exist, skipping"
 msgstr "le trigger sur événement « %s » n'existe pas, poursuite du traitement"
 
-#: commands/dropcmds.c:441
+#: commands/dropcmds.c:442
 #, c-format
 msgid "rule \"%s\" for relation \"%s\" does not exist, skipping"
 msgstr "la règle « %s » de la relation « %s » n'existe pas, poursuite du traitement"
 
-#: commands/dropcmds.c:448
+#: commands/dropcmds.c:449
 #, c-format
 msgid "foreign-data wrapper \"%s\" does not exist, skipping"
 msgstr "le wrapper de données distantes « %s » n'existe pas, poursuite du traitement"
 
-#: commands/dropcmds.c:452 commands/foreigncmds.c:1400
+#: commands/dropcmds.c:453 commands/foreigncmds.c:1399
 #, c-format
 msgid "server \"%s\" does not exist, skipping"
 msgstr "le serveur « %s » n'existe pas, poursuite du traitement"
 
-#: commands/dropcmds.c:461
+#: commands/dropcmds.c:462
 #, c-format
 msgid "operator class \"%s\" does not exist for access method \"%s\", skipping"
 msgstr "la classe d'opérateur « %s » n'existe pas pour la méthode d'accès « %s », ignoré"
 
-#: commands/dropcmds.c:473
+#: commands/dropcmds.c:474
 #, c-format
 msgid "operator family \"%s\" does not exist for access method \"%s\", skipping"
 msgstr "la famille d'opérateur « %s » n'existe pas pour la méthode d'accès « %s », ignoré"
 
-#: commands/dropcmds.c:480
+#: commands/dropcmds.c:481
 #, c-format
 msgid "publication \"%s\" does not exist, skipping"
 msgstr "la publication « %s » n'existe pas, poursuite du traitement"
 
-#: commands/event_trigger.c:187
+#: commands/event_trigger.c:125
 #, c-format
 msgid "permission denied to create event trigger \"%s\""
 msgstr "droit refusé pour créer le trigger sur événement « %s »"
 
-#: commands/event_trigger.c:189
+#: commands/event_trigger.c:127
 #, c-format
 msgid "Must be superuser to create an event trigger."
 msgstr "Doit être super-utilisateur pour créer un trigger sur événement."
 
-#: commands/event_trigger.c:198
+#: commands/event_trigger.c:136
 #, c-format
 msgid "unrecognized event name \"%s\""
 msgstr "nom d'événement non reconnu : « %s »"
 
-#: commands/event_trigger.c:215
+#: commands/event_trigger.c:153
 #, c-format
 msgid "unrecognized filter variable \"%s\""
 msgstr "variable « %s » du filtre non reconnu"
 
-#: commands/event_trigger.c:270
+#: commands/event_trigger.c:207
 #, c-format
 msgid "filter value \"%s\" not recognized for filter variable \"%s\""
 msgstr "valeur de filtre « %s » non reconnu pour la variable de filtre « %s »"
 
 #. translator: %s represents an SQL statement name
-#: commands/event_trigger.c:276 commands/event_trigger.c:346
+#: commands/event_trigger.c:213 commands/event_trigger.c:235
 #, c-format
 msgid "event triggers are not supported for %s"
 msgstr "les triggers sur événemenr ne sont pas supportés pour %s"
 
-#: commands/event_trigger.c:369
+#: commands/event_trigger.c:248
 #, c-format
 msgid "filter variable \"%s\" specified more than once"
 msgstr "variable « %s » du filtre spécifiée plus d'une fois"
 
-#: commands/event_trigger.c:519 commands/event_trigger.c:563 commands/event_trigger.c:657
+#: commands/event_trigger.c:399 commands/event_trigger.c:443 commands/event_trigger.c:537
 #, c-format
 msgid "event trigger \"%s\" does not exist"
 msgstr "le trigger sur événement « %s » n'existe pas"
 
-#: commands/event_trigger.c:625
+#: commands/event_trigger.c:505
 #, c-format
 msgid "permission denied to change owner of event trigger \"%s\""
 msgstr "droit refusé pour modifier le propriétaire du trigger sur événement « %s »"
 
-#: commands/event_trigger.c:627
+#: commands/event_trigger.c:507
 #, c-format
 msgid "The owner of an event trigger must be a superuser."
 msgstr "Le propriétaire du trigger sur événement doit être un super-utilisateur."
 
-#: commands/event_trigger.c:1465
+#: commands/event_trigger.c:1325
 #, c-format
 msgid "%s can only be called in a sql_drop event trigger function"
 msgstr "%s peut seulement être appelé dans une fonction de trigger sur événement sql_drop"
 
-#: commands/event_trigger.c:1585 commands/event_trigger.c:1606
+#: commands/event_trigger.c:1445 commands/event_trigger.c:1466
 #, c-format
 msgid "%s can only be called in a table_rewrite event trigger function"
 msgstr "%s peut seulement être appelé dans une fonction de trigger sur événement table_rewrite"
 
-#: commands/event_trigger.c:2017
+#: commands/event_trigger.c:1883
 #, c-format
 msgid "%s can only be called in an event trigger function"
 msgstr "%s peut seulement être appelé dans une fonction de trigger sur événement"
 
-#: commands/explain.c:193
+#: commands/explain.c:213
 #, c-format
 msgid "unrecognized value for EXPLAIN option \"%s\": \"%s\""
 msgstr "valeur non reconnue pour l'option « %s » d'EXPLAIN : « %s »"
 
-#: commands/explain.c:200
+#: commands/explain.c:220
 #, c-format
 msgid "unrecognized EXPLAIN option \"%s\""
 msgstr "option d'EXPLAIN « %s » non reconnu"
 
-#: commands/explain.c:208
+#: commands/explain.c:228
 #, c-format
-msgid "EXPLAIN option BUFFERS requires ANALYZE"
-msgstr "l'option BUFFERS d'EXPLAIN nécessite ANALYZE"
+msgid "EXPLAIN option WAL requires ANALYZE"
+msgstr "l'option WAL d'EXPLAIN nécessite ANALYZE"
 
-#: commands/explain.c:217
+#: commands/explain.c:237
 #, c-format
 msgid "EXPLAIN option TIMING requires ANALYZE"
 msgstr "l'option TIMING d'EXPLAIN nécessite ANALYZE"
 
-#: commands/extension.c:171 commands/extension.c:2918
+#: commands/extension.c:173 commands/extension.c:3013
 #, c-format
 msgid "extension \"%s\" does not exist"
 msgstr "l'extension « %s » n'existe pas"
 
-#: commands/extension.c:270 commands/extension.c:279 commands/extension.c:291 commands/extension.c:301
+#: commands/extension.c:272 commands/extension.c:281 commands/extension.c:293 commands/extension.c:303
 #, c-format
 msgid "invalid extension name: \"%s\""
 msgstr "nom d'extension invalide : « %s »"
 
-#: commands/extension.c:271
+#: commands/extension.c:273
 #, c-format
 msgid "Extension names must not be empty."
 msgstr "Les noms d'extension ne doivent pas être vides."
 
-#: commands/extension.c:280
+#: commands/extension.c:282
 #, c-format
 msgid "Extension names must not contain \"--\"."
 msgstr "Les noms d'extension ne doivent pas contenir « -- »."
 
-#: commands/extension.c:292
+#: commands/extension.c:294
 #, c-format
 msgid "Extension names must not begin or end with \"-\"."
 msgstr "Les noms des extensions ne doivent pas commencer ou finir avec un tiret (« - »)."
 
-#: commands/extension.c:302
+#: commands/extension.c:304
 #, c-format
 msgid "Extension names must not contain directory separator characters."
 msgstr "Les noms des extensions ne doivent pas contenir des caractères séparateurs de répertoire."
 
-#: commands/extension.c:317 commands/extension.c:326 commands/extension.c:335 commands/extension.c:345
+#: commands/extension.c:319 commands/extension.c:328 commands/extension.c:337 commands/extension.c:347
 #, c-format
 msgid "invalid extension version name: \"%s\""
 msgstr "nom de version de l'extension invalide :  « %s »"
 
-#: commands/extension.c:318
+#: commands/extension.c:320
 #, c-format
 msgid "Version names must not be empty."
 msgstr "Les noms de version ne doivent pas être vides."
 
-#: commands/extension.c:327
+#: commands/extension.c:329
 #, c-format
 msgid "Version names must not contain \"--\"."
 msgstr "Les noms de version ne doivent pas contenir « -- »."
 
-#: commands/extension.c:336
+#: commands/extension.c:338
 #, c-format
 msgid "Version names must not begin or end with \"-\"."
 msgstr "Les noms de version ne doivent ni commencer ni se terminer avec un tiret."
 
-#: commands/extension.c:346
+#: commands/extension.c:348
 #, c-format
 msgid "Version names must not contain directory separator characters."
 msgstr ""
 "Les noms de version ne doivent pas contenir de caractères séparateurs de\n"
 "répertoire."
 
-#: commands/extension.c:496
+#: commands/extension.c:498
 #, c-format
 msgid "could not open extension control file \"%s\": %m"
 msgstr "n'a pas pu ouvrir le fichier de contrôle d'extension « %s » : %m"
 
-#: commands/extension.c:518 commands/extension.c:528
+#: commands/extension.c:520 commands/extension.c:530
 #, c-format
 msgid "parameter \"%s\" cannot be set in a secondary extension control file"
 msgstr ""
 "le paramètre « %s » ne peut pas être configuré dans un fichier de contrôle\n"
 "secondaire de l'extension"
 
-#: commands/extension.c:550 commands/extension.c:558 utils/misc/guc.c:6540
+#: commands/extension.c:552 commands/extension.c:560 commands/extension.c:568 utils/misc/guc.c:6749
 #, c-format
 msgid "parameter \"%s\" requires a Boolean value"
 msgstr "le paramètre « %s » requiert une valeur booléenne"
 
-#: commands/extension.c:567
+#: commands/extension.c:577
 #, c-format
 msgid "\"%s\" is not a valid encoding name"
 msgstr "« %s » n'est pas un nom d'encodage valide"
 
-#: commands/extension.c:581
+#: commands/extension.c:591
 #, c-format
 msgid "parameter \"%s\" must be a list of extension names"
 msgstr "l'argument « %s » doit être une liste de noms d'extension"
 
-#: commands/extension.c:588
+#: commands/extension.c:598
 #, c-format
 msgid "unrecognized parameter \"%s\" in file \"%s\""
 msgstr "paramètre « %s » non reconnu dans le fichier « %s »"
 
-#: commands/extension.c:597
+#: commands/extension.c:607
 #, c-format
 msgid "parameter \"schema\" cannot be specified when \"relocatable\" is true"
 msgstr "le paramètre « schema » ne peut pas être indiqué quand « relocatable » est vrai"
 
-#: commands/extension.c:762
+#: commands/extension.c:785
 #, c-format
 msgid "transaction control statements are not allowed within an extension script"
 msgstr ""
 "les instructions de contrôle des transactions ne sont pas autorisées dans un\n"
 "script d'extension"
 
-#: commands/extension.c:808
+#: commands/extension.c:861
 #, c-format
 msgid "permission denied to create extension \"%s\""
 msgstr "droit refusé pour créer l'extension « %s »"
 
-#: commands/extension.c:810
+#: commands/extension.c:864
+#, c-format
+msgid "Must have CREATE privilege on current database to create this extension."
+msgstr "Doit avoir le droit CREATE sur la base actuelle pour créer cette extension."
+
+#: commands/extension.c:865
 #, c-format
 msgid "Must be superuser to create this extension."
 msgstr "Doit être super-utilisateur pour créer cette extension."
 
-#: commands/extension.c:814
+#: commands/extension.c:869
 #, c-format
 msgid "permission denied to update extension \"%s\""
 msgstr "droit refusé pour mettre à jour l'extension « %s »"
 
-#: commands/extension.c:816
+#: commands/extension.c:872
+#, c-format
+msgid "Must have CREATE privilege on current database to update this extension."
+msgstr "Doit avoir le droit CREATE sur la base actuelle pour mettre à jour cette extension."
+
+#: commands/extension.c:873
 #, c-format
 msgid "Must be superuser to update this extension."
 msgstr "Doit être super-utilisateur pour mettre à jour cette extension."
 
-#: commands/extension.c:1100
+#: commands/extension.c:1200
 #, c-format
 msgid "extension \"%s\" has no update path from version \"%s\" to version \"%s\""
 msgstr "l'extension « %s » n'a pas de chemin de mise à jour pour aller de la version « %s » à la version « %s »"
 
-#: commands/extension.c:1307 commands/extension.c:2979
+#: commands/extension.c:1408 commands/extension.c:3074
 #, c-format
 msgid "version to install must be specified"
 msgstr "la version à installer doit être précisée"
 
-#: commands/extension.c:1329
-#, c-format
-msgid "FROM version must be different from installation target version \"%s\""
-msgstr "la version FROM doit être différente de la version cible d'installation « %s »"
-
-#: commands/extension.c:1394
+#: commands/extension.c:1445
 #, c-format
 msgid "extension \"%s\" has no installation script nor update path for version \"%s\""
 msgstr "l'extension « %s » n'a pas de script d'installation ou de chemin de mise à jour pour la version « %s »"
 
-#: commands/extension.c:1429
+#: commands/extension.c:1479
 #, c-format
 msgid "extension \"%s\" must be installed in schema \"%s\""
 msgstr "l'extension « %s » doit être installée dans le schéma « %s »"
 
-#: commands/extension.c:1589
+#: commands/extension.c:1639
 #, c-format
 msgid "cyclic dependency detected between extensions \"%s\" and \"%s\""
 msgstr "dépendance cyclique détectée entre les extensions « %s » et « %s »"
 
-#: commands/extension.c:1594
+#: commands/extension.c:1644
 #, c-format
 msgid "installing required extension \"%s\""
 msgstr "installation de l'extension requise « %s »"
 
-#: commands/extension.c:1618
+#: commands/extension.c:1667
 #, c-format
 msgid "required extension \"%s\" is not installed"
 msgstr "l'extension « %s » requise n'est pas installée"
 
-#: commands/extension.c:1621
+#: commands/extension.c:1670
 #, c-format
 msgid "Use CREATE EXTENSION ... CASCADE to install required extensions too."
 msgstr "Utilisez CREATE EXTENSION ... CASCADE pour installer également les extensions requises."
 
-#: commands/extension.c:1658
+#: commands/extension.c:1705
 #, c-format
 msgid "extension \"%s\" already exists, skipping"
 msgstr "l'extension « %s » existe déjà, poursuite du traitement"
 
-#: commands/extension.c:1665
+#: commands/extension.c:1712
 #, c-format
 msgid "extension \"%s\" already exists"
 msgstr "l'extension « %s » existe déjà"
 
-#: commands/extension.c:1676
+#: commands/extension.c:1723
 #, c-format
 msgid "nested CREATE EXTENSION is not supported"
 msgstr "le CREATE EXTENSION imbriqué n'est pas supporté"
 
-#: commands/extension.c:1860
+#: commands/extension.c:1896
 #, c-format
 msgid "cannot drop extension \"%s\" because it is being modified"
 msgstr "ne peut pas supprimer l'extension « %s » car il est en cours de modification"
 
-#: commands/extension.c:2362
+#: commands/extension.c:2457
 #, c-format
 msgid "%s can only be called from an SQL script executed by CREATE EXTENSION"
 msgstr "%s ne peut être appelé qu'à partir d'un script SQL exécuté par CREATE EXTENSION"
 
-#: commands/extension.c:2374
+#: commands/extension.c:2469
 #, c-format
 msgid "OID %u does not refer to a table"
 msgstr "l'OID %u ne fait pas référence à une table"
 
-#: commands/extension.c:2379
+#: commands/extension.c:2474
 #, c-format
 msgid "table \"%s\" is not a member of the extension being created"
 msgstr "la table « %s » n'est pas un membre de l'extension en cours de création"
 
-#: commands/extension.c:2733
+#: commands/extension.c:2828
 #, c-format
 msgid "cannot move extension \"%s\" into schema \"%s\" because the extension contains the schema"
 msgstr ""
 "ne peut pas déplacer l'extension « %s » dans le schéma « %s » car l'extension\n"
 "contient le schéma"
 
-#: commands/extension.c:2774 commands/extension.c:2837
+#: commands/extension.c:2869 commands/extension.c:2932
 #, c-format
 msgid "extension \"%s\" does not support SET SCHEMA"
 msgstr "l'extension « %s » ne supporte pas SET SCHEMA"
 
-#: commands/extension.c:2839
+#: commands/extension.c:2934
 #, c-format
 msgid "%s is not in the extension's schema \"%s\""
 msgstr "%s n'est pas dans le schéma de l'extension « %s »"
 
-#: commands/extension.c:2898
+#: commands/extension.c:2993
 #, c-format
 msgid "nested ALTER EXTENSION is not supported"
 msgstr "un ALTER EXTENSION imbriqué n'est pas supporté"
 
-#: commands/extension.c:2990
+#: commands/extension.c:3085
 #, c-format
 msgid "version \"%s\" of extension \"%s\" is already installed"
 msgstr "la version « %s » de l'extension « %s » est déjà installée"
 
-#: commands/extension.c:3241
+#: commands/extension.c:3336
 #, c-format
 msgid "cannot add schema \"%s\" to extension \"%s\" because the schema contains the extension"
 msgstr ""
 "ne peut pas ajouter le schéma « %s » à l'extension « %s » car le schéma\n"
 "contient l'extension"
 
-#: commands/extension.c:3269
+#: commands/extension.c:3364
 #, c-format
 msgid "%s is not a member of extension \"%s\""
 msgstr "%s n'est pas un membre de l'extension « %s »"
 
-#: commands/extension.c:3335
+#: commands/extension.c:3430
 #, c-format
 msgid "file \"%s\" is too large"
 msgstr "le fichier « %s » est trop gros"
 
-#: commands/foreigncmds.c:151 commands/foreigncmds.c:160
+#: commands/foreigncmds.c:148 commands/foreigncmds.c:157
 #, c-format
 msgid "option \"%s\" not found"
 msgstr "option « %s » non trouvé"
 
-#: commands/foreigncmds.c:170
+#: commands/foreigncmds.c:167
 #, c-format
 msgid "option \"%s\" provided more than once"
 msgstr "option « %s » fournie plus d'une fois"
 
-#: commands/foreigncmds.c:224 commands/foreigncmds.c:232
+#: commands/foreigncmds.c:221 commands/foreigncmds.c:229
 #, c-format
 msgid "permission denied to change owner of foreign-data wrapper \"%s\""
 msgstr "droit refusé pour modifier le propriétaire du wrapper de données distantes « %s »"
 
-#: commands/foreigncmds.c:226
+#: commands/foreigncmds.c:223
 #, c-format
 msgid "Must be superuser to change owner of a foreign-data wrapper."
 msgstr ""
 "Doit être super-utilisateur pour modifier le propriétaire du wrapper de\n"
 "données distantes."
 
-#: commands/foreigncmds.c:234
+#: commands/foreigncmds.c:231
 #, c-format
 msgid "The owner of a foreign-data wrapper must be a superuser."
 msgstr "Le propriétaire du wrapper de données distantes doit être un super-utilisateur."
 
-#: commands/foreigncmds.c:294 commands/foreigncmds.c:715 foreign/foreign.c:701
+#: commands/foreigncmds.c:291 commands/foreigncmds.c:711 foreign/foreign.c:701
 #, c-format
 msgid "foreign-data wrapper \"%s\" does not exist"
 msgstr "le wrapper de données distantes « %s » n'existe pas"
 
-#: commands/foreigncmds.c:588
+#: commands/foreigncmds.c:584
 #, c-format
 msgid "permission denied to create foreign-data wrapper \"%s\""
 msgstr "droit refusé pour la création du wrapper de données distantes « %s »"
 
-#: commands/foreigncmds.c:590
+#: commands/foreigncmds.c:586
 #, c-format
 msgid "Must be superuser to create a foreign-data wrapper."
 msgstr "Doit être super-utilisateur pour créer un wrapper de données distantes."
 
-#: commands/foreigncmds.c:705
+#: commands/foreigncmds.c:701
 #, c-format
 msgid "permission denied to alter foreign-data wrapper \"%s\""
 msgstr "droit refusé pour modifier le wrapper de données distantes « %s »"
 
-#: commands/foreigncmds.c:707
+#: commands/foreigncmds.c:703
 #, c-format
 msgid "Must be superuser to alter a foreign-data wrapper."
 msgstr "Doit être super-utilisateur pour modifier un wrapper de données distantes."
 
-#: commands/foreigncmds.c:738
+#: commands/foreigncmds.c:734
 #, c-format
 msgid "changing the foreign-data wrapper handler can change behavior of existing foreign tables"
 msgstr ""
 "la modification du validateur de wrapper de données distantes peut modifier\n"
 "le comportement des tables distantes existantes"
 
-#: commands/foreigncmds.c:753
+#: commands/foreigncmds.c:749
 #, c-format
 msgid "changing the foreign-data wrapper validator can cause the options for dependent objects to become invalid"
 msgstr ""
 "la modification du validateur du wrapper de données distantes peut faire en\n"
 "sorte que les options des objets dépendants deviennent invalides"
 
-#: commands/foreigncmds.c:899
+#: commands/foreigncmds.c:895
 #, c-format
 msgid "server \"%s\" already exists, skipping"
 msgstr "le serveur « %s » existe déjà, poursuite du traitement"
 
-#: commands/foreigncmds.c:1187
+#: commands/foreigncmds.c:1183
 #, c-format
 msgid "user mapping for \"%s\" already exists for server \"%s\", skipping"
 msgstr "la correspondance d'utilisateur « %s » existe déjà pour le serveur « %s », poursuite du traitement"
 
-#: commands/foreigncmds.c:1197
+#: commands/foreigncmds.c:1193
 #, c-format
 msgid "user mapping for \"%s\" already exists for server \"%s\""
 msgstr "la correspondance d'utilisateur « %s » existe déjà pour le serveur « %s »"
 
-#: commands/foreigncmds.c:1297 commands/foreigncmds.c:1414
+#: commands/foreigncmds.c:1293 commands/foreigncmds.c:1413
 #, c-format
 msgid "user mapping for \"%s\" does not exist for server \"%s\""
 msgstr "la correspondance d'utilisateur « %s » n'existe pas pour le serveur « %s »"
 
-#: commands/foreigncmds.c:1419
+#: commands/foreigncmds.c:1418
 #, c-format
 msgid "user mapping for \"%s\" does not exist for server \"%s\", skipping"
 msgstr "la correspondance d'utilisateur « %s » n'existe pas pour le serveur « %s », poursuite du traitement"
 
-#: commands/foreigncmds.c:1570 foreign/foreign.c:389
+#: commands/foreigncmds.c:1569 foreign/foreign.c:389
 #, c-format
 msgid "foreign-data wrapper \"%s\" has no handler"
 msgstr "le wrapper de données distantes « %s » n'a pas de gestionnaire"
 
-#: commands/foreigncmds.c:1576
+#: commands/foreigncmds.c:1575
 #, c-format
 msgid "foreign-data wrapper \"%s\" does not support IMPORT FOREIGN SCHEMA"
 msgstr "le wrapper de données distantes « %s » ne supporte pas IMPORT FOREIGN SCHEMA"
 
-#: commands/foreigncmds.c:1679
+#: commands/foreigncmds.c:1678
 #, c-format
 msgid "importing foreign table \"%s\""
 msgstr "import de la table distante « %s »"
 
-#: commands/functioncmds.c:103
+#: commands/functioncmds.c:104
 #, c-format
 msgid "SQL function cannot return shell type %s"
 msgstr "la fonction SQL ne peut pas retourner le type shell %s"
 
-#: commands/functioncmds.c:108
+#: commands/functioncmds.c:109
 #, c-format
 msgid "return type %s is only a shell"
 msgstr "le type de retour %s est seulement un shell"
 
-#: commands/functioncmds.c:138 parser/parse_type.c:355
+#: commands/functioncmds.c:139 parser/parse_type.c:354
 #, c-format
 msgid "type modifier cannot be specified for shell type \"%s\""
 msgstr "le modificateur de type ne peut pas être précisé pour le type shell « %s »"
 
-#: commands/functioncmds.c:144
+#: commands/functioncmds.c:145
 #, c-format
 msgid "type \"%s\" is not yet defined"
 msgstr "le type « %s » n'est pas encore défini"
 
-#: commands/functioncmds.c:145
+#: commands/functioncmds.c:146
 #, c-format
 msgid "Creating a shell type definition."
 msgstr "Création d'une définition d'un type shell."
 
-#: commands/functioncmds.c:237
+#: commands/functioncmds.c:238
 #, c-format
 msgid "SQL function cannot accept shell type %s"
 msgstr "la fonction SQL ne peut pas accepter le type shell %s"
 
-#: commands/functioncmds.c:243
+#: commands/functioncmds.c:244
 #, c-format
 msgid "aggregate cannot accept shell type %s"
 msgstr "l'agrégat ne peut pas accepter le type shell %s"
 
-#: commands/functioncmds.c:248
+#: commands/functioncmds.c:249
 #, c-format
 msgid "argument type %s is only a shell"
 msgstr "le type d'argument %s n'est qu'une enveloppe"
 
-#: commands/functioncmds.c:258
+#: commands/functioncmds.c:259
 #, c-format
 msgid "type %s does not exist"
 msgstr "le type %s n'existe pas"
 
-#: commands/functioncmds.c:272
+#: commands/functioncmds.c:273
 #, c-format
 msgid "aggregates cannot accept set arguments"
 msgstr "les agrégats ne peuvent pas utiliser des ensembles comme arguments"
 
-#: commands/functioncmds.c:276
+#: commands/functioncmds.c:277
 #, c-format
 msgid "procedures cannot accept set arguments"
 msgstr "les procédures ne peuvent pas utiliser des arguments d'ensemble"
 
-#: commands/functioncmds.c:280
+#: commands/functioncmds.c:281
 #, c-format
 msgid "functions cannot accept set arguments"
 msgstr "les fonctions ne peuvent pas accepter des arguments d'ensemble"
 
-#: commands/functioncmds.c:288
+#: commands/functioncmds.c:289
 #, c-format
 msgid "procedures cannot have OUT arguments"
 msgstr "les procédures ne peuvent pas avoir d'argument OUT"
 
-#: commands/functioncmds.c:289
+#: commands/functioncmds.c:290
 #, c-format
 msgid "INOUT arguments are permitted."
 msgstr "les arguments INOUT ne sont pas autorisés."
 
-#: commands/functioncmds.c:299
+#: commands/functioncmds.c:300
 #, c-format
 msgid "VARIADIC parameter must be the last input parameter"
 msgstr "le paramètre VARIADIC doit être le dernier paramètre en entrée"
 
-#: commands/functioncmds.c:329
+#: commands/functioncmds.c:331
 #, c-format
 msgid "VARIADIC parameter must be an array"
 msgstr "le paramètre VARIADIC doit être un tableau"
 
-#: commands/functioncmds.c:369
+#: commands/functioncmds.c:371
 #, c-format
 msgid "parameter name \"%s\" used more than once"
 msgstr "le nom du paramètre « %s » est utilisé plus d'une fois"
 
-#: commands/functioncmds.c:384
+#: commands/functioncmds.c:386
 #, c-format
 msgid "only input parameters can have default values"
 msgstr "seuls les paramètres en entrée peuvent avoir des valeurs par défaut"
 
-#: commands/functioncmds.c:399
+#: commands/functioncmds.c:401
 #, c-format
 msgid "cannot use table references in parameter default value"
 msgstr ""
 "ne peut pas utiliser les références de tables dans la valeur par défaut des\n"
 "paramètres"
 
-#: commands/functioncmds.c:423
+#: commands/functioncmds.c:425
 #, c-format
 msgid "input parameters after one with a default value must also have defaults"
 msgstr "les paramètres en entrée suivant un paramètre avec valeur par défaut doivent aussi avoir des valeurs par défaut"
 
-#: commands/functioncmds.c:575 commands/functioncmds.c:766
+#: commands/functioncmds.c:577 commands/functioncmds.c:768
 #, c-format
 msgid "invalid attribute in procedure definition"
 msgstr "attribute invalide dans la définition de la procédure"
 
-#: commands/functioncmds.c:671
+#: commands/functioncmds.c:673
 #, c-format
 msgid "support function %s must return type %s"
 msgstr "la fonction de support %s doit renvoyer le type %s"
 
-#: commands/functioncmds.c:682
+#: commands/functioncmds.c:684
 #, c-format
 msgid "must be superuser to specify a support function"
 msgstr "doit être super-utilisateur pour spécifier une fonction de support"
 
-#: commands/functioncmds.c:798
+#: commands/functioncmds.c:800
 #, c-format
 msgid "no function body specified"
 msgstr "aucun corps de fonction spécifié"
 
-#: commands/functioncmds.c:808
+#: commands/functioncmds.c:810
 #, c-format
 msgid "no language specified"
 msgstr "aucun langage spécifié"
 
-#: commands/functioncmds.c:833 commands/functioncmds.c:1317
+#: commands/functioncmds.c:835 commands/functioncmds.c:1319
 #, c-format
 msgid "COST must be positive"
 msgstr "COST doit être positif"
 
-#: commands/functioncmds.c:841 commands/functioncmds.c:1325
+#: commands/functioncmds.c:843 commands/functioncmds.c:1327
 #, c-format
 msgid "ROWS must be positive"
 msgstr "ROWS doit être positif"
 
-#: commands/functioncmds.c:895
+#: commands/functioncmds.c:897
 #, c-format
 msgid "only one AS item needed for language \"%s\""
 msgstr "seul un élément AS est nécessaire pour le langage « %s »"
 
-#: commands/functioncmds.c:993 commands/functioncmds.c:2227 commands/proclang.c:568
+#: commands/functioncmds.c:995 commands/functioncmds.c:2048 commands/proclang.c:259
 #, c-format
 msgid "language \"%s\" does not exist"
 msgstr "le langage « %s » n'existe pas"
 
-#: commands/functioncmds.c:995 commands/functioncmds.c:2229
+#: commands/functioncmds.c:997 commands/functioncmds.c:2050
 #, c-format
 msgid "Use CREATE EXTENSION to load the language into the database."
 msgstr "Utiliser CREATE EXTENSION pour charger le langage dans la base de données."
 
-#: commands/functioncmds.c:1030 commands/functioncmds.c:1309
+#: commands/functioncmds.c:1032 commands/functioncmds.c:1311
 #, c-format
 msgid "only superuser can define a leakproof function"
 msgstr "seul un superutilisateur peut définir une fonction leakproof"
 
-#: commands/functioncmds.c:1079
+#: commands/functioncmds.c:1081
 #, c-format
 msgid "function result type must be %s because of OUT parameters"
 msgstr "le type de résultat de la fonction doit être %s à cause des paramètres OUT"
 
-#: commands/functioncmds.c:1092
+#: commands/functioncmds.c:1094
 #, c-format
 msgid "function result type must be specified"
 msgstr "le type de résultat de la fonction doit être spécifié"
 
-#: commands/functioncmds.c:1144 commands/functioncmds.c:1329
+#: commands/functioncmds.c:1146 commands/functioncmds.c:1331
 #, c-format
 msgid "ROWS is not applicable when function does not return a set"
 msgstr "ROWS n'est pas applicable quand la fonction ne renvoie pas un ensemble"
 
-#: commands/functioncmds.c:1521
+#: commands/functioncmds.c:1431
 #, c-format
 msgid "source data type %s is a pseudo-type"
 msgstr "le type de données source %s est un pseudo-type"
 
-#: commands/functioncmds.c:1527
+#: commands/functioncmds.c:1437
 #, c-format
 msgid "target data type %s is a pseudo-type"
 msgstr "le type de données cible %s est un pseudo-type"
 
-#: commands/functioncmds.c:1551
+#: commands/functioncmds.c:1461
 #, c-format
 msgid "cast will be ignored because the source data type is a domain"
 msgstr "la conversion sera ignorée car le type de données source est un domaine"
 
-#: commands/functioncmds.c:1556
+#: commands/functioncmds.c:1466
 #, c-format
 msgid "cast will be ignored because the target data type is a domain"
 msgstr "la conversion sera ignorée car le type de données cible est un domaine"
 
-#: commands/functioncmds.c:1581
+#: commands/functioncmds.c:1491
 #, c-format
 msgid "cast function must take one to three arguments"
 msgstr "la fonction de conversion doit prendre de un à trois arguments"
 
-#: commands/functioncmds.c:1585
+#: commands/functioncmds.c:1495
 #, c-format
 msgid "argument of cast function must match or be binary-coercible from source data type"
 msgstr "l'argument de la fonction de conversion doit correspondre ou être binary-coercible à partir du type de la donnée source"
 
-#: commands/functioncmds.c:1589
+#: commands/functioncmds.c:1499
 #, c-format
 msgid "second argument of cast function must be type %s"
 msgstr "le second argument de la fonction de conversion doit être de type %s"
 
-#: commands/functioncmds.c:1594
+#: commands/functioncmds.c:1504
 #, c-format
 msgid "third argument of cast function must be type %s"
 msgstr "le troisième argument de la fonction de conversion doit être de type %s"
 
-#: commands/functioncmds.c:1599
+#: commands/functioncmds.c:1509
 #, c-format
 msgid "return data type of cast function must match or be binary-coercible to target data type"
 msgstr ""
 "le type de donnée en retour de la fonction de conversion doit correspondre\n"
 "ou être coercible binairement au type de données cible"
 
-#: commands/functioncmds.c:1610
+#: commands/functioncmds.c:1520
 #, c-format
 msgid "cast function must not be volatile"
 msgstr "la fonction de conversion ne doit pas être volatile"
 
-#: commands/functioncmds.c:1615
+#: commands/functioncmds.c:1525
 #, c-format
 msgid "cast function must be a normal function"
 msgstr "la fonction de conversion doit être une fonction normale"
 
-#: commands/functioncmds.c:1619
+#: commands/functioncmds.c:1529
 #, c-format
 msgid "cast function must not return a set"
 msgstr "la fonction de conversion ne doit pas renvoyer un ensemble"
 
-#: commands/functioncmds.c:1645
+#: commands/functioncmds.c:1555
 #, c-format
 msgid "must be superuser to create a cast WITHOUT FUNCTION"
 msgstr "doit être super-utilisateur pour créer une fonction de conversion SANS FONCTION"
 
-#: commands/functioncmds.c:1660
+#: commands/functioncmds.c:1570
 #, c-format
 msgid "source and target data types are not physically compatible"
 msgstr "les types de données source et cible ne sont pas physiquement compatibles"
 
-#: commands/functioncmds.c:1675
+#: commands/functioncmds.c:1585
 #, c-format
 msgid "composite data types are not binary-compatible"
 msgstr "les types de données composites ne sont pas compatibles binairement"
 
-#: commands/functioncmds.c:1681
+#: commands/functioncmds.c:1591
 #, c-format
 msgid "enum data types are not binary-compatible"
 msgstr "les types de données enum ne sont pas compatibles binairement"
 
-#: commands/functioncmds.c:1687
+#: commands/functioncmds.c:1597
 #, c-format
 msgid "array data types are not binary-compatible"
 msgstr "les types de données tableau ne sont pas compatibles binairement"
 
-#: commands/functioncmds.c:1704
+#: commands/functioncmds.c:1614
 #, c-format
 msgid "domain data types must not be marked binary-compatible"
 msgstr "les types de données domaines ne sont pas compatibles binairement"
 
-#: commands/functioncmds.c:1714
+#: commands/functioncmds.c:1624
 #, c-format
 msgid "source data type and target data type are the same"
 msgstr "les types de données source et cible sont identiques"
 
-#: commands/functioncmds.c:1747
-#, c-format
-msgid "cast from type %s to type %s already exists"
-msgstr "la conversion du type %s vers le type %s existe déjà"
-
-#: commands/functioncmds.c:1822
-#, c-format
-msgid "cast from type %s to type %s does not exist"
-msgstr "la conversion du type %s vers le type %s n'existe pas"
-
-#: commands/functioncmds.c:1861
+#: commands/functioncmds.c:1682
 #, c-format
 msgid "transform function must not be volatile"
 msgstr "la fonction de transformation ne doit pas être volatile"
 
-#: commands/functioncmds.c:1865
+#: commands/functioncmds.c:1686
 #, c-format
 msgid "transform function must be a normal function"
 msgstr "la fonction de transformation doit être une fonction normale"
 
-#: commands/functioncmds.c:1869
+#: commands/functioncmds.c:1690
 #, c-format
 msgid "transform function must not return a set"
 msgstr "la fonction de transformation ne doit pas renvoyer un ensemble"
 
-#: commands/functioncmds.c:1873
+#: commands/functioncmds.c:1694
 #, c-format
 msgid "transform function must take one argument"
 msgstr "la fonction de transformation doit prendre de un argument"
 
-#: commands/functioncmds.c:1877
+#: commands/functioncmds.c:1698
 #, c-format
 msgid "first argument of transform function must be type %s"
 msgstr "le premier argument de la fonction de transformation doit être de type %s"
 
-#: commands/functioncmds.c:1915
+#: commands/functioncmds.c:1736
 #, c-format
 msgid "data type %s is a pseudo-type"
 msgstr "le type de données %s est un pseudo-type"
 
-#: commands/functioncmds.c:1921
+#: commands/functioncmds.c:1742
 #, c-format
 msgid "data type %s is a domain"
 msgstr "le type de données %s est un domaine"
 
-#: commands/functioncmds.c:1961
+#: commands/functioncmds.c:1782
 #, c-format
 msgid "return data type of FROM SQL function must be %s"
 msgstr "le type de donnée en retour de la fonction FROM SQL doit être %s"
 
-#: commands/functioncmds.c:1987
+#: commands/functioncmds.c:1808
 #, c-format
 msgid "return data type of TO SQL function must be the transform data type"
 msgstr "le type de donnée en retour de la fonction TO SQL doit être du type de données de la transformation"
 
-#: commands/functioncmds.c:2016
+#: commands/functioncmds.c:1837
 #, c-format
 msgid "transform for type %s language \"%s\" already exists"
 msgstr "la transformation pour le type %s et le langage « %s » existe déjà"
 
-#: commands/functioncmds.c:2108
+#: commands/functioncmds.c:1929
 #, c-format
 msgid "transform for type %s language \"%s\" does not exist"
 msgstr "la transformation pour le type %s et le langage « %s » n'existe pas"
 
-#: commands/functioncmds.c:2159
+#: commands/functioncmds.c:1980
 #, c-format
 msgid "function %s already exists in schema \"%s\""
 msgstr "la fonction %s existe déjà dans le schéma « %s »"
 
-#: commands/functioncmds.c:2214
+#: commands/functioncmds.c:2035
 #, c-format
 msgid "no inline code specified"
 msgstr "aucun code en ligne spécifié"
 
-#: commands/functioncmds.c:2260
+#: commands/functioncmds.c:2081
 #, c-format
 msgid "language \"%s\" does not support inline code execution"
 msgstr "le langage « %s » ne supporte pas l'exécution de code en ligne"
 
-#: commands/functioncmds.c:2372
+#: commands/functioncmds.c:2193
 #, 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] "ne peut pas passer plus de %d argument à une procédure"
 msgstr[1] "ne peut pas passer plus de %d arguments à une procédure"
 
-#: commands/indexcmds.c:526
+#: commands/indexcmds.c:590
 #, c-format
 msgid "must specify at least one column"
 msgstr "doit spécifier au moins une colonne"
 
-#: commands/indexcmds.c:530
+#: commands/indexcmds.c:594
 #, c-format
 msgid "cannot use more than %d columns in an index"
 msgstr "ne peut pas utiliser plus de %d colonnes dans un index"
 
-#: commands/indexcmds.c:569
+#: commands/indexcmds.c:633
 #, c-format
 msgid "cannot create index on foreign table \"%s\""
 msgstr "ne peut pas créer un index sur la table distante « %s »"
 
-#: commands/indexcmds.c:594
+#: commands/indexcmds.c:664
 #, c-format
 msgid "cannot create index on partitioned table \"%s\" concurrently"
 msgstr "ne peut pas créer un index sur la table partitionnée « %s » de manière concurrente"
 
-#: commands/indexcmds.c:599
+#: commands/indexcmds.c:669
 #, c-format
 msgid "cannot create exclusion constraints on partitioned table \"%s\""
 msgstr "ne peut pas créer de contraintes d'exclusion sur la table partitionnée « %s »"
 
-#: commands/indexcmds.c:609
+#: commands/indexcmds.c:679
 #, c-format
 msgid "cannot create indexes on temporary tables of other sessions"
 msgstr "ne peut pas créer les index sur les tables temporaires des autres sessions"
 
-#: commands/indexcmds.c:647 commands/tablecmds.c:676 commands/tablespace.c:1174
+#: commands/indexcmds.c:717 commands/tablecmds.c:704 commands/tablespace.c:1173
 #, c-format
 msgid "cannot specify default tablespace for partitioned relations"
 msgstr "ne peut pas spécifier un tablespace par défaut pour les relations partitionnées"
 
-#: commands/indexcmds.c:679 commands/tablecmds.c:711 commands/tablecmds.c:12361 commands/tablecmds.c:12473
+#: commands/indexcmds.c:749 commands/tablecmds.c:739 commands/tablecmds.c:13162 commands/tablecmds.c:13276
 #, c-format
 msgid "only shared relations can be placed in pg_global tablespace"
 msgstr "seules les relations partagées peuvent être placées dans le tablespace pg_global"
 
-#: commands/indexcmds.c:712
+#: commands/indexcmds.c:782
 #, c-format
 msgid "substituting access method \"gist\" for obsolete method \"rtree\""
 msgstr "substitution de la méthode d'accès obsolète « rtree » par « gist »"
 
-#: commands/indexcmds.c:733
+#: commands/indexcmds.c:803
 #, c-format
 msgid "access method \"%s\" does not support unique indexes"
 msgstr "la méthode d'accès « %s » ne supporte pas les index uniques"
 
-#: commands/indexcmds.c:738
+#: commands/indexcmds.c:808
 #, c-format
 msgid "access method \"%s\" does not support included columns"
 msgstr "la méthode d'accès « %s » ne supporte pas les colonnes incluses"
 
-#: commands/indexcmds.c:743
+#: commands/indexcmds.c:813
 #, c-format
 msgid "access method \"%s\" does not support multicolumn indexes"
 msgstr "la méthode d'accès « %s » ne supporte pas les index multi-colonnes"
 
-#: commands/indexcmds.c:748
+#: commands/indexcmds.c:818
 #, c-format
 msgid "access method \"%s\" does not support exclusion constraints"
 msgstr "la méthode d'accès « %s » ne supporte pas les contraintes d'exclusion"
 
-#: commands/indexcmds.c:850
+#: commands/indexcmds.c:941
+#, c-format
+msgid "cannot match partition key to an index using access method \"%s\""
+msgstr "ne peut pas faire correspondre la clé de partitionnement à un index utilisant la méthode d'accès « %s »"
+
+#: commands/indexcmds.c:951
 #, c-format
 msgid "unsupported %s constraint with partition key definition"
 msgstr "contrainte %s non supporée avec la définition de clé de partitionnement"
 
-#: commands/indexcmds.c:852
+#: commands/indexcmds.c:953
 #, c-format
 msgid "%s constraints cannot be used when partition keys include expressions."
 msgstr "les contraintes %s ne peuvent pas être utilisées quand les clés de partitionnement incluent des expressions."
 
-#: commands/indexcmds.c:870
+#: commands/indexcmds.c:992
 #, c-format
 msgid "insufficient columns in %s constraint definition"
 msgstr "colonnes infuffisantes dans la définition de contrainte de %s"
 
-#: commands/indexcmds.c:872
+#: commands/indexcmds.c:994
 #, c-format
 msgid "%s constraint on table \"%s\" lacks column \"%s\" which is part of the partition key."
 msgstr "la contrainte %s sur la table « %s » ne contient pas la colonne « %s » qui fait partie de la clé de partitionnement."
 
-#: commands/indexcmds.c:891 commands/indexcmds.c:910
+#: commands/indexcmds.c:1013 commands/indexcmds.c:1032
 #, c-format
 msgid "index creation on system columns is not supported"
 msgstr "la création d'un index sur les tables du catalogue système n'est pas supportée"
 
-#: commands/indexcmds.c:935
+#: commands/indexcmds.c:1057
 #, c-format
 msgid "%s %s will create implicit index \"%s\" for table \"%s\""
 msgstr "%s %s créera un index implicite « %s » pour la table « %s »"
 
-#: commands/indexcmds.c:1077 tcop/utility.c:1359
+#: commands/indexcmds.c:1198 tcop/utility.c:1495
 #, c-format
 msgid "cannot create unique index on partitioned table \"%s\""
 msgstr "ne peut pas créer un index unique sur la table partitionnée « %s »"
 
-#: commands/indexcmds.c:1079 tcop/utility.c:1361
+#: commands/indexcmds.c:1200 tcop/utility.c:1497
 #, c-format
 msgid "Table \"%s\" contains partitions that are foreign tables."
 msgstr "La table « %s » contient des partitionso qui ne sont pas des tables distantes."
 
-#: commands/indexcmds.c:1508
+#: commands/indexcmds.c:1629
 #, c-format
 msgid "functions in index predicate must be marked IMMUTABLE"
 msgstr "les fonctions dans un prédicat d'index doivent être marquées comme IMMUTABLE"
 
-#: commands/indexcmds.c:1574 parser/parse_utilcmd.c:2307 parser/parse_utilcmd.c:2441
+#: commands/indexcmds.c:1695 parser/parse_utilcmd.c:2440 parser/parse_utilcmd.c:2575
 #, c-format
 msgid "column \"%s\" named in key does not exist"
 msgstr "la colonne « %s » nommée dans la clé n'existe pas"
 
-#: commands/indexcmds.c:1598 parser/parse_utilcmd.c:1633
+#: commands/indexcmds.c:1719 parser/parse_utilcmd.c:1776
 #, c-format
 msgid "expressions are not supported in included columns"
 msgstr "les expressions ne sont pas supportées dans les colonnes incluses"
 
-#: commands/indexcmds.c:1639
+#: commands/indexcmds.c:1760
 #, c-format
 msgid "functions in index expression must be marked IMMUTABLE"
 msgstr ""
 "les fonctions dans l'expression de l'index doivent être marquées comme\n"
 "IMMUTABLE"
 
-#: commands/indexcmds.c:1654
+#: commands/indexcmds.c:1775
 #, c-format
 msgid "including column does not support a collation"
 msgstr "une colonne incluse ne supporte pas de collationnement"
 
-#: commands/indexcmds.c:1658
+#: commands/indexcmds.c:1779
 #, c-format
 msgid "including column does not support an operator class"
 msgstr "une colonne incluse ne supporte pas de classe d'opérateur"
 
-#: commands/indexcmds.c:1662
+#: commands/indexcmds.c:1783
 #, c-format
 msgid "including column does not support ASC/DESC options"
 msgstr "une colonne incluse ne supporte pas d'options ASC/DESC"
 
-#: commands/indexcmds.c:1666
+#: commands/indexcmds.c:1787
 #, c-format
 msgid "including column does not support NULLS FIRST/LAST options"
 msgstr "une colonne incluse ne supporte pas d'options NULLS FIRST/LAST"
 
-#: commands/indexcmds.c:1693
+#: commands/indexcmds.c:1814
 #, c-format
 msgid "could not determine which collation to use for index expression"
 msgstr "n'a pas pu déterminer le collationnement à utiliser pour l'expression d'index"
 
-#: commands/indexcmds.c:1701 commands/tablecmds.c:15244 commands/typecmds.c:837 parser/parse_expr.c:2854 parser/parse_type.c:567 parser/parse_utilcmd.c:3514 utils/adt/misc.c:490
+#: commands/indexcmds.c:1822 commands/tablecmds.c:16042 commands/typecmds.c:771 parser/parse_expr.c:2850 parser/parse_type.c:566 parser/parse_utilcmd.c:3649 parser/parse_utilcmd.c:4210 utils/adt/misc.c:503
 #, c-format
 msgid "collations are not supported by type %s"
 msgstr "les collationnements ne sont pas supportés par le type %s"
 
-#: commands/indexcmds.c:1739
+#: commands/indexcmds.c:1860
 #, c-format
 msgid "operator %s is not commutative"
 msgstr "l'opérateur %s n'est pas commutatif"
 
-#: commands/indexcmds.c:1741
+#: commands/indexcmds.c:1862
 #, c-format
 msgid "Only commutative operators can be used in exclusion constraints."
 msgstr "Seuls les opérateurs commutatifs peuvent être utilisés dans les contraintes d'exclusion."
 
-#: commands/indexcmds.c:1767
+#: commands/indexcmds.c:1888
 #, c-format
 msgid "operator %s is not a member of operator family \"%s\""
 msgstr "l'opérateur %s n'est pas un membre de la famille d'opérateur « %s »"
 
-#: commands/indexcmds.c:1770
+#: commands/indexcmds.c:1891
 #, c-format
 msgid "The exclusion operator must be related to the index operator class for the constraint."
 msgstr ""
 "L'opérateur d'exclusion doit être en relation avec la classe d'opérateur de\n"
 "l'index pour la contrainte."
 
-#: commands/indexcmds.c:1805
+#: commands/indexcmds.c:1926
 #, c-format
 msgid "access method \"%s\" does not support ASC/DESC options"
 msgstr "la méthode d'accès « %s » ne supporte pas les options ASC/DESC"
 
-#: commands/indexcmds.c:1810
+#: commands/indexcmds.c:1931
 #, c-format
 msgid "access method \"%s\" does not support NULLS FIRST/LAST options"
 msgstr "la méthode d'accès « %s » ne supporte pas les options NULLS FIRST/LAST"
 
-#: commands/indexcmds.c:1870 commands/tablecmds.c:15269 commands/tablecmds.c:15275 commands/typecmds.c:1981
+#: commands/indexcmds.c:1977 commands/tablecmds.c:16067 commands/tablecmds.c:16073 commands/typecmds.c:1945
 #, c-format
 msgid "data type %s has no default operator class for access method \"%s\""
 msgstr ""
 "le type de données %s n'a pas de classe d'opérateurs par défaut pour la\n"
 "méthode d'accès « %s »"
 
-#: commands/indexcmds.c:1872
+#: commands/indexcmds.c:1979
 #, c-format
 msgid "You must specify an operator class for the index or define a default operator class for the data type."
 msgstr ""
 "Vous devez spécifier une classe d'opérateur pour l'index ou définir une\n"
 "classe d'opérateur par défaut pour le type de données."
 
-#: commands/indexcmds.c:1901 commands/indexcmds.c:1909 commands/opclasscmds.c:208
+#: commands/indexcmds.c:2008 commands/indexcmds.c:2016 commands/opclasscmds.c:208
 #, c-format
 msgid "operator class \"%s\" does not exist for access method \"%s\""
 msgstr "la classe d'opérateur « %s » n'existe pas pour la méthode d'accès « %s »"
 
-#: commands/indexcmds.c:1923 commands/typecmds.c:1969
+#: commands/indexcmds.c:2030 commands/typecmds.c:1933
 #, c-format
 msgid "operator class \"%s\" does not accept data type %s"
 msgstr "la classe d'opérateur « %s » n'accepte pas le type de données %s"
 
-#: commands/indexcmds.c:2013
+#: commands/indexcmds.c:2120
 #, c-format
 msgid "there are multiple default operator classes for data type %s"
 msgstr ""
 "il existe de nombreuses classes d'opérateur par défaut pour le type de\n"
 "données %s"
 
-#: commands/indexcmds.c:2450
+#: commands/indexcmds.c:2569
 #, c-format
 msgid "table \"%s\" has no indexes that can be reindexed concurrently"
 msgstr "la table « %s » n'a pas d'index qui puisse être réindexé concuremment"
 
-#: commands/indexcmds.c:2461
+#: commands/indexcmds.c:2580
 #, c-format
 msgid "table \"%s\" has no indexes to reindex"
 msgstr "la table « %s » n'a pas d'index à réindexer"
 
-#: commands/indexcmds.c:2500 commands/indexcmds.c:2768 commands/indexcmds.c:2861
+#: commands/indexcmds.c:2619 commands/indexcmds.c:2893 commands/indexcmds.c:2986
 #, c-format
 msgid "cannot reindex system catalogs concurrently"
 msgstr "ne peut pas réindexer les catalogues système de manière concurrente"
 
-#: commands/indexcmds.c:2523
+#: commands/indexcmds.c:2642
 #, c-format
 msgid "can only reindex the currently open database"
 msgstr "peut seulement réindexer la base de données en cours"
 
-#: commands/indexcmds.c:2614
+#: commands/indexcmds.c:2733
 #, c-format
 msgid "cannot reindex system catalogs concurrently, skipping all"
 msgstr "ne peut pas réindexer les catalogues système de manière concurrente, ignore tout"
 
-#: commands/indexcmds.c:2666 commands/indexcmds.c:3303
+#: commands/indexcmds.c:2785 commands/indexcmds.c:3466
 #, c-format
 msgid "table \"%s.%s\" was reindexed"
 msgstr "la table « %s.%s » a été réindexée"
 
-#: commands/indexcmds.c:2783 commands/indexcmds.c:2829
+#: commands/indexcmds.c:2908 commands/indexcmds.c:2954
 #, c-format
 msgid "cannot reindex invalid index \"%s.%s\" concurrently, skipping"
 msgstr "ne peut pas réindexer l'index invalide « %s.%s » de manière concurrente, ignoré"
 
-#: commands/indexcmds.c:2789
+#: commands/indexcmds.c:2914
 #, c-format
 msgid "cannot reindex exclusion constraint index \"%s.%s\" concurrently, skipping"
 msgstr "ne peut pas réindexer l'index de contrainte d'exclusion « %s.%s » de manière concurrente, ignoré"
 
-#: commands/indexcmds.c:2889
+#: commands/indexcmds.c:2996
+#, c-format
+msgid "cannot reindex invalid index on TOAST table concurrently"
+msgstr "ne peut pas réindexer un index invalide sur une table TOAST de manière concurrente"
+
+#: commands/indexcmds.c:3024
 #, c-format
 msgid "cannot reindex this type of relation concurrently"
 msgstr "ne peut pas réindexer ce type de relation de manière concurrente"
 
-#: commands/indexcmds.c:3285 commands/indexcmds.c:3296
+#: commands/indexcmds.c:3448 commands/indexcmds.c:3459
 #, c-format
 msgid "index \"%s.%s\" was reindexed"
 msgstr "l'index « %s.%s » a été réindexé"
 
-#: commands/indexcmds.c:3328
+#: commands/indexcmds.c:3491
 #, c-format
 msgid "REINDEX is not yet implemented for partitioned indexes"
 msgstr "REINDEX n'est pas implémenté pour des index partitionnés"
 
-#: commands/lockcmds.c:102 commands/tablecmds.c:5176 commands/trigger.c:313 rewrite/rewriteDefine.c:271 rewrite/rewriteDefine.c:928
+#: commands/lockcmds.c:91 commands/tablecmds.c:5629 commands/trigger.c:295 rewrite/rewriteDefine.c:271 rewrite/rewriteDefine.c:928
 #, c-format
 msgid "\"%s\" is not a table or view"
 msgstr "« %s » n'est ni une table ni une vue"
 
-#: commands/lockcmds.c:235 rewrite/rewriteHandler.c:1974 rewrite/rewriteHandler.c:3707
+#: commands/lockcmds.c:213 rewrite/rewriteHandler.c:1977 rewrite/rewriteHandler.c:3782
 #, c-format
 msgid "infinite recursion detected in rules for relation \"%s\""
 msgstr "récursion infinie détectée dans les règles de la relation « %s »"
@@ -7662,12 +7846,12 @@ msgstr "ne peut pas rafraîchir de manière concurrente la vue matérialisée «
 msgid "Create a unique index with no WHERE clause on one or more columns of the materialized view."
 msgstr "Crée un index unique sans clause WHERE sur une ou plusieurs colonnes de la vue matérialisée."
 
-#: commands/matview.c:645
+#: commands/matview.c:641
 #, c-format
 msgid "new data for materialized view \"%s\" contains duplicate rows without any null columns"
 msgstr "les nouvelles données pour la vue matérialisée « %s » contiennent des lignes dupliquées sans colonnes NULL"
 
-#: commands/matview.c:647
+#: commands/matview.c:643
 #, c-format
 msgid "Row: %s"
 msgstr "Ligne : %s"
@@ -7682,229 +7866,272 @@ msgstr "la famille d'opérateur « %s » n'existe pas pour la méthode d'accès
 msgid "operator family \"%s\" for access method \"%s\" already exists"
 msgstr "la famille d'opérateur « %s » existe déjà pour la méthode d'accès « %s »"
 
-#: commands/opclasscmds.c:412
+#: commands/opclasscmds.c:414
 #, c-format
 msgid "must be superuser to create an operator class"
 msgstr "doit être super-utilisateur pour créer une classe d'opérateur"
 
-#: commands/opclasscmds.c:485 commands/opclasscmds.c:864 commands/opclasscmds.c:988
+#: commands/opclasscmds.c:487 commands/opclasscmds.c:869 commands/opclasscmds.c:993
 #, c-format
 msgid "invalid operator number %d, must be between 1 and %d"
 msgstr "numéro d'opérateur %d invalide, doit être compris entre 1 et %d"
 
-#: commands/opclasscmds.c:529 commands/opclasscmds.c:908 commands/opclasscmds.c:1003
+#: commands/opclasscmds.c:531 commands/opclasscmds.c:913 commands/opclasscmds.c:1008
 #, c-format
 msgid "invalid function number %d, must be between 1 and %d"
 msgstr "numéro de fonction %d invalide, doit être compris entre 1 et %d"
 
-#: commands/opclasscmds.c:558
+#: commands/opclasscmds.c:559
 #, c-format
 msgid "storage type specified more than once"
 msgstr "type de stockage spécifié plus d'une fois"
 
-#: commands/opclasscmds.c:585
+#: commands/opclasscmds.c:586
 #, c-format
 msgid "storage type cannot be different from data type for access method \"%s\""
 msgstr ""
 "le type de stockage ne peut pas être différent du type de données pour la\n"
 "méthode d'accès « %s »"
 
-#: commands/opclasscmds.c:601
+#: commands/opclasscmds.c:602
 #, c-format
 msgid "operator class \"%s\" for access method \"%s\" already exists"
 msgstr "la classe d'opérateur « %s » existe déjà pour la méthode d'accès « %s »"
 
-#: commands/opclasscmds.c:629
+#: commands/opclasscmds.c:630
 #, c-format
 msgid "could not make operator class \"%s\" be default for type %s"
 msgstr "n'a pas pu rendre la classe d'opérateur « %s » par défaut pour le type %s"
 
-#: commands/opclasscmds.c:632
+#: commands/opclasscmds.c:633
 #, c-format
 msgid "Operator class \"%s\" already is the default."
 msgstr "La classe d'opérateur « %s » est déjà la classe par défaut."
 
-#: commands/opclasscmds.c:760
+#: commands/opclasscmds.c:761
 #, c-format
 msgid "must be superuser to create an operator family"
 msgstr "doit être super-utilisateur pour créer une famille d'opérateur"
 
-#: commands/opclasscmds.c:818
+#: commands/opclasscmds.c:821
 #, c-format
 msgid "must be superuser to alter an operator family"
 msgstr "doit être super-utilisateur pour modifier une famille d'opérateur"
 
-#: commands/opclasscmds.c:873
+#: commands/opclasscmds.c:878
 #, c-format
 msgid "operator argument types must be specified in ALTER OPERATOR FAMILY"
 msgstr ""
 "les types d'argument de l'opérateur doivent être indiqués dans ALTER\n"
 "OPERATOR FAMILY"
 
-#: commands/opclasscmds.c:936
+#: commands/opclasscmds.c:941
 #, c-format
 msgid "STORAGE cannot be specified in ALTER OPERATOR FAMILY"
 msgstr "STORAGE ne peut pas être spécifié dans ALTER OPERATOR FAMILY"
 
-#: commands/opclasscmds.c:1058
+#: commands/opclasscmds.c:1063
 #, c-format
 msgid "one or two argument types must be specified"
 msgstr "un ou deux types d'argument doit être spécifié"
 
-#: commands/opclasscmds.c:1084
+#: commands/opclasscmds.c:1089
 #, c-format
 msgid "index operators must be binary"
 msgstr "les opérateurs d'index doivent être binaires"
 
-#: commands/opclasscmds.c:1103
+#: commands/opclasscmds.c:1108
 #, c-format
 msgid "access method \"%s\" does not support ordering operators"
 msgstr "la méthode d'accès « %s » ne supporte pas les opérateurs de tri"
 
-#: commands/opclasscmds.c:1114
+#: commands/opclasscmds.c:1119
 #, c-format
 msgid "index search operators must return boolean"
 msgstr "les opérateurs de recherche d'index doivent renvoyer un booléen"
 
-#: commands/opclasscmds.c:1158
+#: commands/opclasscmds.c:1159
+#, c-format
+msgid "associated data types for operator class options parsing functions must match opclass input type"
+msgstr ""
+
+#: commands/opclasscmds.c:1166
+#, fuzzy, c-format
+#| msgid "strictness of aggregate's forward and inverse transition functions must match"
+msgid "left and right associated data types for operator class options parsing functions must match"
+msgstr "la fonction de transition d'agrégat en déplacement ne doit pas renvoyer null"
+
+#: commands/opclasscmds.c:1174
+#, fuzzy, c-format
+#| msgid "brin operator class \"%s\" is missing support function %d"
+msgid "invalid operator class options parsing function"
+msgstr "la classe d'opérateur brin « %s » nécessite la fonction de support %d"
+
+#: commands/opclasscmds.c:1175
+#, fuzzy, c-format
+#| msgid "gist operator class \"%s\" is missing support function %d"
+msgid "Valid signature of operator class options parsing function is %s."
+msgstr "la famille d'opérateur gist « %s » nécessite la fonction de support %d"
+
+#: commands/opclasscmds.c:1194
 #, c-format
 msgid "btree comparison functions must have two arguments"
 msgstr "les fonctions de comparaison btree doivent avoir deux arguments"
 
-#: commands/opclasscmds.c:1162
+#: commands/opclasscmds.c:1198
 #, c-format
 msgid "btree comparison functions must return integer"
 msgstr "les fonctions de comparaison btree doivent renvoyer un entier"
 
-#: commands/opclasscmds.c:1179
+#: commands/opclasscmds.c:1215
 #, c-format
 msgid "btree sort support functions must accept type \"internal\""
 msgstr "les fonctions de support de tri btree doivent accepter le type « internal »"
 
-#: commands/opclasscmds.c:1183
+#: commands/opclasscmds.c:1219
 #, c-format
 msgid "btree sort support functions must return void"
 msgstr "les fonctions de support de tri btree doivent renvoyer void"
 
-#: commands/opclasscmds.c:1194
+#: commands/opclasscmds.c:1230
 #, c-format
 msgid "btree in_range functions must have five arguments"
 msgstr "les fonctions in_range btree doivent avoir cinq arguments"
 
-#: commands/opclasscmds.c:1198
+#: commands/opclasscmds.c:1234
 #, c-format
 msgid "btree in_range functions must return boolean"
 msgstr "les fonctions in_range btree doivent retourner un booléen"
 
-#: commands/opclasscmds.c:1217
+#: commands/opclasscmds.c:1250
+#, c-format
+msgid "btree equal image functions must have one argument"
+msgstr "les fonctions d'égalité d'image btree doivent avoir un argument"
+
+#: commands/opclasscmds.c:1254
+#, c-format
+msgid "btree equal image functions must return boolean"
+msgstr "les fonctions d'égalité d'image btree doivent retourner un booléen"
+
+#: commands/opclasscmds.c:1267
+#, c-format
+msgid "btree equal image functions must not be cross-type"
+msgstr "les fonctions d'égalité d'image btree ne doivent pas être inter-types"
+
+#: commands/opclasscmds.c:1277
 #, c-format
 msgid "hash function 1 must have one argument"
 msgstr "la fonctions de hashage 1 doit avoir un argument"
 
-#: commands/opclasscmds.c:1221
+#: commands/opclasscmds.c:1281
 #, c-format
 msgid "hash function 1 must return integer"
 msgstr "la fonctions de hashage 1 doit retourner un integer"
 
-#: commands/opclasscmds.c:1228
+#: commands/opclasscmds.c:1288
 #, c-format
 msgid "hash function 2 must have two arguments"
 msgstr "la fonctions de hashage 1 doit avoir deux argument"
 
-#: commands/opclasscmds.c:1232
+#: commands/opclasscmds.c:1292
 #, c-format
 msgid "hash function 2 must return bigint"
 msgstr "la fonctions de hashage 2 doit retourner un bigint"
 
-#: commands/opclasscmds.c:1257
+#: commands/opclasscmds.c:1317
 #, c-format
 msgid "associated data types must be specified for index support function"
 msgstr "les types de données associés doivent être indiqués pour la fonction de support de l'index"
 
-#: commands/opclasscmds.c:1282
+#: commands/opclasscmds.c:1342
 #, c-format
 msgid "function number %d for (%s,%s) appears more than once"
 msgstr "le numéro de fonction %d pour (%s, %s) apparaît plus d'une fois"
 
-#: commands/opclasscmds.c:1289
+#: commands/opclasscmds.c:1349
 #, c-format
 msgid "operator number %d for (%s,%s) appears more than once"
 msgstr "le numéro d'opérateur %d pour (%s, %s) apparaît plus d'une fois"
 
-#: commands/opclasscmds.c:1338
+#: commands/opclasscmds.c:1398
 #, c-format
 msgid "operator %d(%s,%s) already exists in operator family \"%s\""
 msgstr "l'opérateur %d(%s, %s) existe déjà dans la famille d'opérateur « %s »"
 
-#: commands/opclasscmds.c:1455
+#: commands/opclasscmds.c:1515
 #, c-format
 msgid "function %d(%s,%s) already exists in operator family \"%s\""
 msgstr "la fonction %d(%s, %s) existe déjà dans la famille d'opérateur « %s »"
 
-#: commands/opclasscmds.c:1546
+#: commands/opclasscmds.c:1606
 #, c-format
 msgid "operator %d(%s,%s) does not exist in operator family \"%s\""
 msgstr "l'opérateur %d(%s, %s) n'existe pas dans la famille d'opérateur « %s »"
 
-#: commands/opclasscmds.c:1586
+#: commands/opclasscmds.c:1646
 #, c-format
 msgid "function %d(%s,%s) does not exist in operator family \"%s\""
 msgstr "la fonction %d(%s, %s) n'existe pas dans la famille d'opérateur « %s »"
 
-#: commands/opclasscmds.c:1716
+#: commands/opclasscmds.c:1776
 #, c-format
 msgid "operator class \"%s\" for access method \"%s\" already exists in schema \"%s\""
 msgstr ""
 "la classe d'opérateur « %s » de la méthode d'accès « %s » existe déjà dans\n"
 "le schéma « %s »"
 
-#: commands/opclasscmds.c:1739
+#: commands/opclasscmds.c:1799
 #, c-format
 msgid "operator family \"%s\" for access method \"%s\" already exists in schema \"%s\""
 msgstr ""
 "la famille d'opérateur « %s » de la méthode d'accès « %s » existe déjà dans\n"
 "le schéma « %s »"
 
-#: commands/operatorcmds.c:113 commands/operatorcmds.c:121
+#: commands/operatorcmds.c:111 commands/operatorcmds.c:119
 #, c-format
 msgid "SETOF type not allowed for operator argument"
 msgstr "type SETOF non autorisé pour l'argument de l'opérateur"
 
-#: commands/operatorcmds.c:154 commands/operatorcmds.c:457
+#: commands/operatorcmds.c:152 commands/operatorcmds.c:467
 #, c-format
 msgid "operator attribute \"%s\" not recognized"
 msgstr "l'attribut « %s » de l'opérateur n'est pas reconnu"
 
-#: commands/operatorcmds.c:165
+#: commands/operatorcmds.c:163
 #, c-format
 msgid "operator function must be specified"
 msgstr "la fonction d'opérateur doit être spécifiée"
 
-#: commands/operatorcmds.c:176
+#: commands/operatorcmds.c:174
 #, c-format
 msgid "at least one of leftarg or rightarg must be specified"
 msgstr "au moins un des arguments (le gauche ou le droit) doit être spécifié"
 
-#: commands/operatorcmds.c:280
+#: commands/operatorcmds.c:278
 #, c-format
 msgid "restriction estimator function %s must return type %s"
 msgstr ""
 "la fonction d'estimation de la restriction, de nom %s, doit renvoyer le type\n"
 "%s"
 
-#: commands/operatorcmds.c:326
+#: commands/operatorcmds.c:321
+#, c-format
+msgid "join estimator function %s has multiple matches"
+msgstr "la fonction d'estimation de la jointure, de nom %s, a plusieurs correspondances"
+
+#: commands/operatorcmds.c:336
 #, c-format
 msgid "join estimator function %s must return type %s"
 msgstr ""
 "la fonction d'estimation de la jointure, de nom %s, doit renvoyer le type\n"
 "%s"
 
-#: commands/operatorcmds.c:451
+#: commands/operatorcmds.c:461
 #, c-format
 msgid "operator attribute \"%s\" cannot be changed"
 msgstr "l'attribut « %s » de l'opérateur ne peut pas être changé"
 
-#: commands/policy.c:88 commands/policy.c:401 commands/policy.c:491 commands/tablecmds.c:1451 commands/tablecmds.c:1933 commands/tablecmds.c:2906 commands/tablecmds.c:5155 commands/tablecmds.c:7657 commands/tablecmds.c:14843 commands/tablecmds.c:14878 commands/trigger.c:319 commands/trigger.c:1544 commands/trigger.c:1653 rewrite/rewriteDefine.c:277 rewrite/rewriteDefine.c:933
+#: commands/policy.c:88 commands/policy.c:401 commands/policy.c:491 commands/tablecmds.c:1512 commands/tablecmds.c:1994 commands/tablecmds.c:3076 commands/tablecmds.c:5608 commands/tablecmds.c:8395 commands/tablecmds.c:15632 commands/tablecmds.c:15667 commands/trigger.c:301 commands/trigger.c:1206 commands/trigger.c:1315 rewrite/rewriteDefine.c:277 rewrite/rewriteDefine.c:933 rewrite/rewriteRemove.c:80
 #, c-format
 msgid "permission denied: \"%s\" is a system catalog"
 msgstr "droit refusé : « %s » est un catalogue système"
@@ -7934,12 +8161,12 @@ msgstr "WITH CHECK ne peut pas être appliqué à SELECT et DELETE"
 msgid "only WITH CHECK expression allowed for INSERT"
 msgstr "seule une expression WITH CHECK est autorisée pour INSERT"
 
-#: commands/policy.c:808 commands/policy.c:1260
+#: commands/policy.c:808 commands/policy.c:1261
 #, c-format
 msgid "policy \"%s\" for table \"%s\" already exists"
 msgstr "la politique « %s » pour la table « %s » existe déjà"
 
-#: commands/policy.c:1010 commands/policy.c:1288 commands/policy.c:1359
+#: commands/policy.c:1010 commands/policy.c:1289 commands/policy.c:1360
 #, c-format
 msgid "policy \"%s\" for table \"%s\" does not exist"
 msgstr "la politique « %s » pour la table « %s » n'existe pas"
@@ -7949,151 +8176,134 @@ msgstr "la politique « %s » pour la table « %s » n'existe pas"
 msgid "only USING expression allowed for SELECT, DELETE"
 msgstr "seule une expression USING est autorisée pour SELECT, DELETE"
 
-#: commands/portalcmds.c:58 commands/portalcmds.c:182 commands/portalcmds.c:234
+#: commands/portalcmds.c:59 commands/portalcmds.c:182 commands/portalcmds.c:233
 #, c-format
 msgid "invalid cursor name: must not be empty"
 msgstr "nom de curseur invalide : il ne doit pas être vide"
 
-#: commands/portalcmds.c:190 commands/portalcmds.c:244 executor/execCurrent.c:70 utils/adt/xml.c:2608 utils/adt/xml.c:2778
+#: commands/portalcmds.c:190 commands/portalcmds.c:243 executor/execCurrent.c:70 utils/adt/xml.c:2594 utils/adt/xml.c:2764
 #, c-format
 msgid "cursor \"%s\" does not exist"
 msgstr "le curseur « %s » n'existe pas"
 
-#: commands/prepare.c:75
+#: commands/prepare.c:76
 #, c-format
 msgid "invalid statement name: must not be empty"
 msgstr "nom de l'instruction invalide : ne doit pas être vide"
 
-#: commands/prepare.c:141 parser/parse_param.c:304 tcop/postgres.c:1468
+#: commands/prepare.c:134 parser/parse_param.c:304 tcop/postgres.c:1498
 #, c-format
 msgid "could not determine data type of parameter $%d"
 msgstr "n'a pas pu déterminer le type de données du paramètre $%d"
 
-#: commands/prepare.c:159
+#: commands/prepare.c:152
 #, c-format
 msgid "utility statements cannot be prepared"
 msgstr "les instructions utilitaires ne peuvent pas être préparées"
 
-#: commands/prepare.c:269 commands/prepare.c:274
+#: commands/prepare.c:256 commands/prepare.c:261
 #, c-format
 msgid "prepared statement is not a SELECT"
 msgstr "l'instruction préparée n'est pas un SELECT"
 
-#: commands/prepare.c:342
+#: commands/prepare.c:328
 #, c-format
 msgid "wrong number of parameters for prepared statement \"%s\""
 msgstr "mauvais nombre de paramètres pour l'instruction préparée « %s »"
 
-#: commands/prepare.c:344
+#: commands/prepare.c:330
 #, c-format
 msgid "Expected %d parameters but got %d."
 msgstr "%d paramètres attendus mais %d reçus."
 
-#: commands/prepare.c:380
+#: commands/prepare.c:363
 #, c-format
 msgid "parameter $%d of type %s cannot be coerced to the expected type %s"
 msgstr ""
 "le paramètre $%d de type %s ne peut être utilisé dans la coercion à cause du\n"
 "type %s attendu"
 
-#: commands/prepare.c:465
+#: commands/prepare.c:449
 #, c-format
 msgid "prepared statement \"%s\" already exists"
 msgstr "l'instruction préparée « %s » existe déjà"
 
-#: commands/prepare.c:504
+#: commands/prepare.c:488
 #, c-format
 msgid "prepared statement \"%s\" does not exist"
 msgstr "l'instruction préparée « %s » n'existe pas"
 
-#: commands/proclang.c:85
-#, c-format
-msgid "using pg_pltemplate information instead of CREATE LANGUAGE parameters"
-msgstr ""
-"utilisation des informations de pg_pltemplate au lieu des paramètres de\n"
-"CREATE LANGUAGE"
-
-#: commands/proclang.c:95
-#, c-format
-msgid "must be superuser to create procedural language \"%s\""
-msgstr "doit être super-utilisateur pour créer le langage de procédures « %s »"
-
-#: commands/proclang.c:250
-#, c-format
-msgid "unsupported language \"%s\""
-msgstr "langage non supporté « %s »"
-
-#: commands/proclang.c:252
-#, c-format
-msgid "The supported languages are listed in the pg_pltemplate system catalog."
-msgstr "Les langages supportés sont listés dans le catalogue système pg_pltemplate."
-
-#: commands/proclang.c:260
+#: commands/proclang.c:67
 #, c-format
 msgid "must be superuser to create custom procedural language"
 msgstr "doit être super-utilisateur pour créer un langage de procédures personnalisé"
 
-#: commands/proclang.c:279 commands/trigger.c:711 commands/typecmds.c:458 commands/typecmds.c:475
-#, c-format
-msgid "changing return type of function %s from %s to %s"
-msgstr "changement du type de retour de la fonction %s de %s vers %s"
-
-#: commands/publicationcmds.c:108
+#: commands/publicationcmds.c:107
 #, c-format
 msgid "invalid list syntax for \"publish\" option"
 msgstr "syntaxe de liste invalide pour l'option « publish »"
 
-#: commands/publicationcmds.c:126
+#: commands/publicationcmds.c:125
 #, c-format
 msgid "unrecognized \"publish\" value: \"%s\""
 msgstr "type « publish » non reconnu : « %s »"
 
-#: commands/publicationcmds.c:132
+#: commands/publicationcmds.c:140
 #, c-format
 msgid "unrecognized publication parameter: \"%s\""
 msgstr "paramètre de publication non reconnu : « %s »"
 
-#: commands/publicationcmds.c:165
+#: commands/publicationcmds.c:172
 #, c-format
 msgid "must be superuser to create FOR ALL TABLES publication"
 msgstr "doit être super-utilisateur pour créer une publication « FOR ALL TABLES »"
 
-#: commands/publicationcmds.c:341
+#: commands/publicationcmds.c:248
+#, c-format
+msgid "wal_level is insufficient to publish logical changes"
+msgstr ""
+
+#: commands/publicationcmds.c:249
+#, c-format
+msgid "Set wal_level to logical before creating subscriptions."
+msgstr "Configurez wal_level à la valeur logical pour créer des souscriptions."
+
+#: commands/publicationcmds.c:369
 #, c-format
 msgid "publication \"%s\" is defined as FOR ALL TABLES"
 msgstr "la publication « %s » est définie avec FOR ALL TABLES"
 
-#: commands/publicationcmds.c:343
+#: commands/publicationcmds.c:371
 #, c-format
 msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications."
 msgstr "Les tables ne peuvent pas être ajoutées ou supprimées à des publications FOR ALL TABLES."
 
-#: commands/publicationcmds.c:648
+#: commands/publicationcmds.c:683
 #, c-format
 msgid "relation \"%s\" is not part of the publication"
 msgstr "la relation « %s » ne fait pas partie de la publication"
 
-#: commands/publicationcmds.c:691
+#: commands/publicationcmds.c:726
 #, c-format
 msgid "permission denied to change owner of publication \"%s\""
 msgstr "droit refusé pour modifier le propriétaire de la publication « %s »"
 
-#: commands/publicationcmds.c:693
+#: commands/publicationcmds.c:728
 #, c-format
 msgid "The owner of a FOR ALL TABLES publication must be a superuser."
 msgstr "Le propriétaire d'une publication FOR ALL TABLES doit être un super-utilisateur."
 
-#: commands/schemacmds.c:106 commands/schemacmds.c:282
+#: commands/schemacmds.c:105 commands/schemacmds.c:281
 #, c-format
 msgid "unacceptable schema name \"%s\""
 msgstr "nom de schéma « %s » inacceptable"
 
-#: commands/schemacmds.c:107 commands/schemacmds.c:283
+#: commands/schemacmds.c:106 commands/schemacmds.c:282
 #, c-format
 msgid "The prefix \"pg_\" is reserved for system schemas."
 msgstr "Le préfixe « pg_ » est réservé pour les schémas système."
 
-#: commands/schemacmds.c:121
+#: commands/schemacmds.c:120
 #, c-format
 msgid "schema \"%s\" already exists, skipping"
 msgstr "la schéma « %s » existe déjà, poursuite du traitement"
@@ -8235,514 +8445,567 @@ msgstr "la séquence doit être dans le même schéma que la table avec laquelle
 msgid "cannot change ownership of identity sequence"
 msgstr "ne peut pas modifier le propriétaire de la séquence d'identité"
 
-#: commands/sequence.c:1718 commands/tablecmds.c:11745 commands/tablecmds.c:14255
+#: commands/sequence.c:1718 commands/tablecmds.c:12544 commands/tablecmds.c:15058
 #, c-format
 msgid "Sequence \"%s\" is linked to table \"%s\"."
 msgstr "La séquence « %s » est liée à la table « %s »."
 
-#: commands/statscmds.c:101 commands/statscmds.c:110
+#: commands/statscmds.c:104 commands/statscmds.c:113
 #, c-format
 msgid "only a single relation is allowed in CREATE STATISTICS"
 msgstr "seule une relation seule est acceptée dans CREATE STATISTICS"
 
-#: commands/statscmds.c:128
+#: commands/statscmds.c:131
 #, c-format
 msgid "relation \"%s\" is not a table, foreign table, or materialized view"
 msgstr "la relation « %s » n'est pas une table, une table distante ou une vue matérialisée"
 
-#: commands/statscmds.c:171
+#: commands/statscmds.c:174
 #, c-format
 msgid "statistics object \"%s\" already exists, skipping"
 msgstr "l'objet statistique « %s » existe déjà, poursuite du traitement"
 
-#: commands/statscmds.c:179
+#: commands/statscmds.c:182
 #, c-format
 msgid "statistics object \"%s\" already exists"
 msgstr "l'objet statistique « %s » existe déjà"
 
-#: commands/statscmds.c:201 commands/statscmds.c:207
+#: commands/statscmds.c:204 commands/statscmds.c:210
 #, c-format
 msgid "only simple column references are allowed in CREATE STATISTICS"
 msgstr "seules des références à une seule colonne sont acceptées dans CREATE STATISTICS"
 
-#: commands/statscmds.c:222
+#: commands/statscmds.c:225
 #, c-format
 msgid "statistics creation on system columns is not supported"
 msgstr "la création de statistiques sur les colonnes systèmes n'est pas supportée"
 
-#: commands/statscmds.c:229
+#: commands/statscmds.c:232
 #, c-format
 msgid "column \"%s\" cannot be used in statistics because its type %s has no default btree operator class"
 msgstr "la colonne « %s » ne peut pas être utilisé dans des statistiques parce que son type %s n'a pas de classe d'opérateur btree par défaut"
 
-#: commands/statscmds.c:236
+#: commands/statscmds.c:239
 #, c-format
 msgid "cannot have more than %d columns in statistics"
 msgstr "ne peut pas avoir plus de %d colonnes dans des statistiques"
 
-#: commands/statscmds.c:251
+#: commands/statscmds.c:254
 #, c-format
 msgid "extended statistics require at least 2 columns"
 msgstr "les statistiques étendues requièrent au moins 2 colonnes"
 
-#: commands/statscmds.c:269
+#: commands/statscmds.c:272
 #, c-format
 msgid "duplicate column name in statistics definition"
 msgstr "nom de colonne dupliqué dans la définition des statistiques"
 
-#: commands/statscmds.c:303
+#: commands/statscmds.c:306
 #, c-format
 msgid "unrecognized statistics kind \"%s\""
 msgstr "type de statistique « %s » non reconnu"
 
-#: commands/subscriptioncmds.c:188
+#: commands/statscmds.c:444 commands/tablecmds.c:7416
+#, c-format
+msgid "statistics target %d is too low"
+msgstr "la cible statistique %d est trop basse"
+
+#: commands/statscmds.c:452 commands/tablecmds.c:7424
+#, c-format
+msgid "lowering statistics target to %d"
+msgstr "abaissement de la cible statistique à %d"
+
+#: commands/statscmds.c:475
+#, c-format
+msgid "statistics object \"%s.%s\" does not exist, skipping"
+msgstr "l'objet statistique « %s.%s » n'existe pas, poursuite du traitement"
+
+#: commands/subscriptioncmds.c:181
 #, c-format
 msgid "unrecognized subscription parameter: \"%s\""
 msgstr "paramètre de souscription non reconnu : « %s »"
 
 #. translator: both %s are strings of the form "option = value"
-#: commands/subscriptioncmds.c:202 commands/subscriptioncmds.c:208 commands/subscriptioncmds.c:214 commands/subscriptioncmds.c:233 commands/subscriptioncmds.c:239
+#: commands/subscriptioncmds.c:195 commands/subscriptioncmds.c:201 commands/subscriptioncmds.c:207 commands/subscriptioncmds.c:226 commands/subscriptioncmds.c:232
 #, c-format
 msgid "%s and %s are mutually exclusive options"
 msgstr "%s et %s sont des options mutuellement exclusives"
 
 #. translator: both %s are strings of the form "option = value"
-#: commands/subscriptioncmds.c:246 commands/subscriptioncmds.c:252
+#: commands/subscriptioncmds.c:239 commands/subscriptioncmds.c:245
 #, c-format
 msgid "subscription with %s must also set %s"
 msgstr "la souscription avec %s doit aussi configurer %s"
 
-#: commands/subscriptioncmds.c:294
+#: commands/subscriptioncmds.c:287
 #, c-format
 msgid "publication name \"%s\" used more than once"
 msgstr "nom de publication « %s » utilisé plus d'une fois"
 
-#: commands/subscriptioncmds.c:358
+#: commands/subscriptioncmds.c:351
 #, c-format
 msgid "must be superuser to create subscriptions"
 msgstr "doit être super-utilisateur pour créer des souscriptions"
 
-#: commands/subscriptioncmds.c:450 commands/subscriptioncmds.c:543 replication/logical/tablesync.c:846 replication/logical/worker.c:1704
+#: commands/subscriptioncmds.c:442 commands/subscriptioncmds.c:530 replication/logical/tablesync.c:857 replication/logical/worker.c:2096
 #, c-format
 msgid "could not connect to the publisher: %s"
 msgstr "n'a pas pu se connecter au publieur : %s"
 
-#: commands/subscriptioncmds.c:492
+#: commands/subscriptioncmds.c:484
 #, c-format
 msgid "created replication slot \"%s\" on publisher"
 msgstr "création du slot de réplication « %s » sur le publieur"
 
 #. translator: %s is an SQL ALTER statement
-#: commands/subscriptioncmds.c:510
+#: commands/subscriptioncmds.c:497
 #, c-format
 msgid "tables were not subscribed, you will have to run %s to subscribe the tables"
 msgstr "les tables n'étaient pas souscrites, vous devrez exécuter %s pour souscrire aux tables"
 
-#: commands/subscriptioncmds.c:599
+#: commands/subscriptioncmds.c:586
 #, c-format
 msgid "table \"%s.%s\" added to subscription \"%s\""
 msgstr "table « %s.%s » ajoutée à la souscription « %s »"
 
-#: commands/subscriptioncmds.c:623
+#: commands/subscriptioncmds.c:610
 #, c-format
 msgid "table \"%s.%s\" removed from subscription \"%s\""
 msgstr "table « %s.%s » supprimée de la souscription « %s »"
 
-#: commands/subscriptioncmds.c:695
+#: commands/subscriptioncmds.c:682
 #, c-format
 msgid "cannot set %s for enabled subscription"
 msgstr "ne peut définir %s pour une souscription active"
 
-#: commands/subscriptioncmds.c:730
+#: commands/subscriptioncmds.c:717
 #, c-format
 msgid "cannot enable subscription that does not have a slot name"
 msgstr "ne peut pas activer une souscription qui n'a pas de nom de slot"
 
-#: commands/subscriptioncmds.c:776
+#: commands/subscriptioncmds.c:763
 #, c-format
 msgid "ALTER SUBSCRIPTION with refresh is not allowed for disabled subscriptions"
 msgstr "ALTER SUBSCRIPTION avec rafraîchissement n'est pas autorisé pour les souscriptions désactivées"
 
-#: commands/subscriptioncmds.c:777
+#: commands/subscriptioncmds.c:764
 #, c-format
 msgid "Use ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)."
 msgstr "Utilisez ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)."
 
-#: commands/subscriptioncmds.c:795
+#: commands/subscriptioncmds.c:782
 #, c-format
 msgid "ALTER SUBSCRIPTION ... REFRESH is not allowed for disabled subscriptions"
 msgstr "ALTER SUBSCRIPTION ... REFRESH n'est pas autorisé pour les souscriptions désactivées"
 
-#: commands/subscriptioncmds.c:875
+#: commands/subscriptioncmds.c:862
 #, c-format
 msgid "subscription \"%s\" does not exist, skipping"
 msgstr "la souscription « %s » n'existe pas, poursuite du traitement"
 
-#: commands/subscriptioncmds.c:1001
+#: commands/subscriptioncmds.c:987
 #, c-format
 msgid "could not connect to publisher when attempting to drop the replication slot \"%s\""
 msgstr "n'a pas pu se connecter au publieur pour supprimer le slot de réplication « %s »"
 
-#: commands/subscriptioncmds.c:1003 commands/subscriptioncmds.c:1018 replication/logical/tablesync.c:895 replication/logical/tablesync.c:917
+#: commands/subscriptioncmds.c:989 commands/subscriptioncmds.c:1004 replication/logical/tablesync.c:906 replication/logical/tablesync.c:928
 #, c-format
 msgid "The error was: %s"
 msgstr "L'erreur était : %s"
 
 #. translator: %s is an SQL ALTER command
-#: commands/subscriptioncmds.c:1005
+#: commands/subscriptioncmds.c:991
 #, c-format
 msgid "Use %s to disassociate the subscription from the slot."
 msgstr "Utilisez %s pour dissocier la souscription du slot."
 
-#: commands/subscriptioncmds.c:1016
+#: commands/subscriptioncmds.c:1002
 #, c-format
 msgid "could not drop the replication slot \"%s\" on publisher"
 msgstr "n'a pas pu supprimer le slot de réplication « %s » sur le publieur"
 
-#: commands/subscriptioncmds.c:1021
+#: commands/subscriptioncmds.c:1007
 #, c-format
 msgid "dropped replication slot \"%s\" on publisher"
 msgstr "slot de réplication « %s » supprimé sur le publieur"
 
-#: commands/subscriptioncmds.c:1062
+#: commands/subscriptioncmds.c:1044
 #, c-format
 msgid "permission denied to change owner of subscription \"%s\""
 msgstr "droit refusé pour modifier le propriétaire de la souscription « %s »"
 
-#: commands/subscriptioncmds.c:1064
+#: commands/subscriptioncmds.c:1046
 #, c-format
 msgid "The owner of a subscription must be a superuser."
 msgstr "Le propriétaire d'une souscription doit être un super-utilisateur."
 
-#: commands/subscriptioncmds.c:1179
+#: commands/subscriptioncmds.c:1161
 #, c-format
 msgid "could not receive list of replicated tables from the publisher: %s"
 msgstr "n'a pas pu recevoir la liste des tables répliquées à partir du publieur : %s"
 
-#: commands/tablecmds.c:222 commands/tablecmds.c:264
+#: commands/tablecmds.c:228 commands/tablecmds.c:270
 #, c-format
 msgid "table \"%s\" does not exist"
 msgstr "la table « %s » n'existe pas"
 
-#: commands/tablecmds.c:223 commands/tablecmds.c:265
+#: commands/tablecmds.c:229 commands/tablecmds.c:271
 #, c-format
 msgid "table \"%s\" does not exist, skipping"
 msgstr "la table « %s » n'existe pas, poursuite du traitement"
 
-#: commands/tablecmds.c:225 commands/tablecmds.c:267
+#: commands/tablecmds.c:231 commands/tablecmds.c:273
 msgid "Use DROP TABLE to remove a table."
 msgstr "Utilisez DROP TABLE pour supprimer une table."
 
-#: commands/tablecmds.c:228
+#: commands/tablecmds.c:234
 #, c-format
 msgid "sequence \"%s\" does not exist"
 msgstr "la séquence « %s » n'existe pas"
 
-#: commands/tablecmds.c:229
+#: commands/tablecmds.c:235
 #, c-format
 msgid "sequence \"%s\" does not exist, skipping"
 msgstr "la séquence « %s » n'existe pas, poursuite du traitement"
 
-#: commands/tablecmds.c:231
+#: commands/tablecmds.c:237
 msgid "Use DROP SEQUENCE to remove a sequence."
 msgstr "Utilisez DROP SEQUENCE pour supprimer une séquence."
 
-#: commands/tablecmds.c:234
+#: commands/tablecmds.c:240
 #, c-format
 msgid "view \"%s\" does not exist"
 msgstr "la vue « %s » n'existe pas"
 
-#: commands/tablecmds.c:235
+#: commands/tablecmds.c:241
 #, c-format
 msgid "view \"%s\" does not exist, skipping"
 msgstr "la vue « %s » n'existe pas, poursuite du traitement"
 
-#: commands/tablecmds.c:237
+#: commands/tablecmds.c:243
 msgid "Use DROP VIEW to remove a view."
 msgstr "Utilisez DROP VIEW pour supprimer une vue."
 
-#: commands/tablecmds.c:240
+#: commands/tablecmds.c:246
 #, c-format
 msgid "materialized view \"%s\" does not exist"
 msgstr "la vue matérialisée « %s » n'existe pas"
 
-#: commands/tablecmds.c:241
+#: commands/tablecmds.c:247
 #, c-format
 msgid "materialized view \"%s\" does not exist, skipping"
 msgstr "la vue matérialisée « %s » n'existe pas, poursuite du traitement"
 
-#: commands/tablecmds.c:243
+#: commands/tablecmds.c:249
 msgid "Use DROP MATERIALIZED VIEW to remove a materialized view."
 msgstr "Utilisez DROP MATERIALIZED VIEW pour supprimer une vue matérialisée."
 
-#: commands/tablecmds.c:246 commands/tablecmds.c:270 commands/tablecmds.c:16377 parser/parse_utilcmd.c:2045
+#: commands/tablecmds.c:252 commands/tablecmds.c:276 commands/tablecmds.c:17231 parser/parse_utilcmd.c:2172
 #, c-format
 msgid "index \"%s\" does not exist"
 msgstr "l'index « %s » n'existe pas"
 
-#: commands/tablecmds.c:247 commands/tablecmds.c:271
+#: commands/tablecmds.c:253 commands/tablecmds.c:277
 #, c-format
 msgid "index \"%s\" does not exist, skipping"
 msgstr "l'index « %s » n'existe pas, poursuite du traitement"
 
-#: commands/tablecmds.c:249 commands/tablecmds.c:273
+#: commands/tablecmds.c:255 commands/tablecmds.c:279
 msgid "Use DROP INDEX to remove an index."
 msgstr "Utilisez DROP INDEX pour supprimer un index."
 
-#: commands/tablecmds.c:254
+#: commands/tablecmds.c:260
 #, c-format
 msgid "\"%s\" is not a type"
 msgstr "« %s » n'est pas un type"
 
-#: commands/tablecmds.c:255
+#: commands/tablecmds.c:261
 msgid "Use DROP TYPE to remove a type."
 msgstr "Utilisez DROP TYPE pour supprimer un type."
 
-#: commands/tablecmds.c:258 commands/tablecmds.c:11584 commands/tablecmds.c:14035
+#: commands/tablecmds.c:264 commands/tablecmds.c:12383 commands/tablecmds.c:14838
 #, c-format
 msgid "foreign table \"%s\" does not exist"
 msgstr "la table distante « %s » n'existe pas"
 
-#: commands/tablecmds.c:259
+#: commands/tablecmds.c:265
 #, c-format
 msgid "foreign table \"%s\" does not exist, skipping"
 msgstr "la table distante « %s » n'existe pas, poursuite du traitement"
 
-#: commands/tablecmds.c:261
+#: commands/tablecmds.c:267
 msgid "Use DROP FOREIGN TABLE to remove a foreign table."
 msgstr "Utilisez DROP FOREIGN TABLE pour supprimer une table distante."
 
-#: commands/tablecmds.c:592
+#: commands/tablecmds.c:620
 #, c-format
 msgid "ON COMMIT can only be used on temporary tables"
 msgstr "ON COMMIT peut seulement être utilisé sur des tables temporaires"
 
-#: commands/tablecmds.c:623
+#: commands/tablecmds.c:651
 #, c-format
 msgid "cannot create temporary table within security-restricted operation"
 msgstr ""
 "ne peut pas créer une table temporaire à l'intérieur d'une fonction\n"
 "restreinte pour sécurité"
 
-#: commands/tablecmds.c:659 commands/tablecmds.c:12939
+#: commands/tablecmds.c:687 commands/tablecmds.c:13742
 #, c-format
 msgid "relation \"%s\" would be inherited from more than once"
 msgstr "la relation « %s » serait héritée plus d'une fois"
 
-#: commands/tablecmds.c:833
+#: commands/tablecmds.c:868
 #, c-format
 msgid "specifying a table access method is not supported on a partitioned table"
 msgstr "spécifier une méthode d'accès à la table n'est pas supporté sur une partitionnée"
 
-#: commands/tablecmds.c:929
+#: commands/tablecmds.c:964
 #, c-format
 msgid "\"%s\" is not partitioned"
 msgstr "« %s » n'est pas partitionné"
 
-#: commands/tablecmds.c:1022
+#: commands/tablecmds.c:1058
 #, c-format
 msgid "cannot partition using more than %d columns"
 msgstr "ne peut pas partitionner en utilisant plus de %d colonnes"
 
-#: commands/tablecmds.c:1078
+#: commands/tablecmds.c:1114
 #, c-format
 msgid "cannot create foreign partition of partitioned table \"%s\""
 msgstr "ne peut pas créer une partition distante sur la table partitionnée « %s »"
 
-#: commands/tablecmds.c:1080
+#: commands/tablecmds.c:1116
 #, c-format
 msgid "Table \"%s\" contains indexes that are unique."
 msgstr "La table « %s » contient des index qui sont uniques."
 
-#: commands/tablecmds.c:1241
+#: commands/tablecmds.c:1279
 #, c-format
 msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects"
 msgstr "DROP INDEX CONCURRENTLY ne permet pas de supprimer plusieurs objets"
 
-#: commands/tablecmds.c:1245
+#: commands/tablecmds.c:1283
 #, c-format
 msgid "DROP INDEX CONCURRENTLY does not support CASCADE"
 msgstr "DROP INDEX CONCURRENTLY ne permet pas la CASCADE"
 
-#: commands/tablecmds.c:1587
+#: commands/tablecmds.c:1384
+#, c-format
+msgid "cannot drop partitioned index \"%s\" concurrently"
+msgstr "ne peut pas supprimer l'index partitionné « %s » de manière concurrente"
+
+#: commands/tablecmds.c:1654
 #, c-format
 msgid "cannot truncate only a partitioned table"
 msgstr "ne peut pas seulement tronquer une table partitionnée"
 
-#: commands/tablecmds.c:1588
+#: commands/tablecmds.c:1655
 #, c-format
 msgid "Do not specify the ONLY keyword, or use TRUNCATE ONLY on the partitions directly."
 msgstr "Ne spécifiez pas le mot clé ONLY ou utilisez TRUNCATE ONLY directement sur les partitions."
 
-#: commands/tablecmds.c:1657
+#: commands/tablecmds.c:1724
 #, c-format
 msgid "truncate cascades to table \"%s\""
 msgstr "TRUNCATE cascade sur la table « %s »"
 
-#: commands/tablecmds.c:1952
+#: commands/tablecmds.c:2031
 #, c-format
 msgid "cannot truncate temporary tables of other sessions"
 msgstr "ne peut pas tronquer les tables temporaires des autres sessions"
 
-#: commands/tablecmds.c:2178 commands/tablecmds.c:12836
+#: commands/tablecmds.c:2259 commands/tablecmds.c:13639
 #, c-format
 msgid "cannot inherit from partitioned table \"%s\""
 msgstr "ne peut pas hériter de la table partitionnée « %s »"
 
-#: commands/tablecmds.c:2183
+#: commands/tablecmds.c:2264
 #, c-format
 msgid "cannot inherit from partition \"%s\""
 msgstr "ne peut pas hériter de la partition « %s »"
 
-#: commands/tablecmds.c:2191 parser/parse_utilcmd.c:2269 parser/parse_utilcmd.c:2410
+#: commands/tablecmds.c:2272 parser/parse_utilcmd.c:2402 parser/parse_utilcmd.c:2544
 #, c-format
 msgid "inherited relation \"%s\" is not a table or foreign table"
 msgstr "la relation héritée « %s » n'est ni une table ni une table distante"
 
-#: commands/tablecmds.c:2203
+#: commands/tablecmds.c:2284
 #, c-format
 msgid "cannot create a temporary relation as partition of permanent relation \"%s\""
 msgstr "ne peut pas créer une relation temporaire comme partition de la relation permanente « %s »"
 
-#: commands/tablecmds.c:2212 commands/tablecmds.c:12815
+#: commands/tablecmds.c:2293 commands/tablecmds.c:13618
 #, c-format
 msgid "cannot inherit from temporary relation \"%s\""
 msgstr "ine peut pas hériter à partir d'une relation temporaire « %s »"
 
-#: commands/tablecmds.c:2222 commands/tablecmds.c:12823
+#: commands/tablecmds.c:2303 commands/tablecmds.c:13626
 #, c-format
 msgid "cannot inherit from temporary relation of another session"
 msgstr "ne peut pas hériter de la table temporaire d'une autre session"
 
-#: commands/tablecmds.c:2274
+#: commands/tablecmds.c:2357
 #, c-format
 msgid "merging multiple inherited definitions of column \"%s\""
 msgstr "assemblage de plusieurs définitions d'héritage pour la colonne « %s »"
 
-#: commands/tablecmds.c:2282
+#: commands/tablecmds.c:2365
 #, c-format
 msgid "inherited column \"%s\" has a type conflict"
 msgstr "la colonne héritée « %s » a un conflit de type"
 
-#: commands/tablecmds.c:2284 commands/tablecmds.c:2307 commands/tablecmds.c:2520 commands/tablecmds.c:2550 parser/parse_coerce.c:1721 parser/parse_coerce.c:1741 parser/parse_coerce.c:1761 parser/parse_coerce.c:1807 parser/parse_coerce.c:1846 parser/parse_param.c:218
+#: commands/tablecmds.c:2367 commands/tablecmds.c:2390 commands/tablecmds.c:2639 commands/tablecmds.c:2669 parser/parse_coerce.c:1935 parser/parse_coerce.c:1955 parser/parse_coerce.c:1975 parser/parse_coerce.c:2030 parser/parse_coerce.c:2107 parser/parse_coerce.c:2141 parser/parse_param.c:218
 #, c-format
 msgid "%s versus %s"
 msgstr "%s versus %s"
 
-#: commands/tablecmds.c:2293
+#: commands/tablecmds.c:2376
 #, c-format
 msgid "inherited column \"%s\" has a collation conflict"
 msgstr "la colonne héritée « %s » a un conflit sur le collationnement"
 
-#: commands/tablecmds.c:2295 commands/tablecmds.c:2532 commands/tablecmds.c:5648
+#: commands/tablecmds.c:2378 commands/tablecmds.c:2651 commands/tablecmds.c:6106
 #, c-format
 msgid "\"%s\" versus \"%s\""
 msgstr "« %s » versus « %s »"
 
-#: commands/tablecmds.c:2305
+#: commands/tablecmds.c:2388
 #, c-format
 msgid "inherited column \"%s\" has a storage parameter conflict"
 msgstr "la colonne héritée « %s » a un conflit de paramètre de stockage"
 
-#: commands/tablecmds.c:2321
+#: commands/tablecmds.c:2404
 #, c-format
 msgid "inherited column \"%s\" has a generation conflict"
 msgstr "la colonne héritée « %s » a un conflit de génération"
 
-#: commands/tablecmds.c:2426 commands/tablecmds.c:10487 parser/parse_utilcmd.c:1065 parser/parse_utilcmd.c:1149 parser/parse_utilcmd.c:1562 parser/parse_utilcmd.c:1669
+#: commands/tablecmds.c:2490 commands/tablecmds.c:2545 commands/tablecmds.c:11188 parser/parse_utilcmd.c:1252 parser/parse_utilcmd.c:1295 parser/parse_utilcmd.c:1703 parser/parse_utilcmd.c:1812
 #, c-format
 msgid "cannot convert whole-row table reference"
 msgstr "ne peut pas convertir une référence de ligne complète de table"
 
-#: commands/tablecmds.c:2427 parser/parse_utilcmd.c:1150
+#: commands/tablecmds.c:2491 parser/parse_utilcmd.c:1253
+#, c-format
+msgid "Generation expression for column \"%s\" contains a whole-row reference to table \"%s\"."
+msgstr "L'expression de génération de la colonne « %s » contient une référence de ligne complète vers la table « %s »."
+
+#: commands/tablecmds.c:2546 parser/parse_utilcmd.c:1296
 #, c-format
 msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"."
 msgstr "La constrainte « %s » contient une référence de ligne complète vers la table « %s »."
 
-#: commands/tablecmds.c:2506
+#: commands/tablecmds.c:2625
 #, c-format
 msgid "merging column \"%s\" with inherited definition"
 msgstr "assemblage de la colonne « %s » avec une définition héritée"
 
-#: commands/tablecmds.c:2510
+#: commands/tablecmds.c:2629
 #, c-format
 msgid "moving and merging column \"%s\" with inherited definition"
 msgstr "déplacement et assemblage de la colonne « %s » avec une définition héritée"
 
-#: commands/tablecmds.c:2511
+#: commands/tablecmds.c:2630
 #, c-format
 msgid "User-specified column moved to the position of the inherited column."
 msgstr "Colonne utilisateur déplacée à la position de la colonne héritée."
 
-#: commands/tablecmds.c:2518
+#: commands/tablecmds.c:2637
 #, c-format
 msgid "column \"%s\" has a type conflict"
 msgstr "la colonne « %s » a un conflit de type"
 
-#: commands/tablecmds.c:2530
+#: commands/tablecmds.c:2649
 #, c-format
 msgid "column \"%s\" has a collation conflict"
 msgstr "la colonne « %s » a un conflit sur le collationnement"
 
-#: commands/tablecmds.c:2548
+#: commands/tablecmds.c:2667
 #, c-format
 msgid "column \"%s\" has a storage parameter conflict"
 msgstr "la colonne « %s » a un conflit de paramètre de stockage"
 
-#: commands/tablecmds.c:2651
+#: commands/tablecmds.c:2695
+#, c-format
+msgid "child column \"%s\" specifies generation expression"
+msgstr "la colonne enfant « %s » précise une expression de génération"
+
+#: commands/tablecmds.c:2697
+#, c-format
+msgid "Omit the generation expression in the definition of the child table column to inherit the generation expression from the parent table."
+msgstr ""
+
+#: commands/tablecmds.c:2701
+#, fuzzy, c-format
+#| msgid "column \"%s\" is a generated column"
+msgid "column \"%s\" inherits from generated column but specifies default"
+msgstr "la colonne « %s » est une colonne générée"
+
+#: commands/tablecmds.c:2706
+#, fuzzy, c-format
+#| msgid "column \"%s\" is a generated column"
+msgid "column \"%s\" inherits from generated column but specifies identity"
+msgstr "la colonne « %s » est une colonne générée"
+
+#: commands/tablecmds.c:2815
+#, fuzzy, c-format
+#| msgid "column \"%s\" inherits conflicting default values"
+msgid "column \"%s\" inherits conflicting generation expressions"
+msgstr "la colonne « %s » hérite de valeurs par défaut conflictuelles"
+
+#: commands/tablecmds.c:2820
 #, c-format
 msgid "column \"%s\" inherits conflicting default values"
 msgstr "la colonne « %s » hérite de valeurs par défaut conflictuelles"
 
-#: commands/tablecmds.c:2653
+#: commands/tablecmds.c:2822
 #, c-format
 msgid "To resolve the conflict, specify a default explicitly."
 msgstr "Pour résoudre le conflit, spécifiez explicitement une valeur par défaut."
 
-#: commands/tablecmds.c:2698
+#: commands/tablecmds.c:2868
 #, c-format
 msgid "check constraint name \"%s\" appears multiple times but with different expressions"
 msgstr ""
 "le nom de la contrainte de vérification, « %s », apparaît plusieurs fois\n"
 "mais avec des expressions différentes"
 
-#: commands/tablecmds.c:2875
+#: commands/tablecmds.c:3045
 #, c-format
 msgid "cannot rename column of typed table"
 msgstr "ne peut pas renommer une colonne d'une table typée"
 
-#: commands/tablecmds.c:2894
+#: commands/tablecmds.c:3064
 #, c-format
 msgid "\"%s\" is not a table, view, materialized view, composite type, index, or foreign table"
 msgstr "« %s » n'est ni une table, ni une vue, ni une vue matérialisée, ni un type composite, ni un index, ni une table distante"
 
-#: commands/tablecmds.c:2988
+#: commands/tablecmds.c:3158
 #, c-format
 msgid "inherited column \"%s\" must be renamed in child tables too"
 msgstr "la colonne héritée « %s » doit aussi être renommée pour les tables filles"
 
-#: commands/tablecmds.c:3020
+#: commands/tablecmds.c:3190
 #, c-format
 msgid "cannot rename system column \"%s\""
 msgstr "ne peut pas renommer la colonne système « %s »"
 
-#: commands/tablecmds.c:3035
+#: commands/tablecmds.c:3205
 #, c-format
 msgid "cannot rename inherited column \"%s\""
 msgstr "ne peut pas renommer la colonne héritée « %s »"
 
-#: commands/tablecmds.c:3187
+#: commands/tablecmds.c:3357
 #, c-format
 msgid "inherited constraint \"%s\" must be renamed in child tables too"
 msgstr "la contrainte héritée « %s » doit aussi être renommée pour les tables enfants"
 
-#: commands/tablecmds.c:3194
+#: commands/tablecmds.c:3364
 #, c-format
 msgid "cannot rename inherited constraint \"%s\""
 msgstr "ne peut pas renommer la colonne héritée « %s »"
 
 #. translator: first %s is a SQL command, eg ALTER TABLE
-#: commands/tablecmds.c:3427
+#: commands/tablecmds.c:3597
 #, c-format
 msgid "cannot %s \"%s\" because it is being used by active queries in this session"
 msgstr ""
@@ -8750,1793 +9013,1837 @@ msgstr ""
 "des requêtes actives dans cette session"
 
 #. translator: first %s is a SQL command, eg ALTER TABLE
-#: commands/tablecmds.c:3436
+#: commands/tablecmds.c:3606
 #, c-format
 msgid "cannot %s \"%s\" because it has pending trigger events"
 msgstr "ne peut pas exécuter %s « %s » car il reste des événements sur les triggers"
 
-#: commands/tablecmds.c:4567
+#: commands/tablecmds.c:4237 commands/tablecmds.c:4252
+#, c-format
+msgid "cannot change persistence setting twice"
+msgstr "ne peut pas modifier la configuration de la persistence deux fois"
+
+#: commands/tablecmds.c:4969
 #, c-format
 msgid "cannot rewrite system relation \"%s\""
 msgstr "ne peut pas ré-écrire la relation système « %s »"
 
-#: commands/tablecmds.c:4573
+#: commands/tablecmds.c:4975
 #, c-format
 msgid "cannot rewrite table \"%s\" used as a catalog table"
 msgstr "ne peut pas réécrire la table « %s » utilisée comme une table catalogue"
 
-#: commands/tablecmds.c:4583
+#: commands/tablecmds.c:4985
 #, c-format
 msgid "cannot rewrite temporary tables of other sessions"
 msgstr "ne peut pas ré-écrire les tables temporaires des autres sessions"
 
-#: commands/tablecmds.c:4862
+#: commands/tablecmds.c:5274
 #, c-format
 msgid "rewriting table \"%s\""
 msgstr "ré-écriture de la table « %s »"
 
-#: commands/tablecmds.c:4866
+#: commands/tablecmds.c:5278
 #, c-format
 msgid "verifying table \"%s\""
 msgstr "vérification de la table « %s »"
 
-#: commands/tablecmds.c:4996
-#, c-format
-msgid "column \"%s\" contains null values"
-msgstr "la colonne « %s » contient des valeurs NULL"
+#: commands/tablecmds.c:5443
+#, fuzzy, c-format
+#| msgid "column \"%s\" of table \"%s\" contains null values"
+msgid "column \"%s\" of relation \"%s\" contains null values"
+msgstr "la colonne « %s » de la table « %s » contient des valeurs NULL"
 
-#: commands/tablecmds.c:5012 commands/tablecmds.c:9697
-#, c-format
-msgid "check constraint \"%s\" is violated by some row"
+#: commands/tablecmds.c:5460
+#, fuzzy, c-format
+#| msgid "check constraint \"%s\" is violated by some row"
+msgid "check constraint \"%s\" of relation \"%s\" is violated by some row"
 msgstr "la contrainte de vérification « %s » est rompue par une ligne"
 
-#: commands/tablecmds.c:5030
+#: commands/tablecmds.c:5479 partitioning/partbounds.c:3235
 #, c-format
-msgid "updated partition constraint for default partition would be violated by some row"
-msgstr "la contrainte de partition mise à jour pour la partition par défaut serait transgressée par des lignes"
+msgid "updated partition constraint for default partition \"%s\" would be violated by some row"
+msgstr "la contrainte de partition mise à jour pour la partition par défaut « %s » serait transgressée par des lignes"
 
-#: commands/tablecmds.c:5034
-#, c-format
-msgid "partition constraint is violated by some row"
+#: commands/tablecmds.c:5485
+#, fuzzy, c-format
+#| msgid "partition constraint is violated by some row"
+msgid "partition constraint of relation \"%s\" is violated by some row"
 msgstr "la contrainte de partition est violée par une ligne"
 
-#: commands/tablecmds.c:5179 commands/trigger.c:1538 commands/trigger.c:1644
+#: commands/tablecmds.c:5632 commands/trigger.c:1200 commands/trigger.c:1306
 #, c-format
 msgid "\"%s\" is not a table, view, or foreign table"
 msgstr "« %s » n'est ni une table, ni une vue, ni une table distante"
 
-#: commands/tablecmds.c:5182
+#: commands/tablecmds.c:5635
 #, c-format
 msgid "\"%s\" is not a table, view, materialized view, or index"
 msgstr "« %s » n'est ni une table, ni une vue, ni une vue matérialisée, ni une séquence, ni une table distante"
 
-#: commands/tablecmds.c:5188
+#: commands/tablecmds.c:5641
 #, c-format
 msgid "\"%s\" is not a table, materialized view, or index"
 msgstr "« %s » n'est ni une table, ni une vue matérialisée, ni un index"
 
-#: commands/tablecmds.c:5191
+#: commands/tablecmds.c:5644
 #, c-format
 msgid "\"%s\" is not a table, materialized view, or foreign table"
 msgstr "« %s » n'est ni une table, ni une vue matérialisée, ni une table distante"
 
-#: commands/tablecmds.c:5194
+#: commands/tablecmds.c:5647
 #, c-format
 msgid "\"%s\" is not a table or foreign table"
 msgstr "« %s » n'est ni une table ni une table distante"
 
-#: commands/tablecmds.c:5197
+#: commands/tablecmds.c:5650
 #, c-format
 msgid "\"%s\" is not a table, composite type, or foreign table"
 msgstr "« %s » n'est ni une table, ni un type composite, ni une table distante"
 
-#: commands/tablecmds.c:5200 commands/tablecmds.c:6706
+#: commands/tablecmds.c:5653
 #, c-format
 msgid "\"%s\" is not a table, materialized view, index, or foreign table"
 msgstr "« %s » n'est ni une table, ni une vue matérialisée, ni un index, ni une table distante"
 
-#: commands/tablecmds.c:5210
+#: commands/tablecmds.c:5663
 #, c-format
 msgid "\"%s\" is of the wrong type"
 msgstr "« %s » est du mauvais type"
 
-#: commands/tablecmds.c:5416 commands/tablecmds.c:5423
+#: commands/tablecmds.c:5866 commands/tablecmds.c:5873
 #, c-format
 msgid "cannot alter type \"%s\" because column \"%s.%s\" uses it"
 msgstr "ne peux pas modifier le type « %s » car la colonne « %s.%s » l'utilise"
 
-#: commands/tablecmds.c:5430
+#: commands/tablecmds.c:5880
 #, c-format
 msgid "cannot alter foreign table \"%s\" because column \"%s.%s\" uses its row type"
 msgstr ""
 "ne peut pas modifier la table distante « %s » car la colonne « %s.%s » utilise\n"
 "son type de ligne"
 
-#: commands/tablecmds.c:5437
+#: commands/tablecmds.c:5887
 #, c-format
 msgid "cannot alter table \"%s\" because column \"%s.%s\" uses its row type"
 msgstr ""
 "ne peut pas modifier la table « %s » car la colonne « %s.%s » utilise\n"
 "son type de ligne"
 
-#: commands/tablecmds.c:5493
+#: commands/tablecmds.c:5943
 #, c-format
 msgid "cannot alter type \"%s\" because it is the type of a typed table"
 msgstr "ne peut pas modifier le type « %s » car il s'agit du type d'une table de type"
 
-#: commands/tablecmds.c:5495
+#: commands/tablecmds.c:5945
 #, c-format
 msgid "Use ALTER ... CASCADE to alter the typed tables too."
 msgstr "Utilisez ALTER ... CASCADE pour modifier aussi les tables de type."
 
-#: commands/tablecmds.c:5541
+#: commands/tablecmds.c:5991
 #, c-format
 msgid "type %s is not a composite type"
 msgstr "le type %s n'est pas un type composite"
 
-#: commands/tablecmds.c:5567
+#: commands/tablecmds.c:6018
 #, c-format
 msgid "cannot add column to typed table"
 msgstr "ne peut pas ajouter une colonne à une table typée"
 
-#: commands/tablecmds.c:5611
+#: commands/tablecmds.c:6069
 #, c-format
 msgid "cannot add column to a partition"
 msgstr "ne peut pas ajouter une colonne à une partition"
 
-#: commands/tablecmds.c:5640 commands/tablecmds.c:13066
+#: commands/tablecmds.c:6098 commands/tablecmds.c:13869
 #, c-format
 msgid "child table \"%s\" has different type for column \"%s\""
 msgstr "la table fille « %s » a un type différent pour la colonne « %s »"
 
-#: commands/tablecmds.c:5646 commands/tablecmds.c:13073
+#: commands/tablecmds.c:6104 commands/tablecmds.c:13876
 #, c-format
 msgid "child table \"%s\" has different collation for column \"%s\""
 msgstr "la table fille « %s » a un collationnement différent pour la colonne « %s »"
 
-#: commands/tablecmds.c:5660
+#: commands/tablecmds.c:6118
 #, c-format
 msgid "merging definition of column \"%s\" for child \"%s\""
 msgstr "assemblage de la définition de la colonne « %s » pour le fils « %s »"
 
-#: commands/tablecmds.c:5684
+#: commands/tablecmds.c:6161
 #, c-format
 msgid "cannot recursively add identity column to table that has child tables"
 msgstr "ne peut pas ajouter récursivement la colonne identité à une table qui a des tables filles"
 
-#: commands/tablecmds.c:5918
+#: commands/tablecmds.c:6398
 #, c-format
 msgid "column must be added to child tables too"
 msgstr "la colonne doit aussi être ajoutée aux tables filles"
 
-#: commands/tablecmds.c:5993
+#: commands/tablecmds.c:6476
 #, c-format
 msgid "column \"%s\" of relation \"%s\" already exists, skipping"
 msgstr "la colonne « %s » de la relation « %s » existe déjà, poursuite du traitement"
 
-#: commands/tablecmds.c:6000
+#: commands/tablecmds.c:6483
 #, c-format
 msgid "column \"%s\" of relation \"%s\" already exists"
 msgstr "la colonne « %s » de la relation « %s » existe déjà"
 
-#: commands/tablecmds.c:6066 commands/tablecmds.c:10140
+#: commands/tablecmds.c:6549 commands/tablecmds.c:10826
 #, c-format
 msgid "cannot remove constraint from only the partitioned table when partitions exist"
 msgstr "ne peut pas supprimer une contrainte uniquement d'une table partitionnée quand des partitions existent"
 
-#: commands/tablecmds.c:6067 commands/tablecmds.c:6336 commands/tablecmds.c:7105 commands/tablecmds.c:10141
+#: commands/tablecmds.c:6550 commands/tablecmds.c:6854 commands/tablecmds.c:7834 commands/tablecmds.c:10827
 #, c-format
 msgid "Do not specify the ONLY keyword."
 msgstr "Ne spécifiez pas le mot clé ONLY."
 
-#: commands/tablecmds.c:6104 commands/tablecmds.c:6262 commands/tablecmds.c:6404 commands/tablecmds.c:6487 commands/tablecmds.c:6581 commands/tablecmds.c:6640 commands/tablecmds.c:6790 commands/tablecmds.c:6860 commands/tablecmds.c:6952 commands/tablecmds.c:10280 commands/tablecmds.c:11607
+#: commands/tablecmds.c:6587 commands/tablecmds.c:6780 commands/tablecmds.c:6922 commands/tablecmds.c:7036 commands/tablecmds.c:7130 commands/tablecmds.c:7189 commands/tablecmds.c:7291 commands/tablecmds.c:7457 commands/tablecmds.c:7527 commands/tablecmds.c:7620 commands/tablecmds.c:10981 commands/tablecmds.c:12406
 #, c-format
 msgid "cannot alter system column \"%s\""
 msgstr "n'a pas pu modifier la colonne système « %s »"
 
-#: commands/tablecmds.c:6110 commands/tablecmds.c:6410
+#: commands/tablecmds.c:6593 commands/tablecmds.c:6928
 #, c-format
 msgid "column \"%s\" of relation \"%s\" is an identity column"
 msgstr "la colonne « %s » de la relation « %s » n'est pas une colonne d'identité"
 
-#: commands/tablecmds.c:6146
+#: commands/tablecmds.c:6629
 #, c-format
 msgid "column \"%s\" is in a primary key"
 msgstr "la colonne « %s » est dans une clé primaire"
 
-#: commands/tablecmds.c:6168
+#: commands/tablecmds.c:6651
 #, c-format
 msgid "column \"%s\" is marked NOT NULL in parent table"
 msgstr "la colonne « %s » est marquée NOT NULL dans la table parent"
 
-#: commands/tablecmds.c:6333 commands/tablecmds.c:7555
+#: commands/tablecmds.c:6851 commands/tablecmds.c:8293
 #, c-format
 msgid "constraint must be added to child tables too"
 msgstr "la contrainte doit aussi être ajoutée aux tables filles"
 
-#: commands/tablecmds.c:6334
+#: commands/tablecmds.c:6852
 #, c-format
 msgid "Column \"%s\" of relation \"%s\" is not already NOT NULL."
 msgstr "la colonne « %s » de la relation « %s » n'est pas déjà NOT NULL."
 
-#: commands/tablecmds.c:6369
-#, c-format
-msgid "existing constraints on column \"%s\".\"%s\" are sufficient to prove that it does not contain nulls"
+#: commands/tablecmds.c:6887
+#, fuzzy, c-format
+#| msgid "existing constraints on column \"%s\".\"%s\" are sufficient to prove that it does not contain nulls"
+msgid "existing constraints on column \"%s.%s\" are sufficient to prove that it does not contain nulls"
 msgstr "les contraintes existantes sur la colonne « %s.%s » sont suffisantes pour prouver qu'elle ne contient aucun NULL"
 
-#: commands/tablecmds.c:6412
+#: commands/tablecmds.c:6930
 #, c-format
 msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY instead."
 msgstr "Utilisez à la place ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY."
 
-#: commands/tablecmds.c:6417
+#: commands/tablecmds.c:6935
 #, c-format
 msgid "column \"%s\" of relation \"%s\" is a generated column"
 msgstr "la colonne « %s » de la relation « %s » est une colonne générée"
 
-#: commands/tablecmds.c:6498
+#: commands/tablecmds.c:6938
+#, c-format
+msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION instead."
+msgstr "Utilisez à la place ALTER TABLE ... ALTER COLUMN ... DROP EXTENSION."
+
+#: commands/tablecmds.c:7047
 #, c-format
 msgid "column \"%s\" of relation \"%s\" must be declared NOT NULL before identity can be added"
 msgstr "la colonne « %s » de la relation « %s » doit être déclarée NOT NULL avant que la colonne identité puisse être ajoutée"
 
-#: commands/tablecmds.c:6504
+#: commands/tablecmds.c:7053
 #, c-format
 msgid "column \"%s\" of relation \"%s\" is already an identity column"
 msgstr "la colonne « %s » de la relation « %s » est déjà une colonne d'identité"
 
-#: commands/tablecmds.c:6510
+#: commands/tablecmds.c:7059
 #, c-format
 msgid "column \"%s\" of relation \"%s\" already has a default value"
 msgstr "la colonne « %s » de la relation « %s » a déjà une valeur par défaut"
 
-#: commands/tablecmds.c:6587 commands/tablecmds.c:6648
+#: commands/tablecmds.c:7136 commands/tablecmds.c:7197
 #, c-format
 msgid "column \"%s\" of relation \"%s\" is not an identity column"
 msgstr "la colonne « %s » de la relation « %s » n'est pas une colonne d'identité"
 
-#: commands/tablecmds.c:6653
+#: commands/tablecmds.c:7202
 #, c-format
 msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping"
 msgstr "la colonne « %s » de la relation « %s » n'est pas une colonne d'identité, poursuite du traitement"
 
-#: commands/tablecmds.c:6718
+#: commands/tablecmds.c:7261
 #, c-format
-msgid "cannot refer to non-index column by number"
-msgstr "impossible de référence une colonne non liée à une table par un nombre"
+msgid "cannot drop generation expression from inherited column"
+msgstr "ne peut pas supprimer l'expression de génération à partir d'une colonne héritée"
 
-#: commands/tablecmds.c:6749
-#, c-format
-msgid "statistics target %d is too low"
-msgstr "la cible statistique %d est trop basse"
+#: commands/tablecmds.c:7299
+#, fuzzy, c-format
+#| msgid "column \"%s\" of relation \"%s\" is a generated column"
+msgid "column \"%s\" of relation \"%s\" is not a stored generated column"
+msgstr "la colonne « %s » de la relation « %s » est une colonne générée"
 
-#: commands/tablecmds.c:6757
+#: commands/tablecmds.c:7304
+#, fuzzy, c-format
+#| msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping"
+msgid "column \"%s\" of relation \"%s\" is not a stored generated column, skipping"
+msgstr "la colonne « %s » de la relation « %s » n'est pas une colonne d'identité, poursuite du traitement"
+
+#: commands/tablecmds.c:7404
 #, c-format
-msgid "lowering statistics target to %d"
-msgstr "abaissement de la cible statistique à %d"
+msgid "cannot refer to non-index column by number"
+msgstr "impossible de référence une colonne non liée à une table par un nombre"
 
-#: commands/tablecmds.c:6780
+#: commands/tablecmds.c:7447
 #, c-format
 msgid "column number %d of relation \"%s\" does not exist"
 msgstr "la colonne numéro %d de la relation « %s » n'existe pas"
 
-#: commands/tablecmds.c:6799
+#: commands/tablecmds.c:7466
 #, c-format
 msgid "cannot alter statistics on included column \"%s\" of index \"%s\""
 msgstr "ne peut modifier les statistiques sur la colonne incluse « %s » de l'index « %s »"
 
-#: commands/tablecmds.c:6804
+#: commands/tablecmds.c:7471
 #, c-format
 msgid "cannot alter statistics on non-expression column \"%s\" of index \"%s\""
 msgstr "ne peut modifier les statistiques sur la colonne « %s » de l'index « %s », qui n'est pas une expression"
 
-#: commands/tablecmds.c:6806
+#: commands/tablecmds.c:7473
 #, c-format
 msgid "Alter statistics on table column instead."
 msgstr "Modifie les statistiques sur la colonne de la table à la place."
 
-#: commands/tablecmds.c:6932
+#: commands/tablecmds.c:7600
 #, c-format
 msgid "invalid storage type \"%s\""
 msgstr "type de stockage « %s » invalide"
 
-#: commands/tablecmds.c:6964
+#: commands/tablecmds.c:7632
 #, c-format
 msgid "column data type %s can only have storage PLAIN"
 msgstr "le type de données %s de la colonne peut seulement avoir un stockage PLAIN"
 
-#: commands/tablecmds.c:6999
+#: commands/tablecmds.c:7714
 #, c-format
 msgid "cannot drop column from typed table"
 msgstr "ne peut pas supprimer une colonne à une table typée"
 
-#: commands/tablecmds.c:7044
+#: commands/tablecmds.c:7773
 #, c-format
 msgid "column \"%s\" of relation \"%s\" does not exist, skipping"
 msgstr "la colonne « %s » de la relation « %s » n'existe pas, ignore"
 
-#: commands/tablecmds.c:7057
+#: commands/tablecmds.c:7786
 #, c-format
 msgid "cannot drop system column \"%s\""
 msgstr "ne peut pas supprimer la colonne système « %s »"
 
-#: commands/tablecmds.c:7067
+#: commands/tablecmds.c:7796
 #, c-format
 msgid "cannot drop inherited column \"%s\""
 msgstr "ne peut pas supprimer la colonne héritée « %s »"
 
-#: commands/tablecmds.c:7080
+#: commands/tablecmds.c:7809
 #, c-format
 msgid "cannot drop column \"%s\" because it is part of the partition key of relation \"%s\""
 msgstr "ne peut supprimer la colonne « %s » car elle fait partie de la clé de partitionnement de la relation « %s »"
 
-#: commands/tablecmds.c:7104
+#: commands/tablecmds.c:7833
 #, c-format
 msgid "cannot drop column from only the partitioned table when partitions exist"
 msgstr "ne peut pas supprimer une colonne sur une seule partition quand plusieurs partitions existent"
 
-#: commands/tablecmds.c:7276
+#: commands/tablecmds.c:8014
 #, c-format
 msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX is not supported on partitioned tables"
 msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX n'est pas supporté sur les tables partitionnées"
 
-#: commands/tablecmds.c:7301
+#: commands/tablecmds.c:8039
 #, c-format
 msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX will rename index \"%s\" to \"%s\""
 msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX renommera l'index « %s » en « %s »"
 
-#: commands/tablecmds.c:7635
+#: commands/tablecmds.c:8373
 #, c-format
 msgid "cannot use ONLY for foreign key on partitioned table \"%s\" referencing relation \"%s\""
 msgstr "ne peut pas utiliser ONLY pour une clé étrangère sur la table partitionnée « %s » référençant la relation « %s »"
 
-#: commands/tablecmds.c:7641
+#: commands/tablecmds.c:8379
 #, c-format
 msgid "cannot add NOT VALID foreign key on partitioned table \"%s\" referencing relation \"%s\""
 msgstr "ne peut pas ajouter de clé étrangère NOT VALID sur la table partitionnée « %s » référençant la relation « %s »"
 
-#: commands/tablecmds.c:7644
+#: commands/tablecmds.c:8382
 #, c-format
 msgid "This feature is not yet supported on partitioned tables."
 msgstr "Cette fonctionnalité n'est pas encore implémentée sur les tables partitionnées."
 
-#: commands/tablecmds.c:7651 commands/tablecmds.c:8055
+#: commands/tablecmds.c:8389 commands/tablecmds.c:8794
 #, c-format
 msgid "referenced relation \"%s\" is not a table"
 msgstr "la relation référencée « %s » n'est pas une table"
 
-#: commands/tablecmds.c:7674
+#: commands/tablecmds.c:8412
 #, c-format
 msgid "constraints on permanent tables may reference only permanent tables"
 msgstr "les contraintes sur les tables permanentes peuvent seulement référencer des tables permanentes"
 
-#: commands/tablecmds.c:7681
+#: commands/tablecmds.c:8419
 #, c-format
 msgid "constraints on unlogged tables may reference only permanent or unlogged tables"
 msgstr "les contraintes sur les tables non tracées peuvent seulement référencer des tables permanentes ou non tracées"
 
-#: commands/tablecmds.c:7687
+#: commands/tablecmds.c:8425
 #, c-format
 msgid "constraints on temporary tables may reference only temporary tables"
 msgstr ""
 "les constraintes sur des tables temporaires ne peuvent référencer que des\n"
 "tables temporaires"
 
-#: commands/tablecmds.c:7691
+#: commands/tablecmds.c:8429
 #, c-format
 msgid "constraints on temporary tables must involve temporary tables of this session"
 msgstr ""
 "les contraintes sur des tables temporaires doivent référencer les tables\n"
 "temporaires de cette session"
 
-#: commands/tablecmds.c:7757 commands/tablecmds.c:7763
+#: commands/tablecmds.c:8495 commands/tablecmds.c:8501
 #, c-format
 msgid "invalid %s action for foreign key constraint containing generated column"
 msgstr "action %s invalide pour une clé étrangère contenant une colonne générée"
 
-#: commands/tablecmds.c:7779
+#: commands/tablecmds.c:8517
 #, c-format
 msgid "number of referencing and referenced columns for foreign key disagree"
 msgstr "nombre de colonnes de référence et référencées pour la clé étrangère en désaccord"
 
-#: commands/tablecmds.c:7886
+#: commands/tablecmds.c:8624
 #, c-format
 msgid "foreign key constraint \"%s\" cannot be implemented"
 msgstr "la contrainte de clé étrangère « %s » ne peut pas être implémentée"
 
-#: commands/tablecmds.c:7888
+#: commands/tablecmds.c:8626
 #, c-format
 msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s."
 msgstr "Les colonnes clés « %s » et « %s » sont de types incompatibles : %s et %s."
 
-#: commands/tablecmds.c:8251 commands/tablecmds.c:8639 parser/parse_utilcmd.c:753 parser/parse_utilcmd.c:882
+#: commands/tablecmds.c:8989 commands/tablecmds.c:9382 parser/parse_utilcmd.c:764 parser/parse_utilcmd.c:893
 #, c-format
 msgid "foreign key constraints are not supported on foreign tables"
 msgstr "les clés étrangères ne sont pas supportées par les tables distantes"
 
-#: commands/tablecmds.c:9006 commands/tablecmds.c:9169 commands/tablecmds.c:10097 commands/tablecmds.c:10172
+#: commands/tablecmds.c:9748 commands/tablecmds.c:9911 commands/tablecmds.c:10783 commands/tablecmds.c:10858
 #, c-format
 msgid "constraint \"%s\" of relation \"%s\" does not exist"
 msgstr "la contrainte « %s » de la relation « %s » n'existe pas"
 
-#: commands/tablecmds.c:9013
+#: commands/tablecmds.c:9755
 #, c-format
 msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint"
 msgstr "la contrainte « %s » de la relation « %s » n'est pas une clé étrangère"
 
-#: commands/tablecmds.c:9177
+#: commands/tablecmds.c:9919
 #, c-format
 msgid "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint"
 msgstr "la contrainte « %s » de la relation « %s » n'est pas une clé étrangère ou une contrainte de vérification"
 
-#: commands/tablecmds.c:9247
+#: commands/tablecmds.c:9997
 #, c-format
 msgid "constraint must be validated on child tables too"
 msgstr "la contrainte doit aussi être validées sur les tables enfants"
 
-#: commands/tablecmds.c:9313
+#: commands/tablecmds.c:10081
 #, c-format
 msgid "column \"%s\" referenced in foreign key constraint does not exist"
 msgstr "la colonne « %s » référencée dans la contrainte de clé étrangère n'existe pas"
 
-#: commands/tablecmds.c:9318
+#: commands/tablecmds.c:10086
 #, c-format
 msgid "cannot have more than %d keys in a foreign key"
 msgstr "ne peut pas avoir plus de %d clés dans une clé étrangère"
 
-#: commands/tablecmds.c:9383
+#: commands/tablecmds.c:10151
 #, c-format
 msgid "cannot use a deferrable primary key for referenced table \"%s\""
 msgstr "ne peut pas utiliser une clé primaire déferrable pour la table « %s » référencée"
 
-#: commands/tablecmds.c:9400
+#: commands/tablecmds.c:10168
 #, c-format
 msgid "there is no primary key for referenced table \"%s\""
 msgstr "il n'y a pas de clé primaire pour la table « %s » référencée"
 
-#: commands/tablecmds.c:9465
+#: commands/tablecmds.c:10233
 #, c-format
 msgid "foreign key referenced-columns list must not contain duplicates"
 msgstr "la liste de colonnes référencées dans la clé étrangère ne doit pas contenir de duplicats"
 
-#: commands/tablecmds.c:9559
+#: commands/tablecmds.c:10327
 #, c-format
 msgid "cannot use a deferrable unique constraint for referenced table \"%s\""
 msgstr ""
 "ne peut pas utiliser une contrainte unique déferrable pour la table\n"
 "référencée « %s »"
 
-#: commands/tablecmds.c:9564
+#: commands/tablecmds.c:10332
 #, c-format
 msgid "there is no unique constraint matching given keys for referenced table \"%s\""
 msgstr "il n'existe aucune contrainte unique correspondant aux clés données pour la table « %s » référencée"
 
-#: commands/tablecmds.c:9732
+#: commands/tablecmds.c:10420
 #, c-format
 msgid "validating foreign key constraint \"%s\""
 msgstr "validation de la contraintes de clé étrangère « %s »"
 
-#: commands/tablecmds.c:10053
+#: commands/tablecmds.c:10739
 #, c-format
 msgid "cannot drop inherited constraint \"%s\" of relation \"%s\""
 msgstr "ne peut pas supprimer la contrainte héritée « %s » de la relation « %s »"
 
-#: commands/tablecmds.c:10103
+#: commands/tablecmds.c:10789
 #, c-format
 msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping"
 msgstr "la contrainte « %s » de la relation « %s » n'existe pas, ignore"
 
-#: commands/tablecmds.c:10264
+#: commands/tablecmds.c:10965
 #, c-format
 msgid "cannot alter column type of typed table"
 msgstr "ne peut pas modifier le type d'une colonne appartenant à une table typée"
 
-#: commands/tablecmds.c:10291
+#: commands/tablecmds.c:10992
 #, c-format
 msgid "cannot alter inherited column \"%s\""
 msgstr "ne peut pas modifier la colonne héritée « %s »"
 
-#: commands/tablecmds.c:10300
+#: commands/tablecmds.c:11001
 #, c-format
 msgid "cannot alter column \"%s\" because it is part of the partition key of relation \"%s\""
 msgstr "ne peut pas modifier la colonne « %s » car elle fait partie de la clé de partitionnement de la relation « %s »"
 
-#: commands/tablecmds.c:10350
+#: commands/tablecmds.c:11051
 #, c-format
 msgid "result of USING clause for column \"%s\" cannot be cast automatically to type %s"
 msgstr "le résultat de la clause USING pour la colonne « %s » ne peut pas être converti automatiquement vers le type %s"
 
-#: commands/tablecmds.c:10353
+#: commands/tablecmds.c:11054
 #, c-format
 msgid "You might need to add an explicit cast."
 msgstr "Vous pouvez avoir besoin d'ajouter une conversion explicite."
 
-#: commands/tablecmds.c:10357
+#: commands/tablecmds.c:11058
 #, c-format
 msgid "column \"%s\" cannot be cast automatically to type %s"
 msgstr "la colonne « %s » ne peut pas être convertie vers le type %s"
 
 #. translator: USING is SQL, don't translate it
-#: commands/tablecmds.c:10360
+#: commands/tablecmds.c:11061
 #, c-format
 msgid "You might need to specify \"USING %s::%s\"."
 msgstr "Vous pouvez avoir besoin de spécifier \"USING %s::%s\"."
 
-#: commands/tablecmds.c:10459
+#: commands/tablecmds.c:11161
 #, c-format
 msgid "cannot alter inherited column \"%s\" of relation \"%s\""
 msgstr "ne peut pas modifier la colonne héritée « %s » de la relation « %s »"
 
-#: commands/tablecmds.c:10488
+#: commands/tablecmds.c:11189
 #, c-format
 msgid "USING expression contains a whole-row table reference."
 msgstr "l'expression USING contient une référence de table de ligne complète."
 
-#: commands/tablecmds.c:10499
+#: commands/tablecmds.c:11200
 #, c-format
 msgid "type of inherited column \"%s\" must be changed in child tables too"
 msgstr "le type de colonne héritée « %s » doit aussi être renommée pour les tables filles"
 
-#: commands/tablecmds.c:10624
+#: commands/tablecmds.c:11325
 #, c-format
 msgid "cannot alter type of column \"%s\" twice"
 msgstr "ne peut pas modifier la colonne « %s » deux fois"
 
-#: commands/tablecmds.c:10662
+#: commands/tablecmds.c:11363
 #, c-format
 msgid "generation expression for column \"%s\" cannot be cast automatically to type %s"
 msgstr "l'expression de génération de la colonne « %s » ne peut pas être convertie vers le type %s automatiquement"
 
-#: commands/tablecmds.c:10667
+#: commands/tablecmds.c:11368
 #, c-format
 msgid "default for column \"%s\" cannot be cast automatically to type %s"
 msgstr ""
 "la valeur par défaut de la colonne « %s » ne peut pas être convertie vers le\n"
 "type %s automatiquement"
 
-#: commands/tablecmds.c:10745
+#: commands/tablecmds.c:11446
 #, c-format
 msgid "cannot alter type of a column used by a generated column"
 msgstr "ne peut pas modifier le type d'une colonne utilisée dans colonne générée"
 
-#: commands/tablecmds.c:10746
+#: commands/tablecmds.c:11447
 #, c-format
 msgid "Column \"%s\" is used by generated column \"%s\"."
 msgstr "La colonne « %s » est utilisée par la colonne générée « %s »"
 
-#: commands/tablecmds.c:10767
+#: commands/tablecmds.c:11468
 #, c-format
 msgid "cannot alter type of a column used by a view or rule"
 msgstr "ne peut pas modifier le type d'une colonne utilisée dans une vue ou une règle"
 
-#: commands/tablecmds.c:10768 commands/tablecmds.c:10787 commands/tablecmds.c:10805
+#: commands/tablecmds.c:11469 commands/tablecmds.c:11488 commands/tablecmds.c:11506
 #, c-format
 msgid "%s depends on column \"%s\""
 msgstr "%s dépend de la colonne « %s »"
 
-#: commands/tablecmds.c:10786
+#: commands/tablecmds.c:11487
 #, c-format
 msgid "cannot alter type of a column used in a trigger definition"
 msgstr "ne peut pas modifier le type d'une colonne utilisée dans la définition d'un trigger"
 
-#: commands/tablecmds.c:10804
+#: commands/tablecmds.c:11505
 #, c-format
 msgid "cannot alter type of a column used in a policy definition"
 msgstr "ne peut pas modifier le type d'une colonne utilisée dans la définition d'une politique"
 
-#: commands/tablecmds.c:11715 commands/tablecmds.c:11727
+#: commands/tablecmds.c:12514 commands/tablecmds.c:12526
 #, c-format
 msgid "cannot change owner of index \"%s\""
 msgstr "ne peut pas modifier le propriétaire de l'index « %s »"
 
-#: commands/tablecmds.c:11717 commands/tablecmds.c:11729
+#: commands/tablecmds.c:12516 commands/tablecmds.c:12528
 #, c-format
 msgid "Change the ownership of the index's table, instead."
 msgstr "Modifier à la place le propriétaire de la table concernée par l'index."
 
-#: commands/tablecmds.c:11743
+#: commands/tablecmds.c:12542
 #, c-format
 msgid "cannot change owner of sequence \"%s\""
 msgstr "ne peut pas modifier le propriétaire de la séquence « %s »"
 
-#: commands/tablecmds.c:11757 commands/tablecmds.c:14954
+#: commands/tablecmds.c:12556 commands/tablecmds.c:15743
 #, c-format
 msgid "Use ALTER TYPE instead."
 msgstr "Utilisez ALTER TYPE à la place."
 
-#: commands/tablecmds.c:11766
+#: commands/tablecmds.c:12565
 #, c-format
 msgid "\"%s\" is not a table, view, sequence, or foreign table"
 msgstr "« %s » n'est ni une table, ni une vue, ni une séquence, ni une table distante"
 
-#: commands/tablecmds.c:12106
+#: commands/tablecmds.c:12905
 #, c-format
 msgid "cannot have multiple SET TABLESPACE subcommands"
 msgstr "ne peut pas avoir de nombreuses sous-commandes SET TABLESPACE"
 
-#: commands/tablecmds.c:12181
+#: commands/tablecmds.c:12982
 #, c-format
 msgid "\"%s\" is not a table, view, materialized view, index, or TOAST table"
 msgstr "« %s » n'est ni une table, ni une vue, ni une vue matérialisée, ni un index, ni une table TOAST"
 
-#: commands/tablecmds.c:12214 commands/view.c:504
+#: commands/tablecmds.c:13015 commands/view.c:494
 #, c-format
 msgid "WITH CHECK OPTION is supported only on automatically updatable views"
 msgstr "WITH CHECK OPTION est uniquement accepté pour les vues dont la mise à jour est automatique"
 
-#: commands/tablecmds.c:12354
+#: commands/tablecmds.c:13155
 #, c-format
 msgid "cannot move system relation \"%s\""
 msgstr "ne peut pas déplacer la colonne système « %s »"
 
-#: commands/tablecmds.c:12370
+#: commands/tablecmds.c:13171
 #, c-format
 msgid "cannot move temporary tables of other sessions"
 msgstr "ne peut pas déplacer les tables temporaires d'autres sessions"
 
-#: commands/tablecmds.c:12538
+#: commands/tablecmds.c:13341
 #, c-format
 msgid "only tables, indexes, and materialized views exist in tablespaces"
 msgstr "seuls les tables, index et vues matérialisées existent dans les tablespaces"
 
-#: commands/tablecmds.c:12550
+#: commands/tablecmds.c:13353
 #, c-format
 msgid "cannot move relations in to or out of pg_global tablespace"
 msgstr "ne peut pas déplacer les relations dans ou à partir du tablespace pg_global"
 
-#: commands/tablecmds.c:12642
+#: commands/tablecmds.c:13445
 #, c-format
 msgid "aborting because lock on relation \"%s.%s\" is not available"
 msgstr "annulation car le verrou sur la relation « %s.%s » n'est pas disponible"
 
-#: commands/tablecmds.c:12658
+#: commands/tablecmds.c:13461
 #, c-format
 msgid "no matching relations in tablespace \"%s\" found"
 msgstr "aucune relation correspondante trouvée dans le tablespace « %s »"
 
-#: commands/tablecmds.c:12774
+#: commands/tablecmds.c:13577
 #, c-format
 msgid "cannot change inheritance of typed table"
 msgstr "ne peut pas modifier l'héritage d'une table typée"
 
-#: commands/tablecmds.c:12779 commands/tablecmds.c:13275
+#: commands/tablecmds.c:13582 commands/tablecmds.c:14078
 #, c-format
 msgid "cannot change inheritance of a partition"
 msgstr "ne peut pas modifier l'héritage d'une partition"
 
-#: commands/tablecmds.c:12784
+#: commands/tablecmds.c:13587
 #, c-format
 msgid "cannot change inheritance of partitioned table"
 msgstr "ne peut pas modifier l'héritage d'une table partitionnée"
 
-#: commands/tablecmds.c:12830
+#: commands/tablecmds.c:13633
 #, c-format
 msgid "cannot inherit to temporary relation of another session"
 msgstr "ne peut pas hériter à partir d'une relation temporaire d'une autre session"
 
-#: commands/tablecmds.c:12843
+#: commands/tablecmds.c:13646
 #, c-format
 msgid "cannot inherit from a partition"
 msgstr "ne peut pas hériter d'une partition"
 
-#: commands/tablecmds.c:12865 commands/tablecmds.c:15590
+#: commands/tablecmds.c:13668 commands/tablecmds.c:16383
 #, c-format
 msgid "circular inheritance not allowed"
 msgstr "héritage circulaire interdit"
 
-#: commands/tablecmds.c:12866 commands/tablecmds.c:15591
+#: commands/tablecmds.c:13669 commands/tablecmds.c:16384
 #, c-format
 msgid "\"%s\" is already a child of \"%s\"."
 msgstr "« %s » est déjà un enfant de « %s »."
 
-#: commands/tablecmds.c:12879
+#: commands/tablecmds.c:13682
 #, c-format
 msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child"
 msgstr "le trigger « %s » empêche la table « %s » de devenir une fille dans l'héritage"
 
-#: commands/tablecmds.c:12881
+#: commands/tablecmds.c:13684
 #, c-format
 msgid "ROW triggers with transition tables are not supported in inheritance hierarchies."
 msgstr "les triggers ROW avec des tables de transition ne sont pas supportés dans les hiérarchies d'héritage."
 
-#: commands/tablecmds.c:13084
+#: commands/tablecmds.c:13887
 #, c-format
 msgid "column \"%s\" in child table must be marked NOT NULL"
 msgstr "la colonne « %s » de la table enfant doit être marquée comme NOT NULL"
 
-#: commands/tablecmds.c:13111
+#: commands/tablecmds.c:13914
 #, c-format
 msgid "child table is missing column \"%s\""
 msgstr "la table enfant n'a pas de colonne « %s »"
 
-#: commands/tablecmds.c:13199
+#: commands/tablecmds.c:14002
 #, c-format
 msgid "child table \"%s\" has different definition for check constraint \"%s\""
 msgstr "la table fille « %s » a un type différent pour la contrainte de vérification « %s »"
 
-#: commands/tablecmds.c:13207
+#: commands/tablecmds.c:14010
 #, c-format
 msgid "constraint \"%s\" conflicts with non-inherited constraint on child table \"%s\""
 msgstr "la contrainte « %s » entre en conflit avec une contrainte non héritée sur la table fille « %s »"
 
-#: commands/tablecmds.c:13218
+#: commands/tablecmds.c:14021
 #, c-format
 msgid "constraint \"%s\" conflicts with NOT VALID constraint on child table \"%s\""
 msgstr "la contrainte « %s » entre en conflit avec une contrainte NOT VALID sur la table fille « %s »"
 
-#: commands/tablecmds.c:13253
+#: commands/tablecmds.c:14056
 #, c-format
 msgid "child table is missing constraint \"%s\""
 msgstr "la table enfant n'a pas de contrainte « %s »"
 
-#: commands/tablecmds.c:13342
+#: commands/tablecmds.c:14145
 #, c-format
 msgid "relation \"%s\" is not a partition of relation \"%s\""
 msgstr "la relation « %s » n'est pas une partition de la relation « %s »"
 
-#: commands/tablecmds.c:13348
+#: commands/tablecmds.c:14151
 #, c-format
 msgid "relation \"%s\" is not a parent of relation \"%s\""
 msgstr "la relation « %s » n'est pas un parent de la relation « %s »"
 
-#: commands/tablecmds.c:13576
+#: commands/tablecmds.c:14379
 #, c-format
 msgid "typed tables cannot inherit"
 msgstr "les tables avec type ne peuvent pas hériter d'autres tables"
 
-#: commands/tablecmds.c:13606
+#: commands/tablecmds.c:14409
 #, c-format
 msgid "table is missing column \"%s\""
 msgstr "la colonne « %s » manque à la table"
 
-#: commands/tablecmds.c:13617
+#: commands/tablecmds.c:14420
 #, c-format
 msgid "table has column \"%s\" where type requires \"%s\""
 msgstr "la table a une colonne « %s » alors que le type impose « %s »"
 
-#: commands/tablecmds.c:13626
+#: commands/tablecmds.c:14429
 #, c-format
 msgid "table \"%s\" has different type for column \"%s\""
 msgstr "la table « %s » a un type différent pour la colonne « %s »"
 
-#: commands/tablecmds.c:13640
+#: commands/tablecmds.c:14443
 #, c-format
 msgid "table has extra column \"%s\""
 msgstr "la table a une colonne supplémentaire « %s »"
 
-#: commands/tablecmds.c:13692
+#: commands/tablecmds.c:14495
 #, c-format
 msgid "\"%s\" is not a typed table"
 msgstr "« %s » n'est pas une table typée"
 
-#: commands/tablecmds.c:13874
+#: commands/tablecmds.c:14677
 #, c-format
 msgid "cannot use non-unique index \"%s\" as replica identity"
 msgstr "ne peut pas utiliser l'index non unique « %s » comme identité de réplicat"
 
-#: commands/tablecmds.c:13880
+#: commands/tablecmds.c:14683
 #, c-format
 msgid "cannot use non-immediate index \"%s\" as replica identity"
 msgstr "ne peut pas utiliser l'index « %s » immédiat comme identité de réplicat"
 
-#: commands/tablecmds.c:13886
+#: commands/tablecmds.c:14689
 #, c-format
 msgid "cannot use expression index \"%s\" as replica identity"
 msgstr "ne peut pas utiliser un index par expression « %s » comme identité de réplicat"
 
-#: commands/tablecmds.c:13892
+#: commands/tablecmds.c:14695
 #, c-format
 msgid "cannot use partial index \"%s\" as replica identity"
 msgstr "ne peut pas utiliser l'index partiel « %s » comme identité de réplicat"
 
-#: commands/tablecmds.c:13898
+#: commands/tablecmds.c:14701
 #, c-format
 msgid "cannot use invalid index \"%s\" as replica identity"
 msgstr "ne peut pas utiliser l'index invalide « %s » comme identité de réplicat"
 
-#: commands/tablecmds.c:13915
+#: commands/tablecmds.c:14718
 #, c-format
 msgid "index \"%s\" cannot be used as replica identity because column %d is a system column"
 msgstr "l'index « %s » ne peut pas être utilisé comme identité de réplicat car la colonne %d est une colonne système"
 
-#: commands/tablecmds.c:13922
+#: commands/tablecmds.c:14725
 #, c-format
 msgid "index \"%s\" cannot be used as replica identity because column \"%s\" is nullable"
 msgstr "l'index « %s » ne peut pas être utilisé comme identité de réplicat car la colonne « %s » peut être NULL"
 
-#: commands/tablecmds.c:14115
+#: commands/tablecmds.c:14918
 #, c-format
 msgid "cannot change logged status of table \"%s\" because it is temporary"
 msgstr "ne peut pas modifier le statut de journalisation de la table « %s » parce qu'elle est temporaire"
 
-#: commands/tablecmds.c:14139
+#: commands/tablecmds.c:14942
 #, c-format
 msgid "cannot change table \"%s\" to unlogged because it is part of a publication"
 msgstr "ne peut pas modifier la table « %s » en non journalisée car elle fait partie d'une publication"
 
-#: commands/tablecmds.c:14141
+#: commands/tablecmds.c:14944
 #, c-format
 msgid "Unlogged relations cannot be replicated."
 msgstr "Les relations non journalisées ne peuvent pas être répliquées."
 
-#: commands/tablecmds.c:14186
+#: commands/tablecmds.c:14989
 #, c-format
 msgid "could not change table \"%s\" to logged because it references unlogged table \"%s\""
 msgstr "n'a pas pu passer la table « %s » en journalisé car elle référence la table non journalisée « %s »"
 
-#: commands/tablecmds.c:14196
+#: commands/tablecmds.c:14999
 #, c-format
 msgid "could not change table \"%s\" to unlogged because it references logged table \"%s\""
 msgstr "n'a pas pu passer la table « %s » en non journalisé car elle référence la table journalisée « %s »"
 
-#: commands/tablecmds.c:14254
+#: commands/tablecmds.c:15057
 #, c-format
 msgid "cannot move an owned sequence into another schema"
 msgstr "ne peut pas déplacer une séquence OWNED BY dans un autre schéma"
 
-#: commands/tablecmds.c:14360
+#: commands/tablecmds.c:15163
 #, c-format
 msgid "relation \"%s\" already exists in schema \"%s\""
 msgstr "la relation « %s » existe déjà dans le schéma « %s »"
 
-#: commands/tablecmds.c:14937
+#: commands/tablecmds.c:15726
 #, c-format
 msgid "\"%s\" is not a composite type"
 msgstr "« %s » n'est pas un type composite"
 
-#: commands/tablecmds.c:14969
+#: commands/tablecmds.c:15758
 #, c-format
 msgid "\"%s\" is not a table, view, materialized view, sequence, or foreign table"
 msgstr "« %s » n'est ni une table, ni une vue, ni une vue matérialisée, ni une séquence, ni une table distante"
 
-#: commands/tablecmds.c:15004
+#: commands/tablecmds.c:15793
 #, c-format
 msgid "unrecognized partitioning strategy \"%s\""
 msgstr "stratégie de partitionnement « %s » non reconnue"
 
-#: commands/tablecmds.c:15012
+#: commands/tablecmds.c:15801
 #, c-format
 msgid "cannot use \"list\" partition strategy with more than one column"
 msgstr "ne peut pas utiliser la stratégie de partitionnement « list » avec plus d'une colonne"
 
-#: commands/tablecmds.c:15078
+#: commands/tablecmds.c:15867
 #, c-format
 msgid "column \"%s\" named in partition key does not exist"
 msgstr "la colonne « %s » nommée dans la clé de partitionnement n'existe pas"
 
-#: commands/tablecmds.c:15086
+#: commands/tablecmds.c:15875
 #, c-format
 msgid "cannot use system column \"%s\" in partition key"
 msgstr "ne peut pas utiliser la colonne système « %s » comme clé de partitionnement"
 
-#: commands/tablecmds.c:15097 commands/tablecmds.c:15202
+#: commands/tablecmds.c:15886 commands/tablecmds.c:16000
 #, c-format
 msgid "cannot use generated column in partition key"
 msgstr "ne peut pas utiliser une colonne générée dans une clé de partitionnement"
 
-#: commands/tablecmds.c:15098 commands/tablecmds.c:15203 commands/trigger.c:659 rewrite/rewriteHandler.c:826 rewrite/rewriteHandler.c:843
+#: commands/tablecmds.c:15887 commands/tablecmds.c:16001 commands/trigger.c:641 rewrite/rewriteHandler.c:829 rewrite/rewriteHandler.c:846
 #, c-format
 msgid "Column \"%s\" is a generated column."
 msgstr "la colonne « %s » est une colonne générée."
 
-#: commands/tablecmds.c:15162
+#: commands/tablecmds.c:15963
 #, c-format
 msgid "functions in partition key expression must be marked IMMUTABLE"
 msgstr ""
 "les fonctions dans une expression de clé de partitionnement doivent être marquées comme\n"
 "IMMUTABLE"
 
-#: commands/tablecmds.c:15179
-#, c-format
-msgid "partition key expressions cannot contain whole-row references"
-msgstr "les expressions de clé de partitionnement ne peuvent pas contenir des références à des lignes complètes"
-
-#: commands/tablecmds.c:15186
+#: commands/tablecmds.c:15983
 #, c-format
 msgid "partition key expressions cannot contain system column references"
 msgstr "les expressions de la clé de partitionnement ne peuvent pas contenir des références aux colonnes systèmes"
 
-#: commands/tablecmds.c:15215
+#: commands/tablecmds.c:16013
 #, c-format
 msgid "cannot use constant expression as partition key"
 msgstr "ne peut pas utiliser une expression constante comme clé de partitionnement"
 
-#: commands/tablecmds.c:15236
+#: commands/tablecmds.c:16034
 #, c-format
 msgid "could not determine which collation to use for partition expression"
 msgstr "n'a pas pu déterminer le collationnement à utiliser pour l'expression de partitionnement"
 
-#: commands/tablecmds.c:15271
+#: commands/tablecmds.c:16069
 #, c-format
 msgid "You must specify a hash operator class or define a default hash operator class for the data type."
 msgstr ""
 "Vous devez spécifier une classe d'opérateur hash ou définir une\n"
 "classe d'opérateur hash par défaut pour le type de données."
 
-#: commands/tablecmds.c:15277
+#: commands/tablecmds.c:16075
 #, c-format
 msgid "You must specify a btree operator class or define a default btree operator class for the data type."
 msgstr ""
 "Vous devez spécifier une classe d'opérateur btree ou définir une\n"
 "classe d'opérateur btree par défaut pour le type de données."
 
-#: commands/tablecmds.c:15422
+#: commands/tablecmds.c:16220
 #, c-format
 msgid "partition constraint for table \"%s\" is implied by existing constraints"
 msgstr "la contrainte de partitionnement pour la table « %s » provient des contraintes existantes"
 
-#: commands/tablecmds.c:15426 partitioning/partbounds.c:1257 partitioning/partbounds.c:1308
+#: commands/tablecmds.c:16224 partitioning/partbounds.c:3129 partitioning/partbounds.c:3180
 #, c-format
 msgid "updated partition constraint for default partition \"%s\" is implied by existing constraints"
 msgstr "la contrainte de partitionnement pour la partition par défaut « %s » est implicite du fait de contraintes existantes"
 
-#: commands/tablecmds.c:15530
+#: commands/tablecmds.c:16323
 #, c-format
 msgid "\"%s\" is already a partition"
 msgstr "« %s » est déjà une partition"
 
-#: commands/tablecmds.c:15536
+#: commands/tablecmds.c:16329
 #, c-format
 msgid "cannot attach a typed table as partition"
 msgstr "ne peut pas attacher une table typée à une partition"
 
-#: commands/tablecmds.c:15552
+#: commands/tablecmds.c:16345
 #, c-format
 msgid "cannot attach inheritance child as partition"
 msgstr "ne peut pas ajouter la table en héritage comme une partition"
 
-#: commands/tablecmds.c:15566
+#: commands/tablecmds.c:16359
 #, c-format
 msgid "cannot attach inheritance parent as partition"
 msgstr "ne peut pas attacher le parent d'héritage comme partition"
 
-#: commands/tablecmds.c:15600
+#: commands/tablecmds.c:16393
 #, c-format
 msgid "cannot attach a temporary relation as partition of permanent relation \"%s\""
 msgstr "ne peut pas attacher une relation temporaire comme partition de la relation permanente « %s »"
 
-#: commands/tablecmds.c:15608
+#: commands/tablecmds.c:16401
 #, c-format
 msgid "cannot attach a permanent relation as partition of temporary relation \"%s\""
 msgstr "ne peut pas attacher une relation permanente comme partition de la relation temporaire « %s »"
 
-#: commands/tablecmds.c:15616
+#: commands/tablecmds.c:16409
 #, c-format
 msgid "cannot attach as partition of temporary relation of another session"
 msgstr "ne peut pas attacher comme partition d'une relation temporaire d'une autre session"
 
-#: commands/tablecmds.c:15623
+#: commands/tablecmds.c:16416
 #, c-format
 msgid "cannot attach temporary relation of another session as partition"
 msgstr "ne peut pas attacher une relation temporaire d'une autre session comme partition"
 
-#: commands/tablecmds.c:15643
+#: commands/tablecmds.c:16436
 #, c-format
 msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\""
 msgstr "la table « %s » contient la colonne « %s » introuvable dans le parent « %s »"
 
-#: commands/tablecmds.c:15646
+#: commands/tablecmds.c:16439
 #, c-format
 msgid "The new partition may contain only the columns present in parent."
 msgstr "La nouvelle partition pourrait seulement contenir les colonnes présentes dans le parent."
 
-#: commands/tablecmds.c:15658
+#: commands/tablecmds.c:16451
 #, c-format
 msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition"
 msgstr "le trigger « %s » empêche la table « %s » de devenir une partition"
 
-#: commands/tablecmds.c:15660 commands/trigger.c:465
+#: commands/tablecmds.c:16453 commands/trigger.c:447
 #, c-format
 msgid "ROW triggers with transition tables are not supported on partitions"
 msgstr "les triggers ROW avec des tables de transition ne sont pas supportés sur les partitions"
 
-#: commands/tablecmds.c:15827
+#: commands/tablecmds.c:16616
 #, c-format
 msgid "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\""
 msgstr "ne peut pas attacher la table distante « %s » comme partition de la table partitionnée « %s »"
 
-#: commands/tablecmds.c:15830
+#: commands/tablecmds.c:16619
 #, c-format
 msgid "Table \"%s\" contains unique indexes."
 msgstr "La table « %s » contient des index uniques."
 
-#: commands/tablecmds.c:16411 commands/tablecmds.c:16430 commands/tablecmds.c:16452 commands/tablecmds.c:16471 commands/tablecmds.c:16513
+#: commands/tablecmds.c:17265 commands/tablecmds.c:17285 commands/tablecmds.c:17305 commands/tablecmds.c:17324 commands/tablecmds.c:17366
 #, c-format
 msgid "cannot attach index \"%s\" as a partition of index \"%s\""
 msgstr "ne peut pas attacher l'index « %s » comme une partition de l'index « %s »"
 
-#: commands/tablecmds.c:16414
+#: commands/tablecmds.c:17268
 #, c-format
 msgid "Index \"%s\" is already attached to another index."
 msgstr "L'index « %s » est déjà attaché à un autre index."
 
-#: commands/tablecmds.c:16433
+#: commands/tablecmds.c:17288
 #, c-format
 msgid "Index \"%s\" is not an index on any partition of table \"%s\"."
 msgstr "L'index « %s » n'est un index sur aucune des partitions de la table « %s »."
 
-#: commands/tablecmds.c:16455
+#: commands/tablecmds.c:17308
 #, c-format
 msgid "The index definitions do not match."
 msgstr "La définition de l'index correspond pas."
 
-#: commands/tablecmds.c:16474
+#: commands/tablecmds.c:17327
 #, c-format
 msgid "The index \"%s\" belongs to a constraint in table \"%s\" but no constraint exists for index \"%s\"."
 msgstr "L'index « %s » appartient à une contrainte dans la table « %s » mais aucune contrainte n'existe pour l'index « %s »."
 
-#: commands/tablecmds.c:16516
+#: commands/tablecmds.c:17369
 #, c-format
 msgid "Another index is already attached for partition \"%s\"."
 msgstr "Un autre index est déjà attaché pour la partition « %s »."
 
-#: commands/tablespace.c:163 commands/tablespace.c:180 commands/tablespace.c:191 commands/tablespace.c:199 commands/tablespace.c:639 replication/slot.c:1198 storage/file/copydir.c:47
+#: commands/tablespace.c:162 commands/tablespace.c:179 commands/tablespace.c:190 commands/tablespace.c:198 commands/tablespace.c:638 replication/slot.c:1373 storage/file/copydir.c:47
 #, c-format
 msgid "could not create directory \"%s\": %m"
 msgstr "n'a pas pu créer le répertoire « %s » : %m"
 
-#: commands/tablespace.c:210 utils/adt/genfile.c:593
+#: commands/tablespace.c:209
 #, c-format
 msgid "could not stat directory \"%s\": %m"
 msgstr "n'a pas pu lire les informations sur le répertoire « %s » : %m"
 
-#: commands/tablespace.c:219
+#: commands/tablespace.c:218
 #, c-format
 msgid "\"%s\" exists but is not a directory"
 msgstr "« %s » existe mais n'est pas un répertoire"
 
-#: commands/tablespace.c:250
+#: commands/tablespace.c:249
 #, c-format
 msgid "permission denied to create tablespace \"%s\""
 msgstr "droit refusé pour créer le tablespace « %s »"
 
-#: commands/tablespace.c:252
+#: commands/tablespace.c:251
 #, c-format
 msgid "Must be superuser to create a tablespace."
 msgstr "Doit être super-utilisateur pour créer un tablespace."
 
-#: commands/tablespace.c:268
+#: commands/tablespace.c:267
 #, c-format
 msgid "tablespace location cannot contain single quotes"
 msgstr "le chemin du tablespace ne peut pas contenir de guillemets simples"
 
-#: commands/tablespace.c:278
+#: commands/tablespace.c:277
 #, c-format
 msgid "tablespace location must be an absolute path"
 msgstr "le chemin du tablespace doit être un chemin absolu"
 
-#: commands/tablespace.c:290
+#: commands/tablespace.c:289
 #, c-format
 msgid "tablespace location \"%s\" is too long"
 msgstr "le chemin du tablespace « %s » est trop long"
 
-#: commands/tablespace.c:297
+#: commands/tablespace.c:296
 #, c-format
 msgid "tablespace location should not be inside the data directory"
 msgstr "l'emplacement du tablespace ne doit pas être dans le répertoire de données"
 
-#: commands/tablespace.c:306 commands/tablespace.c:966
+#: commands/tablespace.c:305 commands/tablespace.c:965
 #, c-format
 msgid "unacceptable tablespace name \"%s\""
 msgstr "nom inacceptable pour le tablespace « %s »"
 
-#: commands/tablespace.c:308 commands/tablespace.c:967
+#: commands/tablespace.c:307 commands/tablespace.c:966
 #, c-format
 msgid "The prefix \"pg_\" is reserved for system tablespaces."
 msgstr "Le préfixe « pg_ » est réservé pour les tablespaces système."
 
-#: commands/tablespace.c:327 commands/tablespace.c:988
+#: commands/tablespace.c:326 commands/tablespace.c:987
 #, c-format
 msgid "tablespace \"%s\" already exists"
 msgstr "le tablespace « %s » existe déjà"
 
-#: commands/tablespace.c:443 commands/tablespace.c:949 commands/tablespace.c:1038 commands/tablespace.c:1107 commands/tablespace.c:1251 commands/tablespace.c:1451
+#: commands/tablespace.c:442 commands/tablespace.c:948 commands/tablespace.c:1037 commands/tablespace.c:1106 commands/tablespace.c:1252 commands/tablespace.c:1455
 #, c-format
 msgid "tablespace \"%s\" does not exist"
 msgstr "le tablespace « %s » n'existe pas"
 
-#: commands/tablespace.c:449
+#: commands/tablespace.c:448
 #, c-format
 msgid "tablespace \"%s\" does not exist, skipping"
 msgstr "le tablespace « %s » n'existe pas, poursuite du traitement"
 
-#: commands/tablespace.c:526
+#: commands/tablespace.c:525
 #, c-format
 msgid "tablespace \"%s\" is not empty"
 msgstr "le tablespace « %s » n'est pas vide"
 
-#: commands/tablespace.c:598
+#: commands/tablespace.c:597
 #, c-format
 msgid "directory \"%s\" does not exist"
 msgstr "le répertoire « %s » n'existe pas"
 
-#: commands/tablespace.c:599
+#: commands/tablespace.c:598
 #, c-format
 msgid "Create this directory for the tablespace before restarting the server."
 msgstr "Créer le répertoire pour ce tablespace avant de redémarrer le serveur."
 
-#: commands/tablespace.c:604
+#: commands/tablespace.c:603
 #, c-format
 msgid "could not set permissions on directory \"%s\": %m"
 msgstr "n'a pas pu configurer les droits du répertoire « %s » : %m"
 
-#: commands/tablespace.c:634
+#: commands/tablespace.c:633
 #, c-format
 msgid "directory \"%s\" already in use as a tablespace"
 msgstr "répertoire « %s » déjà utilisé comme tablespace"
 
-#: commands/tablespace.c:758 commands/tablespace.c:771 commands/tablespace.c:807 commands/tablespace.c:899 storage/file/fd.c:2992 storage/file/fd.c:3331
+#: commands/tablespace.c:757 commands/tablespace.c:770 commands/tablespace.c:806 commands/tablespace.c:898 storage/file/fd.c:3108 storage/file/fd.c:3448
 #, c-format
 msgid "could not remove directory \"%s\": %m"
 msgstr "n'a pas pu supprimer le répertoire « %s » : %m"
 
-#: commands/tablespace.c:820 commands/tablespace.c:908
+#: commands/tablespace.c:819 commands/tablespace.c:907
 #, c-format
 msgid "could not remove symbolic link \"%s\": %m"
 msgstr "n'a pas pu supprimer le lien symbolique « %s » : %m"
 
-#: commands/tablespace.c:830 commands/tablespace.c:917
+#: commands/tablespace.c:829 commands/tablespace.c:916
 #, c-format
 msgid "\"%s\" is not a directory or symbolic link"
 msgstr "« %s » n'est ni un répertoire ni un lien symbolique"
 
-#: commands/tablespace.c:1112
+#: commands/tablespace.c:1111
 #, c-format
 msgid "Tablespace \"%s\" does not exist."
 msgstr "Le tablespace « %s » n'existe pas."
 
-#: commands/tablespace.c:1550
+#: commands/tablespace.c:1554
 #, c-format
 msgid "directories for tablespace %u could not be removed"
 msgstr "les répertoires du tablespace %u n'ont pas pu être supprimés"
 
-#: commands/tablespace.c:1552
+#: commands/tablespace.c:1556
 #, c-format
 msgid "You can remove the directories manually if necessary."
 msgstr "Vous pouvez supprimer les répertoires manuellement si nécessaire."
 
-#: commands/trigger.c:210 commands/trigger.c:221
+#: commands/trigger.c:204 commands/trigger.c:215
 #, c-format
 msgid "\"%s\" is a table"
 msgstr "« %s » est une table"
 
-#: commands/trigger.c:212 commands/trigger.c:223
+#: commands/trigger.c:206 commands/trigger.c:217
 #, c-format
 msgid "Tables cannot have INSTEAD OF triggers."
 msgstr "Les tables ne peuvent pas avoir de triggers INSTEAD OF."
 
-#: commands/trigger.c:240
+#: commands/trigger.c:238
 #, c-format
-msgid "Partitioned tables cannot have BEFORE / FOR EACH ROW triggers."
-msgstr "Les tables partitionnées ne peuvent pas avoir de triggers BEFORE / FOR EACH ROW."
+msgid "\"%s\" is a partitioned table"
+msgstr "« %s » est une table partitionnée"
 
-#: commands/trigger.c:258
+#: commands/trigger.c:240
 #, c-format
 msgid "Triggers on partitioned tables cannot have transition tables."
 msgstr "Les triggers sur les tables partitionnées ne peuvent pas avoir de tables de transition."
 
-#: commands/trigger.c:270 commands/trigger.c:277 commands/trigger.c:447
+#: commands/trigger.c:252 commands/trigger.c:259 commands/trigger.c:429
 #, c-format
 msgid "\"%s\" is a view"
 msgstr "« %s » est une vue"
 
-#: commands/trigger.c:272
+#: commands/trigger.c:254
 #, c-format
 msgid "Views cannot have row-level BEFORE or AFTER triggers."
 msgstr "Les vues ne peuvent pas avoir de trigger BEFORE ou AFTER au niveau ligne."
 
-#: commands/trigger.c:279
+#: commands/trigger.c:261
 #, c-format
 msgid "Views cannot have TRUNCATE triggers."
 msgstr "Les vues ne peuvent pas avoir de triggers TRUNCATE."
 
-#: commands/trigger.c:287 commands/trigger.c:294 commands/trigger.c:306 commands/trigger.c:440
+#: commands/trigger.c:269 commands/trigger.c:276 commands/trigger.c:288 commands/trigger.c:422
 #, c-format
 msgid "\"%s\" is a foreign table"
 msgstr "« %s » est une table distante"
 
-#: commands/trigger.c:289
+#: commands/trigger.c:271
 #, c-format
 msgid "Foreign tables cannot have INSTEAD OF triggers."
 msgstr "Les tables distantes ne peuvent pas avoir de triggers INSTEAD OF."
 
-#: commands/trigger.c:296
+#: commands/trigger.c:278
 #, c-format
 msgid "Foreign tables cannot have TRUNCATE triggers."
 msgstr "Les tables distantes ne peuvent pas avoir de triggers TRUNCATE."
 
-#: commands/trigger.c:308
+#: commands/trigger.c:290
 #, c-format
 msgid "Foreign tables cannot have constraint triggers."
 msgstr "Les tables distantes ne peuvent pas avoir de triggers de contrainte."
 
-#: commands/trigger.c:383
+#: commands/trigger.c:365
 #, c-format
 msgid "TRUNCATE FOR EACH ROW triggers are not supported"
 msgstr "les triggers TRUNCATE FOR EACH ROW ne sont pas supportés"
 
-#: commands/trigger.c:391
+#: commands/trigger.c:373
 #, c-format
 msgid "INSTEAD OF triggers must be FOR EACH ROW"
 msgstr "les triggers INSTEAD OF doivent être FOR EACH ROW"
 
-#: commands/trigger.c:395
+#: commands/trigger.c:377
 #, c-format
 msgid "INSTEAD OF triggers cannot have WHEN conditions"
 msgstr "les triggers INSTEAD OF ne peuvent pas avoir de conditions WHEN"
 
-#: commands/trigger.c:399
+#: commands/trigger.c:381
 #, c-format
 msgid "INSTEAD OF triggers cannot have column lists"
 msgstr "les triggers INSTEAD OF ne peuvent pas avoir de liste de colonnes"
 
-#: commands/trigger.c:428
+#: commands/trigger.c:410
 #, c-format
 msgid "ROW variable naming in the REFERENCING clause is not supported"
 msgstr "le nommage de variable ROW dans la clause REFERENCING n'est pas supporté"
 
-#: commands/trigger.c:429
+#: commands/trigger.c:411
 #, c-format
 msgid "Use OLD TABLE or NEW TABLE for naming transition tables."
 msgstr "Utilisez OLD TABLE ou NEW TABLE pour nommer les tables de transition."
 
-#: commands/trigger.c:442
+#: commands/trigger.c:424
 #, c-format
 msgid "Triggers on foreign tables cannot have transition tables."
 msgstr "Les triggers sur les tables distantes ne peuvent pas avoir de tables de transition."
 
-#: commands/trigger.c:449
+#: commands/trigger.c:431
 #, c-format
 msgid "Triggers on views cannot have transition tables."
 msgstr "Les triggers sur les vues ne peuvent pas avoir de tables de transition."
 
-#: commands/trigger.c:469
+#: commands/trigger.c:451
 #, c-format
 msgid "ROW triggers with transition tables are not supported on inheritance children"
 msgstr "les triggers ROW avec des tables de transition ne sont pas supportés sur les filles en héritage"
 
-#: commands/trigger.c:475
+#: commands/trigger.c:457
 #, c-format
 msgid "transition table name can only be specified for an AFTER trigger"
 msgstr "le nom de la table de transition peut seulement être spécifié pour un trigger AFTER"
 
-#: commands/trigger.c:480
+#: commands/trigger.c:462
 #, c-format
 msgid "TRUNCATE triggers with transition tables are not supported"
 msgstr "les triggers TRUNCATE avec des tables de transition ne sont pas supportés"
 
-#: commands/trigger.c:497
+#: commands/trigger.c:479
 #, c-format
 msgid "transition tables cannot be specified for triggers with more than one event"
 msgstr "les tables de transition ne peuvent pas être spécifiées pour les triggers avec plus d'un événement"
 
-#: commands/trigger.c:508
+#: commands/trigger.c:490
 #, c-format
 msgid "transition tables cannot be specified for triggers with column lists"
 msgstr "les tables de transition ne peuvent pas être spécifiées pour les triggers avec des listes de colonnes"
 
-#: commands/trigger.c:525
+#: commands/trigger.c:507
 #, c-format
 msgid "NEW TABLE can only be specified for an INSERT or UPDATE trigger"
 msgstr "OLD TABLE peut seulement être spécifié pour un trigger INSERT ou UPDATE"
 
-#: commands/trigger.c:530
+#: commands/trigger.c:512
 #, c-format
 msgid "NEW TABLE cannot be specified multiple times"
 msgstr "NEW TABLE ne peut pas être spécifié plusieurs fois"
 
-#: commands/trigger.c:540
+#: commands/trigger.c:522
 #, c-format
 msgid "OLD TABLE can only be specified for a DELETE or UPDATE trigger"
 msgstr "OLD TABLE peut seulement être spécifié pour un trigger DELETE ou UPDATE"
 
-#: commands/trigger.c:545
+#: commands/trigger.c:527
 #, c-format
 msgid "OLD TABLE cannot be specified multiple times"
 msgstr "OLD TABLE ne peut pas être spécifié plusieurs fois"
 
-#: commands/trigger.c:555
+#: commands/trigger.c:537
 #, c-format
 msgid "OLD TABLE name and NEW TABLE name cannot be the same"
 msgstr "les noms de OLD TABLE et NEW TABLE ne peuvent pas être identiques"
 
-#: commands/trigger.c:619 commands/trigger.c:632
+#: commands/trigger.c:601 commands/trigger.c:614
 #, c-format
 msgid "statement trigger's WHEN condition cannot reference column values"
 msgstr ""
 "la condition WHEN de l'instruction du trigger ne peut pas référencer les valeurs\n"
 "des colonnes"
 
-#: commands/trigger.c:624
+#: commands/trigger.c:606
 #, c-format
 msgid "INSERT trigger's WHEN condition cannot reference OLD values"
 msgstr "la condition WHEN du trigger INSERT ne peut pas référencer les valeurs OLD"
 
-#: commands/trigger.c:637
+#: commands/trigger.c:619
 #, c-format
 msgid "DELETE trigger's WHEN condition cannot reference NEW values"
 msgstr "la condition WHEN du trigger DELETE ne peut pas référencer les valeurs NEW"
 
-#: commands/trigger.c:642
+#: commands/trigger.c:624
 #, c-format
 msgid "BEFORE trigger's WHEN condition cannot reference NEW system columns"
 msgstr "la condition WHEN d'un trigger BEFORE ne doit pas référencer dans NEW les colonnes système"
 
-#: commands/trigger.c:650 commands/trigger.c:658
+#: commands/trigger.c:632 commands/trigger.c:640
 #, c-format
 msgid "BEFORE trigger's WHEN condition cannot reference NEW generated columns"
 msgstr "la condition WHEN d'un trigger BEFORE ne doit pas référencer dans NEW les colonnes générées"
 
-#: commands/trigger.c:651
+#: commands/trigger.c:633
 #, c-format
 msgid "A whole-row reference is used and the table contains generated columns."
 msgstr "Une référence comprenant toute une ligne est utilisée et la table contient des colonnes générées."
 
-#: commands/trigger.c:833 commands/trigger.c:1723
+#: commands/trigger.c:780 commands/trigger.c:1385
 #, c-format
 msgid "trigger \"%s\" for relation \"%s\" already exists"
 msgstr "le trigger « %s » de la relation « %s » existe déjà"
 
-#: commands/trigger.c:1248
-msgid "Found referenced table's UPDATE trigger."
-msgstr "Trigger UPDATE de la table référencée trouvé."
-
-#: commands/trigger.c:1249
-msgid "Found referenced table's DELETE trigger."
-msgstr "Trigger DELETE de la table référencée trouvé."
-
-#: commands/trigger.c:1250
-msgid "Found referencing table's trigger."
-msgstr "Trigger de la table référencée trouvé."
-
-#: commands/trigger.c:1359 commands/trigger.c:1375
-#, c-format
-msgid "ignoring incomplete trigger group for constraint \"%s\" %s"
-msgstr "ignore le groupe de trigger incomplet pour la contrainte « %s » %s"
-
-#: commands/trigger.c:1388
-#, c-format
-msgid "converting trigger group into constraint \"%s\" %s"
-msgstr "conversion du groupe de trigger en une contrainte « %s » %s"
-
-#: commands/trigger.c:1609 commands/trigger.c:1770 commands/trigger.c:1906
+#: commands/trigger.c:1271 commands/trigger.c:1432 commands/trigger.c:1568
 #, c-format
 msgid "trigger \"%s\" for table \"%s\" does not exist"
 msgstr "le trigger « %s » de la table « %s » n'existe pas"
 
-#: commands/trigger.c:1853
+#: commands/trigger.c:1515
 #, c-format
 msgid "permission denied: \"%s\" is a system trigger"
 msgstr "droit refusé : « %s » est un trigger système"
 
-#: commands/trigger.c:2453
+#: commands/trigger.c:2116
 #, c-format
 msgid "trigger function %u returned null value"
 msgstr "la fonction trigger %u a renvoyé la valeur NULL"
 
-#: commands/trigger.c:2519 commands/trigger.c:2736 commands/trigger.c:2988 commands/trigger.c:3292
+#: commands/trigger.c:2176 commands/trigger.c:2390 commands/trigger.c:2625 commands/trigger.c:2933
 #, c-format
 msgid "BEFORE STATEMENT trigger cannot return a value"
 msgstr "un trigger BEFORE STATEMENT ne peut pas renvoyer une valeur"
 
-#: commands/trigger.c:3355 executor/nodeModifyTable.c:1349 executor/nodeModifyTable.c:1418
+#: commands/trigger.c:2250
+#, c-format
+msgid "moving row to another partition during a BEFORE FOR EACH ROW trigger is not supported"
+msgstr ""
+
+#: commands/trigger.c:2251 commands/trigger.c:2755
+#, c-format
+msgid "Before executing trigger \"%s\", the row was to be in partition \"%s.%s\"."
+msgstr ""
+
+#: commands/trigger.c:2754
+#, c-format
+msgid "moving row to another partition during a BEFORE trigger is not supported"
+msgstr ""
+
+#: commands/trigger.c:2996 executor/nodeModifyTable.c:1380 executor/nodeModifyTable.c:1449
 #, c-format
 msgid "tuple to be updated was already modified by an operation triggered by the current command"
 msgstr "la ligne à mettre à jour était déjà modifiée par une opération déclenchée par la commande courante"
 
-#: commands/trigger.c:3356 executor/nodeModifyTable.c:809 executor/nodeModifyTable.c:883 executor/nodeModifyTable.c:1350 executor/nodeModifyTable.c:1419
+#: commands/trigger.c:2997 executor/nodeModifyTable.c:840 executor/nodeModifyTable.c:914 executor/nodeModifyTable.c:1381 executor/nodeModifyTable.c:1450
 #, c-format
 msgid "Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows."
 msgstr "Considérez l'utilisation d'un trigger AFTER au lieu d'un trigger BEFORE pour propager les changements sur les autres lignes."
 
-#: commands/trigger.c:3386 executor/nodeLockRows.c:225 executor/nodeLockRows.c:234 executor/nodeModifyTable.c:220 executor/nodeModifyTable.c:825 executor/nodeModifyTable.c:1366 executor/nodeModifyTable.c:1582
+#: commands/trigger.c:3026 executor/nodeLockRows.c:225 executor/nodeLockRows.c:234 executor/nodeModifyTable.c:220 executor/nodeModifyTable.c:856 executor/nodeModifyTable.c:1397 executor/nodeModifyTable.c:1613
 #, c-format
 msgid "could not serialize access due to concurrent update"
 msgstr "n'a pas pu sérialiser un accès à cause d'une mise à jour en parallèle"
 
-#: commands/trigger.c:3394 executor/nodeModifyTable.c:915 executor/nodeModifyTable.c:1436 executor/nodeModifyTable.c:1606
+#: commands/trigger.c:3034 executor/nodeModifyTable.c:946 executor/nodeModifyTable.c:1467 executor/nodeModifyTable.c:1637
 #, c-format
 msgid "could not serialize access due to concurrent delete"
 msgstr "n'a pas pu sérialiser un accès à cause d'une suppression en parallèle"
 
-#: commands/trigger.c:5445
+#: commands/trigger.c:5094
 #, c-format
 msgid "constraint \"%s\" is not deferrable"
 msgstr "la contrainte « %s » n'est pas DEFERRABLE"
 
-#: commands/trigger.c:5468
+#: commands/trigger.c:5117
 #, c-format
 msgid "constraint \"%s\" does not exist"
 msgstr "la contrainte « %s » n'existe pas"
 
-#: commands/tsearchcmds.c:115 commands/tsearchcmds.c:686
+#: commands/tsearchcmds.c:118 commands/tsearchcmds.c:683
 #, c-format
 msgid "function %s should return type %s"
 msgstr "la fonction %s doit renvoyer le type %s"
 
-#: commands/tsearchcmds.c:192
+#: commands/tsearchcmds.c:195
 #, c-format
 msgid "must be superuser to create text search parsers"
 msgstr "doit être super-utilisateur pour créer des analyseurs de recherche plein texte"
 
-#: commands/tsearchcmds.c:245
+#: commands/tsearchcmds.c:248
 #, c-format
 msgid "text search parser parameter \"%s\" not recognized"
 msgstr "paramètre de l'analyseur de recherche plein texte « %s » non reconnu"
 
-#: commands/tsearchcmds.c:255
+#: commands/tsearchcmds.c:258
 #, c-format
 msgid "text search parser start method is required"
 msgstr "la méthode start de l'analyseur de recherche plein texte est requise"
 
-#: commands/tsearchcmds.c:260
+#: commands/tsearchcmds.c:263
 #, c-format
 msgid "text search parser gettoken method is required"
 msgstr "la méthode gettoken de l'analyseur de recherche plein texte est requise"
 
-#: commands/tsearchcmds.c:265
+#: commands/tsearchcmds.c:268
 #, c-format
 msgid "text search parser end method is required"
 msgstr "la méthode end l'analyseur de recherche de texte est requise"
 
-#: commands/tsearchcmds.c:270
+#: commands/tsearchcmds.c:273
 #, c-format
 msgid "text search parser lextypes method is required"
 msgstr "la méthode lextypes de l'analyseur de recherche plein texte est requise"
 
-#: commands/tsearchcmds.c:387
+#: commands/tsearchcmds.c:390
 #, c-format
 msgid "text search template \"%s\" does not accept options"
 msgstr "le modèle de recherche plein texte « %s » n'accepte pas d'options"
 
-#: commands/tsearchcmds.c:461
+#: commands/tsearchcmds.c:464
 #, c-format
 msgid "text search template is required"
 msgstr "le modèle de la recherche plein texte est requis"
 
-#: commands/tsearchcmds.c:753
+#: commands/tsearchcmds.c:750
 #, c-format
 msgid "must be superuser to create text search templates"
 msgstr "doit être super-utilisateur pour créer des modèles de recherche plein texte"
 
-#: commands/tsearchcmds.c:795
+#: commands/tsearchcmds.c:792
 #, c-format
 msgid "text search template parameter \"%s\" not recognized"
 msgstr "paramètre de modèle de recherche plein texte « %s » non reconnu"
 
-#: commands/tsearchcmds.c:805
+#: commands/tsearchcmds.c:802
 #, c-format
 msgid "text search template lexize method is required"
 msgstr "la méthode lexize du modèle de recherche plein texte est requise"
 
-#: commands/tsearchcmds.c:1009
+#: commands/tsearchcmds.c:1006
 #, c-format
 msgid "text search configuration parameter \"%s\" not recognized"
 msgstr "paramètre de configuration de recherche plein texte « %s » non reconnu"
 
-#: commands/tsearchcmds.c:1016
+#: commands/tsearchcmds.c:1013
 #, c-format
 msgid "cannot specify both PARSER and COPY options"
 msgstr "ne peut pas spécifier à la fois PARSER et COPY"
 
-#: commands/tsearchcmds.c:1052
+#: commands/tsearchcmds.c:1049
 #, c-format
 msgid "text search parser is required"
 msgstr "l'analyseur de la recherche plein texte est requis"
 
-#: commands/tsearchcmds.c:1276
+#: commands/tsearchcmds.c:1273
 #, c-format
 msgid "token type \"%s\" does not exist"
 msgstr "le type de jeton « %s » n'existe pas"
 
-#: commands/tsearchcmds.c:1503
+#: commands/tsearchcmds.c:1500
 #, c-format
 msgid "mapping for token type \"%s\" does not exist"
 msgstr "la correspondance pour le type de jeton « %s » n'existe pas"
 
-#: commands/tsearchcmds.c:1509
+#: commands/tsearchcmds.c:1506
 #, c-format
 msgid "mapping for token type \"%s\" does not exist, skipping"
 msgstr ""
 "la correspondance pour le type de jeton « %s » n'existe pas, poursuite du\n"
 "traitement"
 
-#: commands/tsearchcmds.c:1664 commands/tsearchcmds.c:1775
+#: commands/tsearchcmds.c:1669 commands/tsearchcmds.c:1784
 #, c-format
 msgid "invalid parameter list format: \"%s\""
 msgstr "format de liste de paramètres invalide : « %s »"
 
-#: commands/typecmds.c:184
+#: commands/typecmds.c:206
 #, c-format
 msgid "must be superuser to create a base type"
 msgstr "doit être super-utilisateur pour créer un type de base"
 
-#: commands/typecmds.c:291 commands/typecmds.c:1467
+#: commands/typecmds.c:264
+#, c-format
+msgid "Create the type as a shell type, then create its I/O functions, then do a full CREATE TYPE."
+msgstr ""
+
+#: commands/typecmds.c:314 commands/typecmds.c:1394 commands/typecmds.c:3832
 #, c-format
 msgid "type attribute \"%s\" not recognized"
 msgstr "attribut du type « %s » non reconnu"
 
-#: commands/typecmds.c:347
+#: commands/typecmds.c:370
 #, c-format
 msgid "invalid type category \"%s\": must be simple ASCII"
 msgstr "catégorie de type « %s » invalide : doit être de l'ASCII pur"
 
-#: commands/typecmds.c:366
+#: commands/typecmds.c:389
 #, c-format
 msgid "array element type cannot be %s"
 msgstr "le type d'élément tableau ne peut pas être %s"
 
-#: commands/typecmds.c:398
+#: commands/typecmds.c:421
 #, c-format
 msgid "alignment \"%s\" not recognized"
 msgstr "alignement « %s » non reconnu"
 
-#: commands/typecmds.c:415
+#: commands/typecmds.c:438 commands/typecmds.c:3718
 #, c-format
 msgid "storage \"%s\" not recognized"
 msgstr "stockage « %s » non reconnu"
 
-#: commands/typecmds.c:426
+#: commands/typecmds.c:449
 #, c-format
 msgid "type input function must be specified"
 msgstr "le type d'entrée de la fonction doit être spécifié"
 
-#: commands/typecmds.c:430
+#: commands/typecmds.c:453
 #, c-format
 msgid "type output function must be specified"
 msgstr "le type de sortie de la fonction doit être spécifié"
 
-#: commands/typecmds.c:435
+#: commands/typecmds.c:458
 #, c-format
 msgid "type modifier output function is useless without a type modifier input function"
 msgstr ""
 "la fonction en sortie du modificateur de type est inutile sans une fonction\n"
 "en entrée du modificateur de type"
 
-#: commands/typecmds.c:465
+#: commands/typecmds.c:745
 #, c-format
-msgid "type input function %s must return type %s"
-msgstr "le type d'entrée de la fonction %s doit être %s"
+msgid "\"%s\" is not a valid base type for a domain"
+msgstr "« %s » n'est pas un type de base valide pour un domaine"
 
-#: commands/typecmds.c:482
+#: commands/typecmds.c:837
 #, c-format
-msgid "type output function %s must return type %s"
-msgstr "le type de sortie de la fonction %s doit être %s"
+msgid "multiple default expressions"
+msgstr "multiples expressions par défaut"
 
-#: commands/typecmds.c:491
+#: commands/typecmds.c:900 commands/typecmds.c:909
 #, c-format
-msgid "type receive function %s must return type %s"
-msgstr "la fonction receive du type %s doit renvoyer le type %s"
+msgid "conflicting NULL/NOT NULL constraints"
+msgstr "contraintes NULL/NOT NULL en conflit"
 
-#: commands/typecmds.c:500
+#: commands/typecmds.c:925
 #, c-format
-msgid "type send function %s must return type %s"
-msgstr "le type de sortie de la fonction d'envoi %s doit être %s"
+msgid "check constraints for domains cannot be marked NO INHERIT"
+msgstr "les contraintes CHECK pour les domaines ne peuvent pas être marquées NO INHERIT"
 
-#: commands/typecmds.c:565
+#: commands/typecmds.c:934 commands/typecmds.c:2536
 #, c-format
-msgid "type input function %s should not be volatile"
-msgstr "la fonction en entrée du type %s ne doit pas être volatile"
+msgid "unique constraints not possible for domains"
+msgstr "contraintes uniques impossible pour les domaines"
 
-#: commands/typecmds.c:570
+#: commands/typecmds.c:940 commands/typecmds.c:2542
 #, c-format
-msgid "type output function %s should not be volatile"
-msgstr "la fonction en entrée du type %s ne doit pas être volatile"
+msgid "primary key constraints not possible for domains"
+msgstr "contraintes de clé primaire impossible pour les domaines"
 
-#: commands/typecmds.c:575
+#: commands/typecmds.c:946 commands/typecmds.c:2548
 #, c-format
-msgid "type receive function %s should not be volatile"
-msgstr "la fonction receive du type %s ne doit pas être volatile"
+msgid "exclusion constraints not possible for domains"
+msgstr "contraintes d'exclusion impossible pour les domaines"
 
-#: commands/typecmds.c:580
+#: commands/typecmds.c:952 commands/typecmds.c:2554
 #, c-format
-msgid "type send function %s should not be volatile"
-msgstr "la fonction send du type %s ne doit pas être volatile"
+msgid "foreign key constraints not possible for domains"
+msgstr "contraintes de clé étrangère impossible pour les domaines"
 
-#: commands/typecmds.c:585
+#: commands/typecmds.c:961 commands/typecmds.c:2563
 #, c-format
-msgid "type modifier input function %s should not be volatile"
-msgstr "la fonction en entrée du modificateur de type %s ne devrait pas être volatile"
+msgid "specifying constraint deferrability not supported for domains"
+msgstr "spécifier des contraintes déferrantes n'est pas supporté par les domaines"
 
-#: commands/typecmds.c:590
+#: commands/typecmds.c:1271 utils/cache/typcache.c:2430
 #, c-format
-msgid "type modifier output function %s should not be volatile"
-msgstr "la fonction en sortie du modificateur de type %s ne devrait pas être volatile"
+msgid "%s is not an enum"
+msgstr "%s n'est pas un enum"
 
-#: commands/typecmds.c:817
+#: commands/typecmds.c:1402
 #, c-format
-msgid "\"%s\" is not a valid base type for a domain"
-msgstr "« %s » n'est pas un type de base valide pour un domaine"
+msgid "type attribute \"subtype\" is required"
+msgstr "l'attribut du sous-type est requis"
 
-#: commands/typecmds.c:903
+#: commands/typecmds.c:1407
 #, c-format
-msgid "multiple default expressions"
-msgstr "multiples expressions par défaut"
+msgid "range subtype cannot be %s"
+msgstr "le sous-type de l'intervalle ne peut pas être %s"
 
-#: commands/typecmds.c:966 commands/typecmds.c:975
+#: commands/typecmds.c:1426
 #, c-format
-msgid "conflicting NULL/NOT NULL constraints"
-msgstr "contraintes NULL/NOT NULL en conflit"
+msgid "range collation specified but subtype does not support collation"
+msgstr "collationnement spécifié pour l'intervalle mais le sous-type ne supporte pas les collationnements"
 
-#: commands/typecmds.c:991
+#: commands/typecmds.c:1436
 #, c-format
-msgid "check constraints for domains cannot be marked NO INHERIT"
-msgstr "les contraintes CHECK pour les domaines ne peuvent pas être marquées NO INHERIT"
+msgid "cannot specify a canonical function without a pre-created shell type"
+msgstr "ne peut pas spécifier une fonction canonique sans un type shell précédemment créé"
 
-#: commands/typecmds.c:1000 commands/typecmds.c:2582
+#: commands/typecmds.c:1437
 #, c-format
-msgid "unique constraints not possible for domains"
-msgstr "contraintes uniques impossible pour les domaines"
+msgid "Create the type as a shell type, then create its canonicalization function, then do a full CREATE TYPE."
+msgstr ""
 
-#: commands/typecmds.c:1006 commands/typecmds.c:2588
+#: commands/typecmds.c:1648
 #, c-format
-msgid "primary key constraints not possible for domains"
-msgstr "contraintes de clé primaire impossible pour les domaines"
+msgid "type input function %s has multiple matches"
+msgstr "la fonction d'entrée du type %s a plusieurs correspondances"
 
-#: commands/typecmds.c:1012 commands/typecmds.c:2594
+#: commands/typecmds.c:1666
 #, c-format
-msgid "exclusion constraints not possible for domains"
-msgstr "contraintes d'exclusion impossible pour les domaines"
+msgid "type input function %s must return type %s"
+msgstr "le type d'entrée de la fonction %s doit être %s"
 
-#: commands/typecmds.c:1018 commands/typecmds.c:2600
+#: commands/typecmds.c:1682
 #, c-format
-msgid "foreign key constraints not possible for domains"
-msgstr "contraintes de clé étrangère impossible pour les domaines"
+msgid "type input function %s should not be volatile"
+msgstr "la fonction en entrée du type %s ne doit pas être volatile"
 
-#: commands/typecmds.c:1027 commands/typecmds.c:2609
+#: commands/typecmds.c:1710
 #, c-format
-msgid "specifying constraint deferrability not supported for domains"
-msgstr "spécifier des contraintes déferrantes n'est pas supporté par les domaines"
+msgid "type output function %s must return type %s"
+msgstr "le type de sortie de la fonction %s doit être %s"
 
-#: commands/typecmds.c:1337 utils/cache/typcache.c:2340
+#: commands/typecmds.c:1717
 #, c-format
-msgid "%s is not an enum"
-msgstr "%s n'est pas un enum"
+msgid "type output function %s should not be volatile"
+msgstr "la fonction en entrée du type %s ne doit pas être volatile"
 
-#: commands/typecmds.c:1475
+#: commands/typecmds.c:1746
 #, c-format
-msgid "type attribute \"subtype\" is required"
-msgstr "l'attribut du sous-type est requis"
+msgid "type receive function %s has multiple matches"
+msgstr "la fonction receive du type %s a plusieurs correspondances"
 
-#: commands/typecmds.c:1480
+#: commands/typecmds.c:1764
 #, c-format
-msgid "range subtype cannot be %s"
-msgstr "le sous-type de l'intervalle ne peut pas être %s"
+msgid "type receive function %s must return type %s"
+msgstr "la fonction receive du type %s doit renvoyer le type %s"
 
-#: commands/typecmds.c:1499
+#: commands/typecmds.c:1771
 #, c-format
-msgid "range collation specified but subtype does not support collation"
-msgstr "collationnement spécifié pour l'intervalle mais le sous-type ne supporte pas les collationnements"
+msgid "type receive function %s should not be volatile"
+msgstr "la fonction receive du type %s ne doit pas être volatile"
 
-#: commands/typecmds.c:1733
+#: commands/typecmds.c:1799
 #, c-format
-msgid "changing argument type of function %s from \"opaque\" to \"cstring\""
-msgstr "changement du type d'argument de la fonction %s d'« opaque » à « cstring »"
+msgid "type send function %s must return type %s"
+msgstr "le type de sortie de la fonction d'envoi %s doit être %s"
 
-#: commands/typecmds.c:1784
+#: commands/typecmds.c:1806
 #, c-format
-msgid "changing argument type of function %s from \"opaque\" to %s"
-msgstr "changement du type d'argument de la fonction %s d'« opaque » à %s"
+msgid "type send function %s should not be volatile"
+msgstr "la fonction send du type %s ne doit pas être volatile"
 
-#: commands/typecmds.c:1883
+#: commands/typecmds.c:1833
 #, c-format
 msgid "typmod_in function %s must return type %s"
 msgstr "le type de sortie de la fonction typmod_in %s doit être %s"
 
-#: commands/typecmds.c:1910
+#: commands/typecmds.c:1840
+#, c-format
+msgid "type modifier input function %s should not be volatile"
+msgstr "la fonction en entrée du modificateur de type %s ne devrait pas être volatile"
+
+#: commands/typecmds.c:1867
 #, c-format
 msgid "typmod_out function %s must return type %s"
 msgstr "le type de sortie de la fonction typmod_out %s doit être %s"
 
-#: commands/typecmds.c:1937
+#: commands/typecmds.c:1874
+#, c-format
+msgid "type modifier output function %s should not be volatile"
+msgstr "la fonction en sortie du modificateur de type %s ne devrait pas être volatile"
+
+#: commands/typecmds.c:1901
 #, c-format
 msgid "type analyze function %s must return type %s"
 msgstr "la fonction analyze du type %s doit renvoyer le type %s"
 
-#: commands/typecmds.c:1983
+#: commands/typecmds.c:1947
 #, c-format
 msgid "You must specify an operator class for the range type or define a default operator class for the subtype."
 msgstr ""
 "Vous devez spécifier une classe d'opérateur pour le type range ou définir une\n"
 "classe d'opérateur par défaut pour le sous-type."
 
-#: commands/typecmds.c:2014
+#: commands/typecmds.c:1978
 #, c-format
 msgid "range canonical function %s must return range type"
 msgstr "la fonction canonical %s du range doit renvoyer le type range"
 
-#: commands/typecmds.c:2020
+#: commands/typecmds.c:1984
 #, c-format
 msgid "range canonical function %s must be immutable"
 msgstr "la fonction canonical %s du range doit être immutable"
 
-#: commands/typecmds.c:2056
+#: commands/typecmds.c:2020
 #, c-format
 msgid "range subtype diff function %s must return type %s"
 msgstr ""
 "la fonction %s de calcul de différence pour le sous-type d'un intervalle de\n"
 "valeur doit renvoyer le type %s"
 
-#: commands/typecmds.c:2063
+#: commands/typecmds.c:2027
 #, c-format
 msgid "range subtype diff function %s must be immutable"
 msgstr ""
 "la fonction %s de calcul de différence pour le sous-type d'un intervalle de\n"
 "valeur doit être immutable"
 
-#: commands/typecmds.c:2090
+#: commands/typecmds.c:2054
 #, c-format
 msgid "pg_type array OID value not set when in binary upgrade mode"
 msgstr "les valeurs d'OID du tableau pgtype ne sont pas positionnées en mode de mise à jour binaire"
 
-#: commands/typecmds.c:2398
+#: commands/typecmds.c:2352
 #, c-format
 msgid "column \"%s\" of table \"%s\" contains null values"
 msgstr "la colonne « %s » de la table « %s » contient des valeurs NULL"
 
-#: commands/typecmds.c:2511 commands/typecmds.c:2713
+#: commands/typecmds.c:2465 commands/typecmds.c:2667
 #, c-format
 msgid "constraint \"%s\" of domain \"%s\" does not exist"
 msgstr "la contrainte « %s » du domaine « %s » n'existe pas"
 
-#: commands/typecmds.c:2515
+#: commands/typecmds.c:2469
 #, c-format
 msgid "constraint \"%s\" of domain \"%s\" does not exist, skipping"
 msgstr "la contrainte « %s » du domaine « %s » n'existe pas, ignore"
 
-#: commands/typecmds.c:2720
+#: commands/typecmds.c:2674
 #, c-format
 msgid "constraint \"%s\" of domain \"%s\" is not a check constraint"
 msgstr "la contrainte « %s » du domaine « %s » n'est pas une contrainte de vérification"
 
-#: commands/typecmds.c:2826
+#: commands/typecmds.c:2780
 #, c-format
 msgid "column \"%s\" of table \"%s\" contains values that violate the new constraint"
 msgstr ""
 "la colonne « %s » de la table « %s » contient des valeurs violant la\n"
 "nouvelle contrainte"
 
-#: commands/typecmds.c:3055 commands/typecmds.c:3253 commands/typecmds.c:3335 commands/typecmds.c:3522
+#: commands/typecmds.c:3009 commands/typecmds.c:3207 commands/typecmds.c:3289 commands/typecmds.c:3476
 #, c-format
 msgid "%s is not a domain"
 msgstr "%s n'est pas un domaine"
 
-#: commands/typecmds.c:3087
+#: commands/typecmds.c:3041
 #, c-format
 msgid "constraint \"%s\" for domain \"%s\" already exists"
 msgstr "la contrainte « %s » du domaine « %s » existe déjà"
 
-#: commands/typecmds.c:3138
+#: commands/typecmds.c:3092
 #, c-format
 msgid "cannot use table references in domain check constraint"
 msgstr ""
 "ne peut pas utiliser les références de table dans la contrainte de\n"
 "vérification du domaine"
 
-#: commands/typecmds.c:3265 commands/typecmds.c:3347 commands/typecmds.c:3639
+#: commands/typecmds.c:3219 commands/typecmds.c:3301 commands/typecmds.c:3593
 #, c-format
 msgid "%s is a table's row type"
 msgstr "« %s » est du type ligne de table"
 
-#: commands/typecmds.c:3267 commands/typecmds.c:3349 commands/typecmds.c:3641
+#: commands/typecmds.c:3221 commands/typecmds.c:3303 commands/typecmds.c:3595
 #, c-format
 msgid "Use ALTER TABLE instead."
 msgstr "Utilisez ALTER TABLE à la place."
 
-#: commands/typecmds.c:3274 commands/typecmds.c:3356 commands/typecmds.c:3554
+#: commands/typecmds.c:3228 commands/typecmds.c:3310 commands/typecmds.c:3508
 #, c-format
 msgid "cannot alter array type %s"
 msgstr "ne peut pas modifier le type array %s"
 
-#: commands/typecmds.c:3276 commands/typecmds.c:3358 commands/typecmds.c:3556
+#: commands/typecmds.c:3230 commands/typecmds.c:3312 commands/typecmds.c:3510
 #, c-format
 msgid "You can alter type %s, which will alter the array type as well."
 msgstr "Vous pouvez modifier le type %s, ce qui va modifier aussi le type tableau."
 
-#: commands/typecmds.c:3624
+#: commands/typecmds.c:3578
 #, c-format
 msgid "type \"%s\" already exists in schema \"%s\""
 msgstr "le type « %s » existe déjà dans le schéma « %s »"
 
+#: commands/typecmds.c:3746
+#, c-format
+msgid "cannot change type's storage to PLAIN"
+msgstr "ne peut pas modifier le stockage du type en PLAIN"
+
+#: commands/typecmds.c:3827
+#, c-format
+msgid "type attribute \"%s\" cannot be changed"
+msgstr "l'attribut du type « %s » ne peut pas être changé"
+
+#: commands/typecmds.c:3845
+#, c-format
+msgid "must be superuser to alter a type"
+msgstr "doit être super-utilisateur pour modifier un type"
+
+#: commands/typecmds.c:3866 commands/typecmds.c:3876
+#, c-format
+msgid "%s is not a base type"
+msgstr "« %s » n'est pas un type de base"
+
 #: commands/user.c:140
 #, c-format
 msgid "SYSID can no longer be specified"
@@ -10552,7 +10859,7 @@ msgstr "doit être super-utilisateur pour créer des super-utilisateurs"
 msgid "must be superuser to create replication users"
 msgstr "doit être super-utilisateur pour créer des utilisateurs avec l'attribut réplication"
 
-#: commands/user.c:308 commands/user.c:723
+#: commands/user.c:308 commands/user.c:734
 #, c-format
 msgid "must be superuser to change bypassrls attribute"
 msgstr "doit être super-utilisateur pour modifier l'attribut bypassrls"
@@ -10562,22 +10869,22 @@ msgstr "doit être super-utilisateur pour modifier l'attribut bypassrls"
 msgid "permission denied to create role"
 msgstr "droit refusé pour créer un rôle"
 
-#: commands/user.c:325 commands/user.c:1213 commands/user.c:1220 gram.y:14896 gram.y:14934 utils/adt/acl.c:5342 utils/adt/acl.c:5348
+#: commands/user.c:325 commands/user.c:1224 commands/user.c:1231 gram.y:15146 gram.y:15184 utils/adt/acl.c:5327 utils/adt/acl.c:5333
 #, c-format
 msgid "role name \"%s\" is reserved"
 msgstr "le nom du rôle « %s » est réservé"
 
-#: commands/user.c:327 commands/user.c:1215 commands/user.c:1222
+#: commands/user.c:327 commands/user.c:1226 commands/user.c:1233
 #, c-format
 msgid "Role names starting with \"pg_\" are reserved."
 msgstr "Les noms de rôle commençant par « pg_ » sont réservés."
 
-#: commands/user.c:348 commands/user.c:1237
+#: commands/user.c:348 commands/user.c:1248
 #, c-format
 msgid "role \"%s\" already exists"
 msgstr "le rôle « %s » existe déjà"
 
-#: commands/user.c:414 commands/user.c:832
+#: commands/user.c:414 commands/user.c:843
 #, c-format
 msgid "empty string is not a valid password, clearing password"
 msgstr "une chaîne vide n'est pas un mot de passe valide, effacement du mot de passe"
@@ -10587,220 +10894,237 @@ msgstr "une chaîne vide n'est pas un mot de passe valide, effacement du mot de
 msgid "pg_authid OID value not set when in binary upgrade mode"
 msgstr "la valeur d'OID de pg_authid n'est pas positionnée en mode de mise à jour binaire"
 
-#: commands/user.c:709 commands/user.c:933 commands/user.c:1476 commands/user.c:1620
+#: commands/user.c:720 commands/user.c:944 commands/user.c:1485 commands/user.c:1627
 #, c-format
 msgid "must be superuser to alter superusers"
 msgstr "doit être super-utilisateur pour modifier des super-utilisateurs"
 
-#: commands/user.c:716
+#: commands/user.c:727
 #, c-format
 msgid "must be superuser to alter replication users"
 msgstr "doit être super-utilisateur pour modifier des utilisateurs ayant l'attribut réplication"
 
-#: commands/user.c:739 commands/user.c:940
+#: commands/user.c:750 commands/user.c:951
 #, c-format
 msgid "permission denied"
 msgstr "droit refusé"
 
-#: commands/user.c:970
+#: commands/user.c:981
 #, c-format
 msgid "must be superuser to alter settings globally"
 msgstr "doit être super-utilisateur pour modifier globalement les configurations"
 
-#: commands/user.c:992
+#: commands/user.c:1003
 #, c-format
 msgid "permission denied to drop role"
 msgstr "droit refusé pour supprimer le rôle"
 
-#: commands/user.c:1017
+#: commands/user.c:1028
 #, c-format
 msgid "cannot use special role specifier in DROP ROLE"
 msgstr "ne peut pas être le spécificateur de rôle spécial dans DROP ROLE"
 
-#: commands/user.c:1027 commands/user.c:1184 commands/variable.c:770 commands/variable.c:844 utils/adt/acl.c:5199 utils/adt/acl.c:5246 utils/adt/acl.c:5274 utils/adt/acl.c:5292 utils/init/miscinit.c:607
+#: commands/user.c:1038 commands/user.c:1195 commands/variable.c:770 commands/variable.c:844 utils/adt/acl.c:5184 utils/adt/acl.c:5231 utils/adt/acl.c:5259 utils/adt/acl.c:5277 utils/init/miscinit.c:675
 #, c-format
 msgid "role \"%s\" does not exist"
 msgstr "le rôle « %s » n'existe pas"
 
-#: commands/user.c:1032
+#: commands/user.c:1043
 #, c-format
 msgid "role \"%s\" does not exist, skipping"
 msgstr "le rôle « %s » n'existe pas, poursuite du traitement"
 
-#: commands/user.c:1045 commands/user.c:1049
+#: commands/user.c:1056 commands/user.c:1060
 #, c-format
 msgid "current user cannot be dropped"
 msgstr "l'utilisateur actuel ne peut pas être supprimé"
 
-#: commands/user.c:1053
+#: commands/user.c:1064
 #, c-format
 msgid "session user cannot be dropped"
 msgstr "l'utilisateur de la session ne peut pas être supprimé"
 
-#: commands/user.c:1063
+#: commands/user.c:1074
 #, c-format
 msgid "must be superuser to drop superusers"
 msgstr "doit être super-utilisateur pour supprimer des super-utilisateurs"
 
-#: commands/user.c:1079
+#: commands/user.c:1090
 #, c-format
 msgid "role \"%s\" cannot be dropped because some objects depend on it"
 msgstr "le rôle « %s » ne peut pas être supprimé car d'autres objets en dépendent"
 
-#: commands/user.c:1200
+#: commands/user.c:1211
 #, c-format
 msgid "session user cannot be renamed"
 msgstr "l'utilisateur de la session ne peut pas être renommé"
 
-#: commands/user.c:1204
+#: commands/user.c:1215
 #, c-format
 msgid "current user cannot be renamed"
 msgstr "l'utilisateur courant ne peut pas être renommé"
 
-#: commands/user.c:1247
+#: commands/user.c:1258
 #, c-format
 msgid "must be superuser to rename superusers"
 msgstr "doit être super-utilisateur pour renommer les super-utilisateurs"
 
-#: commands/user.c:1254
+#: commands/user.c:1265
 #, c-format
 msgid "permission denied to rename role"
 msgstr "droit refusé pour renommer le rôle"
 
-#: commands/user.c:1275
+#: commands/user.c:1286
 #, c-format
 msgid "MD5 password cleared because of role rename"
 msgstr "mot de passe MD5 effacé à cause du renommage du rôle"
 
-#: commands/user.c:1335
+#: commands/user.c:1346
 #, c-format
 msgid "column names cannot be included in GRANT/REVOKE ROLE"
 msgstr "les noms de colonne ne peuvent pas être inclus dans GRANT/REVOKE ROLE"
 
-#: commands/user.c:1373
+#: commands/user.c:1384
 #, c-format
 msgid "permission denied to drop objects"
 msgstr "droit refusé pour supprimer les objets"
 
-#: commands/user.c:1400 commands/user.c:1409
+#: commands/user.c:1411 commands/user.c:1420
 #, c-format
 msgid "permission denied to reassign objects"
 msgstr "droit refusé pour ré-affecter les objets"
 
-#: commands/user.c:1484 commands/user.c:1628
+#: commands/user.c:1493 commands/user.c:1635
 #, c-format
 msgid "must have admin option on role \"%s\""
 msgstr "doit avoir l'option admin sur le rôle « %s »"
 
-#: commands/user.c:1501
+#: commands/user.c:1510
 #, c-format
 msgid "must be superuser to set grantor"
 msgstr "doit être super-utilisateur pour configurer le « donneur de droits »"
 
-#: commands/user.c:1526
+#: commands/user.c:1535
 #, c-format
 msgid "role \"%s\" is a member of role \"%s\""
 msgstr "le rôle « %s » est un membre du rôle « %s »"
 
-#: commands/user.c:1541
+#: commands/user.c:1550
 #, c-format
 msgid "role \"%s\" is already a member of role \"%s\""
 msgstr "le rôle « %s » est déjà un membre du rôle « %s »"
 
-#: commands/user.c:1650
+#: commands/user.c:1657
 #, c-format
 msgid "role \"%s\" is not a member of role \"%s\""
 msgstr "le rôle « %s » n'est pas un membre du rôle « %s »"
 
-#: commands/vacuum.c:116
+#: commands/vacuum.c:129
 #, c-format
 msgid "unrecognized ANALYZE option \"%s\""
 msgstr "option d'ANALYZE « %s » non reconnue"
 
-#: commands/vacuum.c:135
+#: commands/vacuum.c:151
+#, fuzzy, c-format
+#| msgid "-X requires a power of two value between 1 MB and 1 GB"
+msgid "parallel option requires a value between 0 and %d"
+msgstr "-X nécessite une puissance de deux entre 1 MB et 1 GB"
+
+#: commands/vacuum.c:163
+#, fuzzy, c-format
+#| msgid "parallel vacuum degree must be a non-negative integer"
+msgid "parallel vacuum degree must be between 0 and %d"
+msgstr "le degré de parallélisation du VACUUM doit être un entier non négatif"
+
+#: commands/vacuum.c:180
 #, c-format
 msgid "unrecognized VACUUM option \"%s\""
 msgstr "option « %s » de la commande VACUUM non reconnue"
 
-#: commands/vacuum.c:169
+#: commands/vacuum.c:203
+#, c-format
+msgid "VACUUM FULL cannot be performed in parallel"
+msgstr ""
+
+#: commands/vacuum.c:219
 #, c-format
 msgid "ANALYZE option must be specified when a column list is provided"
 msgstr "l'option ANALYZE doit être spécifiée quand une liste de colonne est fournie"
 
-#: commands/vacuum.c:259
+#: commands/vacuum.c:309
 #, c-format
 msgid "%s cannot be executed from VACUUM or ANALYZE"
 msgstr "%s ne peut pas être exécuté dans un VACUUM ou un ANALYZE"
 
-#: commands/vacuum.c:269
+#: commands/vacuum.c:319
 #, c-format
 msgid "VACUUM option DISABLE_PAGE_SKIPPING cannot be used with FULL"
 msgstr "l'option DISABLE_PAGE_SKIPPING de la commande VACUUM ne pas être utilisée en même temps que l'option FULL"
 
-#: commands/vacuum.c:511
+#: commands/vacuum.c:560
 #, c-format
 msgid "skipping \"%s\" --- only superuser can vacuum it"
 msgstr "ignore « %s » --- seul le super-utilisateur peut exécuter un VACUUM"
 
-#: commands/vacuum.c:515
+#: commands/vacuum.c:564
 #, c-format
 msgid "skipping \"%s\" --- only superuser or database owner can vacuum it"
 msgstr ""
 "ignore « %s » --- seul le super-utilisateur ou le propriétaire de la base de données\n"
 "peuvent exécuter un VACUUM"
 
-#: commands/vacuum.c:519
+#: commands/vacuum.c:568
 #, c-format
 msgid "skipping \"%s\" --- only table or database owner can vacuum it"
 msgstr ""
 "ignore « %s » --- seul le propriétaire de la table ou de la base de données\n"
 "peut exécuter un VACUUM"
 
-#: commands/vacuum.c:534
+#: commands/vacuum.c:583
 #, c-format
 msgid "skipping \"%s\" --- only superuser can analyze it"
 msgstr "ignore « %s » --- seul le super-utilisateur peut l'analyser"
 
-#: commands/vacuum.c:538
+#: commands/vacuum.c:587
 #, c-format
 msgid "skipping \"%s\" --- only superuser or database owner can analyze it"
 msgstr ""
 "ignore « %s » --- seul le super-utilisateur ou le propriétaire de la base de\n"
 "données peut l'analyser"
 
-#: commands/vacuum.c:542
+#: commands/vacuum.c:591
 #, c-format
 msgid "skipping \"%s\" --- only table or database owner can analyze it"
 msgstr ""
 "ignore « %s » --- seul le propriétaire de la table ou de la base de données\n"
 "peut l'analyser"
 
-#: commands/vacuum.c:621 commands/vacuum.c:717
+#: commands/vacuum.c:670 commands/vacuum.c:766
 #, c-format
 msgid "skipping vacuum of \"%s\" --- lock not available"
 msgstr "ignore le vacuum de « %s » --- verrou non disponible"
 
-#: commands/vacuum.c:626
+#: commands/vacuum.c:675
 #, c-format
 msgid "skipping vacuum of \"%s\" --- relation no longer exists"
 msgstr "ignore le vacuum de « %s » --- la relation n'existe plus"
 
-#: commands/vacuum.c:642 commands/vacuum.c:722
+#: commands/vacuum.c:691 commands/vacuum.c:771
 #, c-format
 msgid "skipping analyze of \"%s\" --- lock not available"
 msgstr "ignore l'analyse de « %s » --- verrou non disponible"
 
-#: commands/vacuum.c:647
+#: commands/vacuum.c:696
 #, c-format
 msgid "skipping analyze of \"%s\" --- relation no longer exists"
 msgstr "ignore l'analyse de « %s » --- la relation n'existe plus"
 
-#: commands/vacuum.c:944
+#: commands/vacuum.c:994
 #, c-format
 msgid "oldest xmin is far in the past"
 msgstr "le plus ancien xmin est loin dans le passé"
 
-#: commands/vacuum.c:945
+#: commands/vacuum.c:995
 #, c-format
 msgid ""
 "Close open transactions soon to avoid wraparound problems.\n"
@@ -10809,40 +11133,40 @@ msgstr ""
 "Fermer les transactions dès que possible pour éviter des problèmes de rebouclage d'identifiants de transaction.\n"
 "Vous pouvez avoir besoin de valider ou d'annuler les anciennes transactions préparées, ou de supprimer les slots de réplication trop anciens."
 
-#: commands/vacuum.c:985
+#: commands/vacuum.c:1036
 #, c-format
 msgid "oldest multixact is far in the past"
 msgstr "le plus ancien multixact est loin dans le passé"
 
-#: commands/vacuum.c:986
+#: commands/vacuum.c:1037
 #, c-format
 msgid "Close open transactions with multixacts soon to avoid wraparound problems."
 msgstr ""
 "Fermez les transactions ouvertes avec multixacts rapidement pour éviter des problèmes de\n"
 "réinitialisation."
 
-#: commands/vacuum.c:1557
+#: commands/vacuum.c:1623
 #, c-format
 msgid "some databases have not been vacuumed in over 2 billion transactions"
 msgstr ""
 "certaines bases de données n'ont pas eu droit à l'opération de maintenance\n"
 "VACUUM depuis plus de 2 milliards de transactions"
 
-#: commands/vacuum.c:1558
+#: commands/vacuum.c:1624
 #, c-format
 msgid "You might have already suffered transaction-wraparound data loss."
 msgstr ""
 "Vous pouvez avoir déjà souffert de pertes de données suite à une\n"
 "réinitialisation de l'identifiant des transactions."
 
-#: commands/vacuum.c:1716
+#: commands/vacuum.c:1784
 #, c-format
 msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables"
 msgstr ""
 "ignore « %s » --- n'a pas pu exécuter un VACUUM sur les objets autres que\n"
 "des tables et les tables systèmes"
 
-#: commands/variable.c:165 utils/misc/guc.c:10923 utils/misc/guc.c:10985
+#: commands/variable.c:165 utils/misc/guc.c:11156 utils/misc/guc.c:11218
 #, c-format
 msgid "Unrecognized key word: \"%s\"."
 msgstr "Mot clé non reconnu : « %s »."
@@ -10910,7 +11234,7 @@ msgstr ""
 "SET TRANSACTION ISOLATION LEVEL ne doit pas être appelé dans une\n"
 "sous-transaction"
 
-#: commands/variable.c:548 storage/lmgr/predicate.c:1626
+#: commands/variable.c:548 storage/lmgr/predicate.c:1623
 #, c-format
 msgid "cannot use serializable mode in a hot standby"
 msgstr "ne peut pas utiliser le mode sérialisable sur un serveur en « Hot Standby »"
@@ -10952,57 +11276,52 @@ msgstr "ne peut pas modifier le client_encoding lors d'une opération paralléli
 msgid "permission denied to set role \"%s\""
 msgstr "droit refusé pour configurer le rôle « %s »"
 
-#: commands/view.c:54
-#, c-format
-msgid "invalid value for \"check_option\" option"
-msgstr "valeur invalide pour l'option « check_option »"
-
-#: commands/view.c:55
-#, c-format
-msgid "Valid values are \"local\" and \"cascaded\"."
-msgstr "Les valeurs valides sont entre « local » et « cascaded »."
-
-#: commands/view.c:103
+#: commands/view.c:84
 #, c-format
 msgid "could not determine which collation to use for view column \"%s\""
 msgstr "n'a pas pu déterminer le collationnement à utiliser pour la colonne « %s » de la vue"
 
-#: commands/view.c:280 commands/view.c:291
+#: commands/view.c:265 commands/view.c:276
 #, c-format
 msgid "cannot drop columns from view"
 msgstr "ne peut pas supprimer les colonnes d'une vue"
 
-#: commands/view.c:296
+#: commands/view.c:281
 #, c-format
 msgid "cannot change name of view column \"%s\" to \"%s\""
 msgstr "ne peut pas modifier le nom de la colonne « %s » de la vue en « %s »"
 
-#: commands/view.c:304
+#: commands/view.c:284
+#, c-format
+msgid "Use ALTER VIEW ... RENAME COLUMN ... to change name of view column instead."
+msgstr ""
+
+#: commands/view.c:290
 #, c-format
 msgid "cannot change data type of view column \"%s\" from %s to %s"
 msgstr "ne peut pas modifier le type de données de la colonne « %s » de la vue de %s à %s"
 
-#: commands/view.c:451
+#: commands/view.c:441
 #, c-format
 msgid "views must not contain SELECT INTO"
 msgstr "les vues ne peuvent pas contenir SELECT INTO"
 
-#: commands/view.c:463
+#: commands/view.c:453
 #, c-format
 msgid "views must not contain data-modifying statements in WITH"
 msgstr "les vues ne peuvent pas contenir d'instructions de modifications de données avec WITH"
 
-#: commands/view.c:533
+#: commands/view.c:523
 #, c-format
 msgid "CREATE VIEW specifies more column names than columns"
 msgstr "CREATE VIEW spécifie plus de noms de colonnes que de colonnes"
 
-#: commands/view.c:541
+#: commands/view.c:531
 #, c-format
 msgid "views cannot be unlogged because they do not have storage"
 msgstr "les vues ne peuvent pas être non tracées car elles n'ont pas de stockage"
 
-#: commands/view.c:555
+#: commands/view.c:545
 #, c-format
 msgid "view \"%s\" will be a temporary view"
 msgstr "la vue « %s » sera une vue temporaire"
@@ -11037,118 +11356,118 @@ msgstr "le curseur « %s » n'est pas positionné sur une ligne"
 msgid "cursor \"%s\" is not a simply updatable scan of table \"%s\""
 msgstr "le curseur « %s » n'est pas un parcours modifiable de la table « %s »"
 
-#: executor/execCurrent.c:280 executor/execExprInterp.c:2312
+#: executor/execCurrent.c:280 executor/execExprInterp.c:2404
 #, c-format
 msgid "type of parameter %d (%s) does not match that when preparing the plan (%s)"
 msgstr "le type de paramètre %d (%s) ne correspond pas à ce qui est préparé dans le plan (%s)"
 
-#: executor/execCurrent.c:292 executor/execExprInterp.c:2324
+#: executor/execCurrent.c:292 executor/execExprInterp.c:2416
 #, c-format
 msgid "no value found for parameter %d"
 msgstr "aucune valeur trouvée pour le paramètre %d"
 
-#: executor/execExpr.c:857 parser/parse_agg.c:816
+#: executor/execExpr.c:859 parser/parse_agg.c:816
 #, c-format
 msgid "window function calls cannot be nested"
 msgstr "les appels à la fonction window ne peuvent pas être imbriqués"
 
-#: executor/execExpr.c:1316
+#: executor/execExpr.c:1318
 #, c-format
 msgid "target type is not an array"
 msgstr "le type cible n'est pas un tableau"
 
-#: executor/execExpr.c:1649
+#: executor/execExpr.c:1651
 #, c-format
 msgid "ROW() column has type %s instead of type %s"
 msgstr "une colonne ROW() a le type %s au lieu du type %s"
 
-#: executor/execExpr.c:2174 executor/execSRF.c:700 parser/parse_func.c:136 parser/parse_func.c:650 parser/parse_func.c:1024
+#: executor/execExpr.c:2176 executor/execSRF.c:708 parser/parse_func.c:135 parser/parse_func.c:646 parser/parse_func.c:1020
 #, c-format
 msgid "cannot pass more than %d argument to a function"
 msgid_plural "cannot pass more than %d arguments to a function"
 msgstr[0] "ne peut pas passer plus de %d argument à une fonction"
 msgstr[1] "ne peut pas passer plus de %d arguments à une fonction"
 
-#: executor/execExpr.c:2572 executor/execExpr.c:2578 executor/execExprInterp.c:2641 utils/adt/arrayfuncs.c:261 utils/adt/arrayfuncs.c:559 utils/adt/arrayfuncs.c:1301 utils/adt/arrayfuncs.c:3347 utils/adt/arrayfuncs.c:5302 utils/adt/arrayfuncs.c:5819
+#: executor/execExpr.c:2587 executor/execExpr.c:2593 executor/execExprInterp.c:2730 utils/adt/arrayfuncs.c:262 utils/adt/arrayfuncs.c:560 utils/adt/arrayfuncs.c:1302 utils/adt/arrayfuncs.c:3348 utils/adt/arrayfuncs.c:5308 utils/adt/arrayfuncs.c:5821
 #, c-format
 msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)"
 msgstr "le nombre de dimensions du tableau (%d) dépasse le maximum autorisé (%d)"
 
-#: executor/execExprInterp.c:1862
+#: executor/execExprInterp.c:1894
 #, c-format
 msgid "attribute %d of type %s has been dropped"
 msgstr "l'attribut %d du type %s a été supprimé"
 
-#: executor/execExprInterp.c:1868
+#: executor/execExprInterp.c:1900
 #, c-format
 msgid "attribute %d of type %s has wrong type"
 msgstr "l'attribut %d de type %s a un mauvais type"
 
-#: executor/execExprInterp.c:1870 executor/execExprInterp.c:2914 executor/execExprInterp.c:2961
+#: executor/execExprInterp.c:1902 executor/execExprInterp.c:3002 executor/execExprInterp.c:3049
 #, c-format
 msgid "Table has type %s, but query expects %s."
 msgstr "La table a le type %s alors que la requête attend %s."
 
-#: executor/execExprInterp.c:2402
+#: executor/execExprInterp.c:2494
 #, c-format
 msgid "WHERE CURRENT OF is not supported for this table type"
 msgstr "WHERE CURRENT OF n'est pas supporté pour ce type de table"
 
-#: executor/execExprInterp.c:2619
+#: executor/execExprInterp.c:2708
 #, c-format
 msgid "cannot merge incompatible arrays"
 msgstr "ne peut pas fusionner les tableaux incompatibles"
 
-#: executor/execExprInterp.c:2620
+#: executor/execExprInterp.c:2709
 #, c-format
 msgid "Array with element type %s cannot be included in ARRAY construct with element type %s."
 msgstr "Le tableau avec le type d'élément %s ne peut pas être inclus dans la construction ARRAY avec le type d'élément %s."
 
-#: executor/execExprInterp.c:2661 executor/execExprInterp.c:2691
+#: executor/execExprInterp.c:2750 executor/execExprInterp.c:2780
 #, c-format
 msgid "multidimensional arrays must have array expressions with matching dimensions"
 msgstr ""
 "les tableaux multidimensionnels doivent avoir des expressions de tableaux\n"
 "avec les dimensions correspondantes"
 
-#: executor/execExprInterp.c:2913 executor/execExprInterp.c:2960
+#: executor/execExprInterp.c:3001 executor/execExprInterp.c:3048
 #, c-format
 msgid "attribute %d has wrong type"
 msgstr "l'attribut %d a un mauvais type"
 
-#: executor/execExprInterp.c:3070
+#: executor/execExprInterp.c:3158
 #, c-format
 msgid "array subscript in assignment must not be null"
 msgstr "l'indice du tableau dans l'affectation ne doit pas être NULL"
 
-#: executor/execExprInterp.c:3503 utils/adt/domains.c:149
+#: executor/execExprInterp.c:3588 utils/adt/domains.c:149
 #, c-format
 msgid "domain %s does not allow null values"
 msgstr "le domaine %s n'autorise pas les valeurs NULL"
 
-#: executor/execExprInterp.c:3518 utils/adt/domains.c:184
+#: executor/execExprInterp.c:3603 utils/adt/domains.c:184
 #, c-format
 msgid "value for domain %s violates check constraint \"%s\""
 msgstr "la valeur pour le domaine %s viole la contrainte de vérification « %s »"
 
-#: executor/execExprInterp.c:3889 executor/execExprInterp.c:3906 executor/execExprInterp.c:4008 executor/nodeModifyTable.c:109 executor/nodeModifyTable.c:120 executor/nodeModifyTable.c:137 executor/nodeModifyTable.c:145
+#: executor/execExprInterp.c:3973 executor/execExprInterp.c:3990 executor/execExprInterp.c:4091 executor/nodeModifyTable.c:109 executor/nodeModifyTable.c:120 executor/nodeModifyTable.c:137 executor/nodeModifyTable.c:145
 #, c-format
 msgid "table row type and query-specified row type do not match"
 msgstr "le type de ligne de la table et celui spécifié par la requête ne correspondent pas"
 
-#: executor/execExprInterp.c:3890
+#: executor/execExprInterp.c:3974
 #, c-format
 msgid "Table row contains %d attribute, but query expects %d."
 msgid_plural "Table row contains %d attributes, but query expects %d."
 msgstr[0] "La ligne de la table contient %d attribut alors que la requête en attend %d."
 msgstr[1] "La ligne de la table contient %d attributs alors que la requête en attend %d."
 
-#: executor/execExprInterp.c:3907 executor/nodeModifyTable.c:121
+#: executor/execExprInterp.c:3991 executor/nodeModifyTable.c:121
 #, c-format
 msgid "Table has type %s at ordinal position %d, but query expects %s."
 msgstr "La table a le type %s à la position ordinale %d alors que la requête attend %s."
 
-#: executor/execExprInterp.c:4009 executor/execSRF.c:959
+#: executor/execExprInterp.c:4092 executor/execSRF.c:967
 #, c-format
 msgid "Physical storage mismatch on dropped attribute at ordinal position %d."
 msgstr ""
@@ -11200,32 +11519,32 @@ msgstr "ne peut pas modifier la séquence « %s »"
 msgid "cannot change TOAST relation \"%s\""
 msgstr "ne peut pas modifier la relation TOAST « %s »"
 
-#: executor/execMain.c:1115 rewrite/rewriteHandler.c:2911
+#: executor/execMain.c:1115 rewrite/rewriteHandler.c:2934 rewrite/rewriteHandler.c:3708
 #, c-format
 msgid "cannot insert into view \"%s\""
 msgstr "ne peut pas insérer dans la vue « %s »"
 
-#: executor/execMain.c:1117 rewrite/rewriteHandler.c:2914
+#: executor/execMain.c:1117 rewrite/rewriteHandler.c:2937 rewrite/rewriteHandler.c:3711
 #, c-format
 msgid "To enable inserting into the view, provide an INSTEAD OF INSERT trigger or an unconditional ON INSERT DO INSTEAD rule."
 msgstr "Pour activer l'insertion dans la vue, fournissez un trigger INSTEAD OF INSERT ou une règle ON INSERT DO INSTEAD sans condition."
 
-#: executor/execMain.c:1123 rewrite/rewriteHandler.c:2919
+#: executor/execMain.c:1123 rewrite/rewriteHandler.c:2942 rewrite/rewriteHandler.c:3716
 #, c-format
 msgid "cannot update view \"%s\""
 msgstr "ne peut pas mettre à jour la vue « %s »"
 
-#: executor/execMain.c:1125 rewrite/rewriteHandler.c:2922
+#: executor/execMain.c:1125 rewrite/rewriteHandler.c:2945 rewrite/rewriteHandler.c:3719
 #, c-format
 msgid "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule."
 msgstr "Pour activer la mise à jour dans la vue, fournissez un trigger INSTEAD OF UPDATE ou une règle ON UPDATE DO INSTEAD sans condition."
 
-#: executor/execMain.c:1131 rewrite/rewriteHandler.c:2927
+#: executor/execMain.c:1131 rewrite/rewriteHandler.c:2950 rewrite/rewriteHandler.c:3724
 #, c-format
 msgid "cannot delete from view \"%s\""
 msgstr "ne peut pas supprimer à partir de la vue « %s »"
 
-#: executor/execMain.c:1133 rewrite/rewriteHandler.c:2930
+#: executor/execMain.c:1133 rewrite/rewriteHandler.c:2953 rewrite/rewriteHandler.c:3727
 #, c-format
 msgid "To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an unconditional ON DELETE DO INSTEAD rule."
 msgstr "Pour activer la suppression dans la vue, fournissez un trigger INSTEAD OF DELETE ou une règle ON DELETE DO INSTEAD sans condition."
@@ -11290,7 +11609,7 @@ msgstr "ne peut pas verrouiller les lignes dans la vue « %s »"
 msgid "cannot lock rows in materialized view \"%s\""
 msgstr "ne peut pas verrouiller les lignes dans la vue matérialisée « %s »"
 
-#: executor/execMain.c:1257 executor/execMain.c:2638 executor/nodeLockRows.c:132
+#: executor/execMain.c:1257 executor/execMain.c:2627 executor/nodeLockRows.c:132
 #, c-format
 msgid "cannot lock rows in foreign table \"%s\""
 msgstr "ne peut pas verrouiller la table distante « %s »"
@@ -11300,297 +11619,285 @@ msgstr "ne peut pas verrouiller la table distante « %s »"
 msgid "cannot lock rows in relation \"%s\""
 msgstr "n'a pas pu verrouiller les lignes dans la relation « %s »"
 
-#: executor/execMain.c:1889
+#: executor/execMain.c:1879
 #, c-format
 msgid "new row for relation \"%s\" violates partition constraint"
 msgstr "la nouvelle ligne de la relation « %s » viole la contrainte de partitionnement"
 
-#: executor/execMain.c:1891 executor/execMain.c:1973 executor/execMain.c:2022 executor/execMain.c:2131
+#: executor/execMain.c:1881 executor/execMain.c:1964 executor/execMain.c:2012 executor/execMain.c:2120
 #, c-format
 msgid "Failing row contains %s."
 msgstr "La ligne en échec contient %s."
 
-#: executor/execMain.c:1971
+#: executor/execMain.c:1961
 #, c-format
-msgid "null value in column \"%s\" violates not-null constraint"
-msgstr "une valeur NULL viole la contrainte NOT NULL de la colonne « %s »"
+msgid "null value in column \"%s\" of relation \"%s\" violates not-null constraint"
+msgstr "une valeur NULL viole la contrainte NOT NULL de la colonne « %s » dans la relation « %s »"
 
-#: executor/execMain.c:2020
+#: executor/execMain.c:2010
 #, c-format
 msgid "new row for relation \"%s\" violates check constraint \"%s\""
 msgstr "la nouvelle ligne de la relation « %s » viole la contrainte de vérification « %s »"
 
-#: executor/execMain.c:2129
+#: executor/execMain.c:2118
 #, c-format
 msgid "new row violates check option for view \"%s\""
 msgstr "la nouvelle ligne viole la contrainte de vérification pour la vue « %s »"
 
-#: executor/execMain.c:2139
+#: executor/execMain.c:2128
 #, c-format
 msgid "new row violates row-level security policy \"%s\" for table \"%s\""
 msgstr "la nouvelle ligne viole la politique de sécurité au niveau ligne « %s » pour la table « %s »"
 
-#: executor/execMain.c:2144
+#: executor/execMain.c:2133
 #, c-format
 msgid "new row violates row-level security policy for table \"%s\""
 msgstr "la nouvelle ligne viole la politique de sécurité au niveau ligne pour la table « %s »"
 
-#: executor/execMain.c:2151
+#: executor/execMain.c:2140
 #, c-format
 msgid "new row violates row-level security policy \"%s\" (USING expression) for table \"%s\""
 msgstr "la nouvelle ligne viole la politique de sécurité au niveau ligne « %s » (expression USING) pour la table « %s »"
 
-#: executor/execMain.c:2156
+#: executor/execMain.c:2145
 #, c-format
 msgid "new row violates row-level security policy (USING expression) for table \"%s\""
 msgstr "la nouvelle ligne viole la politique de sécurité au niveau ligne (expression USING) pour la table « %s »"
 
-#: executor/execPartition.c:345
+#: executor/execPartition.c:341
 #, c-format
 msgid "no partition of relation \"%s\" found for row"
 msgstr "aucune partition de la relation « %s » trouvée pour la ligne"
 
-#: executor/execPartition.c:348
+#: executor/execPartition.c:344
 #, c-format
 msgid "Partition key of the failing row contains %s."
 msgstr "La clé de partitionnement de la ligne en échec contient %s."
 
-#: executor/execReplication.c:195 executor/execReplication.c:359
+#: executor/execReplication.c:196 executor/execReplication.c:373
 #, c-format
 msgid "tuple to be locked was already moved to another partition due to concurrent update, retrying"
 msgstr "la ligne à verrouiller était déjà déplacée vers une autre partition du fait d'une mise à jour concurrente, nouvelle tentative"
 
-#: executor/execReplication.c:199 executor/execReplication.c:363
+#: executor/execReplication.c:200 executor/execReplication.c:377
 #, c-format
 msgid "concurrent update, retrying"
 msgstr "mise à jour concurrente, nouvelle tentative"
 
-#: executor/execReplication.c:205 executor/execReplication.c:369
+#: executor/execReplication.c:206 executor/execReplication.c:383
 #, c-format
 msgid "concurrent delete, retrying"
 msgstr "suppression concurrente, nouvelle tentative"
 
-#: executor/execReplication.c:263 parser/parse_oper.c:228 utils/adt/array_userfuncs.c:719 utils/adt/array_userfuncs.c:858 utils/adt/arrayfuncs.c:3625 utils/adt/arrayfuncs.c:4140 utils/adt/arrayfuncs.c:6130 utils/adt/rowtypes.c:1180
+#: executor/execReplication.c:269 parser/parse_oper.c:228 utils/adt/array_userfuncs.c:719 utils/adt/array_userfuncs.c:858 utils/adt/arrayfuncs.c:3626 utils/adt/arrayfuncs.c:4146 utils/adt/arrayfuncs.c:6132 utils/adt/rowtypes.c:1182
 #, c-format
 msgid "could not identify an equality operator for type %s"
 msgstr "n'a pas pu identifier un opérateur d'égalité pour le type %s"
 
-#: executor/execReplication.c:572
+#: executor/execReplication.c:586
 #, c-format
 msgid "cannot update table \"%s\" because it does not have a replica identity and publishes updates"
 msgstr "ne peut pas mettre à jour la table « %s » car elle n'a pas d'identité de réplicat et publie des mises à jour"
 
-#: executor/execReplication.c:574
+#: executor/execReplication.c:588
 #, c-format
 msgid "To enable updating the table, set REPLICA IDENTITY using ALTER TABLE."
 msgstr "Pour permettre les mises à jour sur la table, configurez REPLICA IDENTITY en utilisant ALTER TABLE."
 
-#: executor/execReplication.c:578
+#: executor/execReplication.c:592
 #, c-format
 msgid "cannot delete from table \"%s\" because it does not have a replica identity and publishes deletes"
 msgstr "ne peut pas supprimer à partir de la table « %s » car elle n'a pas d'identité de réplicat et publie des suppressions"
 
-#: executor/execReplication.c:580
+#: executor/execReplication.c:594
 #, c-format
 msgid "To enable deleting from the table, set REPLICA IDENTITY using ALTER TABLE."
 msgstr "Pour permettre les suppressions sur la table, configurez REPLICA IDENTITY en utilisant ALTER TABLE."
 
-#: executor/execReplication.c:600 executor/execReplication.c:607 executor/execReplication.c:615
+#: executor/execReplication.c:613 executor/execReplication.c:621
 #, c-format
 msgid "cannot use relation \"%s.%s\" as logical replication target"
 msgstr "ne peut pas utiliser la relation « %s.%s » comme cible d'une réplication logique"
 
-#: executor/execReplication.c:602
-#, c-format
-msgid "\"%s.%s\" is a partitioned table."
-msgstr "« %s.%s » est une table partitionnée."
-
-#: executor/execReplication.c:609
+#: executor/execReplication.c:615
 #, c-format
 msgid "\"%s.%s\" is a foreign table."
 msgstr "« %s.%s » est une table distante."
 
-#: executor/execReplication.c:617
+#: executor/execReplication.c:623
 #, c-format
 msgid "\"%s.%s\" is not a table."
 msgstr "« %s.%s » n'est pas une table."
 
-#: executor/execSRF.c:310
+#: executor/execSRF.c:315
 #, c-format
 msgid "rows returned by function are not all of the same row type"
 msgstr "les lignes renvoyées par la fonction ne sont pas toutes du même type ligne"
 
-#: executor/execSRF.c:358 executor/execSRF.c:649
+#: executor/execSRF.c:363 executor/execSRF.c:657
 #, c-format
 msgid "table-function protocol for materialize mode was not followed"
 msgstr "le protocole de la fonction table pour le mode matérialisé n'a pas été respecté"
 
-#: executor/execSRF.c:365 executor/execSRF.c:667
+#: executor/execSRF.c:370 executor/execSRF.c:675
 #, c-format
 msgid "unrecognized table-function returnMode: %d"
 msgstr "returnMode de la fonction table non reconnu : %d"
 
-#: executor/execSRF.c:876
+#: executor/execSRF.c:884
 #, c-format
 msgid "function returning setof record called in context that cannot accept type record"
 msgstr ""
 "la fonction renvoyant des lignes a été appelée dans un contexte qui\n"
 "n'accepte pas un ensemble"
 
-#: executor/execSRF.c:932 executor/execSRF.c:948 executor/execSRF.c:958
+#: executor/execSRF.c:940 executor/execSRF.c:956 executor/execSRF.c:966
 #, c-format
 msgid "function return row and query-specified return row do not match"
 msgstr "la ligne de retour spécifiée par la requête et la ligne de retour de la fonction ne correspondent pas"
 
-#: executor/execSRF.c:933
+#: executor/execSRF.c:941
 #, 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] "La ligne renvoyée contient %d attribut mais la requête en attend %d."
 msgstr[1] "La ligne renvoyée contient %d attributs mais la requête en attend %d."
 
-#: executor/execSRF.c:949
+#: executor/execSRF.c:957
 #, c-format
 msgid "Returned type %s at ordinal position %d, but query expects %s."
 msgstr "A renvoyé le type %s à la position ordinale %d, mais la requête attend %s."
 
-#: executor/execUtils.c:710
+#: executor/execUtils.c:750
 #, c-format
 msgid "materialized view \"%s\" has not been populated"
 msgstr "la vue matérialisée « %s » n'a pas été peuplée"
 
-#: executor/execUtils.c:712
+#: executor/execUtils.c:752
 #, c-format
 msgid "Use the REFRESH MATERIALIZED VIEW command."
 msgstr "Utilisez la commande REFRESH MATERIALIZED VIEW."
 
-#: executor/functions.c:225
+#: executor/functions.c:231
 #, c-format
 msgid "could not determine actual type of argument declared %s"
 msgstr "n'a pas pu déterminer le type actuel de l'argument déclaré %s"
 
-#: executor/functions.c:521
+#: executor/functions.c:528
 #, c-format
 msgid "cannot COPY to/from client in a SQL function"
 msgstr "ne peut pas utiliser COPY TO/FROM dans une fonction SQL"
 
 #. translator: %s is a SQL statement name
-#: executor/functions.c:527
+#: executor/functions.c:534
 #, c-format
 msgid "%s is not allowed in a SQL function"
 msgstr "%s n'est pas autorisé dans une fonction SQL"
 
 #. translator: %s is a SQL statement name
-#: executor/functions.c:535 executor/spi.c:1474 executor/spi.c:2262
+#: executor/functions.c:542 executor/spi.c:1471 executor/spi.c:2257
 #, c-format
 msgid "%s is not allowed in a non-volatile function"
 msgstr "%s n'est pas autorisé dans une fonction non volatile"
 
-#: executor/functions.c:656
-#, c-format
-msgid "could not determine actual result type for function declared to return type %s"
-msgstr ""
-"n'a pas pu déterminer le type du résultat actuel pour la fonction déclarant\n"
-"renvoyer le type %s"
-
-#: executor/functions.c:1407
+#: executor/functions.c:1430
 #, c-format
 msgid "SQL function \"%s\" statement %d"
 msgstr "fonction SQL « %s », instruction %d"
 
-#: executor/functions.c:1433
+#: executor/functions.c:1456
 #, c-format
 msgid "SQL function \"%s\" during startup"
 msgstr "fonction SQL « %s » lors du lancement"
 
-#: executor/functions.c:1526
+#: executor/functions.c:1549
 #, c-format
 msgid "calling procedures with output arguments is not supported in SQL functions"
 msgstr "l'appel à des procédures avec des arguments en sortie n'est pas supporté dans les fonctions SQL"
 
-#: executor/functions.c:1646 executor/functions.c:1679 executor/functions.c:1691 executor/functions.c:1826 executor/functions.c:1859 executor/functions.c:1889
+#: executor/functions.c:1671 executor/functions.c:1708 executor/functions.c:1722 executor/functions.c:1812 executor/functions.c:1845 executor/functions.c:1859
 #, c-format
 msgid "return type mismatch in function declared to return %s"
 msgstr "le type de retour ne correspond pas à la fonction déclarant renvoyer %s"
 
-#: executor/functions.c:1648
+#: executor/functions.c:1673
 #, c-format
 msgid "Function's final statement must be SELECT or INSERT/UPDATE/DELETE RETURNING."
 msgstr ""
 "L'instruction finale de la fonction doit être un SELECT ou un\n"
 "INSERT/UPDATE/DELETE RETURNING."
 
-#: executor/functions.c:1681
+#: executor/functions.c:1710
 #, c-format
 msgid "Final statement must return exactly one column."
 msgstr "L'instruction finale doit renvoyer exactement une colonne."
 
-#: executor/functions.c:1693
+#: executor/functions.c:1724
 #, c-format
 msgid "Actual return type is %s."
 msgstr "Le code de retour réel est %s."
 
-#: executor/functions.c:1828
+#: executor/functions.c:1814
 #, c-format
 msgid "Final statement returns too many columns."
 msgstr "L'instruction finale renvoie beaucoup trop de colonnes."
 
-#: executor/functions.c:1861
+#: executor/functions.c:1847
 #, c-format
 msgid "Final statement returns %s instead of %s at column %d."
 msgstr "L'instruction finale renvoie %s au lieu de %s pour la colonne %d."
 
-#: executor/functions.c:1891
+#: executor/functions.c:1861
 #, c-format
 msgid "Final statement returns too few columns."
 msgstr "L'instruction finale renvoie trop peu de colonnes."
 
-#: executor/functions.c:1945
+#: executor/functions.c:1889
 #, c-format
 msgid "return type %s is not supported for SQL functions"
 msgstr "le type de retour %s n'est pas supporté pour les fonctions SQL"
 
-#: executor/nodeAgg.c:2855 parser/parse_agg.c:655 parser/parse_agg.c:685
+#: executor/nodeAgg.c:3075 executor/nodeAgg.c:3084 executor/nodeAgg.c:3096
+#, c-format
+msgid "unexpected EOF for tape %d: requested %zu bytes, read %zu bytes"
+msgstr ""
+
+#: executor/nodeAgg.c:4026 parser/parse_agg.c:655 parser/parse_agg.c:685
 #, c-format
 msgid "aggregate function calls cannot be nested"
 msgstr "les appels à la fonction d'agrégat ne peuvent pas être imbriqués"
 
-#: executor/nodeAgg.c:3060 executor/nodeWindowAgg.c:2835
+#: executor/nodeAgg.c:4234 executor/nodeWindowAgg.c:2836
 #, c-format
 msgid "aggregate %u needs to have compatible input type and transition type"
 msgstr "l'agrégat %u a besoin d'avoir des types compatibles en entrée et en transition"
 
-#: executor/nodeCustom.c:146 executor/nodeCustom.c:157
+#: executor/nodeCustom.c:145 executor/nodeCustom.c:156
 #, c-format
 msgid "custom scan \"%s\" does not support MarkPos"
 msgstr "le parcours personnalisé « %s » ne supporte pas MarkPos"
 
-#: executor/nodeHashjoin.c:1027 executor/nodeHashjoin.c:1057
-#, c-format
-msgid "could not rewind hash-join temporary file: %m"
-msgstr "n'a pas pu revenir au début du fichier temporaire de la jointure hâchée : %m"
-
-#: executor/nodeHashjoin.c:1216 executor/nodeHashjoin.c:1222
+#: executor/nodeHashjoin.c:1046 executor/nodeHashjoin.c:1076
 #, c-format
-msgid "could not write to hash-join temporary file: %m"
-msgstr "n'a pas pu écrire le fichier temporaire de la jointure hâchée : %m"
+msgid "could not rewind hash-join temporary file"
+msgstr "n'a pas pu revenir au début du fichier temporaire pour la jointure de hachage"
 
-#: executor/nodeHashjoin.c:1263 executor/nodeHashjoin.c:1273
+#: executor/nodeHashjoin.c:1272 executor/nodeHashjoin.c:1283
 #, c-format
-msgid "could not read from hash-join temporary file: %m"
-msgstr "n'a pas pu lire le fichier temporaire contenant la jointure hâchée : %m"
+msgid "could not read from hash-join temporary file: read only %zu of %zu bytes"
+msgstr "n'a pas pu lire le fichier temporaire pour la jointure de hachage : a lu seulement %zu octets sur %zu"
 
 #: executor/nodeIndexonlyscan.c:242
 #, c-format
 msgid "lossy distance functions are not supported in index-only scans"
 msgstr "les fonctions de distance à perte ne sont pas supportés dans les parcours d'index seul"
 
-#: executor/nodeLimit.c:264
+#: executor/nodeLimit.c:374
 #, c-format
 msgid "OFFSET must not be negative"
 msgstr "OFFSET ne doit pas être négatif"
 
-#: executor/nodeLimit.c:290
+#: executor/nodeLimit.c:400
 #, c-format
 msgid "LIMIT must not be negative"
 msgstr "LIMIT ne doit pas être négative"
@@ -11622,27 +11929,27 @@ msgstr ""
 msgid "Query has too few columns."
 msgstr "La requête n'a pas assez de colonnes."
 
-#: executor/nodeModifyTable.c:808 executor/nodeModifyTable.c:882
+#: executor/nodeModifyTable.c:839 executor/nodeModifyTable.c:913
 #, c-format
 msgid "tuple to be deleted was already modified by an operation triggered by the current command"
 msgstr "la ligne à supprimer était déjà modifiée par une opération déclenchée par la commande courante"
 
-#: executor/nodeModifyTable.c:1189
+#: executor/nodeModifyTable.c:1220
 #, c-format
 msgid "invalid ON UPDATE specification"
 msgstr "spécification ON UPDATE invalide"
 
-#: executor/nodeModifyTable.c:1190
+#: executor/nodeModifyTable.c:1221
 #, c-format
 msgid "The result tuple would appear in a different partition than the original tuple."
 msgstr "La ligne résultante apparaîtrait dans une partition différente de la ligne originale."
 
-#: executor/nodeModifyTable.c:1561
+#: executor/nodeModifyTable.c:1592
 #, c-format
 msgid "ON CONFLICT DO UPDATE command cannot affect row a second time"
 msgstr "la commande ON CONFLICT DO UPDATE ne peut pas affecter une ligne la deuxième fois"
 
-#: executor/nodeModifyTable.c:1562
+#: executor/nodeModifyTable.c:1593
 #, c-format
 msgid "Ensure that no rows proposed for insertion within the same command have duplicate constrained values."
 msgstr "S'assure qu'aucune ligne proposée à l'insertion dans la même commande n'a de valeurs contraintes dupliquées."
@@ -11657,62 +11964,62 @@ msgstr "le paramètre de TABLESAMPLE ne peut pas être NULL"
 msgid "TABLESAMPLE REPEATABLE parameter cannot be null"
 msgstr "le paramètre TABLESAMPLE REPEATABLE ne peut pas être NULL"
 
-#: executor/nodeSubplan.c:347 executor/nodeSubplan.c:386 executor/nodeSubplan.c:1152
+#: executor/nodeSubplan.c:346 executor/nodeSubplan.c:385 executor/nodeSubplan.c:1151
 #, c-format
 msgid "more than one row returned by a subquery used as an expression"
 msgstr "plus d'une ligne renvoyée par une sous-requête utilisée comme une expression"
 
-#: executor/nodeTableFuncscan.c:378
+#: executor/nodeTableFuncscan.c:375
 #, c-format
 msgid "namespace URI must not be null"
 msgstr "l'URI de l'espace de nom ne doit pas être NULL"
 
-#: executor/nodeTableFuncscan.c:392
+#: executor/nodeTableFuncscan.c:389
 #, c-format
 msgid "row filter expression must not be null"
 msgstr "l'expression de filtre de lignes ne doit pas être NULL"
 
-#: executor/nodeTableFuncscan.c:418
+#: executor/nodeTableFuncscan.c:415
 #, c-format
 msgid "column filter expression must not be null"
 msgstr "l'expression de filtre de colonnes ne doit pas être NULL"
 
-#: executor/nodeTableFuncscan.c:419
+#: executor/nodeTableFuncscan.c:416
 #, c-format
 msgid "Filter for column \"%s\" is null."
 msgstr "Le filtre pour la colonne « %s » est NULL."
 
-#: executor/nodeTableFuncscan.c:509
+#: executor/nodeTableFuncscan.c:506
 #, c-format
 msgid "null is not allowed in column \"%s\""
 msgstr "NULL n'est pas autorisé dans la colonne « %s »"
 
-#: executor/nodeWindowAgg.c:354
+#: executor/nodeWindowAgg.c:355
 #, c-format
 msgid "moving-aggregate transition function must not return null"
 msgstr "la fonction de conversion de l'agrégat en déplacement ne doit pas renvoyer null"
 
-#: executor/nodeWindowAgg.c:2057
+#: executor/nodeWindowAgg.c:2058
 #, c-format
 msgid "frame starting offset must not be null"
 msgstr "l'offset de début de frame ne doit pas être NULL"
 
-#: executor/nodeWindowAgg.c:2070
+#: executor/nodeWindowAgg.c:2071
 #, c-format
 msgid "frame starting offset must not be negative"
 msgstr "l'offset de début de frame ne doit pas être négatif"
 
-#: executor/nodeWindowAgg.c:2082
+#: executor/nodeWindowAgg.c:2083
 #, c-format
 msgid "frame ending offset must not be null"
 msgstr "l'offset de fin de frame ne doit pas être NULL"
 
-#: executor/nodeWindowAgg.c:2095
+#: executor/nodeWindowAgg.c:2096
 #, c-format
 msgid "frame ending offset must not be negative"
 msgstr "l'offset de fin de frame ne doit pas être négatif"
 
-#: executor/nodeWindowAgg.c:2751
+#: executor/nodeWindowAgg.c:2752
 #, c-format
 msgid "aggregate function %s does not support use as a window function"
 msgstr "la fonction d'agrégat %s ne supporte pas l'utilisation en tant que fonction de fenêtrage"
@@ -11763,12 +12070,12 @@ msgstr "ne peut pas ouvrir la requête %s comme curseur"
 msgid "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported"
 msgstr "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE n'est pas supporté"
 
-#: executor/spi.c:1446 parser/analyze.c:2493
+#: executor/spi.c:1446 parser/analyze.c:2508
 #, c-format
 msgid "Scrollable cursors must be READ ONLY."
 msgstr "Les curseurs déplaçables doivent être en lecture seule (READ ONLY)."
 
-#: executor/spi.c:2570
+#: executor/spi.c:2560
 #, c-format
 msgid "SQL statement \"%s\""
 msgstr "instruction SQL « %s »"
@@ -11793,527 +12100,515 @@ msgstr "option « %s » invalide"
 msgid "Valid options in this context are: %s"
 msgstr "Les options valides dans ce contexte sont %s"
 
-#: gram.y:1030
+#: gram.y:1047
 #, c-format
 msgid "UNENCRYPTED PASSWORD is no longer supported"
 msgstr "UNENCRYPTED PASSWORD n'est plus supporté"
 
-#: gram.y:1031
+#: gram.y:1048
 #, c-format
 msgid "Remove UNENCRYPTED to store the password in encrypted form instead."
 msgstr "Supprimez UNENCRYPTED pour enregistrer le mot de passe dans sa forme chiffrée à la place."
 
-#: gram.y:1093
+#: gram.y:1110
 #, c-format
 msgid "unrecognized role option \"%s\""
 msgstr "option « %s » du rôle non reconnue"
 
-#: gram.y:1340 gram.y:1355
+#: gram.y:1357 gram.y:1372
 #, c-format
 msgid "CREATE SCHEMA IF NOT EXISTS cannot include schema elements"
 msgstr "CREATE SCHEMA IF NOT EXISTS n'inclut pas les éléments du schéma"
 
-#: gram.y:1501
+#: gram.y:1518
 #, c-format
 msgid "current database cannot be changed"
 msgstr "la base de données actuelle ne peut pas être changée"
 
-#: gram.y:1625
+#: gram.y:1642
 #, c-format
 msgid "time zone interval must be HOUR or HOUR TO MINUTE"
 msgstr "l'intervalle de fuseau horaire doit être HOUR ou HOUR TO MINUTE"
 
-#: gram.y:2143
+#: gram.y:2177
 #, c-format
 msgid "column number must be in range from 1 to %d"
 msgstr "le numéro de colonne doit être dans l'intervalle entre 1 et %d"
 
-#: gram.y:2675
+#: gram.y:2709
 #, c-format
 msgid "sequence option \"%s\" not supported here"
 msgstr "option de séquence « %s » non supportée ici"
 
-#: gram.y:2704
+#: gram.y:2738
 #, c-format
 msgid "modulus for hash partition provided more than once"
 msgstr "le modulus pour la partition hash est spécifié plus d'une fois"
 
-#: gram.y:2713
+#: gram.y:2747
 #, c-format
 msgid "remainder for hash partition provided more than once"
 msgstr "le reste pour la partition hash est spécifié plus d'une fois"
 
-#: gram.y:2720
+#: gram.y:2754
 #, c-format
 msgid "unrecognized hash partition bound specification \"%s\""
 msgstr "spécification de limite de partition hash non reconnue « %s »"
 
-#: gram.y:2728
+#: gram.y:2762
 #, c-format
 msgid "modulus for hash partition must be specified"
 msgstr "le modulus pour les partition hash doit être spécifié"
 
-#: gram.y:2732
+#: gram.y:2766
 #, c-format
 msgid "remainder for hash partition must be specified"
 msgstr "le reste pour les partition hash doit être spécifié"
 
-#: gram.y:2933 gram.y:2966
+#: gram.y:2967 gram.y:3000
 #, c-format
 msgid "STDIN/STDOUT not allowed with PROGRAM"
 msgstr "STDIN/STDOUT non autorisé dans PROGRAM"
 
-#: gram.y:2939
+#: gram.y:2973
 #, c-format
 msgid "WHERE clause not allowed with COPY TO"
 msgstr "la clause WHERE n'est pas autorisée avec COPY TO"
 
-#: gram.y:3271 gram.y:3278 gram.y:11480 gram.y:11488
+#: gram.y:3305 gram.y:3312 gram.y:11647 gram.y:11655
 #, c-format
 msgid "GLOBAL is deprecated in temporary table creation"
 msgstr "GLOBAL est obsolète dans la création de la table temporaire"
 
-#: gram.y:3518
+#: gram.y:3552
 #, c-format
 msgid "for a generated column, GENERATED ALWAYS must be specified"
 msgstr "pour une colonne générée, GENERATED ALWAYS doit toujours être spécifié"
 
-#: gram.y:3784 utils/adt/ri_triggers.c:1999
+#: gram.y:3818 utils/adt/ri_triggers.c:2007
 #, c-format
 msgid "MATCH PARTIAL not yet implemented"
 msgstr "MATCH PARTIAL non implémenté"
 
-#: gram.y:5274
+#: gram.y:4512
+#, c-format
+msgid "CREATE EXTENSION ... FROM is no longer supported"
+msgstr "CREATE EXTENSION ... FROM n'est plus supporté"
+
+#: gram.y:5338
 #, c-format
 msgid "unrecognized row security option \"%s\""
 msgstr "option « %s » de sécurité de ligne non reconnue"
 
-#: gram.y:5275
+#: gram.y:5339
 #, c-format
 msgid "Only PERMISSIVE or RESTRICTIVE policies are supported currently."
 msgstr "Seules les politiques PERMISSIVE et RESTRICTIVE sont supportées actuellement."
 
-#: gram.y:5388
+#: gram.y:5452
 msgid "duplicate trigger events specified"
 msgstr "événements de trigger dupliqués spécifiés"
 
-#: gram.y:5529 parser/parse_utilcmd.c:3435 parser/parse_utilcmd.c:3461
+#: gram.y:5593 parser/parse_utilcmd.c:3570 parser/parse_utilcmd.c:3596
 #, c-format
 msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE"
 msgstr "la contrainte déclarée INITIALLY DEFERRED doit être DEFERRABLE"
 
-#: gram.y:5536
+#: gram.y:5600
 #, c-format
 msgid "conflicting constraint properties"
 msgstr "propriétés de contrainte en conflit"
 
-#: gram.y:5632
+#: gram.y:5696
 #, c-format
 msgid "CREATE ASSERTION is not yet implemented"
 msgstr "CREATE ASSERTION n'est pas encore implémenté"
 
-#: gram.y:6015
+#: gram.y:6079
 #, c-format
 msgid "RECHECK is no longer required"
 msgstr "RECHECK n'est plus nécessaire"
 
-#: gram.y:6016
+#: gram.y:6080
 #, c-format
 msgid "Update your data type."
 msgstr "Mettez à jour votre type de données."
 
-#: gram.y:7753
+#: gram.y:7831
 #, c-format
 msgid "aggregates cannot have output arguments"
 msgstr "les agrégats ne peuvent pas avoir d'arguments en sortie"
 
-#: gram.y:8145 utils/adt/regproc.c:691 utils/adt/regproc.c:732
+#: gram.y:8223 utils/adt/regproc.c:692 utils/adt/regproc.c:733
 #, c-format
 msgid "missing argument"
 msgstr "argument manquant"
 
-#: gram.y:8146 utils/adt/regproc.c:692 utils/adt/regproc.c:733
+#: gram.y:8224 utils/adt/regproc.c:693 utils/adt/regproc.c:734
 #, c-format
 msgid "Use NONE to denote the missing argument of a unary operator."
 msgstr "Utilisez NONE pour dénoter l'argument manquant d'un opérateur unitaire."
 
-#: gram.y:10025 gram.y:10043
+#: gram.y:10153 gram.y:10171
 #, c-format
 msgid "WITH CHECK OPTION not supported on recursive views"
 msgstr "WITH CHECK OPTION non supporté sur les vues récursives"
 
-#: gram.y:11588
+#: gram.y:11779
 #, c-format
 msgid "LIMIT #,# syntax is not supported"
 msgstr "la syntaxe LIMIT #,# n'est pas supportée"
 
-#: gram.y:11589
+#: gram.y:11780
 #, c-format
 msgid "Use separate LIMIT and OFFSET clauses."
 msgstr "Utilisez les clauses séparées LIMIT et OFFSET."
 
-#: gram.y:11887 gram.y:11912
+#: gram.y:12106 gram.y:12131
 #, c-format
 msgid "VALUES in FROM must have an alias"
 msgstr "VALUES dans FROM doit avoir un alias"
 
-#: gram.y:11888 gram.y:11913
+#: gram.y:12107 gram.y:12132
 #, c-format
 msgid "For example, FROM (VALUES ...) [AS] foo."
 msgstr "Par exemple, FROM (VALUES ...) [AS] quelquechose."
 
-#: gram.y:11893 gram.y:11918
+#: gram.y:12112 gram.y:12137
 #, c-format
 msgid "subquery in FROM must have an alias"
 msgstr "la sous-requête du FROM doit avoir un alias"
 
-#: gram.y:11894 gram.y:11919
+#: gram.y:12113 gram.y:12138
 #, c-format
 msgid "For example, FROM (SELECT ...) [AS] foo."
 msgstr "Par exemple, FROM (SELECT...) [AS] quelquechose."
 
-#: gram.y:12372
+#: gram.y:12591
 #, c-format
 msgid "only one DEFAULT value is allowed"
 msgstr "seule une valeur DEFAULT est autorisée"
 
-#: gram.y:12381
+#: gram.y:12600
 #, c-format
 msgid "only one PATH value per column is allowed"
 msgstr "seule une valeur PATH par colonne est autorisée"
 
-#: gram.y:12390
+#: gram.y:12609
 #, c-format
 msgid "conflicting or redundant NULL / NOT NULL declarations for column \"%s\""
 msgstr "déclarations NULL/NOT NULL en conflit ou redondantes pour la colonne « %s »"
 
-#: gram.y:12399
+#: gram.y:12618
 #, c-format
 msgid "unrecognized column option \"%s\""
 msgstr "option de colonne « %s » non reconnue"
 
-#: gram.y:12653
+#: gram.y:12872
 #, c-format
 msgid "precision for type float must be at least 1 bit"
 msgstr "la précision du type float doit être d'au moins un bit"
 
-#: gram.y:12662
+#: gram.y:12881
 #, c-format
 msgid "precision for type float must be less than 54 bits"
 msgstr "la précision du type float doit être inférieur à 54 bits"
 
-#: gram.y:13153
+#: gram.y:13372
 #, c-format
 msgid "wrong number of parameters on left side of OVERLAPS expression"
 msgstr "mauvais nombre de paramètres sur le côté gauche de l'expression OVERLAPS"
 
-#: gram.y:13158
+#: gram.y:13377
 #, c-format
 msgid "wrong number of parameters on right side of OVERLAPS expression"
 msgstr "mauvais nombre de paramètres sur le côté droit de l'expression OVERLAPS"
 
-#: gram.y:13333
+#: gram.y:13552
 #, c-format
 msgid "UNIQUE predicate is not yet implemented"
 msgstr "prédicat UNIQUE non implémenté"
 
-#: gram.y:13680
+#: gram.y:13915
 #, c-format
 msgid "cannot use multiple ORDER BY clauses with WITHIN GROUP"
 msgstr "ne peut pas utiliser des clauses ORDER BY multiples dans WITHIN GROUP"
 
-#: gram.y:13685
+#: gram.y:13920
 #, c-format
 msgid "cannot use DISTINCT with WITHIN GROUP"
 msgstr "ne peut pas utiliser DISTINCT avec WITHIN GROUP"
 
-#: gram.y:13690
+#: gram.y:13925
 #, c-format
 msgid "cannot use VARIADIC with WITHIN GROUP"
 msgstr "ne peut pas utiliser VARIADIC avec WITHIN GROUP"
 
-#: gram.y:14148 gram.y:14171
+#: gram.y:14391 gram.y:14414
 #, c-format
 msgid "frame start cannot be UNBOUNDED FOLLOWING"
 msgstr "la fin du frame ne peut pas être UNBOUNDED FOLLOWING"
 
-#: gram.y:14153
+#: gram.y:14396
 #, c-format
 msgid "frame starting from following row cannot end with current row"
 msgstr "la frame commençant après la ligne suivante ne peut pas se terminer avec la ligne actuelle"
 
-#: gram.y:14176
+#: gram.y:14419
 #, c-format
 msgid "frame end cannot be UNBOUNDED PRECEDING"
 msgstr "la fin du frame ne peut pas être UNBOUNDED PRECEDING"
 
-#: gram.y:14182
+#: gram.y:14425
 #, c-format
 msgid "frame starting from current row cannot have preceding rows"
 msgstr "la frame commençant à la ligne courante ne peut pas avoir des lignes précédentes"
 
-#: gram.y:14189
+#: gram.y:14432
 #, c-format
 msgid "frame starting from following row cannot have preceding rows"
 msgstr "la frame commençant à la ligne suivante ne peut pas avoir des lignes précédentes"
 
-#: gram.y:14832
+#: gram.y:15082
 #, c-format
 msgid "type modifier cannot have parameter name"
 msgstr "le modificateur de type ne peut pas avoir de nom de paramètre"
 
-#: gram.y:14838
+#: gram.y:15088
 #, c-format
 msgid "type modifier cannot have ORDER BY"
 msgstr "le modificateur de type ne peut pas avoir de clause ORDER BY"
 
-#: gram.y:14903 gram.y:14910
+#: gram.y:15153 gram.y:15160
 #, c-format
 msgid "%s cannot be used as a role name here"
 msgstr "%s ne peut pas être utilisé comme nom de rôle ici"
 
-#: gram.y:15583 gram.y:15772
+#: gram.y:15841 gram.y:16030
 msgid "improper use of \"*\""
 msgstr "mauvaise utilisation de « * »"
 
-#: gram.y:15735 gram.y:15752 tsearch/spell.c:954 tsearch/spell.c:971 tsearch/spell.c:988 tsearch/spell.c:1005 tsearch/spell.c:1070
+#: gram.y:15993 gram.y:16010 tsearch/spell.c:956 tsearch/spell.c:973 tsearch/spell.c:990 tsearch/spell.c:1007 tsearch/spell.c:1072
 #, c-format
 msgid "syntax error"
 msgstr "erreur de syntaxe"
 
-#: gram.y:15836
+#: gram.y:16094
 #, c-format
 msgid "an ordered-set aggregate with a VARIADIC direct argument must have one VARIADIC aggregated argument of the same data type"
 msgstr "un agrégat par ensemble ordonné avec un argument VARIADIC direct doit avoir un argument VARIADIC agrégé du même type de données"
 
-#: gram.y:15873
+#: gram.y:16131
 #, c-format
 msgid "multiple ORDER BY clauses not allowed"
 msgstr "clauses ORDER BY multiples non autorisées"
 
-#: gram.y:15884
+#: gram.y:16142
 #, c-format
 msgid "multiple OFFSET clauses not allowed"
 msgstr "clauses OFFSET multiples non autorisées"
 
-#: gram.y:15893
+#: gram.y:16151
 #, c-format
 msgid "multiple LIMIT clauses not allowed"
 msgstr "clauses LIMIT multiples non autorisées"
 
-#: gram.y:15902
+#: gram.y:16160
+#, fuzzy, c-format
+#| msgid "multiple WITH clauses not allowed"
+msgid "multiple limit options not allowed"
+msgstr "clauses WITH multiples non autorisées"
+
+#: gram.y:16164
+#, c-format
+msgid "WITH TIES cannot be specified without ORDER BY clause"
+msgstr ""
+
+#: gram.y:16172
 #, c-format
 msgid "multiple WITH clauses not allowed"
 msgstr "clauses WITH multiples non autorisées"
 
-#: gram.y:16106
+#: gram.y:16376
 #, c-format
 msgid "OUT and INOUT arguments aren't allowed in TABLE functions"
 msgstr "les arguments OUT et INOUT ne sont pas autorisés dans des fonctions TABLE"
 
-#: gram.y:16207
+#: gram.y:16472
 #, c-format
 msgid "multiple COLLATE clauses not allowed"
 msgstr "clauses COLLATE multiples non autorisées"
 
 #. translator: %s is CHECK, UNIQUE, or similar
-#: gram.y:16245 gram.y:16258
+#: gram.y:16510 gram.y:16523
 #, c-format
 msgid "%s constraints cannot be marked DEFERRABLE"
 msgstr "les contraintes %s ne peuvent pas être marquées comme DEFERRABLE"
 
 #. translator: %s is CHECK, UNIQUE, or similar
-#: gram.y:16271
+#: gram.y:16536
 #, c-format
 msgid "%s constraints cannot be marked NOT VALID"
 msgstr "les contraintes %s ne peuvent pas être marquées comme NOT VALID"
 
 #. translator: %s is CHECK, UNIQUE, or similar
-#: gram.y:16284
+#: gram.y:16549
 #, c-format
 msgid "%s constraints cannot be marked NO INHERIT"
 msgstr "les contraintes %s ne peuvent pas être marquées NO INHERIT"
 
-#: guc-file.l:316
+#: guc-file.l:315
 #, c-format
 msgid "unrecognized configuration parameter \"%s\" in file \"%s\" line %u"
 msgstr "paramètre de configuration « %s » non reconnu dans le fichier « %s », ligne %u"
 
-#: guc-file.l:353 utils/misc/guc.c:6809 utils/misc/guc.c:7003 utils/misc/guc.c:7093 utils/misc/guc.c:7183 utils/misc/guc.c:7291 utils/misc/guc.c:7386
+#: guc-file.l:352 utils/misc/guc.c:7018 utils/misc/guc.c:7212 utils/misc/guc.c:7302 utils/misc/guc.c:7392 utils/misc/guc.c:7500 utils/misc/guc.c:7595
 #, c-format
 msgid "parameter \"%s\" cannot be changed without restarting the server"
 msgstr "le paramètre « %s » ne peut pas être modifié sans redémarrer le serveur"
 
-#: guc-file.l:389
+#: guc-file.l:388
 #, c-format
 msgid "parameter \"%s\" removed from configuration file, reset to default"
 msgstr ""
 "paramètre « %s » supprimé du fichier de configuration ;\n"
 "réinitialisation à la valeur par défaut"
 
-#: guc-file.l:455
+#: guc-file.l:454
 #, c-format
 msgid "parameter \"%s\" changed to \"%s\""
 msgstr "paramètre « %s » modifié par « %s »"
 
-#: guc-file.l:497
+#: guc-file.l:496
 #, c-format
 msgid "configuration file \"%s\" contains errors"
 msgstr "le fichier de configuration « %s » contient des erreurs"
 
-#: guc-file.l:502
+#: guc-file.l:501
 #, c-format
 msgid "configuration file \"%s\" contains errors; unaffected changes were applied"
 msgstr "le fichier de configuration « %s » contient des erreurs ; les modifications non affectées ont été appliquées"
 
-#: guc-file.l:507
+#: guc-file.l:506
 #, c-format
 msgid "configuration file \"%s\" contains errors; no changes were applied"
 msgstr "le fichier de configuration « %s » contient des erreurs ; aucune modification n'a été appliquée"
 
-#: guc-file.l:579
+#: guc-file.l:578
 #, c-format
 msgid "empty configuration file name: \"%s\""
 msgstr "nom de fichier de configuration vide : « %s »"
 
-#: guc-file.l:596
+#: guc-file.l:595
 #, c-format
 msgid "could not open configuration file \"%s\": maximum nesting depth exceeded"
 msgstr ""
 "n'a pas pu ouvrir le fichier de configuration « %s » : profondeur\n"
 "d'imbrication dépassé"
 
-#: guc-file.l:616
+#: guc-file.l:615
 #, c-format
 msgid "configuration file recursion in \"%s\""
 msgstr "le fichier de configuration « %s » contient une récursion"
 
-#: guc-file.l:632 libpq/hba.c:2199 libpq/hba.c:2613
+#: guc-file.l:631 libpq/hba.c:2199 libpq/hba.c:2613
 #, c-format
 msgid "could not open configuration file \"%s\": %m"
 msgstr "n'a pas pu ouvrir le fichier de configuration « %s » : %m"
 
-#: guc-file.l:643
+#: guc-file.l:642
 #, c-format
 msgid "skipping missing configuration file \"%s\""
 msgstr "ignore le fichier de configuration « %s » manquant"
 
-#: guc-file.l:897
+#: guc-file.l:896
 #, c-format
 msgid "syntax error in file \"%s\" line %u, near end of line"
 msgstr "erreur de syntaxe dans le fichier « %s », ligne %u, près de la fin de ligne"
 
-#: guc-file.l:907
+#: guc-file.l:906
 #, c-format
 msgid "syntax error in file \"%s\" line %u, near token \"%s\""
 msgstr "erreur de syntaxe dans le fichier « %s », ligne %u, près du mot clé « %s »"
 
-#: guc-file.l:927
+#: guc-file.l:926
 #, c-format
 msgid "too many syntax errors found, abandoning file \"%s\""
 msgstr "trop d'erreurs de syntaxe trouvées, abandon du fichier « %s »"
 
-#: guc-file.l:982
+#: guc-file.l:981
 #, c-format
 msgid "empty configuration directory name: \"%s\""
 msgstr "nom de répertoire de configuration vide : « %s »"
 
-#: guc-file.l:1001
+#: guc-file.l:1000
 #, c-format
 msgid "could not open configuration directory \"%s\": %m"
 msgstr "n'a pas pu ouvrir le répertoire de configuration « %s » : %m"
 
-#: jit/jit.c:208 utils/fmgr/dfmgr.c:209 utils/fmgr/dfmgr.c:426 utils/fmgr/dfmgr.c:474
+#: jit/jit.c:205 utils/fmgr/dfmgr.c:209 utils/fmgr/dfmgr.c:417 utils/fmgr/dfmgr.c:465
 #, c-format
 msgid "could not access file \"%s\": %m"
 msgstr "n'a pas pu accéder au fichier « %s » : %m"
 
-#: jit/llvm/llvmjit.c:601
+#: jit/llvm/llvmjit.c:595
 #, c-format
 msgid "time to inline: %.3fs, opt: %.3fs, emit: %.3fs"
 msgstr "temps pour inliner:  %.3fs, opt: %.3fs, emit: %.3fs"
 
-#: jsonpath_gram.y:514 jsonpath_scan.l:526 jsonpath_scan.l:542 jsonpath_scan.l:553 jsonpath_scan.l:563 jsonpath_scan.l:605 utils/adt/encode.c:442 utils/adt/encode.c:507 utils/adt/json.c:786 utils/adt/json.c:826 utils/adt/json.c:842 utils/adt/json.c:854 utils/adt/json.c:864 utils/adt/json.c:915 utils/adt/json.c:947 utils/adt/json.c:966 utils/adt/json.c:978 utils/adt/json.c:990 utils/adt/json.c:1135 utils/adt/json.c:1149 utils/adt/json.c:1160
-#: utils/adt/json.c:1168 utils/adt/json.c:1176 utils/adt/json.c:1184 utils/adt/json.c:1192 utils/adt/json.c:1200 utils/adt/json.c:1208 utils/adt/json.c:1216 utils/adt/json.c:1246 utils/adt/varlena.c:318 utils/adt/varlena.c:359
+#: jsonpath_gram.y:528 jsonpath_scan.l:519 jsonpath_scan.l:530 jsonpath_scan.l:540 jsonpath_scan.l:582 utils/adt/encode.c:476 utils/adt/encode.c:541 utils/adt/jsonfuncs.c:619 utils/adt/varlena.c:319 utils/adt/varlena.c:360
 #, c-format
 msgid "invalid input syntax for type %s"
 msgstr "syntaxe en entrée invalide pour le type %s"
 
-#: jsonpath_gram.y:515
+#: jsonpath_gram.y:529
 #, c-format
 msgid "unrecognized flag character \"%c\" in LIKE_REGEX predicate"
 msgstr "caractère d'état « %c » non reconnu dans un prédicat LIKE_REGEX"
 
-#: jsonpath_gram.y:569
+#: jsonpath_gram.y:583
 #, c-format
 msgid "XQuery \"x\" flag (expanded regular expressions) is not implemented"
 msgstr "le flag XQuery « x » (expression régulière étendue) n'est pas implémenté"
 
 #. translator: %s is typically "syntax error"
-#: jsonpath_scan.l:283
+#: jsonpath_scan.l:286
 #, c-format
 msgid "%s at end of jsonpath input"
 msgstr "%s à la fin de l'entrée jsonpath"
 
 #. translator: first %s is typically "syntax error"
-#: jsonpath_scan.l:290
+#: jsonpath_scan.l:293
 #, c-format
 msgid "%s at or near \"%s\" of jsonpath input"
 msgstr "%s sur ou près de « %s » de l'entrée jsonpath"
 
-#: jsonpath_scan.l:501 utils/adt/json.c:880 utils/adt/json.c:903
+#: jsonpath_scan.l:498 utils/adt/jsonfuncs.c:613
 #, c-format
 msgid "unsupported Unicode escape sequence"
 msgstr "séquence d'échappement Unicode non supportée"
 
-#: jsonpath_scan.l:502 utils/adt/json.c:881
-#, c-format
-msgid "\\u0000 cannot be converted to text."
-msgstr "\\u0000 ne peut pas être converti en texte."
-
-#: jsonpath_scan.l:527 utils/adt/json.c:904
-#, c-format
-msgid "Unicode escape values cannot be used for code point values above 007F when the server encoding is not UTF8."
-msgstr ""
-"Les valeurs d'échappement unicode ne peuvent pas être utilisées pour les valeurs de point de code\n"
-"au-dessus de 007F quand l'encodage serveur n'est pas UTF8."
-
-#: jsonpath_scan.l:543 utils/adt/json.c:844
-#, c-format
-msgid "Unicode high surrogate must not follow a high surrogate."
-msgstr "Une substitution unicode haute ne doit pas suivre une substitution haute."
-
-#: jsonpath_scan.l:554 jsonpath_scan.l:564 jsonpath_scan.l:606 utils/adt/json.c:855 utils/adt/json.c:865 utils/adt/json.c:917 utils/adt/json.c:979 utils/adt/json.c:991
-#, c-format
-msgid "Unicode low surrogate must follow a high surrogate."
-msgstr "Une substitution unicode basse ne doit pas suivre une substitution haute."
-
 #: lib/dshash.c:247 utils/mmgr/dsa.c:702 utils/mmgr/dsa.c:724 utils/mmgr/dsa.c:805
 #, c-format
 msgid "Failed on DSA request of size %zu."
 msgstr "Échec d'une requête DSA de taille %zu."
 
-#: lib/stringinfo.c:284
-#, c-format
-msgid "Cannot enlarge string buffer containing %d bytes by %d more bytes."
-msgstr "Ne peut pas agrandir le tampon de chaîne, qui contient %d octets, de %d octets."
-
 #: libpq/auth-scram.c:248
 #, c-format
 msgid "client selected an invalid SASL authentication mechanism"
 msgstr "le client a sélectionné un mécanisme d'authentification SASL invalide"
 
-#: libpq/auth-scram.c:269 libpq/auth-scram.c:509 libpq/auth-scram.c:518
+#: libpq/auth-scram.c:269 libpq/auth-scram.c:509 libpq/auth-scram.c:520
 #, c-format
-msgid "invalid SCRAM verifier for user \"%s\""
-msgstr "vérificateur SCRAM invalide pour l'utilisateur « %s »"
+msgid "invalid SCRAM secret for user \"%s\""
+msgstr "secret SCRAM invalide pour l'utilisateur « %s »"
 
 #: libpq/auth-scram.c:280
 #, c-format
-msgid "User \"%s\" does not have a valid SCRAM verifier."
-msgstr "L'utilisateur « %s » n'a pas de vérificateur SCRAM valide."
+msgid "User \"%s\" does not have a valid SCRAM secret."
+msgstr "L'utilisateur « %s » n'a pas de secret SCRAM valide."
 
-#: libpq/auth-scram.c:358 libpq/auth-scram.c:363 libpq/auth-scram.c:676 libpq/auth-scram.c:684 libpq/auth-scram.c:795 libpq/auth-scram.c:805 libpq/auth-scram.c:913 libpq/auth-scram.c:920 libpq/auth-scram.c:935 libpq/auth-scram.c:950 libpq/auth-scram.c:964 libpq/auth-scram.c:982 libpq/auth-scram.c:997 libpq/auth-scram.c:1283 libpq/auth-scram.c:1291
+#: libpq/auth-scram.c:358 libpq/auth-scram.c:363 libpq/auth-scram.c:693 libpq/auth-scram.c:701 libpq/auth-scram.c:806 libpq/auth-scram.c:819 libpq/auth-scram.c:829 libpq/auth-scram.c:937 libpq/auth-scram.c:944 libpq/auth-scram.c:959 libpq/auth-scram.c:974 libpq/auth-scram.c:988 libpq/auth-scram.c:1006 libpq/auth-scram.c:1021 libpq/auth-scram.c:1321 libpq/auth-scram.c:1329
 #, c-format
 msgid "malformed SCRAM message"
 msgstr "message SCRAM malformé"
@@ -12343,693 +12638,698 @@ msgstr "Le nonce ne correspond pas."
 msgid "could not generate random salt"
 msgstr "n'a pas pu générer le sel aléatoire"
 
-#: libpq/auth-scram.c:677
+#: libpq/auth-scram.c:694
 #, c-format
 msgid "Expected attribute \"%c\" but found \"%s\"."
 msgstr "Attribut attendu « %c », mais « %s » trouvé."
 
-#: libpq/auth-scram.c:685 libpq/auth-scram.c:806
+#: libpq/auth-scram.c:702 libpq/auth-scram.c:830
 #, c-format
 msgid "Expected character \"=\" for attribute \"%c\"."
 msgstr "Caractère « = » attendu pour l'attribut « %c »."
 
-#: libpq/auth-scram.c:796
+#: libpq/auth-scram.c:807
+#, c-format
+msgid "Attribute expected, but found end of string."
+msgstr "Attribut attendu, mais a trouvé une fin de chaîne."
+
+#: libpq/auth-scram.c:820
 #, c-format
 msgid "Attribute expected, but found invalid character \"%s\"."
 msgstr "Attribut attendu, mais a trouvé le caractère invalide « %s »."
 
-#: libpq/auth-scram.c:914 libpq/auth-scram.c:936
+#: libpq/auth-scram.c:938 libpq/auth-scram.c:960
 #, c-format
 msgid "The client selected SCRAM-SHA-256-PLUS, but the SCRAM message does not include channel binding data."
 msgstr "Le client a sélectionné SCRAM-SHA-256-PLUS, mais le message SCRAM n'inclut pas de données de channel-binding."
 
-#: libpq/auth-scram.c:921 libpq/auth-scram.c:951
+#: libpq/auth-scram.c:945 libpq/auth-scram.c:975
 #, c-format
 msgid "Comma expected, but found character \"%s\"."
 msgstr "Virgule attendue, mais caractère « %s » trouvé."
 
-#: libpq/auth-scram.c:942
+#: libpq/auth-scram.c:966
 #, c-format
 msgid "SCRAM channel binding negotiation error"
 msgstr "Erreur de négociation de channel-binding SCRAM"
 
-#: libpq/auth-scram.c:943
+#: libpq/auth-scram.c:967
 #, c-format
 msgid "The client supports SCRAM channel binding but thinks the server does not.  However, this server does support channel binding."
 msgstr "Le client supporte le channel binding SCRAM mais pense que le serveur ne le supporte pas.  Cependant, ce serveur supporte vraiment le channel-binding."
 
-#: libpq/auth-scram.c:965
+#: libpq/auth-scram.c:989
 #, c-format
 msgid "The client selected SCRAM-SHA-256 without channel binding, but the SCRAM message includes channel binding data."
 msgstr "Le client a sélectionné SCRAM-SHA-256 sans channel binding, mais le message SCRAM inclue des données de channel-binding."
 
-#: libpq/auth-scram.c:976
+#: libpq/auth-scram.c:1000
 #, c-format
 msgid "unsupported SCRAM channel-binding type \"%s\""
 msgstr "type de channel-binding SCRAM « %s » non supporté"
 
-#: libpq/auth-scram.c:983
+#: libpq/auth-scram.c:1007
 #, c-format
 msgid "Unexpected channel-binding flag \"%s\"."
 msgstr "Drapeau du channel-binding inattendu « %s »."
 
-#: libpq/auth-scram.c:993
+#: libpq/auth-scram.c:1017
 #, c-format
 msgid "client uses authorization identity, but it is not supported"
 msgstr "le client utilise une identité d'autorisation, mais elle n'est pas supportée"
 
-#: libpq/auth-scram.c:998
+#: libpq/auth-scram.c:1022
 #, c-format
 msgid "Unexpected attribute \"%s\" in client-first-message."
 msgstr "Attribut « %s » inattendu dans client-first-message."
 
-#: libpq/auth-scram.c:1014
+#: libpq/auth-scram.c:1038
 #, c-format
 msgid "client requires an unsupported SCRAM extension"
 msgstr "le client requiert une extension SCRAM non supportée"
 
-#: libpq/auth-scram.c:1028
+#: libpq/auth-scram.c:1052
 #, c-format
 msgid "non-printable characters in SCRAM nonce"
 msgstr "caractères non affichables dans le nonce SCRAM"
 
-#: libpq/auth-scram.c:1145
+#: libpq/auth-scram.c:1169
 #, c-format
 msgid "could not generate random nonce"
 msgstr "n'a pas pu générer le nonce aléatoire"
 
-#: libpq/auth-scram.c:1249
+#: libpq/auth-scram.c:1179
+#, c-format
+msgid "could not encode random nonce"
+msgstr "n'a pas pu chiffrer le nonce aléatoire"
+
+#: libpq/auth-scram.c:1285
 #, c-format
 msgid "SCRAM channel binding check failed"
 msgstr "la vérification du channel-binding SCRAM a échoué"
 
-#: libpq/auth-scram.c:1267
+#: libpq/auth-scram.c:1303
 #, c-format
 msgid "unexpected SCRAM channel-binding attribute in client-final-message"
 msgstr "attribut du lien de canal SCRAM inattendu dans client-final-message"
 
-#: libpq/auth-scram.c:1284
+#: libpq/auth-scram.c:1322
 #, c-format
 msgid "Malformed proof in client-final-message."
 msgstr "Preuve malformée dans le client-final-message."
 
-#: libpq/auth-scram.c:1292
+#: libpq/auth-scram.c:1330
 #, c-format
 msgid "Garbage found at the end of client-final-message."
 msgstr "Problème trouvé à la fin de client-final-message."
 
-#: libpq/auth.c:278
+#: libpq/auth.c:280
 #, c-format
 msgid "authentication failed for user \"%s\": host rejected"
 msgstr "authentification échouée pour l'utilisateur « %s » : hôte rejeté"
 
-#: libpq/auth.c:281
+#: libpq/auth.c:283
 #, c-format
 msgid "\"trust\" authentication failed for user \"%s\""
 msgstr "authentification « trust » échouée pour l'utilisateur « %s »"
 
-#: libpq/auth.c:284
+#: libpq/auth.c:286
 #, c-format
 msgid "Ident authentication failed for user \"%s\""
 msgstr "Échec de l'authentification Ident pour l'utilisateur « %s »"
 
-#: libpq/auth.c:287
+#: libpq/auth.c:289
 #, c-format
 msgid "Peer authentication failed for user \"%s\""
 msgstr "authentification peer échouée pour l'utilisateur « %s »"
 
-#: libpq/auth.c:292
+#: libpq/auth.c:294
 #, c-format
 msgid "password authentication failed for user \"%s\""
 msgstr "authentification par mot de passe échouée pour l'utilisateur  « %s »"
 
-#: libpq/auth.c:297
+#: libpq/auth.c:299
 #, c-format
 msgid "GSSAPI authentication failed for user \"%s\""
 msgstr "authentification GSSAPI échouée pour l'utilisateur « %s »"
 
-#: libpq/auth.c:300
+#: libpq/auth.c:302
 #, c-format
 msgid "SSPI authentication failed for user \"%s\""
 msgstr "authentification SSPI échouée pour l'utilisateur « %s »"
 
-#: libpq/auth.c:303
+#: libpq/auth.c:305
 #, c-format
 msgid "PAM authentication failed for user \"%s\""
 msgstr "authentification PAM échouée pour l'utilisateur « %s »"
 
-#: libpq/auth.c:306
+#: libpq/auth.c:308
 #, c-format
 msgid "BSD authentication failed for user \"%s\""
 msgstr "authentification BSD échouée pour l'utilisateur « %s »"
 
-#: libpq/auth.c:309
+#: libpq/auth.c:311
 #, c-format
 msgid "LDAP authentication failed for user \"%s\""
 msgstr "authentification LDAP échouée pour l'utilisateur « %s »"
 
-#: libpq/auth.c:312
+#: libpq/auth.c:314
 #, c-format
 msgid "certificate authentication failed for user \"%s\""
 msgstr "authentification par le certificat échouée pour l'utilisateur « %s »"
 
-#: libpq/auth.c:315
+#: libpq/auth.c:317
 #, c-format
 msgid "RADIUS authentication failed for user \"%s\""
 msgstr "authentification RADIUS échouée pour l'utilisateur « %s »"
 
-#: libpq/auth.c:318
+#: libpq/auth.c:320
 #, c-format
 msgid "authentication failed for user \"%s\": invalid authentication method"
 msgstr "authentification échouée pour l'utilisateur « %s » : méthode d'authentification invalide"
 
-#: libpq/auth.c:322
+#: libpq/auth.c:324
 #, c-format
 msgid "Connection matched pg_hba.conf line %d: \"%s\""
 msgstr "La connexion correspond à la ligne %d du pg_hba.conf : « %s »"
 
-#: libpq/auth.c:369
+#: libpq/auth.c:371
 #, c-format
 msgid "client certificates can only be checked if a root certificate store is available"
 msgstr ""
 "les certificats cert peuvent seulement être vérifiés si un emplacement de\n"
 "certificat racine est disponible"
 
-#: libpq/auth.c:380
+#: libpq/auth.c:382
 #, c-format
 msgid "connection requires a valid client certificate"
 msgstr "la connexion requiert un certificat client valide"
 
-#: libpq/auth.c:390
+#: libpq/auth.c:392
 #, c-format
 msgid "GSSAPI encryption can only be used with gss, trust, or reject authentication methods"
 msgstr "le chiffrement GSSAPI ne peut être utilisé qu'avec les méthodes d'authentification gss, trust ou reject"
 
-#: libpq/auth.c:424
+#: libpq/auth.c:426
 #, c-format
 msgid "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\", %s"
 msgstr ""
 "pg_hba.conf rejette la connexion de la réplication pour l'hôte « %s »,\n"
 "utilisateur « %s », %s"
 
-#: libpq/auth.c:426 libpq/auth.c:442 libpq/auth.c:500 libpq/auth.c:518
+#: libpq/auth.c:428 libpq/auth.c:444 libpq/auth.c:502 libpq/auth.c:520
 msgid "SSL off"
 msgstr "SSL inactif"
 
-#: libpq/auth.c:426 libpq/auth.c:442 libpq/auth.c:500 libpq/auth.c:518
+#: libpq/auth.c:428 libpq/auth.c:444 libpq/auth.c:502 libpq/auth.c:520
 msgid "SSL on"
 msgstr "SSL actif"
 
-#: libpq/auth.c:430
+#: libpq/auth.c:432
 #, c-format
 msgid "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\""
 msgstr ""
 "pg_hba.conf rejette la connexion de la réplication pour l'hôte « %s »,\n"
 "utilisateur « %s »"
 
-#: libpq/auth.c:439
+#: libpq/auth.c:441
 #, c-format
 msgid "pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\", %s"
 msgstr ""
 "pg_hba.conf rejette la connexion pour l'hôte « %s », utilisateur « %s », base\n"
 "de données « %s », %s"
 
-#: libpq/auth.c:446
+#: libpq/auth.c:448
 #, c-format
 msgid "pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\""
 msgstr ""
 "pg_hba.conf rejette la connexion pour l'hôte « %s », utilisateur « %s », base\n"
 "de données « %s »"
 
-#: libpq/auth.c:475
+#: libpq/auth.c:477
 #, c-format
 msgid "Client IP address resolved to \"%s\", forward lookup matches."
 msgstr "Adresse IP du client résolue en « %s », la recherche inverse correspond bien."
 
-#: libpq/auth.c:478
+#: libpq/auth.c:480
 #, c-format
 msgid "Client IP address resolved to \"%s\", forward lookup not checked."
 msgstr "Adresse IP du client résolue en « %s », la recherche inverse n'est pas vérifiée."
 
-#: libpq/auth.c:481
+#: libpq/auth.c:483
 #, c-format
 msgid "Client IP address resolved to \"%s\", forward lookup does not match."
 msgstr "Adresse IP du client résolue en « %s », la recherche inverse ne correspond pas."
 
-#: libpq/auth.c:484
+#: libpq/auth.c:486
 #, c-format
 msgid "Could not translate client host name \"%s\" to IP address: %s."
 msgstr "N'a pas pu traduire le nom d'hôte « %s » du client en adresse IP : %s."
 
-#: libpq/auth.c:489
+#: libpq/auth.c:491
 #, c-format
 msgid "Could not resolve client IP address to a host name: %s."
 msgstr "N'a pas pu résoudre l'adresse IP du client à partir du nom d'hôte : %s."
 
-#: libpq/auth.c:498
+#: libpq/auth.c:500
 #, c-format
 msgid "no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\", %s"
 msgstr ""
 "aucune entrée dans pg_hba.conf pour la connexion de la réplication à partir de\n"
 "l'hôte « %s », utilisateur « %s », %s"
 
-#: libpq/auth.c:505
+#: libpq/auth.c:507
 #, c-format
 msgid "no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\""
 msgstr ""
 "aucune entrée dans pg_hba.conf pour la connexion de la réplication à partir de\n"
 "l'hôte « %s », utilisateur « %s »"
 
-#: libpq/auth.c:515
+#: libpq/auth.c:517
 #, c-format
 msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\", %s"
 msgstr ""
 "aucune entrée dans pg_hba.conf pour l'hôte « %s », utilisateur « %s »,\n"
 "base de données « %s », %s"
 
-#: libpq/auth.c:523
+#: libpq/auth.c:525
 #, c-format
 msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\""
 msgstr ""
 "aucune entrée dans pg_hba.conf pour l'hôte « %s », utilisateur « %s »,\n"
 "base de données « %s »"
 
-#: libpq/auth.c:690
+#: libpq/auth.c:688
 #, c-format
 msgid "expected password response, got message type %d"
 msgstr "en attente du mot de passe, a reçu un type de message %d"
 
-#: libpq/auth.c:718
+#: libpq/auth.c:716
 #, c-format
 msgid "invalid password packet size"
 msgstr "taille du paquet du mot de passe invalide"
 
-#: libpq/auth.c:736
+#: libpq/auth.c:734
 #, c-format
 msgid "empty password returned by client"
 msgstr "mot de passe vide renvoyé par le client"
 
-#: libpq/auth.c:856 libpq/hba.c:1340
+#: libpq/auth.c:854 libpq/hba.c:1340
 #, c-format
 msgid "MD5 authentication is not supported when \"db_user_namespace\" is enabled"
 msgstr "l'authentification MD5 n'est pas supportée quand « db_user_namespace » est activé"
 
-#: libpq/auth.c:862
+#: libpq/auth.c:860
 #, c-format
 msgid "could not generate random MD5 salt"
 msgstr "n'a pas pu générer le sel MD5 aléatoire"
 
-#: libpq/auth.c:908
+#: libpq/auth.c:906
 #, c-format
 msgid "SASL authentication is not supported in protocol version 2"
 msgstr "l'authentification SASL n'est pas supportée dans le protocole de version 2"
 
-#: libpq/auth.c:941
+#: libpq/auth.c:939
 #, c-format
 msgid "expected SASL response, got message type %d"
 msgstr "attendait une réponse SASL, a reçu le type de message %d"
 
-#: libpq/auth.c:1070
+#: libpq/auth.c:1068
 #, c-format
 msgid "GSSAPI is not supported in protocol version 2"
 msgstr "GSSAPI n'est pas supporté dans le protocole de version 2"
 
-#: libpq/auth.c:1130
+#: libpq/auth.c:1128
 #, c-format
 msgid "expected GSS response, got message type %d"
 msgstr "en attente d'une réponse GSS, a reçu un message de type %d"
 
-#: libpq/auth.c:1192
+#: libpq/auth.c:1189
 msgid "accepting GSS security context failed"
 msgstr "échec de l'acceptation du contexte de sécurité GSS"
 
-#: libpq/auth.c:1231
+#: libpq/auth.c:1228
 msgid "retrieving GSS user name failed"
 msgstr "échec lors de la récupération du nom de l'utilisateur avec GSS"
 
-#: libpq/auth.c:1362
+#: libpq/auth.c:1359
 #, c-format
 msgid "SSPI is not supported in protocol version 2"
 msgstr "SSPI n'est pas supporté dans le protocole de version 2"
 
-#: libpq/auth.c:1377
+#: libpq/auth.c:1374
 msgid "could not acquire SSPI credentials"
 msgstr "n'a pas pu obtenir les pièces d'identité SSPI"
 
-#: libpq/auth.c:1395
+#: libpq/auth.c:1399
 #, c-format
 msgid "expected SSPI response, got message type %d"
 msgstr "en attente d'une réponse SSPI, a reçu un message de type %d"
 
-#: libpq/auth.c:1468
+#: libpq/auth.c:1477
 msgid "could not accept SSPI security context"
 msgstr "n'a pas pu accepter le contexte de sécurité SSPI"
 
-#: libpq/auth.c:1530
+#: libpq/auth.c:1539
 msgid "could not get token from SSPI security context"
 msgstr "n'a pas pu obtenir le jeton du contexte de sécurité SSPI"
 
-#: libpq/auth.c:1649 libpq/auth.c:1668
+#: libpq/auth.c:1658 libpq/auth.c:1677
 #, c-format
 msgid "could not translate name"
 msgstr "n'a pas pu traduit le nom"
 
-#: libpq/auth.c:1681
+#: libpq/auth.c:1690
 #, c-format
 msgid "realm name too long"
 msgstr "nom du royaume trop long"
 
-#: libpq/auth.c:1696
+#: libpq/auth.c:1705
 #, c-format
 msgid "translated account name too long"
 msgstr "traduction du nom de compte trop longue"
 
-#: libpq/auth.c:1882
+#: libpq/auth.c:1886
 #, c-format
 msgid "could not create socket for Ident connection: %m"
 msgstr "n'a pas pu créer le socket pour la connexion Ident : %m"
 
-#: libpq/auth.c:1897
+#: libpq/auth.c:1901
 #, c-format
 msgid "could not bind to local address \"%s\": %m"
 msgstr "n'a pas pu se lier à l'adresse locale « %s » : %m"
 
-#: libpq/auth.c:1909
+#: libpq/auth.c:1913
 #, c-format
 msgid "could not connect to Ident server at address \"%s\", port %s: %m"
 msgstr "n'a pas pu se connecter au serveur Ident à l'adresse « %s », port %s : %m"
 
-#: libpq/auth.c:1931
+#: libpq/auth.c:1935
 #, c-format
 msgid "could not send query to Ident server at address \"%s\", port %s: %m"
 msgstr "n'a pas pu envoyer la requête au serveur Ident à l'adresse « %s », port %s : %m"
 
-#: libpq/auth.c:1948
+#: libpq/auth.c:1952
 #, c-format
 msgid "could not receive response from Ident server at address \"%s\", port %s: %m"
 msgstr ""
 "n'a pas pu recevoir la réponse du serveur Ident à l'adresse « %s », port %s :\n"
 "%m"
 
-#: libpq/auth.c:1958
+#: libpq/auth.c:1962
 #, c-format
 msgid "invalidly formatted response from Ident server: \"%s\""
 msgstr "réponse mal formatée du serveur Ident : « %s »"
 
-#: libpq/auth.c:1998
+#: libpq/auth.c:2009
 #, c-format
 msgid "peer authentication is not supported on this platform"
 msgstr "la méthode d'authentification «peer n'est pas supportée sur cette plateforme"
 
-#: libpq/auth.c:2002
+#: libpq/auth.c:2013
 #, c-format
 msgid "could not get peer credentials: %m"
 msgstr "n'a pas pu obtenir l'authentification de l'autre : %m"
 
-#: libpq/auth.c:2013
+#: libpq/auth.c:2025
 #, c-format
 msgid "could not look up local user ID %ld: %s"
 msgstr "n'a pas pu rechercher l'identifiant %ld de l'utilisateur local : %s"
 
-#: libpq/auth.c:2101
+#: libpq/auth.c:2124
 #, c-format
 msgid "error from underlying PAM layer: %s"
 msgstr "erreur provenant de la couche PAM : %s"
 
-#: libpq/auth.c:2170
+#: libpq/auth.c:2194
 #, c-format
 msgid "could not create PAM authenticator: %s"
 msgstr "n'a pas pu créer l'authenticateur PAM : %s"
 
-#: libpq/auth.c:2181
+#: libpq/auth.c:2205
 #, c-format
 msgid "pam_set_item(PAM_USER) failed: %s"
 msgstr "pam_set_item(PAM_USER) a échoué : %s"
 
-#: libpq/auth.c:2213
+#: libpq/auth.c:2237
 #, c-format
 msgid "pam_set_item(PAM_RHOST) failed: %s"
 msgstr "pam_set_item(PAM_RHOST) a échoué : %s"
 
-#: libpq/auth.c:2225
+#: libpq/auth.c:2249
 #, c-format
 msgid "pam_set_item(PAM_CONV) failed: %s"
 msgstr "pam_set_item(PAM_CONV) a échoué : %s"
 
-#: libpq/auth.c:2236
+#: libpq/auth.c:2262
 #, c-format
 msgid "pam_authenticate failed: %s"
 msgstr "pam_authenticate a échoué : %s"
 
-#: libpq/auth.c:2247
+#: libpq/auth.c:2275
 #, c-format
 msgid "pam_acct_mgmt failed: %s"
 msgstr "pam_acct_mgmt a échoué : %s"
 
-#: libpq/auth.c:2258
+#: libpq/auth.c:2286
 #, c-format
 msgid "could not release PAM authenticator: %s"
 msgstr "n'a pas pu fermer l'authenticateur PAM : %s"
 
-#: libpq/auth.c:2334
+#: libpq/auth.c:2362
 #, c-format
 msgid "could not initialize LDAP: error code %d"
 msgstr "n'a pas pu initialiser LDAP : code d'erreur %d"
 
-#: libpq/auth.c:2371
+#: libpq/auth.c:2399
 #, c-format
 msgid "could not extract domain name from ldapbasedn"
 msgstr "n'a pas pu extraire le nom de domaine depuis ldapbasedn"
 
-#: libpq/auth.c:2379
+#: libpq/auth.c:2407
 #, c-format
 msgid "LDAP authentication could not find DNS SRV records for \"%s\""
 msgstr "l'authentification LDAP n'a pu trouver les enregistrement DNS SRV pour « %s »"
 
-#: libpq/auth.c:2381
+#: libpq/auth.c:2409
 #, c-format
 msgid "Set an LDAP server name explicitly."
 msgstr "Définit un nom de serveur LDAP explicitement."
 
-#: libpq/auth.c:2433
+#: libpq/auth.c:2461
 #, c-format
 msgid "could not initialize LDAP: %s"
 msgstr "n'a pas pu initialiser LDAP : %s"
 
-#: libpq/auth.c:2443
+#: libpq/auth.c:2471
 #, c-format
 msgid "ldaps not supported with this LDAP library"
 msgstr "ldaps non supporté avec cette bibliothèque LDAP"
 
-#: libpq/auth.c:2451
+#: libpq/auth.c:2479
 #, c-format
 msgid "could not initialize LDAP: %m"
 msgstr "n'a pas pu initialiser LDAP : %m"
 
-#: libpq/auth.c:2461
+#: libpq/auth.c:2489
 #, c-format
 msgid "could not set LDAP protocol version: %s"
 msgstr "n'a pas pu initialiser la version du protocole LDAP : %s"
 
-#: libpq/auth.c:2492
-#, c-format
-msgid "could not load wldap32.dll"
-msgstr "n'a pas pu charger wldap32.dll"
-
-#: libpq/auth.c:2500
+#: libpq/auth.c:2529
 #, c-format
 msgid "could not load function _ldap_start_tls_sA in wldap32.dll"
 msgstr "n'a pas pu charger la fonction _ldap_start_tls_sA de wldap32.dll"
 
-#: libpq/auth.c:2501
+#: libpq/auth.c:2530
 #, c-format
 msgid "LDAP over SSL is not supported on this platform."
 msgstr "LDAP via SSL n'est pas supporté sur cette plateforme."
 
-#: libpq/auth.c:2516
+#: libpq/auth.c:2546
 #, c-format
 msgid "could not start LDAP TLS session: %s"
 msgstr "n'a pas pu démarrer la session TLS LDAP : %s"
 
-#: libpq/auth.c:2587
+#: libpq/auth.c:2617
 #, c-format
 msgid "LDAP server not specified, and no ldapbasedn"
 msgstr "serveur LDAP non précisé, et il n'y a pas de ldapbasedn"
 
-#: libpq/auth.c:2594
+#: libpq/auth.c:2624
 #, c-format
 msgid "LDAP server not specified"
 msgstr "serveur LDAP non précisé"
 
-#: libpq/auth.c:2656
+#: libpq/auth.c:2686
 #, c-format
 msgid "invalid character in user name for LDAP authentication"
 msgstr "caractère invalide dans le nom de l'utilisateur pour l'authentification LDAP"
 
-#: libpq/auth.c:2673
+#: libpq/auth.c:2703
 #, c-format
 msgid "could not perform initial LDAP bind for ldapbinddn \"%s\" on server \"%s\": %s"
 msgstr "n'a pas pu réaliser le lien LDAP initiale pour ldapbinddn « %s » sur le serveur « %s » : %s"
 
-#: libpq/auth.c:2702
+#: libpq/auth.c:2732
 #, c-format
 msgid "could not search LDAP for filter \"%s\" on server \"%s\": %s"
 msgstr "n'a pas pu rechercher dans LDAP pour filtrer « %s » sur le serveur « %s » : %s"
 
-#: libpq/auth.c:2716
+#: libpq/auth.c:2746
 #, c-format
 msgid "LDAP user \"%s\" does not exist"
 msgstr "l'utilisateur LDAP « %s » n'existe pas"
 
-#: libpq/auth.c:2717
+#: libpq/auth.c:2747
 #, c-format
 msgid "LDAP search for filter \"%s\" on server \"%s\" returned no entries."
 msgstr "la recherche LDAP pour le filtre « %s » sur le serveur « %s » n'a renvoyé aucun enregistrement."
 
-#: libpq/auth.c:2721
+#: libpq/auth.c:2751
 #, c-format
 msgid "LDAP user \"%s\" is not unique"
 msgstr "l'utilisateur LDAP « %s » n'est pas unique"
 
-#: libpq/auth.c:2722
+#: libpq/auth.c:2752
 #, 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 recherche LDAP pour le filtre « %s » sur le serveur « %s » a renvoyé %d enregistrement."
 msgstr[1] "la recherche LDAP pour le filtre « %s » sur le serveur « %s » a renvoyé %d enregistrements."
 
-#: libpq/auth.c:2742
+#: libpq/auth.c:2772
 #, c-format
 msgid "could not get dn for the first entry matching \"%s\" on server \"%s\": %s"
 msgstr ""
 "n'a pas pu obtenir le dn pour la première entrée correspondante « %s » sur\n"
 "le serveur « %s » : %s"
 
-#: libpq/auth.c:2763
+#: libpq/auth.c:2793
 #, c-format
 msgid "could not unbind after searching for user \"%s\" on server \"%s\""
 msgstr ""
 "n'a pas pu exécuter le unbind après la recherche de l'utilisateur « %s »\n"
 "sur le serveur « %s »"
 
-#: libpq/auth.c:2794
+#: libpq/auth.c:2824
 #, c-format
 msgid "LDAP login failed for user \"%s\" on server \"%s\": %s"
 msgstr "échec de connexion LDAP pour l'utilisateur « %s » sur le serveur « %s » : %s"
 
-#: libpq/auth.c:2823
+#: libpq/auth.c:2853
 #, c-format
 msgid "LDAP diagnostics: %s"
 msgstr "diagnostique LDAP: %s"
 
-#: libpq/auth.c:2850
+#: libpq/auth.c:2880
 #, c-format
 msgid "certificate authentication failed for user \"%s\": client certificate contains no user name"
 msgstr ""
 "l'authentification par le certificat a échoué pour l'utilisateur « %s » :\n"
 "le certificat du client ne contient aucun nom d'utilisateur"
 
-#: libpq/auth.c:2867
+#: libpq/auth.c:2897
 #, c-format
 msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": CN mismatch"
 msgstr "l'authentification par certificat (clientcert=verify-full) a échoué pour l'utilisateur « %s » : incohérence de CN"
 
-#: libpq/auth.c:2968
+#: libpq/auth.c:2998
 #, c-format
 msgid "RADIUS server not specified"
 msgstr "serveur RADIUS non précisé"
 
-#: libpq/auth.c:2975
+#: libpq/auth.c:3005
 #, c-format
 msgid "RADIUS secret not specified"
 msgstr "secret RADIUS non précisé"
 
-#: libpq/auth.c:2989
+#: libpq/auth.c:3019
 #, c-format
 msgid "RADIUS authentication does not support passwords longer than %d characters"
 msgstr "l'authentification RADIUS ne supporte pas les mots de passe de plus de %d caractères"
 
-#: libpq/auth.c:3094 libpq/hba.c:1954
+#: libpq/auth.c:3124 libpq/hba.c:1954
 #, c-format
 msgid "could not translate RADIUS server name \"%s\" to address: %s"
 msgstr "n'a pas pu traduire le nom du serveur RADIUS « %s » en une adresse : %s"
 
-#: libpq/auth.c:3108
+#: libpq/auth.c:3138
 #, c-format
 msgid "could not generate random encryption vector"
 msgstr "n'a pas pu générer le vecteur de chiffrement aléatoire"
 
-#: libpq/auth.c:3142
+#: libpq/auth.c:3172
 #, c-format
 msgid "could not perform MD5 encryption of password"
 msgstr "n'a pas pu réaliser le chiffrement MD5 du mot de passe"
 
-#: libpq/auth.c:3168
+#: libpq/auth.c:3198
 #, c-format
 msgid "could not create RADIUS socket: %m"
 msgstr "n'a pas pu créer le socket RADIUS : %m"
 
-#: libpq/auth.c:3190
+#: libpq/auth.c:3220
 #, c-format
 msgid "could not bind local RADIUS socket: %m"
 msgstr "n'a pas pu se lier à la socket RADIUS : %m"
 
-#: libpq/auth.c:3200
+#: libpq/auth.c:3230
 #, c-format
 msgid "could not send RADIUS packet: %m"
 msgstr "n'a pas pu transmettre le paquet RADIUS : %m"
 
-#: libpq/auth.c:3233 libpq/auth.c:3259
+#: libpq/auth.c:3263 libpq/auth.c:3289
 #, c-format
 msgid "timeout waiting for RADIUS response from %s"
 msgstr "dépassement du délai pour la réponse du RADIUS à partir de %s"
 
-#: libpq/auth.c:3252
+#: libpq/auth.c:3282
 #, c-format
 msgid "could not check status on RADIUS socket: %m"
 msgstr "n'a pas pu vérifier le statut sur la socket RADIUS : %m"
 
-#: libpq/auth.c:3282
+#: libpq/auth.c:3312
 #, c-format
 msgid "could not read RADIUS response: %m"
 msgstr "n'a pas pu lire la réponse RADIUS : %m"
 
-#: libpq/auth.c:3295 libpq/auth.c:3299
+#: libpq/auth.c:3325 libpq/auth.c:3329
 #, c-format
 msgid "RADIUS response from %s was sent from incorrect port: %d"
 msgstr "la réponse RADIUS de %s a été envoyée à partir d'un mauvais port : %d"
 
-#: libpq/auth.c:3308
+#: libpq/auth.c:3338
 #, c-format
 msgid "RADIUS response from %s too short: %d"
 msgstr "réponse RADIUS de %s trop courte : %d"
 
-#: libpq/auth.c:3315
+#: libpq/auth.c:3345
 #, c-format
 msgid "RADIUS response from %s has corrupt length: %d (actual length %d)"
 msgstr "la réponse RADIUS de %s a une longueur corrompue : %d (longueur réelle %d)"
 
-#: libpq/auth.c:3323
+#: libpq/auth.c:3353
 #, c-format
 msgid "RADIUS response from %s is to a different request: %d (should be %d)"
 msgstr "la réponse RADIUS de %s correspond à une demande différente : %d (devrait être %d)"
 
-#: libpq/auth.c:3348
+#: libpq/auth.c:3378
 #, c-format
 msgid "could not perform MD5 encryption of received packet"
 msgstr "n'a pas pu réaliser le chiffrement MD5 du paquet reçu"
 
-#: libpq/auth.c:3357
+#: libpq/auth.c:3387
 #, c-format
 msgid "RADIUS response from %s has incorrect MD5 signature"
 msgstr "la réponse RADIUS de %s a une signature MD5 invalide"
 
-#: libpq/auth.c:3375
+#: libpq/auth.c:3405
 #, c-format
 msgid "RADIUS response from %s has invalid code (%d) for user \"%s\""
 msgstr "la réponse RADIUS de %s a un code invalide (%d) pour l'utilisateur « %s »"
 
-#: libpq/be-fsstubs.c:119 libpq/be-fsstubs.c:150 libpq/be-fsstubs.c:178 libpq/be-fsstubs.c:204 libpq/be-fsstubs.c:229 libpq/be-fsstubs.c:277 libpq/be-fsstubs.c:300 libpq/be-fsstubs.c:555
+#: libpq/be-fsstubs.c:119 libpq/be-fsstubs.c:150 libpq/be-fsstubs.c:178 libpq/be-fsstubs.c:204 libpq/be-fsstubs.c:229 libpq/be-fsstubs.c:277 libpq/be-fsstubs.c:300 libpq/be-fsstubs.c:553
 #, c-format
 msgid "invalid large-object descriptor: %d"
 msgstr "descripteur invalide de « Large Object » : %d"
@@ -13039,7 +13339,7 @@ msgstr "descripteur invalide de « Large Object » : %d"
 msgid "large object descriptor %d was not opened for reading"
 msgstr "le descripteur %d du « Large Object » n'a pas été ouvert pour la lecture"
 
-#: libpq/be-fsstubs.c:185 libpq/be-fsstubs.c:562
+#: libpq/be-fsstubs.c:185 libpq/be-fsstubs.c:560
 #, c-format
 msgid "large object descriptor %d was not opened for writing"
 msgstr "le descripteur %d du « Large Object » n'a pas été ouvert pour l'écriture"
@@ -13064,314 +13364,319 @@ msgstr "n'a pas pu ouvrir le fichier serveur « %s » : %m"
 msgid "could not read server file \"%s\": %m"
 msgstr "n'a pas pu lire le fichier serveur « %s » : %m"
 
-#: libpq/be-fsstubs.c:516
+#: libpq/be-fsstubs.c:514
 #, c-format
 msgid "could not create server file \"%s\": %m"
 msgstr "n'a pas pu créer le fichier serveur « %s » : %m"
 
-#: libpq/be-fsstubs.c:528
+#: libpq/be-fsstubs.c:526
 #, c-format
 msgid "could not write server file \"%s\": %m"
 msgstr "n'a pas pu écrire le fichier serveur « %s » : %m"
 
-#: libpq/be-fsstubs.c:762
+#: libpq/be-fsstubs.c:760
 #, c-format
 msgid "large object read request is too large"
 msgstr "la demande de lecture du Large Object est trop grande"
 
-#: libpq/be-fsstubs.c:804 utils/adt/genfile.c:235 utils/adt/genfile.c:274 utils/adt/genfile.c:310
+#: libpq/be-fsstubs.c:802 utils/adt/genfile.c:265 utils/adt/genfile.c:304 utils/adt/genfile.c:340
 #, c-format
 msgid "requested length cannot be negative"
 msgstr "la longueur demandée ne peut pas être négative"
 
-#: libpq/be-fsstubs.c:857 storage/large_object/inv_api.c:295 storage/large_object/inv_api.c:307 storage/large_object/inv_api.c:511 storage/large_object/inv_api.c:622 storage/large_object/inv_api.c:812
+#: libpq/be-fsstubs.c:855 storage/large_object/inv_api.c:297 storage/large_object/inv_api.c:309 storage/large_object/inv_api.c:513 storage/large_object/inv_api.c:624 storage/large_object/inv_api.c:814
 #, c-format
 msgid "permission denied for large object %u"
 msgstr "droit refusé pour le Large Object %u"
 
-#: libpq/be-secure-common.c:91
+#: libpq/be-secure-common.c:93
 #, c-format
 msgid "could not read from command \"%s\": %m"
 msgstr "n'a pas pu lire à partir de la commande « %s » : %m"
 
-#: libpq/be-secure-common.c:109
+#: libpq/be-secure-common.c:113
 #, c-format
 msgid "command \"%s\" failed"
 msgstr "la commande « %s » a échoué"
 
-#: libpq/be-secure-common.c:140
+#: libpq/be-secure-common.c:141
 #, c-format
 msgid "could not access private key file \"%s\": %m"
 msgstr "n'a pas pu accéder au fichier de la clé privée « %s » : %m"
 
-#: libpq/be-secure-common.c:149
+#: libpq/be-secure-common.c:150
 #, c-format
 msgid "private key file \"%s\" is not a regular file"
 msgstr "le fichier de clé privée « %s » n'est pas un fichier"
 
-#: libpq/be-secure-common.c:164
+#: libpq/be-secure-common.c:165
 #, c-format
 msgid "private key file \"%s\" must be owned by the database user or root"
 msgstr "le fichier de clé privée « %s » doit avoir le même propriétaire que la base de donnée ou root"
 
-#: libpq/be-secure-common.c:187
+#: libpq/be-secure-common.c:188
 #, c-format
 msgid "private key file \"%s\" has group or world access"
 msgstr ""
 "le fichier de clé privé « %s » est accessible par le groupe et/ou par les\n"
 "autres"
 
-#: libpq/be-secure-common.c:189
+#: libpq/be-secure-common.c:190
 #, 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 ""
 "Le fichier doit avoir les permissions u=rw (0600) ou moins si le propriétaire est le même que la base de données,\n"
 "ou les permissions u=rw,g=r (0640) ou moins si le propriétaire est root."
 
-#: libpq/be-secure-gssapi.c:177
+#: libpq/be-secure-gssapi.c:195
 msgid "GSSAPI wrap error"
 msgstr "erreur d'empaquetage GSSAPI"
 
-#: libpq/be-secure-gssapi.c:181
+#: libpq/be-secure-gssapi.c:199
 #, c-format
 msgid "outgoing GSSAPI message would not use confidentiality"
 msgstr "le message sortant GSSAPI n'utilliserait pas la confidentialité"
 
-#: libpq/be-secure-gssapi.c:185 libpq/be-secure-gssapi.c:551
+#: libpq/be-secure-gssapi.c:203 libpq/be-secure-gssapi.c:574
 #, c-format
 msgid "server tried to send oversize GSSAPI packet (%zu > %zu)"
 msgstr "le serveur a tenté d'envoyer un paquet GSSAPI surdimensionné (%zu > %zu)"
 
-#: libpq/be-secure-gssapi.c:303
+#: libpq/be-secure-gssapi.c:330
 #, c-format
 msgid "oversize GSSAPI packet sent by the client (%zu > %zu)"
 msgstr "paquet GSSAPI surdimensionné envoyé par le client (%zu > %zu)"
 
-#: libpq/be-secure-gssapi.c:345
+#: libpq/be-secure-gssapi.c:364
 msgid "GSSAPI unwrap error"
 msgstr "erreur de dépaquetage GSSAPI"
 
-#: libpq/be-secure-gssapi.c:350
+#: libpq/be-secure-gssapi.c:369
 #, c-format
 msgid "incoming GSSAPI message did not use confidentiality"
 msgstr "le message GSSAPI en entrée n'a pas utilisé la confidentialité"
 
-#: libpq/be-secure-gssapi.c:502
+#: libpq/be-secure-gssapi.c:525
 #, c-format
 msgid "oversize GSSAPI packet sent by the client (%zu > %d)"
 msgstr "paquet GSSAPI surdimensionné envoyé par le client (%zu > %d)"
 
-#: libpq/be-secure-gssapi.c:524
+#: libpq/be-secure-gssapi.c:547
 msgid "could not accept GSSAPI security context"
 msgstr "n'a pas pu accepter le contexte de sécurité GSSAPI"
 
-#: libpq/be-secure-gssapi.c:597
+#: libpq/be-secure-gssapi.c:637
 msgid "GSSAPI size check error"
 msgstr "erreur de vérification de taille GSSAPI"
 
-#: libpq/be-secure-openssl.c:111
+#: libpq/be-secure-openssl.c:112
 #, c-format
 msgid "could not create SSL context: %s"
 msgstr "n'a pas pu créer le contexte SSL : %s"
 
-#: libpq/be-secure-openssl.c:154
+#: libpq/be-secure-openssl.c:138
 #, c-format
 msgid "could not load server certificate file \"%s\": %s"
 msgstr "n'a pas pu charger le fichier du certificat serveur « %s » : %s"
 
-#: libpq/be-secure-openssl.c:174
+#: libpq/be-secure-openssl.c:158
 #, c-format
 msgid "private key file \"%s\" cannot be reloaded because it requires a passphrase"
 msgstr "le fichier de clé privée « %s » ne peut pas être rechargé car il nécessaire une phrase de passe"
 
-#: libpq/be-secure-openssl.c:179
+#: libpq/be-secure-openssl.c:163
 #, c-format
 msgid "could not load private key file \"%s\": %s"
 msgstr "n'a pas pu charger le fichier de clé privée « %s » : %s"
 
-#: libpq/be-secure-openssl.c:188
+#: libpq/be-secure-openssl.c:172
 #, c-format
 msgid "check of private key failed: %s"
 msgstr "échec de la vérification de la clé privée : %s"
 
-#: libpq/be-secure-openssl.c:204
+#             (errmsg("%s setting %s not supported by this build",
+#                     guc_name,
+#                     GetConfigOption(guc_name, false, false))));
+#: libpq/be-secure-openssl.c:184 libpq/be-secure-openssl.c:206
+#, c-format
+msgid "\"%s\" setting \"%s\" not supported by this build"
+msgstr ""
+
+#: libpq/be-secure-openssl.c:194
 #, c-format
 msgid "could not set minimum SSL protocol version"
 msgstr "n'a pas pu mettre en place la version minimum de protocole SSL"
 
-#: libpq/be-secure-openssl.c:220
+#: libpq/be-secure-openssl.c:216
 #, c-format
 msgid "could not set maximum SSL protocol version"
 msgstr "n'a pas pu mettre en place la version maximum de protocole SSL"
 
-#: libpq/be-secure-openssl.c:244
+#: libpq/be-secure-openssl.c:232
 #, c-format
-msgid "could not set the cipher list (no valid ciphers available)"
-msgstr "n'a pas pu configurer la liste des algorithmes de chiffrement (pas d'algorithmes valides disponibles)"
+msgid "could not set SSL protocol version range"
+msgstr "n'a pas pu configurer l'intervalle de versions pour le protocole SSL"
 
-#: libpq/be-secure-openssl.c:262
+#: libpq/be-secure-openssl.c:233
 #, c-format
-msgid "could not load root certificate file \"%s\": %s"
-msgstr "n'a pas pu charger le fichier du certificat racine « %s » : %s"
+msgid "\"%s\" cannot be higher than \"%s\""
+msgstr "« %s » ne peut pas être supérieur à « %s »"
 
-#: libpq/be-secure-openssl.c:289
+#: libpq/be-secure-openssl.c:257
 #, c-format
-msgid "SSL certificate revocation list file \"%s\" ignored"
-msgstr "liste de révocation des certificats SSL « %s » ignorée"
+msgid "could not set the cipher list (no valid ciphers available)"
+msgstr "n'a pas pu configurer la liste des algorithmes de chiffrement (pas d'algorithmes valides disponibles)"
 
-#: libpq/be-secure-openssl.c:291
+#: libpq/be-secure-openssl.c:275
 #, c-format
-msgid "SSL library does not support certificate revocation lists."
-msgstr "La bibliothèque SSL ne supporte pas les listes de révocation des certificats."
+msgid "could not load root certificate file \"%s\": %s"
+msgstr "n'a pas pu charger le fichier du certificat racine « %s » : %s"
 
-#: libpq/be-secure-openssl.c:298
+#: libpq/be-secure-openssl.c:302
 #, c-format
 msgid "could not load SSL certificate revocation list file \"%s\": %s"
 msgstr "n'a pas pu charger le fichier de liste de révocation des certificats SSL (« %s ») : %s"
 
-#: libpq/be-secure-openssl.c:373
+#: libpq/be-secure-openssl.c:378
 #, c-format
 msgid "could not initialize SSL connection: SSL context not set up"
 msgstr "n'a pas pu initialiser la connexion SSL : contexte SSL non configuré"
 
-#: libpq/be-secure-openssl.c:381
+#: libpq/be-secure-openssl.c:386
 #, c-format
 msgid "could not initialize SSL connection: %s"
 msgstr "n'a pas pu initialiser la connexion SSL : %s"
 
-#: libpq/be-secure-openssl.c:389
+#: libpq/be-secure-openssl.c:394
 #, c-format
 msgid "could not set SSL socket: %s"
 msgstr "n'a pas pu créer le socket SSL : %s"
 
-#: libpq/be-secure-openssl.c:444
+#: libpq/be-secure-openssl.c:449
 #, c-format
 msgid "could not accept SSL connection: %m"
 msgstr "n'a pas pu accepter la connexion SSL : %m"
 
-#: libpq/be-secure-openssl.c:448 libpq/be-secure-openssl.c:459
+#: libpq/be-secure-openssl.c:453 libpq/be-secure-openssl.c:506
 #, c-format
 msgid "could not accept SSL connection: EOF detected"
 msgstr "n'a pas pu accepter la connexion SSL : fin de fichier détecté"
 
-#: libpq/be-secure-openssl.c:453
+#: libpq/be-secure-openssl.c:492
 #, c-format
 msgid "could not accept SSL connection: %s"
 msgstr "n'a pas pu accepter la connexion SSL : %s"
 
-#: libpq/be-secure-openssl.c:464 libpq/be-secure-openssl.c:595 libpq/be-secure-openssl.c:659
+#: libpq/be-secure-openssl.c:495
+#, c-format
+msgid "This may indicate that the client does not support any SSL protocol version between %s and %s."
+msgstr ""
+
+#: libpq/be-secure-openssl.c:511 libpq/be-secure-openssl.c:642 libpq/be-secure-openssl.c:706
 #, c-format
 msgid "unrecognized SSL error code: %d"
 msgstr "code d'erreur SSL inconnu : %d"
 
-#: libpq/be-secure-openssl.c:506
+#: libpq/be-secure-openssl.c:553
 #, c-format
 msgid "SSL certificate's common name contains embedded null"
 msgstr "le nom commun du certificat SSL contient des NULL"
 
-#: libpq/be-secure-openssl.c:584 libpq/be-secure-openssl.c:643
+#: libpq/be-secure-openssl.c:631 libpq/be-secure-openssl.c:690
 #, c-format
 msgid "SSL error: %s"
 msgstr "erreur SSL : %s"
 
-#: libpq/be-secure-openssl.c:824
+#: libpq/be-secure-openssl.c:871
 #, c-format
 msgid "could not open DH parameters file \"%s\": %m"
 msgstr "n'a pas pu ouvrir le fichier de paramètres DH « %s » : %m"
 
-#: libpq/be-secure-openssl.c:836
+#: libpq/be-secure-openssl.c:883
 #, c-format
 msgid "could not load DH parameters file: %s"
 msgstr "n'a pas pu charger le fichier de paramètres DH : %s"
 
-#: libpq/be-secure-openssl.c:846
+#: libpq/be-secure-openssl.c:893
 #, c-format
 msgid "invalid DH parameters: %s"
 msgstr "paramètres DH invalides : %s"
 
-#: libpq/be-secure-openssl.c:854
+#: libpq/be-secure-openssl.c:901
 #, c-format
 msgid "invalid DH parameters: p is not prime"
 msgstr "paramètres DH invalides : p n'est pas premier"
 
-#: libpq/be-secure-openssl.c:862
+#: libpq/be-secure-openssl.c:909
 #, c-format
 msgid "invalid DH parameters: neither suitable generator or safe prime"
 msgstr "paramètres DH invalides : pas de générateur convenable ou de premier sûr"
 
-#: libpq/be-secure-openssl.c:1017
+#: libpq/be-secure-openssl.c:1065
 #, c-format
 msgid "DH: could not load DH parameters"
 msgstr "DH : n'a pas pu charger les paramètres DH"
 
-#: libpq/be-secure-openssl.c:1025
+#: libpq/be-secure-openssl.c:1073
 #, c-format
 msgid "DH: could not set DH parameters: %s"
 msgstr "DH : n'a pas pu configurer les paramètres DH : %s"
 
-#: libpq/be-secure-openssl.c:1049
+#: libpq/be-secure-openssl.c:1100
 #, c-format
 msgid "ECDH: unrecognized curve name: %s"
 msgstr "ECDH : nome de courbe non reconnu : %s"
 
-#: libpq/be-secure-openssl.c:1058
+#: libpq/be-secure-openssl.c:1109
 #, c-format
 msgid "ECDH: could not create key"
 msgstr "ECDH : n'a pas pu créer la clé"
 
-#: libpq/be-secure-openssl.c:1086
+#: libpq/be-secure-openssl.c:1137
 msgid "no SSL error reported"
 msgstr "aucune erreur SSL reportée"
 
-#: libpq/be-secure-openssl.c:1090
+#: libpq/be-secure-openssl.c:1141
 #, c-format
 msgid "SSL error code %lu"
 msgstr "erreur SSL de code %lu"
 
-#             (errmsg("%s setting %s not supported by this build",
-#                     guc_name,
-#                     GetConfigOption(guc_name, false, false))));
-#: libpq/be-secure-openssl.c:1320
-#, c-format
-msgid "%s setting %s not supported by this build"
-msgstr "le paramètre %s ne supporte pas la valeur %s dans cette installation"
-
-#: libpq/be-secure.c:123
+#: libpq/be-secure.c:122
 #, c-format
 msgid "SSL connection from \"%s\""
 msgstr "connexion SSL de « %s »"
 
-#: libpq/be-secure.c:208 libpq/be-secure.c:304
+#: libpq/be-secure.c:207 libpq/be-secure.c:303
 #, c-format
 msgid "terminating connection due to unexpected postmaster exit"
 msgstr "arrêt des connexions suite à un arrêt inatendu du postmaster"
 
-#: libpq/crypt.c:52
+#: libpq/crypt.c:49
 #, c-format
 msgid "Role \"%s\" does not exist."
 msgstr "Le rôle « %s » n'existe pas."
 
-#: libpq/crypt.c:62
+#: libpq/crypt.c:59
 #, c-format
 msgid "User \"%s\" has no password assigned."
 msgstr "L'utilisateur « %s » n'a pas de mot de passe affecté."
 
-#: libpq/crypt.c:80
+#: libpq/crypt.c:77
 #, c-format
 msgid "User \"%s\" has an expired password."
 msgstr "L'utilisateur « %s » a un mot de passe expiré."
 
-#: libpq/crypt.c:182
+#: libpq/crypt.c:179
 #, c-format
 msgid "User \"%s\" has a password that cannot be used with MD5 authentication."
 msgstr "L'utilisateur « %s » a un mot de passe qui ne peut pas être utilisé avec une authentification MD5."
 
-#: libpq/crypt.c:206 libpq/crypt.c:247 libpq/crypt.c:271
+#: libpq/crypt.c:203 libpq/crypt.c:244 libpq/crypt.c:268
 #, c-format
 msgid "Password does not match for user \"%s\"."
 msgstr "Le mot de passe ne correspond pas pour l'utilisateur %s."
 
-#: libpq/crypt.c:290
+#: libpq/crypt.c:287
 #, c-format
 msgid "Password of user \"%s\" is in unrecognized format."
 msgstr "Le mot de passe de l'utilisateur « %s » est dans un format non reconnu."
@@ -13393,8 +13698,8 @@ msgstr ""
 msgid "authentication file line too long"
 msgstr "ligne du fichier d'authentification trop longue"
 
-#: libpq/hba.c:510 libpq/hba.c:867 libpq/hba.c:887 libpq/hba.c:925 libpq/hba.c:975 libpq/hba.c:989 libpq/hba.c:1013 libpq/hba.c:1022 libpq/hba.c:1035 libpq/hba.c:1056 libpq/hba.c:1069 libpq/hba.c:1089 libpq/hba.c:1111 libpq/hba.c:1123 libpq/hba.c:1179 libpq/hba.c:1199 libpq/hba.c:1213 libpq/hba.c:1232 libpq/hba.c:1243 libpq/hba.c:1258 libpq/hba.c:1276 libpq/hba.c:1292 libpq/hba.c:1304 libpq/hba.c:1341 libpq/hba.c:1382 libpq/hba.c:1395
-#: libpq/hba.c:1417 libpq/hba.c:1430 libpq/hba.c:1442 libpq/hba.c:1460 libpq/hba.c:1510 libpq/hba.c:1554 libpq/hba.c:1565 libpq/hba.c:1581 libpq/hba.c:1598 libpq/hba.c:1608 libpq/hba.c:1666 libpq/hba.c:1704 libpq/hba.c:1726 libpq/hba.c:1738 libpq/hba.c:1825 libpq/hba.c:1843 libpq/hba.c:1937 libpq/hba.c:1956 libpq/hba.c:1985 libpq/hba.c:1998 libpq/hba.c:2021 libpq/hba.c:2043 libpq/hba.c:2057 tsearch/ts_locale.c:190
+#: libpq/hba.c:510 libpq/hba.c:867 libpq/hba.c:887 libpq/hba.c:925 libpq/hba.c:975 libpq/hba.c:989 libpq/hba.c:1013 libpq/hba.c:1022 libpq/hba.c:1035 libpq/hba.c:1056 libpq/hba.c:1069 libpq/hba.c:1089 libpq/hba.c:1111 libpq/hba.c:1123 libpq/hba.c:1179 libpq/hba.c:1199 libpq/hba.c:1213 libpq/hba.c:1232 libpq/hba.c:1243 libpq/hba.c:1258 libpq/hba.c:1276 libpq/hba.c:1292 libpq/hba.c:1304 libpq/hba.c:1341 libpq/hba.c:1382 libpq/hba.c:1395 libpq/hba.c:1417
+#: libpq/hba.c:1430 libpq/hba.c:1442 libpq/hba.c:1460 libpq/hba.c:1510 libpq/hba.c:1554 libpq/hba.c:1565 libpq/hba.c:1581 libpq/hba.c:1598 libpq/hba.c:1608 libpq/hba.c:1666 libpq/hba.c:1704 libpq/hba.c:1726 libpq/hba.c:1738 libpq/hba.c:1825 libpq/hba.c:1843 libpq/hba.c:1937 libpq/hba.c:1956 libpq/hba.c:1985 libpq/hba.c:1998 libpq/hba.c:2021 libpq/hba.c:2043 libpq/hba.c:2057 tsearch/ts_locale.c:190
 #, c-format
 msgid "line %d of configuration file \"%s\""
 msgstr "ligne %d du fichier de configuration « %s »"
@@ -13631,8 +13936,9 @@ msgid "clientcert can only be configured for \"hostssl\" rows"
 msgstr "clientcert ne peut être configuré que pour les lignes « hostssl »"
 
 #: libpq/hba.c:1725
-#, c-format
-msgid "clientcert can not be set to \"no-verify\" when using \"cert\" authentication"
+#, fuzzy, c-format
+#| msgid "clientcert can not be set to \"no-verify\" when using \"cert\" authentication"
+msgid "clientcert cannot be set to \"no-verify\" when using \"cert\" authentication"
 msgstr "clientcert ne peut être positionné à « no-verify » si vous utilisez l'authentification « cert »"
 
 #: libpq/hba.c:1737
@@ -13708,114 +14014,114 @@ msgstr "nom d'option de l'authentification inconnu : « %s »"
 msgid "configuration file \"%s\" contains no entries"
 msgstr "le fichier de configuration « %s » ne contient aucun enregistrement"
 
-#: libpq/hba.c:2769
+#: libpq/hba.c:2768
 #, c-format
 msgid "invalid regular expression \"%s\": %s"
 msgstr "expression rationnelle invalide « %s » : %s"
 
-#: libpq/hba.c:2829
+#: libpq/hba.c:2828
 #, c-format
 msgid "regular expression match for \"%s\" failed: %s"
 msgstr "la correspondance de l'expression rationnelle pour « %s » a échoué : %s"
 
-#: libpq/hba.c:2848
+#: libpq/hba.c:2847
 #, c-format
 msgid "regular expression \"%s\" has no subexpressions as requested by backreference in \"%s\""
 msgstr ""
 "l'expression rationnelle « %s » n'a pas de sous-expressions comme celle\n"
 "demandée par la référence dans « %s »"
 
-#: libpq/hba.c:2945
+#: libpq/hba.c:2943
 #, c-format
 msgid "provided user name (%s) and authenticated user name (%s) do not match"
 msgstr ""
 "le nom d'utilisateur (%s) et le nom d'utilisateur authentifié (%s) fournis ne\n"
 "correspondent pas"
 
-#: libpq/hba.c:2965
+#: libpq/hba.c:2963
 #, c-format
 msgid "no match in usermap \"%s\" for user \"%s\" authenticated as \"%s\""
 msgstr ""
 "pas de correspondance dans la usermap « %s » pour l'utilisateur « %s »\n"
 "authentifié en tant que « %s »"
 
-#: libpq/hba.c:2998
+#: libpq/hba.c:2996
 #, c-format
 msgid "could not open usermap file \"%s\": %m"
 msgstr "n'a pas pu ouvrir le fichier usermap « %s » : %m"
 
-#: libpq/pqcomm.c:220
+#: libpq/pqcomm.c:218
 #, c-format
 msgid "could not set socket to nonblocking mode: %m"
 msgstr "n'a pas pu activer le mode non-bloquant pour la socket : %m"
 
-#: libpq/pqcomm.c:374
+#: libpq/pqcomm.c:372
 #, c-format
 msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)"
 msgstr "Le chemin du socket de domaine Unix, « %s », est trop (maximum %d octets)"
 
-#: libpq/pqcomm.c:395
+#: libpq/pqcomm.c:393
 #, c-format
 msgid "could not translate host name \"%s\", service \"%s\" to address: %s"
 msgstr "n'a pas pu résoudre le nom de l'hôte « %s », service « %s » par l'adresse : %s"
 
-#: libpq/pqcomm.c:399
+#: libpq/pqcomm.c:397
 #, c-format
 msgid "could not translate service \"%s\" to address: %s"
 msgstr "n'a pas pu résoudre le service « %s » par l'adresse : %s"
 
-#: libpq/pqcomm.c:426
+#: libpq/pqcomm.c:424
 #, c-format
 msgid "could not bind to all requested addresses: MAXLISTEN (%d) exceeded"
 msgstr "n'a pas pu se lier à toutes les adresses requises : MAXLISTEN (%d) dépassé"
 
-#: libpq/pqcomm.c:435
+#: libpq/pqcomm.c:433
 msgid "IPv4"
 msgstr "IPv4"
 
-#: libpq/pqcomm.c:439
+#: libpq/pqcomm.c:437
 msgid "IPv6"
 msgstr "IPv6"
 
-#: libpq/pqcomm.c:444
+#: libpq/pqcomm.c:442
 msgid "Unix"
 msgstr "Unix"
 
-#: libpq/pqcomm.c:449
+#: libpq/pqcomm.c:447
 #, c-format
 msgid "unrecognized address family %d"
 msgstr "famille d'adresse %d non reconnue"
 
 #. translator: first %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:475
+#: libpq/pqcomm.c:473
 #, c-format
 msgid "could not create %s socket for address \"%s\": %m"
 msgstr "n'a pas pu créer le socket %s pour l'adresse « %s » : %m"
 
 #. translator: first %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:501
+#: libpq/pqcomm.c:499
 #, c-format
 msgid "setsockopt(SO_REUSEADDR) failed for %s address \"%s\": %m"
 msgstr "setsockopt(SO_REUSEADDR) a échoué pour %s, adresse « %s » : %m"
 
 #. translator: first %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:518
+#: libpq/pqcomm.c:516
 #, c-format
 msgid "setsockopt(IPV6_V6ONLY) failed for %s address \"%s\": %m"
 msgstr "setsockopt(IPV6_V6ONLY) a échoué pour %s, adresse « %s » : %m"
 
 #. translator: first %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:538
+#: libpq/pqcomm.c:536
 #, c-format
 msgid "could not bind %s address \"%s\": %m"
 msgstr "n'a pas pu lier %s à l'adresse « %s » : %m"
 
-#: libpq/pqcomm.c:541
+#: libpq/pqcomm.c:539
 #, c-format
 msgid "Is another postmaster already running on port %d? If not, remove socket file \"%s\" and retry."
 msgstr "Un autre postmaster fonctionne-t'il déjà sur le port %d ?Sinon, supprimez le fichier socket « %s » et réessayez."
 
-#: libpq/pqcomm.c:544
+#: libpq/pqcomm.c:542
 #, c-format
 msgid "Is another postmaster already running on port %d? If not, wait a few seconds and retry."
 msgstr ""
@@ -13823,73 +14129,73 @@ msgstr ""
 "Sinon, attendez quelques secondes et réessayez."
 
 #. translator: first %s is IPv4, IPv6, or Unix
-#: libpq/pqcomm.c:577
+#: libpq/pqcomm.c:575
 #, c-format
 msgid "could not listen on %s address \"%s\": %m"
 msgstr "n'a pas pu écouter sur « %s », adresse « %s » : %m"
 
-#: libpq/pqcomm.c:586
+#: libpq/pqcomm.c:584
 #, c-format
 msgid "listening on Unix socket \"%s\""
 msgstr "écoute sur la socket Unix « %s »"
 
 #. translator: first %s is IPv4 or IPv6
-#: libpq/pqcomm.c:592
+#: libpq/pqcomm.c:590
 #, c-format
 msgid "listening on %s address \"%s\", port %d"
 msgstr "en écoute sur %s, adresse « %s », port %d"
 
-#: libpq/pqcomm.c:675
+#: libpq/pqcomm.c:673
 #, c-format
 msgid "group \"%s\" does not exist"
 msgstr "le groupe « %s » n'existe pas"
 
-#: libpq/pqcomm.c:685
+#: libpq/pqcomm.c:683
 #, c-format
 msgid "could not set group of file \"%s\": %m"
 msgstr "n'a pas pu initialiser le groupe du fichier « %s » : %m"
 
-#: libpq/pqcomm.c:696
+#: libpq/pqcomm.c:694
 #, c-format
 msgid "could not set permissions of file \"%s\": %m"
 msgstr "n'a pas pu initialiser les droits du fichier « %s » : %m"
 
-#: libpq/pqcomm.c:726
+#: libpq/pqcomm.c:724
 #, c-format
 msgid "could not accept new connection: %m"
 msgstr "n'a pas pu accepter la nouvelle connexion : %m"
 
-#: libpq/pqcomm.c:928
+#: libpq/pqcomm.c:914
 #, c-format
 msgid "there is no client connection"
 msgstr "il n'y a pas de connexion client"
 
-#: libpq/pqcomm.c:979 libpq/pqcomm.c:1075
+#: libpq/pqcomm.c:965 libpq/pqcomm.c:1061
 #, c-format
 msgid "could not receive data from client: %m"
 msgstr "n'a pas pu recevoir les données du client : %m"
 
-#: libpq/pqcomm.c:1220 tcop/postgres.c:4074
+#: libpq/pqcomm.c:1206 tcop/postgres.c:4142
 #, c-format
 msgid "terminating connection because protocol synchronization was lost"
 msgstr "arrêt de la connexion à cause d'une perte de synchronisation du protocole"
 
-#: libpq/pqcomm.c:1286
+#: libpq/pqcomm.c:1272
 #, c-format
 msgid "unexpected EOF within message length word"
 msgstr "fin de fichier (EOF) inattendue à l'intérieur de la longueur du message"
 
-#: libpq/pqcomm.c:1297
+#: libpq/pqcomm.c:1283
 #, c-format
 msgid "invalid message length"
 msgstr "longueur du message invalide"
 
-#: libpq/pqcomm.c:1319 libpq/pqcomm.c:1332
+#: libpq/pqcomm.c:1305 libpq/pqcomm.c:1318
 #, c-format
 msgid "incomplete message from client"
 msgstr "message incomplet du client"
 
-#: libpq/pqcomm.c:1465
+#: libpq/pqcomm.c:1451
 #, c-format
 msgid "could not send data to client: %m"
 msgstr "n'a pas pu envoyer les données au client : %m"
@@ -13899,7 +14205,7 @@ msgstr "n'a pas pu envoyer les données au client : %m"
 msgid "no data left in message"
 msgstr "pas de données dans le message"
 
-#: libpq/pqformat.c:517 libpq/pqformat.c:535 libpq/pqformat.c:556 utils/adt/arrayfuncs.c:1470 utils/adt/rowtypes.c:567
+#: libpq/pqformat.c:517 libpq/pqformat.c:535 libpq/pqformat.c:556 utils/adt/arrayfuncs.c:1471 utils/adt/rowtypes.c:567
 #, c-format
 msgid "insufficient data left in message"
 msgstr "données insuffisantes laissées dans le message"
@@ -13914,12 +14220,12 @@ msgstr "chaîne invalide dans le message"
 msgid "invalid message format"
 msgstr "format du message invalide"
 
-#: main/main.c:264
+#: main/main.c:246
 #, c-format
 msgid "%s: WSAStartup failed: %d\n"
 msgstr "%s : WSAStartup a échoué : %d\n"
 
-#: main/main.c:328
+#: main/main.c:310
 #, c-format
 msgid ""
 "%s is the PostgreSQL server.\n"
@@ -13928,7 +14234,7 @@ msgstr ""
 "%s est le serveur PostgreSQL.\n"
 "\n"
 
-#: main/main.c:329
+#: main/main.c:311
 #, c-format
 msgid ""
 "Usage:\n"
@@ -13939,114 +14245,114 @@ msgstr ""
 "  %s [OPTION]...\n"
 "\n"
 
-#: main/main.c:330
+#: main/main.c:312
 #, c-format
 msgid "Options:\n"
 msgstr "Options :\n"
 
-#: main/main.c:331
+#: main/main.c:313
 #, c-format
 msgid "  -B NBUFFERS        number of shared buffers\n"
 msgstr "  -B NBUFFERS        nombre de tampons partagés (shared buffers)\n"
 
-#: main/main.c:332
+#: main/main.c:314
 #, c-format
 msgid "  -c NAME=VALUE      set run-time parameter\n"
 msgstr "  -c NOM=VALEUR      configure un paramètre d'exécution\n"
 
-#: main/main.c:333
+#: main/main.c:315
 #, c-format
 msgid "  -C NAME            print value of run-time parameter, then exit\n"
 msgstr ""
 "  -C NOM             affiche la valeur d'un paramètre en exécution,\n"
 "                     puis quitte\n"
 
-#: main/main.c:334
+#: main/main.c:316
 #, c-format
 msgid "  -d 1-5             debugging level\n"
 msgstr "  -d 1-5             niveau de débogage\n"
 
-#: main/main.c:335
+#: main/main.c:317
 #, c-format
 msgid "  -D DATADIR         database directory\n"
 msgstr "  -D RÉPDONNEES      répertoire de la base de données\n"
 
-#: main/main.c:336
+#: main/main.c:318
 #, c-format
 msgid "  -e                 use European date input format (DMY)\n"
 msgstr "  -e                 utilise le format européen de saisie des dates (DMY)\n"
 
-#: main/main.c:337
+#: main/main.c:319
 #, c-format
 msgid "  -F                 turn fsync off\n"
 msgstr "  -F                 désactive fsync\n"
 
-#: main/main.c:338
+#: main/main.c:320
 #, c-format
 msgid "  -h HOSTNAME        host name or IP address to listen on\n"
 msgstr "  -h NOMHÔTE         nom d'hôte ou adresse IP à écouter\n"
 
-#: main/main.c:339
+#: main/main.c:321
 #, c-format
 msgid "  -i                 enable TCP/IP connections\n"
 msgstr "  -i                 active les connexions TCP/IP\n"
 
-#: main/main.c:340
+#: main/main.c:322
 #, c-format
 msgid "  -k DIRECTORY       Unix-domain socket location\n"
 msgstr "  -k RÉPERTOIRE      emplacement des sockets de domaine Unix\n"
 
-#: main/main.c:342
+#: main/main.c:324
 #, c-format
 msgid "  -l                 enable SSL connections\n"
 msgstr "  -l                 active les connexions SSL\n"
 
-#: main/main.c:344
+#: main/main.c:326
 #, c-format
 msgid "  -N MAX-CONNECT     maximum number of allowed connections\n"
 msgstr "  -N MAX-CONNECT     nombre maximum de connexions simultanées\n"
 
-#: main/main.c:345
+#: main/main.c:327
 #, c-format
 msgid "  -o OPTIONS         pass \"OPTIONS\" to each server process (obsolete)\n"
 msgstr "  -o OPTIONS         passe « OPTIONS » à chaque processus serveur (obsolète)\n"
 
-#: main/main.c:346
+#: main/main.c:328
 #, c-format
 msgid "  -p PORT            port number to listen on\n"
 msgstr "  -p PORT            numéro du port à écouter\n"
 
-#: main/main.c:347
+#: main/main.c:329
 #, c-format
 msgid "  -s                 show statistics after each query\n"
 msgstr "  -s                 affiche les statistiques après chaque requête\n"
 
-#: main/main.c:348
+#: main/main.c:330
 #, c-format
 msgid "  -S WORK-MEM        set amount of memory for sorts (in kB)\n"
 msgstr "  -S WORK-MEM        configure la mémoire pour les tris (en ko)\n"
 
-#: main/main.c:349
+#: main/main.c:331
 #, c-format
 msgid "  -V, --version      output version information, then exit\n"
 msgstr "  -V, --version      affiche la version et quitte\n"
 
-#: main/main.c:350
+#: main/main.c:332
 #, c-format
 msgid "  --NAME=VALUE       set run-time parameter\n"
 msgstr "  --NOM=VALEUR       configure un paramètre d'exécution\n"
 
-#: main/main.c:351
+#: main/main.c:333
 #, c-format
 msgid "  --describe-config  describe configuration parameters, then exit\n"
 msgstr "  --describe-config  décrit les paramètres de configuration, puis quitte\n"
 
-#: main/main.c:352
+#: main/main.c:334
 #, c-format
 msgid "  -?, --help         show this help, then exit\n"
 msgstr "  -?, --help         affiche cette aide et quitte\n"
 
-#: main/main.c:354
+#: main/main.c:336
 #, c-format
 msgid ""
 "\n"
@@ -14055,50 +14361,50 @@ msgstr ""
 "\n"
 "Options pour le développeur :\n"
 
-#: main/main.c:355
+#: main/main.c:337
 #, c-format
 msgid "  -f s|i|n|m|h       forbid use of some plan types\n"
 msgstr "  -f s|i|n|m|h       interdit l'utilisation de certains types de plan\n"
 
-#: main/main.c:356
+#: main/main.c:338
 #, c-format
 msgid "  -n                 do not reinitialize shared memory after abnormal exit\n"
 msgstr ""
 "  -n                 ne réinitialise pas la mémoire partagée après un arrêt\n"
 "                     brutal\n"
 
-#: main/main.c:357
+#: main/main.c:339
 #, c-format
 msgid "  -O                 allow system table structure changes\n"
 msgstr ""
 "  -O                 autorise les modifications de structure des tables\n"
 "                     système\n"
 
-#: main/main.c:358
+#: main/main.c:340
 #, c-format
 msgid "  -P                 disable system indexes\n"
 msgstr "  -P                 désactive les index systèmes\n"
 
-#: main/main.c:359
+#: main/main.c:341
 #, c-format
 msgid "  -t pa|pl|ex        show timings after each query\n"
 msgstr "  -t pa|pl|ex        affiche les horodatages pour chaque requête\n"
 
-#: main/main.c:360
+#: main/main.c:342
 #, c-format
 msgid "  -T                 send SIGSTOP to all backend processes if one dies\n"
 msgstr ""
 "  -T                 envoie SIGSTOP à tous les processus serveur si l'un\n"
 "                     d'entre eux meurt\n"
 
-#: main/main.c:361
+#: main/main.c:343
 #, c-format
 msgid "  -W NUM             wait NUM seconds to allow attach from a debugger\n"
 msgstr ""
 "  -W NUM             attends NUM secondes pour permettre l'attache d'un\n"
 "                     débogueur\n"
 
-#: main/main.c:363
+#: main/main.c:345
 #, c-format
 msgid ""
 "\n"
@@ -14107,41 +14413,41 @@ msgstr ""
 "\n"
 "Options pour le mode mono-utilisateur :\n"
 
-#: main/main.c:364
+#: main/main.c:346
 #, c-format
 msgid "  --single           selects single-user mode (must be first argument)\n"
 msgstr ""
 "  --single           sélectionne le mode mono-utilisateur (doit être le\n"
 "                     premier argument)\n"
 
-#: main/main.c:365
+#: main/main.c:347
 #, c-format
 msgid "  DBNAME             database name (defaults to user name)\n"
 msgstr "  NOMBASE            nom de la base (par défaut, le même que l'utilisateur)\n"
 
-#: main/main.c:366
+#: main/main.c:348
 #, c-format
 msgid "  -d 0-5             override debugging level\n"
 msgstr "  -d 0-5             surcharge le niveau de débogage\n"
 
-#: main/main.c:367
+#: main/main.c:349
 #, c-format
 msgid "  -E                 echo statement before execution\n"
 msgstr "  -E                 affiche la requête avant de l'exécuter\n"
 
-#: main/main.c:368
+#: main/main.c:350
 #, c-format
 msgid "  -j                 do not use newline as interactive query delimiter\n"
 msgstr ""
 "  -j                 n'utilise pas le retour à la ligne comme délimiteur de\n"
 "                     requête\n"
 
-#: main/main.c:369 main/main.c:374
+#: main/main.c:351 main/main.c:356
 #, c-format
 msgid "  -r FILENAME        send stdout and stderr to given file\n"
 msgstr "  -r FICHIER         envoie stdout et stderr dans le fichier indiqué\n"
 
-#: main/main.c:371
+#: main/main.c:353
 #, c-format
 msgid ""
 "\n"
@@ -14150,34 +14456,41 @@ msgstr ""
 "\n"
 "Options pour le mode « bootstrapping » :\n"
 
-#: main/main.c:372
+#: main/main.c:354
 #, c-format
 msgid "  --boot             selects bootstrapping mode (must be first argument)\n"
 msgstr ""
 "  --boot             sélectionne le mode « bootstrapping » (doit être le\n"
 "                     premier argument)\n"
 
-#: main/main.c:373
+#: main/main.c:355
 #, c-format
 msgid "  DBNAME             database name (mandatory argument in bootstrapping mode)\n"
 msgstr ""
 "  NOMBASE            nom de la base (argument obligatoire dans le mode\n"
 "                     « bootstrapping »)\n"
 
-#: main/main.c:375
+#: main/main.c:357
 #, c-format
 msgid "  -x NUM             internal use\n"
 msgstr "  -x NUM             utilisation interne\n"
 
-#: main/main.c:377
-#, c-format
+#: main/main.c:359
+#, fuzzy, c-format
+#| msgid ""
+#| "\n"
+#| "Please read the documentation for the complete list of run-time\n"
+#| "configuration settings and how to set them on the command line or in\n"
+#| "the configuration file.\n"
+#| "\n"
+#| "Report bugs to <pgsql-bugs@lists.postgresql.org>.\n"
 msgid ""
 "\n"
 "Please read the documentation for the complete list of run-time\n"
 "configuration settings and how to set them on the command line or in\n"
 "the configuration file.\n"
 "\n"
-"Report bugs to <pgsql-bugs@lists.postgresql.org>.\n"
+"Report bugs to <%s>.\n"
 msgstr ""
 "\n"
 "Merci de lire la documentation pour la liste complète des paramètres\n"
@@ -14186,7 +14499,12 @@ msgstr ""
 "\n"
 "Rapportez les bogues à <pgsql-bugs@lists.postgresql.org>.\n"
 
-#: main/main.c:391
+#: main/main.c:363
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "page d'accueil de %s : <%s>\n"
+
+#: main/main.c:374
 #, c-format
 msgid ""
 "\"root\" execution of the PostgreSQL server is not permitted.\n"
@@ -14199,12 +14517,12 @@ msgstr ""
 "tout problème possible de sécurité sur le serveur. Voir la documentation pour\n"
 "plus d'informations sur le lancement propre du serveur.\n"
 
-#: main/main.c:408
+#: main/main.c:391
 #, c-format
 msgid "%s: real and effective user IDs must match\n"
 msgstr "%s : les identifiants réel et effectif de l'utilisateur doivent correspondre\n"
 
-#: main/main.c:415
+#: main/main.c:398
 #, c-format
 msgid ""
 "Execution of PostgreSQL by a user with administrative permissions is not\n"
@@ -14228,12 +14546,22 @@ msgstr "le type de nœud extensible « %s » existe déjà"
 msgid "ExtensibleNodeMethods \"%s\" was not registered"
 msgstr "ExtensibleNodeMethods \"%s\" n'a pas été enregistré"
 
-#: nodes/nodeFuncs.c:123 nodes/nodeFuncs.c:154 parser/parse_coerce.c:1915 parser/parse_coerce.c:1943 parser/parse_coerce.c:2019 parser/parse_expr.c:2201 parser/parse_func.c:705 parser/parse_oper.c:967
+#: nodes/nodeFuncs.c:122 nodes/nodeFuncs.c:153 parser/parse_coerce.c:2208 parser/parse_coerce.c:2317 parser/parse_coerce.c:2352 parser/parse_expr.c:2207 parser/parse_func.c:701 parser/parse_oper.c:967 utils/fmgr/funcapi.c:528
 #, c-format
 msgid "could not find array type for data type %s"
 msgstr "n'a pas pu trouver de type tableau pour le type de données %s"
 
-#: optimizer/path/joinrels.c:833
+#: nodes/params.c:359
+#, c-format
+msgid "portal \"%s\" with parameters: %s"
+msgstr "portail « %s » avec les paramètres : %s"
+
+#: nodes/params.c:362
+#, c-format
+msgid "unnamed portal with parameters: %s"
+msgstr "portail non nommé avec les paramètres : « %s »"
+
+#: optimizer/path/joinrels.c:855
 #, c-format
 msgid "FULL JOIN is only supported with merge-joinable or hash-joinable join conditions"
 msgstr ""
@@ -14241,123 +14569,123 @@ msgstr ""
 "jointures HASH JOIN"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: optimizer/plan/initsplan.c:1195
+#: optimizer/plan/initsplan.c:1193
 #, c-format
 msgid "%s cannot be applied to the nullable side of an outer join"
 msgstr "%s ne peut être appliqué sur le côté possiblement NULL d'une jointure externe"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: optimizer/plan/planner.c:1912 parser/analyze.c:1644 parser/analyze.c:1842 parser/analyze.c:2700
+#: optimizer/plan/planner.c:1922 parser/analyze.c:1639 parser/analyze.c:1855 parser/analyze.c:2715
 #, c-format
 msgid "%s is not allowed with UNION/INTERSECT/EXCEPT"
 msgstr "%s n'est pas autorisé avec UNION/INTERSECT/EXCEPT"
 
-#: optimizer/plan/planner.c:2498 optimizer/plan/planner.c:4157
+#: optimizer/plan/planner.c:2509 optimizer/plan/planner.c:4162
 #, c-format
 msgid "could not implement GROUP BY"
 msgstr "n'a pas pu implanter GROUP BY"
 
-#: optimizer/plan/planner.c:2499 optimizer/plan/planner.c:4158 optimizer/plan/planner.c:4896 optimizer/prep/prepunion.c:1042
+#: optimizer/plan/planner.c:2510 optimizer/plan/planner.c:4163 optimizer/plan/planner.c:4890 optimizer/prep/prepunion.c:1045
 #, c-format
 msgid "Some of the datatypes only support hashing, while others only support sorting."
 msgstr ""
 "Certains des types de données supportent seulement le hachage,\n"
 "alors que les autres supportent seulement le tri."
 
-#: optimizer/plan/planner.c:4895
+#: optimizer/plan/planner.c:4889
 #, c-format
 msgid "could not implement DISTINCT"
 msgstr "n'a pas pu implanter DISTINCT"
 
-#: optimizer/plan/planner.c:5630
+#: optimizer/plan/planner.c:5737
 #, c-format
 msgid "could not implement window PARTITION BY"
 msgstr "n'a pas pu implanter PARTITION BY de window"
 
-#: optimizer/plan/planner.c:5631
+#: optimizer/plan/planner.c:5738
 #, c-format
 msgid "Window partitioning columns must be of sortable datatypes."
 msgstr ""
 "Les colonnes de partitionnement de window doivent être d'un type de données\n"
 "triables."
 
-#: optimizer/plan/planner.c:5635
+#: optimizer/plan/planner.c:5742
 #, c-format
 msgid "could not implement window ORDER BY"
 msgstr "n'a pas pu implanter ORDER BY dans le window"
 
-#: optimizer/plan/planner.c:5636
+#: optimizer/plan/planner.c:5743
 #, c-format
 msgid "Window ordering columns must be of sortable datatypes."
 msgstr "Les colonnes de tri de la window doivent être d'un type de données triable."
 
-#: optimizer/plan/setrefs.c:425
+#: optimizer/plan/setrefs.c:451
 #, c-format
 msgid "too many range table entries"
 msgstr "trop d'enregistrements dans la table range"
 
-#: optimizer/prep/prepunion.c:505
+#: optimizer/prep/prepunion.c:508
 #, c-format
 msgid "could not implement recursive UNION"
 msgstr "n'a pas pu implanter le UNION récursif"
 
-#: optimizer/prep/prepunion.c:506
+#: optimizer/prep/prepunion.c:509
 #, c-format
 msgid "All column datatypes must be hashable."
 msgstr "Tous les types de données des colonnes doivent être hachables."
 
 #. translator: %s is UNION, INTERSECT, or EXCEPT
-#: optimizer/prep/prepunion.c:1041
+#: optimizer/prep/prepunion.c:1044
 #, c-format
 msgid "could not implement %s"
 msgstr "n'a pas pu implanter %s"
 
-#: optimizer/util/clauses.c:4781
+#: optimizer/util/clauses.c:4746
 #, c-format
 msgid "SQL function \"%s\" during inlining"
 msgstr "fonction SQL « %s » durant « inlining »"
 
-#: optimizer/util/plancat.c:130
+#: optimizer/util/plancat.c:132
 #, c-format
 msgid "cannot access temporary or unlogged relations during recovery"
 msgstr "ne peut pas accéder à des tables temporaires et non tracées lors de la restauration"
 
-#: optimizer/util/plancat.c:650
+#: optimizer/util/plancat.c:662
 #, c-format
 msgid "whole row unique index inference specifications are not supported"
 msgstr "les spécifications d'inférence d'index unique pour une ligne entière ne sont pas supportées"
 
-#: optimizer/util/plancat.c:667
+#: optimizer/util/plancat.c:679
 #, c-format
 msgid "constraint in ON CONFLICT clause has no associated index"
 msgstr "la contrainte de la clause ON CONFLICT n'a pas d'index associé"
 
-#: optimizer/util/plancat.c:717
+#: optimizer/util/plancat.c:729
 #, c-format
 msgid "ON CONFLICT DO UPDATE not supported with exclusion constraints"
 msgstr "ON CONFLICT DO UPDATE non supporté avec les contraintes d'exclusion"
 
-#: optimizer/util/plancat.c:822
+#: optimizer/util/plancat.c:834
 #, c-format
 msgid "there is no unique or exclusion constraint matching the ON CONFLICT specification"
 msgstr "il n'existe aucune contrainte unique ou contrainte d'exclusion correspondant à la spécification ON CONFLICT"
 
-#: parser/analyze.c:711 parser/analyze.c:1407
+#: parser/analyze.c:705 parser/analyze.c:1401
 #, c-format
 msgid "VALUES lists must all be the same length"
 msgstr "les listes VALUES doivent être toutes de la même longueur"
 
-#: parser/analyze.c:914
+#: parser/analyze.c:904
 #, c-format
 msgid "INSERT has more expressions than target columns"
 msgstr "INSERT a plus d'expressions que les colonnes cibles"
 
-#: parser/analyze.c:932
+#: parser/analyze.c:922
 #, c-format
 msgid "INSERT has more target columns than expressions"
 msgstr "INSERT a plus de colonnes cibles que d'expressions"
 
-#: parser/analyze.c:936
+#: parser/analyze.c:926
 #, 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 ""
@@ -14365,188 +14693,188 @@ msgstr ""
 "de colonnes que celui attendu par INSERT. Auriez-vous utilisé des parenthèses\n"
 "supplémentaires ?"
 
-#: parser/analyze.c:1218 parser/analyze.c:1617
+#: parser/analyze.c:1210 parser/analyze.c:1612
 #, c-format
 msgid "SELECT ... INTO is not allowed here"
 msgstr "SELECT ... INTO n'est pas autorisé ici"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:1549 parser/analyze.c:2879
+#: parser/analyze.c:1542 parser/analyze.c:2894
 #, c-format
 msgid "%s cannot be applied to VALUES"
 msgstr "%s ne peut pas être appliqué à VALUES"
 
-#: parser/analyze.c:1767
+#: parser/analyze.c:1777
 #, c-format
 msgid "invalid UNION/INTERSECT/EXCEPT ORDER BY clause"
 msgstr "clause UNION/INTERSECT/EXCEPT ORDER BY invalide"
 
-#: parser/analyze.c:1768
+#: parser/analyze.c:1778
 #, c-format
 msgid "Only result column names can be used, not expressions or functions."
 msgstr ""
 "Seuls les noms de colonnes résultats peuvent être utilisés, pas les\n"
 "expressions et les fonctions."
 
-#: parser/analyze.c:1769
+#: parser/analyze.c:1779
 #, c-format
 msgid "Add the expression/function to every SELECT, or move the UNION into a FROM clause."
 msgstr "Ajouter l'expression/fonction à chaque SELECT, ou déplacer l'UNION dans une clause FROM."
 
-#: parser/analyze.c:1832
+#: parser/analyze.c:1845
 #, c-format
 msgid "INTO is only allowed on first SELECT of UNION/INTERSECT/EXCEPT"
 msgstr "INTO est autorisé uniquement sur le premier SELECT d'un UNION/INTERSECT/EXCEPT"
 
-#: parser/analyze.c:1904
+#: parser/analyze.c:1917
 #, c-format
 msgid "UNION/INTERSECT/EXCEPT member statement cannot refer to other relations of same query level"
 msgstr ""
 "L'instruction membre UNION/INTERSECT/EXCEPT ne peut pas faire référence à\n"
 "d'autres relations que celles de la requête de même niveau"
 
-#: parser/analyze.c:1993
+#: parser/analyze.c:2004
 #, c-format
 msgid "each %s query must have the same number of columns"
 msgstr "chaque requête %s doit avoir le même nombre de colonnes"
 
-#: parser/analyze.c:2411
+#: parser/analyze.c:2426
 #, c-format
 msgid "RETURNING must have at least one column"
 msgstr "RETURNING doit avoir au moins une colonne"
 
-#: parser/analyze.c:2452
+#: parser/analyze.c:2467
 #, c-format
 msgid "cannot specify both SCROLL and NO SCROLL"
 msgstr "ne peut pas spécifier à la fois SCROLL et NO SCROLL"
 
-#: parser/analyze.c:2471
+#: parser/analyze.c:2486
 #, c-format
 msgid "DECLARE CURSOR must not contain data-modifying statements in WITH"
 msgstr "DECLARE CURSOR ne doit pas contenir des instructions de modification de données dans WITH"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2479
+#: parser/analyze.c:2494
 #, c-format
 msgid "DECLARE CURSOR WITH HOLD ... %s is not supported"
 msgstr "DECLARE CURSOR WITH HOLD ... %s n'est pas supporté"
 
-#: parser/analyze.c:2482
+#: parser/analyze.c:2497
 #, c-format
 msgid "Holdable cursors must be READ ONLY."
 msgstr "Les curseurs détenables doivent être en lecture seule (READ ONLY)."
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2490
+#: parser/analyze.c:2505
 #, c-format
 msgid "DECLARE SCROLL CURSOR ... %s is not supported"
 msgstr "DECLARE SCROLL CURSOR ... %s n'est pas supporté"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2501
+#: parser/analyze.c:2516
 #, c-format
 msgid "DECLARE INSENSITIVE CURSOR ... %s is not supported"
 msgstr "DECLARE INSENSITIVE CURSOR ... %s n'est pas supporté"
 
-#: parser/analyze.c:2504
+#: parser/analyze.c:2519
 #, c-format
 msgid "Insensitive cursors must be READ ONLY."
 msgstr "Les curseurs insensibles doivent être en lecture seule (READ ONLY)."
 
-#: parser/analyze.c:2570
+#: parser/analyze.c:2585
 #, c-format
 msgid "materialized views must not use data-modifying statements in WITH"
 msgstr "les vues matérialisées ne peuvent pas contenir d'instructions de modifications de données avec WITH"
 
-#: parser/analyze.c:2580
+#: parser/analyze.c:2595
 #, c-format
 msgid "materialized views must not use temporary tables or views"
 msgstr "les vues matérialisées ne doivent pas utiliser de tables temporaires ou de vues"
 
-#: parser/analyze.c:2590
+#: parser/analyze.c:2605
 #, c-format
 msgid "materialized views may not be defined using bound parameters"
 msgstr "les vues matérialisées ne peuvent pas être définies en utilisant des paramètres liés"
 
-#: parser/analyze.c:2602
+#: parser/analyze.c:2617
 #, c-format
 msgid "materialized views cannot be unlogged"
 msgstr "les vues matérialisées ne peuvent pas être non journalisées (UNLOGGED)"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2707
+#: parser/analyze.c:2722
 #, c-format
 msgid "%s is not allowed with DISTINCT clause"
 msgstr "%s n'est pas autorisé avec la clause DISTINCT"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2714
+#: parser/analyze.c:2729
 #, c-format
 msgid "%s is not allowed with GROUP BY clause"
 msgstr "%s n'est pas autorisé avec la clause GROUP BY"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2721
+#: parser/analyze.c:2736
 #, c-format
 msgid "%s is not allowed with HAVING clause"
 msgstr "%s n'est pas autorisé avec la clause HAVING"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2728
+#: parser/analyze.c:2743
 #, c-format
 msgid "%s is not allowed with aggregate functions"
 msgstr "%s n'est pas autorisé avec les fonctions d'agrégat"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2735
+#: parser/analyze.c:2750
 #, c-format
 msgid "%s is not allowed with window functions"
 msgstr "%s n'est pas autorisé avec les fonctions de fenêtrage"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2742
+#: parser/analyze.c:2757
 #, c-format
 msgid "%s is not allowed with set-returning functions in the target list"
 msgstr "%s n'est pas autorisé avec les fonctions renvoyant plusieurs lignes dans la liste cible"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2821
+#: parser/analyze.c:2836
 #, c-format
 msgid "%s must specify unqualified relation names"
 msgstr "%s doit indiquer les noms de relation non qualifiés"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2852
+#: parser/analyze.c:2867
 #, c-format
 msgid "%s cannot be applied to a join"
 msgstr "%s ne peut pas être appliqué à une jointure"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2861
+#: parser/analyze.c:2876
 #, c-format
 msgid "%s cannot be applied to a function"
 msgstr "%s ne peut pas être appliqué à une fonction"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2870
+#: parser/analyze.c:2885
 #, c-format
 msgid "%s cannot be applied to a table function"
 msgstr "%s ne peut pas être appliqué à une fonction de table"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2888
+#: parser/analyze.c:2903
 #, c-format
 msgid "%s cannot be applied to a WITH query"
 msgstr "%s ne peut pas être appliqué à une requête WITH"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2897
+#: parser/analyze.c:2912
 #, c-format
 msgid "%s cannot be applied to a named tuplestore"
 msgstr "%s ne peut pas être appliqué à une tuplestore nommé"
 
 #. translator: %s is a SQL row locking clause such as FOR UPDATE
-#: parser/analyze.c:2917
+#: parser/analyze.c:2932
 #, c-format
 msgid "relation \"%s\" in %s clause not found in FROM clause"
 msgstr "relation « %s » dans une clause %s introuvable dans la clause FROM"
@@ -14719,7 +15047,7 @@ msgid "grouping operations are not allowed in COPY FROM WHERE conditions"
 msgstr "les fonctions de regroupement ne sont pas autorisées dans les conditions WHERE d'un COPY FROM"
 
 #. translator: %s is name of a SQL construct, eg GROUP BY
-#: parser/parse_agg.c:567 parser/parse_clause.c:1778
+#: parser/parse_agg.c:567 parser/parse_clause.c:1828
 #, c-format
 msgid "aggregate functions are not allowed in %s"
 msgstr "les fonctions d'agrégat ne sont pas autorisées dans %s"
@@ -14740,7 +15068,7 @@ msgstr "un aggrégat de niveau externe ne peut pas contenir de variable de nivea
 msgid "aggregate function calls cannot contain set-returning function calls"
 msgstr "les appels à la fonction d'agrégat ne peuvent pas contenir des appels à des fonctions retournant des ensembles"
 
-#: parser/parse_agg.c:758 parser/parse_expr.c:1839 parser/parse_expr.c:2328 parser/parse_func.c:876
+#: parser/parse_agg.c:758 parser/parse_expr.c:1845 parser/parse_expr.c:2332 parser/parse_func.c:872
 #, c-format
 msgid "You might be able to move the set-returning function into a LATERAL FROM item."
 msgstr "Vous devriez être capable de déplacer la fonction SETOF dans un élément LATERAL FROM."
@@ -14815,12 +15143,12 @@ msgid "window functions are not allowed in column generation expressions"
 msgstr "les fonctions de fenêtrage ne sont pas autorisées dans les expressions de génération de colonne"
 
 #. translator: %s is name of a SQL construct, eg GROUP BY
-#: parser/parse_agg.c:954 parser/parse_clause.c:1787
+#: parser/parse_agg.c:954 parser/parse_clause.c:1837
 #, c-format
 msgid "window functions are not allowed in %s"
 msgstr "les fonctions de fenêtrage ne sont pas autorisés dans %s"
 
-#: parser/parse_agg.c:988 parser/parse_clause.c:2623
+#: parser/parse_agg.c:988 parser/parse_clause.c:2671
 #, c-format
 msgid "window \"%s\" does not exist"
 msgstr "le window « %s » n'existe pas"
@@ -14857,395 +15185,447 @@ msgstr ""
 msgid "arguments to GROUPING must be grouping expressions of the associated query level"
 msgstr "les arguments de la clause GROUPING doivent être des expressions de regroupement du niveau associé de la requête"
 
-#: parser/parse_clause.c:198
+#: parser/parse_clause.c:191
 #, c-format
 msgid "relation \"%s\" cannot be the target of a modifying statement"
 msgstr "la relation « %s » ne peut pas être la cible d'une instruction modifiée"
 
-#: parser/parse_clause.c:575 parser/parse_clause.c:603 parser/parse_func.c:2439
+#: parser/parse_clause.c:571 parser/parse_clause.c:599 parser/parse_func.c:2424
 #, c-format
 msgid "set-returning functions must appear at top level of FROM"
 msgstr "les fonctions renvoyant des ensembles doivent apparaître au niveau haut d'un FROM"
 
-#: parser/parse_clause.c:615
+#: parser/parse_clause.c:611
 #, c-format
 msgid "multiple column definition lists are not allowed for the same function"
 msgstr "plusieurs listes de définition de colonnes ne sont pas autorisées pour la même fonction"
 
-#: parser/parse_clause.c:648
+#: parser/parse_clause.c:644
 #, c-format
 msgid "ROWS FROM() with multiple functions cannot have a column definition list"
 msgstr "ROWS FROM() avec plusieurs fonctions ne peut pas avoir une liste de définitions de colonnes"
 
-#: parser/parse_clause.c:649
+#: parser/parse_clause.c:645
 #, c-format
 msgid "Put a separate column definition list for each function inside ROWS FROM()."
 msgstr "Placer une liste de définitions de colonnes séparée pour chaque fonction à l'intérieur de ROWS FROM()."
 
-#: parser/parse_clause.c:655
+#: parser/parse_clause.c:651
 #, c-format
 msgid "UNNEST() with multiple arguments cannot have a column definition list"
 msgstr "UNNEST() avec plusieurs arguments ne peut pas avoir de liste de définition de colonnes"
 
-#: parser/parse_clause.c:656
+#: parser/parse_clause.c:652
 #, c-format
 msgid "Use separate UNNEST() calls inside ROWS FROM(), and attach a column definition list to each one."
 msgstr "Utiliser des appels séparés UNNEST() à l'intérieur de ROWS FROM(), et attacher une liste de définition des colonnes pour chaque."
 
-#: parser/parse_clause.c:663
+#: parser/parse_clause.c:659
 #, c-format
 msgid "WITH ORDINALITY cannot be used with a column definition list"
 msgstr "WITH ORDINALITY ne peut pas être utilisé avec une liste de définitions de colonnes"
 
-#: parser/parse_clause.c:664
+#: parser/parse_clause.c:660
 #, c-format
 msgid "Put the column definition list inside ROWS FROM()."
 msgstr "Placez la liste de définitions des colonnes dans ROWS FROM()."
 
-#: parser/parse_clause.c:767
+#: parser/parse_clause.c:760
 #, c-format
 msgid "only one FOR ORDINALITY column is allowed"
 msgstr "seule une colonne FOR ORDINALITY est autorisée"
 
-#: parser/parse_clause.c:828
+#: parser/parse_clause.c:821
 #, c-format
 msgid "column name \"%s\" is not unique"
 msgstr "le nom de colonne « %s » n'est pas unique"
 
-#: parser/parse_clause.c:870
+#: parser/parse_clause.c:863
 #, c-format
 msgid "namespace name \"%s\" is not unique"
 msgstr "l'espace de nom « %s » n'est pas unique"
 
-#: parser/parse_clause.c:880
+#: parser/parse_clause.c:873
 #, c-format
 msgid "only one default namespace is allowed"
 msgstr "seul un espace de nom par défaut est autorisé"
 
-#: parser/parse_clause.c:942
+#: parser/parse_clause.c:933
 #, c-format
 msgid "tablesample method %s does not exist"
 msgstr "la méthode d'échantillonage %s n'existe pas"
 
-#: parser/parse_clause.c:964
+#: parser/parse_clause.c:955
 #, c-format
 msgid "tablesample method %s requires %d argument, not %d"
 msgid_plural "tablesample method %s requires %d arguments, not %d"
 msgstr[0] "la méthode d'échantillonage %s requiert %d argument, et non pas %d"
 msgstr[1] "la méthode d'échantillonage %s requiert %d arguments, et non pas %d"
 
-#: parser/parse_clause.c:998
+#: parser/parse_clause.c:989
 #, c-format
 msgid "tablesample method %s does not support REPEATABLE"
 msgstr "la méthode d'échantillonage %s ne supporte pas REPEATABLE"
 
-#: parser/parse_clause.c:1168
+#: parser/parse_clause.c:1135
 #, c-format
 msgid "TABLESAMPLE clause can only be applied to tables and materialized views"
 msgstr "la clause TABLESAMPLE n'est applicable qu'aux tables et vues matérialisées"
 
-#: parser/parse_clause.c:1338
+#: parser/parse_clause.c:1318
 #, c-format
 msgid "column name \"%s\" appears more than once in USING clause"
 msgstr "le nom de la colonne « %s » apparaît plus d'une fois dans la clause USING"
 
-#: parser/parse_clause.c:1353
+#: parser/parse_clause.c:1333
 #, c-format
 msgid "common column name \"%s\" appears more than once in left table"
 msgstr ""
 "le nom commun de la colonne « %s » apparaît plus d'une fois dans la table de\n"
 "gauche"
 
-#: parser/parse_clause.c:1362
+#: parser/parse_clause.c:1342
 #, c-format
 msgid "column \"%s\" specified in USING clause does not exist in left table"
 msgstr ""
 "la colonne « %s » spécifiée dans la clause USING n'existe pas dans la table\n"
 "de gauche"
 
-#: parser/parse_clause.c:1376
+#: parser/parse_clause.c:1357
 #, c-format
 msgid "common column name \"%s\" appears more than once in right table"
 msgstr ""
 "le nom commun de la colonne « %s » apparaît plus d'une fois dans la table de\n"
 " droite"
 
-#: parser/parse_clause.c:1385
+#: parser/parse_clause.c:1366
 #, c-format
 msgid "column \"%s\" specified in USING clause does not exist in right table"
 msgstr ""
 "la colonne « %s » spécifiée dans la clause USING n'existe pas dans la table\n"
 "de droite"
 
-#: parser/parse_clause.c:1439
+#: parser/parse_clause.c:1447
 #, c-format
 msgid "column alias list for \"%s\" has too many entries"
 msgstr "la liste d'alias de colonnes pour « %s » a beaucoup trop d'entrées"
 
+#: parser/parse_clause.c:1773
+#, c-format
+msgid "row count cannot be null in FETCH FIRST ... WITH TIES clause"
+msgstr ""
+
 #. translator: %s is name of a SQL construct, eg LIMIT
-#: parser/parse_clause.c:1748
+#: parser/parse_clause.c:1798
 #, c-format
 msgid "argument of %s must not contain variables"
 msgstr "l'argument de « %s » ne doit pas contenir de variables"
 
 #. translator: first %s is name of a SQL construct, eg ORDER BY
-#: parser/parse_clause.c:1913
+#: parser/parse_clause.c:1963
 #, c-format
 msgid "%s \"%s\" is ambiguous"
 msgstr "%s « %s » est ambigu"
 
 #. translator: %s is name of a SQL construct, eg ORDER BY
-#: parser/parse_clause.c:1942
+#: parser/parse_clause.c:1992
 #, c-format
 msgid "non-integer constant in %s"
 msgstr "constante non entière dans %s"
 
 #. translator: %s is name of a SQL construct, eg ORDER BY
-#: parser/parse_clause.c:1964
+#: parser/parse_clause.c:2014
 #, c-format
 msgid "%s position %d is not in select list"
 msgstr "%s, à la position %d, n'est pas dans la liste SELECT"
 
-#: parser/parse_clause.c:2405
+#: parser/parse_clause.c:2453
 #, c-format
 msgid "CUBE is limited to 12 elements"
 msgstr "CUBE est limité à 12 éléments"
 
-#: parser/parse_clause.c:2611
+#: parser/parse_clause.c:2659
 #, c-format
 msgid "window \"%s\" is already defined"
 msgstr "le window « %s » est déjà définie"
 
-#: parser/parse_clause.c:2672
+#: parser/parse_clause.c:2720
 #, c-format
 msgid "cannot override PARTITION BY clause of window \"%s\""
 msgstr "n'a pas pu surcharger la clause PARTITION BY de window « %s »"
 
-#: parser/parse_clause.c:2684
+#: parser/parse_clause.c:2732
 #, c-format
 msgid "cannot override ORDER BY clause of window \"%s\""
 msgstr "n'a pas pu surcharger la clause ORDER BY de window « %s »"
 
-#: parser/parse_clause.c:2714 parser/parse_clause.c:2720
+#: parser/parse_clause.c:2762 parser/parse_clause.c:2768
 #, c-format
 msgid "cannot copy window \"%s\" because it has a frame clause"
 msgstr "ne peut pas copier la fenêtre « %s » car il dispose d'une clause de portée"
 
-#: parser/parse_clause.c:2722
+#: parser/parse_clause.c:2770
 #, c-format
 msgid "Omit the parentheses in this OVER clause."
 msgstr "Omettre les parenthèses dans cette clause OVER."
 
-#: parser/parse_clause.c:2742
+#: parser/parse_clause.c:2790
 #, c-format
 msgid "RANGE with offset PRECEDING/FOLLOWING requires exactly one ORDER BY column"
 msgstr "RANGE avec offset PRECEDING/FOLLOWING nécessite exactement une colonne ORDER BY"
 
-#: parser/parse_clause.c:2765
+#: parser/parse_clause.c:2813
 #, c-format
 msgid "GROUPS mode requires an ORDER BY clause"
 msgstr "le mode GROUPS nécessite une clause ORDER BY"
 
-#: parser/parse_clause.c:2835
+#: parser/parse_clause.c:2883
 #, c-format
 msgid "in an aggregate with DISTINCT, ORDER BY expressions must appear in argument list"
 msgstr ""
 "dans un agrégat avec DISTINCT, les expressions ORDER BY doivent apparaître\n"
 "dans la liste d'argument"
 
-#: parser/parse_clause.c:2836
+#: parser/parse_clause.c:2884
 #, c-format
 msgid "for SELECT DISTINCT, ORDER BY expressions must appear in select list"
 msgstr ""
 "pour SELECT DISTINCT, ORDER BY, les expressions doivent apparaître dans la\n"
 "liste SELECT"
 
-#: parser/parse_clause.c:2868
+#: parser/parse_clause.c:2916
 #, c-format
 msgid "an aggregate with DISTINCT must have at least one argument"
 msgstr "un agrégat avec DISTINCT doit avoir au moins un argument"
 
-#: parser/parse_clause.c:2869
+#: parser/parse_clause.c:2917
 #, c-format
 msgid "SELECT DISTINCT must have at least one column"
 msgstr "SELECT DISTINCT doit avoir au moins une colonne"
 
-#: parser/parse_clause.c:2935 parser/parse_clause.c:2967
+#: parser/parse_clause.c:2983 parser/parse_clause.c:3015
 #, c-format
 msgid "SELECT DISTINCT ON expressions must match initial ORDER BY expressions"
 msgstr "les expressions SELECT DISTINCT ON doivent correspondre aux expressions ORDER BY initiales"
 
-#: parser/parse_clause.c:3045
+#: parser/parse_clause.c:3093
 #, c-format
 msgid "ASC/DESC is not allowed in ON CONFLICT clause"
 msgstr "ASC/DESC n'est pas autorisé avec la clause ON CONFLICT"
 
-#: parser/parse_clause.c:3051
+#: parser/parse_clause.c:3099
 #, c-format
 msgid "NULLS FIRST/LAST is not allowed in ON CONFLICT clause"
 msgstr "NULLS FIRST/LAST n'est pas autorisé avec la clause ON CONFLICT"
 
-#: parser/parse_clause.c:3130
+#: parser/parse_clause.c:3178
 #, c-format
 msgid "ON CONFLICT DO UPDATE requires inference specification or constraint name"
 msgstr "ON CONFLICT DO UPDATE requiert une spécification d'inférence ou un nom de contrainte"
 
-#: parser/parse_clause.c:3131
+#: parser/parse_clause.c:3179
 #, c-format
 msgid "For example, ON CONFLICT (column_name)."
 msgstr "Par exemple, ON CONFLICT (nom_colonne)"
 
-#: parser/parse_clause.c:3142
+#: parser/parse_clause.c:3190
 #, c-format
 msgid "ON CONFLICT is not supported with system catalog tables"
 msgstr "ON CONFLICT n'est pas supporté avec les catalogues systèmes"
 
-#: parser/parse_clause.c:3150
+#: parser/parse_clause.c:3198
 #, c-format
 msgid "ON CONFLICT is not supported on table \"%s\" used as a catalog table"
 msgstr "ON CONFLICT n'est pas supporté sur la table « %s » utilisée comme une table catalogue"
 
-#: parser/parse_clause.c:3293
+#: parser/parse_clause.c:3341
 #, c-format
 msgid "operator %s is not a valid ordering operator"
 msgstr "l'opérateur %s n'est pas un opérateur de tri valide"
 
-#: parser/parse_clause.c:3295
+#: parser/parse_clause.c:3343
 #, c-format
 msgid "Ordering operators must be \"<\" or \">\" members of btree operator families."
 msgstr ""
 "Les opérateurs de tri doivent être les membres « < » ou « > » des familles\n"
 "d'opérateurs btree."
 
-#: parser/parse_clause.c:3606
+#: parser/parse_clause.c:3654
 #, c-format
 msgid "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s"
 msgstr "RANGE avec offset PRECEDING/FOLLOWING n'est pas supporté pour le type de collone %s"
 
-#: parser/parse_clause.c:3612
+#: parser/parse_clause.c:3660
 #, c-format
 msgid "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s and offset type %s"
 msgstr "RANGE avec offset PRECEDING/FOLLOWING n'est pas supporté pour le type de colonne %s et le type d'ossfet %s"
 
-#: parser/parse_clause.c:3615
+#: parser/parse_clause.c:3663
 #, c-format
 msgid "Cast the offset value to an appropriate type."
 msgstr "Transtypez la valeur d'offset vers un type approprié."
 
-#: parser/parse_clause.c:3620
+#: parser/parse_clause.c:3668
 #, c-format
 msgid "RANGE with offset PRECEDING/FOLLOWING has multiple interpretations for column type %s and offset type %s"
 msgstr "RANGE avec offset PRECEDING/FOLLOWING a de multiples interprétations pour le type de colonne %s et le type d'offset %s"
 
-#: parser/parse_clause.c:3623
+#: parser/parse_clause.c:3671
 #, c-format
 msgid "Cast the offset value to the exact intended type."
 msgstr "Transtypez la valeur d'offset vers exactement le type attendu."
 
-#: parser/parse_coerce.c:1022 parser/parse_coerce.c:1060 parser/parse_coerce.c:1078 parser/parse_coerce.c:1093 parser/parse_expr.c:2235 parser/parse_expr.c:2823 parser/parse_target.c:962
+#: parser/parse_coerce.c:1024 parser/parse_coerce.c:1062 parser/parse_coerce.c:1080 parser/parse_coerce.c:1095 parser/parse_expr.c:2241 parser/parse_expr.c:2819 parser/parse_target.c:967
 #, c-format
 msgid "cannot cast type %s to %s"
 msgstr "ne peut pas convertir le type %s en %s"
 
-#: parser/parse_coerce.c:1063
+#: parser/parse_coerce.c:1065
 #, c-format
 msgid "Input has too few columns."
 msgstr "L'entrée n'a pas assez de colonnes."
 
-#: parser/parse_coerce.c:1081
+#: parser/parse_coerce.c:1083
 #, c-format
 msgid "Cannot cast type %s to %s in column %d."
 msgstr "Ne peut pas convertir le type %s en %s dans la colonne %d."
 
-#: parser/parse_coerce.c:1096
+#: parser/parse_coerce.c:1098
 #, c-format
 msgid "Input has too many columns."
 msgstr "L'entrée a trop de colonnes."
 
 #. translator: first %s is name of a SQL construct, eg WHERE
 #. translator: first %s is name of a SQL construct, eg LIMIT
-#: parser/parse_coerce.c:1151 parser/parse_coerce.c:1199
+#: parser/parse_coerce.c:1153 parser/parse_coerce.c:1201
 #, c-format
 msgid "argument of %s must be type %s, not type %s"
 msgstr "l'argument de %s doit être de type %s, et non du type %s"
 
 #. translator: %s is name of a SQL construct, eg WHERE
 #. translator: %s is name of a SQL construct, eg LIMIT
-#: parser/parse_coerce.c:1162 parser/parse_coerce.c:1211
+#: parser/parse_coerce.c:1164 parser/parse_coerce.c:1213
 #, c-format
 msgid "argument of %s must not return a set"
 msgstr "l'argument de %s ne doit pas renvoyer un ensemble"
 
 #. translator: first %s is name of a SQL construct, eg CASE
-#: parser/parse_coerce.c:1351
+#: parser/parse_coerce.c:1353
 #, c-format
 msgid "%s types %s and %s cannot be matched"
 msgstr "les %s types %s et %s ne peuvent pas correspondre"
 
+#: parser/parse_coerce.c:1465
+#, c-format
+msgid "argument types %s and %s cannot be matched"
+msgstr "les types d'argument %s et %s ne se correspondent pas"
+
 #. translator: first %s is name of a SQL construct, eg CASE
-#: parser/parse_coerce.c:1418
+#: parser/parse_coerce.c:1517
 #, c-format
 msgid "%s could not convert type %s to %s"
 msgstr "%s n'a pas pu convertir le type %s en %s"
 
-#: parser/parse_coerce.c:1720
+#: parser/parse_coerce.c:1934
 #, c-format
 msgid "arguments declared \"anyelement\" are not all alike"
 msgstr "les arguments déclarés « anyelement » ne sont pas tous identiques"
 
-#: parser/parse_coerce.c:1740
+#: parser/parse_coerce.c:1954
 #, c-format
 msgid "arguments declared \"anyarray\" are not all alike"
 msgstr "les arguments déclarés « anyarray » ne sont pas tous identiques"
 
-#: parser/parse_coerce.c:1760
+#: parser/parse_coerce.c:1974
 #, c-format
 msgid "arguments declared \"anyrange\" are not all alike"
 msgstr "les arguments déclarés « anyrange » ne sont pas tous identiques"
 
-#: parser/parse_coerce.c:1789 parser/parse_coerce.c:2004 parser/parse_coerce.c:2038
+#: parser/parse_coerce.c:2008 parser/parse_coerce.c:2088 utils/fmgr/funcapi.c:487
 #, c-format
 msgid "argument declared %s is not an array but type %s"
 msgstr "l'argument déclaré %s n'est pas un tableau mais est du type %s"
 
-#: parser/parse_coerce.c:1805 parser/parse_coerce.c:1844
-#, c-format
-msgid "argument declared %s is not consistent with argument declared %s"
-msgstr "l'argument déclaré %s n'est pas cohérent avec l'argument déclaré %s"
+#: parser/parse_coerce.c:2029
+#, fuzzy, c-format
+#| msgid "arguments declared \"anyrange\" are not all alike"
+msgid "arguments declared \"anycompatiblerange\" are not all alike"
+msgstr "les arguments déclarés « anyrange » ne sont pas tous identiques"
 
-#: parser/parse_coerce.c:1827 parser/parse_coerce.c:2051
+#: parser/parse_coerce.c:2041 parser/parse_coerce.c:2122 utils/fmgr/funcapi.c:501
 #, c-format
 msgid "argument declared %s is not a range type but type %s"
 msgstr "l'argument déclaré %s n'est pas un type d'intervalle mais est du type %s"
 
-#: parser/parse_coerce.c:1865
+#: parser/parse_coerce.c:2079
+#, c-format
+msgid "cannot determine element type of \"anyarray\" argument"
+msgstr "ne peut pas déterminer le type d'élément d'un argument « anyarray »"
+
+#: parser/parse_coerce.c:2105 parser/parse_coerce.c:2139
+#, c-format
+msgid "argument declared %s is not consistent with argument declared %s"
+msgstr "l'argument déclaré %s n'est pas cohérent avec l'argument déclaré %s"
+
+#: parser/parse_coerce.c:2163
 #, c-format
 msgid "could not determine polymorphic type because input has type %s"
 msgstr ""
 "n'a pas pu déterminer le type polymorphique car l'entrée dispose\n"
 "du type %s"
 
-#: parser/parse_coerce.c:1876
+#: parser/parse_coerce.c:2177
 #, c-format
 msgid "type matched to anynonarray is an array type: %s"
 msgstr "le type déclaré anynonarray est un type tableau : %s"
 
-#: parser/parse_coerce.c:1886
+#: parser/parse_coerce.c:2187
 #, c-format
 msgid "type matched to anyenum is not an enum type: %s"
 msgstr "le type déclaré anyenum n'est pas un type enum : %s"
 
-#: parser/parse_coerce.c:1926 parser/parse_coerce.c:1956
+#: parser/parse_coerce.c:2218 parser/parse_coerce.c:2267 parser/parse_coerce.c:2329 parser/parse_coerce.c:2365
 #, c-format
-msgid "could not find range type for data type %s"
-msgstr "n'a pas pu trouver le type range pour le type de données %s"
+msgid "could not determine polymorphic type %s because input has type %s"
+msgstr "n'a pas pu déterminer le type polymorphique %s car l'entrée dispose du type %s"
 
-#: parser/parse_collate.c:228 parser/parse_collate.c:475 parser/parse_collate.c:981
-#, c-format
-msgid "collation mismatch between implicit collations \"%s\" and \"%s\""
-msgstr "le collationnement ne correspond pas aux collationnements implicites « %s » et « %s »"
+#: parser/parse_coerce.c:2228
+#, fuzzy, c-format
+#| msgid "Attribute \"%s\" of type %s does not match corresponding attribute of type %s."
+msgid "anycompatiblerange type %s does not match anycompatible type %s"
+msgstr "L'attribut « %s » du type %s ne correspond pas à l'attribut correspondant de type %s."
 
-#: parser/parse_collate.c:231 parser/parse_collate.c:478 parser/parse_collate.c:984
+#: parser/parse_coerce.c:2242
+#, fuzzy, c-format
+#| msgid "type matched to anynonarray is an array type: %s"
+msgid "type matched to anycompatiblenonarray is an array type: %s"
+msgstr "le type déclaré anynonarray est un type tableau : %s"
+
+#: parser/parse_coerce.c:2433
+#, c-format
+msgid "A result of type %s requires at least one input of type %s."
+msgstr "Un résultat de type %s nécessite au moins une entrée de type %s."
+
+#: parser/parse_coerce.c:2445
+#, c-format
+msgid "A result of type %s requires at least one input of type anyelement, anyarray, anynonarray, anyenum, or anyrange."
+msgstr ""
+
+#: parser/parse_coerce.c:2457
+#, c-format
+msgid "A result of type %s requires at least one input of type anycompatible, anycompatiblearray, anycompatiblenonarray, or anycompatiblerange."
+msgstr ""
+
+#: parser/parse_coerce.c:2487
+msgid "A result of type internal requires at least one input of type internal."
+msgstr ""
+
+#: parser/parse_collate.c:228 parser/parse_collate.c:475 parser/parse_collate.c:981
+#, c-format
+msgid "collation mismatch between implicit collations \"%s\" and \"%s\""
+msgstr "le collationnement ne correspond pas aux collationnements implicites « %s » et « %s »"
+
+#: parser/parse_collate.c:231 parser/parse_collate.c:478 parser/parse_collate.c:984
 #, c-format
 msgid "You can choose the collation by applying the COLLATE clause to one or both expressions."
 msgstr "Vous pouvez choisir le collationnement en appliquant la clause COLLATE à une ou aux deux expressions."
@@ -15374,7 +15754,7 @@ msgstr "la référence récursive à la requête « %s » ne doit pas apparaîtr
 msgid "DEFAULT is not allowed in this context"
 msgstr "DEFAULT interdit dans ce contexte"
 
-#: parser/parse_expr.c:402 parser/parse_relation.c:3352 parser/parse_relation.c:3372
+#: parser/parse_expr.c:402 parser/parse_relation.c:3506 parser/parse_relation.c:3526
 #, c-format
 msgid "column %s.%s does not exist"
 msgstr "la colonne %s.%s n'existe pas"
@@ -15407,315 +15787,315 @@ msgstr "ne peut pas utiliser une référence de colonne dans l'expression par d
 msgid "cannot use column reference in partition bound expression"
 msgstr "ne peut pas utiliser une référence de colonne dans une expression de limite de parition"
 
-#: parser/parse_expr.c:844 parser/parse_relation.c:692 parser/parse_relation.c:803 parser/parse_target.c:1200
+#: parser/parse_expr.c:850 parser/parse_relation.c:799 parser/parse_relation.c:881 parser/parse_target.c:1207
 #, c-format
 msgid "column reference \"%s\" is ambiguous"
 msgstr "la référence à la colonne « %s » est ambigu"
 
-#: parser/parse_expr.c:900 parser/parse_param.c:110 parser/parse_param.c:142 parser/parse_param.c:199 parser/parse_param.c:298
+#: parser/parse_expr.c:906 parser/parse_param.c:110 parser/parse_param.c:142 parser/parse_param.c:199 parser/parse_param.c:298
 #, c-format
 msgid "there is no parameter $%d"
 msgstr "Il n'y a pas de paramètre $%d"
 
-#: parser/parse_expr.c:1143
+#: parser/parse_expr.c:1149
 #, c-format
 msgid "NULLIF requires = operator to yield boolean"
 msgstr "NULLIF requiert l'opérateur = pour comparer des booleéns"
 
 #. translator: %s is name of a SQL construct, eg NULLIF
-#: parser/parse_expr.c:1149 parser/parse_expr.c:3139
+#: parser/parse_expr.c:1155 parser/parse_expr.c:3135
 #, c-format
 msgid "%s must not return a set"
 msgstr "%s ne doit pas renvoyer un ensemble"
 
-#: parser/parse_expr.c:1597 parser/parse_expr.c:1629
+#: parser/parse_expr.c:1603 parser/parse_expr.c:1635
 #, c-format
 msgid "number of columns does not match number of values"
 msgstr "le nombre de colonnes ne correspond pas au nombre de valeurs"
 
-#: parser/parse_expr.c:1643
+#: parser/parse_expr.c:1649
 #, c-format
 msgid "source for a multiple-column UPDATE item must be a sub-SELECT or ROW() expression"
 msgstr "la source d'un élément UPDATE multi-colonnes doit être un sous-SELECT ou une expression ROW()"
 
 #. translator: %s is name of a SQL construct, eg GROUP BY
-#: parser/parse_expr.c:1837 parser/parse_expr.c:2326 parser/parse_func.c:2555
+#: parser/parse_expr.c:1843 parser/parse_expr.c:2330 parser/parse_func.c:2540
 #, c-format
 msgid "set-returning functions are not allowed in %s"
 msgstr "les fonctions renvoyant un ensemble ne sont pas autorisés dans %s"
 
-#: parser/parse_expr.c:1898
+#: parser/parse_expr.c:1904
 msgid "cannot use subquery in check constraint"
 msgstr "ne peut pas utiliser une sous-requête dans la contrainte de vérification"
 
-#: parser/parse_expr.c:1902
+#: parser/parse_expr.c:1908
 msgid "cannot use subquery in DEFAULT expression"
 msgstr "ne peut pas utiliser de sous-requête dans une expression DEFAULT"
 
-#: parser/parse_expr.c:1905
+#: parser/parse_expr.c:1911
 msgid "cannot use subquery in index expression"
 msgstr "ne peut pas utiliser la sous-requête dans l'expression de l'index"
 
-#: parser/parse_expr.c:1908
+#: parser/parse_expr.c:1914
 msgid "cannot use subquery in index predicate"
 msgstr "ne peut pas utiliser une sous-requête dans un prédicat d'index"
 
-#: parser/parse_expr.c:1911
+#: parser/parse_expr.c:1917
 msgid "cannot use subquery in transform expression"
 msgstr "ne peut pas utiliser une sous-requête dans l'expression de transformation"
 
-#: parser/parse_expr.c:1914
+#: parser/parse_expr.c:1920
 msgid "cannot use subquery in EXECUTE parameter"
 msgstr "ne peut pas utiliser les sous-requêtes dans le paramètre EXECUTE"
 
-#: parser/parse_expr.c:1917
+#: parser/parse_expr.c:1923
 msgid "cannot use subquery in trigger WHEN condition"
 msgstr "ne peut pas utiliser une sous-requête dans la condition WHEN d'un trigger"
 
-#: parser/parse_expr.c:1920
+#: parser/parse_expr.c:1926
 msgid "cannot use subquery in partition bound"
 msgstr "ne peut pas utiliser de sous-requête dans une limite de partition"
 
-#: parser/parse_expr.c:1923
+#: parser/parse_expr.c:1929
 msgid "cannot use subquery in partition key expression"
 msgstr "ne peut pas utiliser de sous-requête dans l'expression de clé de partitionnement"
 
-#: parser/parse_expr.c:1926
+#: parser/parse_expr.c:1932
 msgid "cannot use subquery in CALL argument"
 msgstr "ne peut pas utiliser de sous-requête dans l'argument CALL"
 
-#: parser/parse_expr.c:1929
+#: parser/parse_expr.c:1935
 msgid "cannot use subquery in COPY FROM WHERE condition"
 msgstr "ne peut pas utiliser une sous-requête dans la condition WHERE d'un COPY FROM"
 
-#: parser/parse_expr.c:1932
+#: parser/parse_expr.c:1938
 msgid "cannot use subquery in column generation expression"
 msgstr "ne peut pas utiliser une sous-requête dans l'expression de génération d'une colonne"
 
-#: parser/parse_expr.c:1985
+#: parser/parse_expr.c:1991
 #, c-format
 msgid "subquery must return only one column"
 msgstr "la sous-requête doit renvoyer une seule colonne"
 
-#: parser/parse_expr.c:2069
+#: parser/parse_expr.c:2075
 #, c-format
 msgid "subquery has too many columns"
 msgstr "la sous-requête a trop de colonnes"
 
-#: parser/parse_expr.c:2074
+#: parser/parse_expr.c:2080
 #, c-format
 msgid "subquery has too few columns"
 msgstr "la sous-requête n'a pas assez de colonnes"
 
-#: parser/parse_expr.c:2175
+#: parser/parse_expr.c:2181
 #, c-format
 msgid "cannot determine type of empty array"
 msgstr "ne peut pas déterminer le type d'un tableau vide"
 
-#: parser/parse_expr.c:2176
+#: parser/parse_expr.c:2182
 #, c-format
 msgid "Explicitly cast to the desired type, for example ARRAY[]::integer[]."
 msgstr "Convertit explicitement vers le type désiré, par exemple ARRAY[]::integer[]."
 
-#: parser/parse_expr.c:2190
+#: parser/parse_expr.c:2196
 #, c-format
 msgid "could not find element type for data type %s"
 msgstr "n'a pas pu trouver le type d'élément pour le type de données %s"
 
-#: parser/parse_expr.c:2477
+#: parser/parse_expr.c:2481
 #, c-format
 msgid "unnamed XML attribute value must be a column reference"
 msgstr "la valeur d'un attribut XML sans nom doit être une référence de colonne"
 
-#: parser/parse_expr.c:2478
+#: parser/parse_expr.c:2482
 #, c-format
 msgid "unnamed XML element value must be a column reference"
 msgstr "la valeur d'un élément XML sans nom doit être une référence de colonne"
 
-#: parser/parse_expr.c:2493
+#: parser/parse_expr.c:2497
 #, c-format
 msgid "XML attribute name \"%s\" appears more than once"
 msgstr "le nom de l'attribut XML « %s » apparaît plus d'une fois"
 
-#: parser/parse_expr.c:2600
+#: parser/parse_expr.c:2604
 #, c-format
 msgid "cannot cast XMLSERIALIZE result to %s"
 msgstr "ne peut pas convertir le résultat XMLSERIALIZE en %s"
 
-#: parser/parse_expr.c:2896 parser/parse_expr.c:3092
+#: parser/parse_expr.c:2892 parser/parse_expr.c:3088
 #, c-format
 msgid "unequal number of entries in row expressions"
 msgstr "nombre différent d'entrées dans les expressions de ligne"
 
-#: parser/parse_expr.c:2906
+#: parser/parse_expr.c:2902
 #, c-format
 msgid "cannot compare rows of zero length"
 msgstr "n'a pas pu comparer des lignes de taille zéro"
 
-#: parser/parse_expr.c:2931
+#: parser/parse_expr.c:2927
 #, c-format
 msgid "row comparison operator must yield type boolean, not type %s"
 msgstr ""
 "l'opérateur de comparaison de ligne doit renvoyer le type booléen, et non le\n"
 "type %s"
 
-#: parser/parse_expr.c:2938
+#: parser/parse_expr.c:2934
 #, c-format
 msgid "row comparison operator must not return a set"
 msgstr "l'opérateur de comparaison de ligne ne doit pas renvoyer un ensemble"
 
-#: parser/parse_expr.c:2997 parser/parse_expr.c:3038
+#: parser/parse_expr.c:2993 parser/parse_expr.c:3034
 #, c-format
 msgid "could not determine interpretation of row comparison operator %s"
 msgstr "n'a pas pu déterminer l'interprétation de l'opérateur de comparaison de ligne %s"
 
-#: parser/parse_expr.c:2999
+#: parser/parse_expr.c:2995
 #, c-format
 msgid "Row comparison operators must be associated with btree operator families."
 msgstr ""
 "Les opérateurs de comparaison de lignes doivent être associés à des familles\n"
 "d'opérateurs btree."
 
-#: parser/parse_expr.c:3040
+#: parser/parse_expr.c:3036
 #, c-format
 msgid "There are multiple equally-plausible candidates."
 msgstr "Il existe de nombreus candidats également plausibles."
 
-#: parser/parse_expr.c:3133
+#: parser/parse_expr.c:3129
 #, c-format
 msgid "IS DISTINCT FROM requires = operator to yield boolean"
 msgstr "IS DISTINCT FROM requiert l'opérateur = pour comparer des booléens"
 
-#: parser/parse_expr.c:3452 parser/parse_expr.c:3470
+#: parser/parse_expr.c:3448 parser/parse_expr.c:3466
 #, c-format
 msgid "operator precedence change: %s is now lower precedence than %s"
 msgstr "la précédence d'opérateur change : %s a maintenant une précédence inférieure à %s"
 
-#: parser/parse_func.c:195
+#: parser/parse_func.c:191
 #, c-format
 msgid "argument name \"%s\" used more than once"
 msgstr "nom « %s » de l'argument spécifié plus d'une fois"
 
-#: parser/parse_func.c:206
+#: parser/parse_func.c:202
 #, c-format
 msgid "positional argument cannot follow named argument"
 msgstr "l'argument positionné ne doit pas suivre l'argument nommé"
 
-#: parser/parse_func.c:288 parser/parse_func.c:2258
+#: parser/parse_func.c:284 parser/parse_func.c:2243
 #, c-format
 msgid "%s is not a procedure"
 msgstr "%s n'est pas une procédure"
 
-#: parser/parse_func.c:292
+#: parser/parse_func.c:288
 #, c-format
 msgid "To call a function, use SELECT."
 msgstr "Pour appeler une fonction, utilisez SELECT."
 
-#: parser/parse_func.c:298
+#: parser/parse_func.c:294
 #, c-format
 msgid "%s is a procedure"
 msgstr "%s est une procédure"
 
-#: parser/parse_func.c:302
+#: parser/parse_func.c:298
 #, c-format
 msgid "To call a procedure, use CALL."
 msgstr "Pour appeler une procédure, utilisez CALL."
 
-#: parser/parse_func.c:316
+#: parser/parse_func.c:312
 #, c-format
 msgid "%s(*) specified, but %s is not an aggregate function"
 msgstr "%s(*) spécifié, mais %s n'est pas une fonction d'agrégat"
 
-#: parser/parse_func.c:323
+#: parser/parse_func.c:319
 #, c-format
 msgid "DISTINCT specified, but %s is not an aggregate function"
 msgstr "DISTINCT spécifié mais %s n'est pas une fonction d'agrégat"
 
-#: parser/parse_func.c:329
+#: parser/parse_func.c:325
 #, c-format
 msgid "WITHIN GROUP specified, but %s is not an aggregate function"
 msgstr "WITHIN GROUP spécifié, mais %s n'est pas une fonction d'agrégat"
 
-#: parser/parse_func.c:335
+#: parser/parse_func.c:331
 #, c-format
 msgid "ORDER BY specified, but %s is not an aggregate function"
 msgstr "ORDER BY spécifié, mais %s n'est pas une fonction d'agrégat"
 
-#: parser/parse_func.c:341
+#: parser/parse_func.c:337
 #, c-format
 msgid "FILTER specified, but %s is not an aggregate function"
 msgstr "FILTER spécifié mais %s n'est pas une fonction d'agrégat"
 
-#: parser/parse_func.c:347
+#: parser/parse_func.c:343
 #, c-format
 msgid "OVER specified, but %s is not a window function nor an aggregate function"
 msgstr "OVER spécifié, mais %s n'est pas une fonction window ou une fonction d'agrégat"
 
-#: parser/parse_func.c:385
+#: parser/parse_func.c:381
 #, c-format
 msgid "WITHIN GROUP is required for ordered-set aggregate %s"
 msgstr "WITHIN GROUP est requis pour l'agrégat à ensemble ordonné %s"
 
-#: parser/parse_func.c:391
+#: parser/parse_func.c:387
 #, c-format
 msgid "OVER is not supported for ordered-set aggregate %s"
 msgstr "OVER n'est pas supporté pour l'agrégat %s à ensemble trié"
 
-#: parser/parse_func.c:422 parser/parse_func.c:451
+#: parser/parse_func.c:418 parser/parse_func.c:447
 #, c-format
 msgid "There is an ordered-set aggregate %s, but it requires %d direct arguments, not %d."
 msgstr "Il existe un agrégat par ensemble trié nommé %s, mais il requiert au moins %d arguments directs, pas %d."
 
-#: parser/parse_func.c:476
+#: parser/parse_func.c:472
 #, c-format
 msgid "To use the hypothetical-set aggregate %s, the number of hypothetical direct arguments (here %d) must match the number of ordering columns (here %d)."
 msgstr "Pour utiliser l'agrégat à ensemble hypothétique %s, le nombre d'arguments directs hypothétiques (ici %d) doit correspondre au nombre de colonnes de tri (ici %d)."
 
-#: parser/parse_func.c:490
+#: parser/parse_func.c:486
 #, c-format
 msgid "There is an ordered-set aggregate %s, but it requires at least %d direct arguments."
 msgstr "Il existe un agrégat par ensemble trié nommé %s, mais il requiert au moins %d arguments directs."
 
-#: parser/parse_func.c:509
+#: parser/parse_func.c:505
 #, c-format
 msgid "%s is not an ordered-set aggregate, so it cannot have WITHIN GROUP"
 msgstr "%s n'est pas un agrégat par ensemble trié, donc il ne peut pas avoir WITHIN GROUP"
 
-#: parser/parse_func.c:522
+#: parser/parse_func.c:518
 #, c-format
 msgid "window function %s requires an OVER clause"
 msgstr "la fonction de fenêtrage %s nécessite une clause OVER"
 
-#: parser/parse_func.c:529
+#: parser/parse_func.c:525
 #, c-format
 msgid "window function %s cannot have WITHIN GROUP"
 msgstr "la fonction de fenêtrage %s ne peut avoir WITHIN GROUP"
 
-#: parser/parse_func.c:558
+#: parser/parse_func.c:554
 #, c-format
 msgid "procedure %s is not unique"
 msgstr "la procédure %s n'est pas unique"
 
-#: parser/parse_func.c:561
+#: parser/parse_func.c:557
 #, c-format
 msgid "Could not choose a best candidate procedure. You might need to add explicit type casts."
 msgstr ""
 "N'a pas pu choisir un meilleur candidat pour la procédure. Vous pourriez avoir besoin\n"
 "d'ajouter une conversion de type explicite."
 
-#: parser/parse_func.c:567
+#: parser/parse_func.c:563
 #, c-format
 msgid "function %s is not unique"
 msgstr "la fonction %s n'est pas unique"
 
-#: parser/parse_func.c:570
+#: parser/parse_func.c:566
 #, c-format
 msgid "Could not choose a best candidate function. You might need to add explicit type casts."
 msgstr ""
 "N'a pas pu choisir un meilleur candidat dans les fonctions. Vous pourriez\n"
 "avoir besoin d'ajouter des conversions explicites de type."
 
-#: parser/parse_func.c:609
+#: parser/parse_func.c:605
 #, c-format
 msgid "No aggregate function matches the given name and argument types. Perhaps you misplaced ORDER BY; ORDER BY must appear after all regular arguments of the aggregate."
 msgstr ""
@@ -15723,235 +16103,235 @@ msgstr ""
 "Peut-être avez-vous mal placé la clause ORDER BY.\n"
 "Cette dernière doit apparaître après tous les arguments standards de l'agrégat."
 
-#: parser/parse_func.c:617 parser/parse_func.c:2301
+#: parser/parse_func.c:613 parser/parse_func.c:2286
 #, c-format
 msgid "procedure %s does not exist"
 msgstr "la procédure %s n'existe pas"
 
-#: parser/parse_func.c:620
+#: parser/parse_func.c:616
 #, c-format
 msgid "No procedure matches the given name and argument types. You might need to add explicit type casts."
 msgstr ""
 "Aucune procédure ne correspond au nom donné et aux types d'arguments.\n"
 "Vous pourriez avoir besoin d'ajouter des conversions de type explicites."
 
-#: parser/parse_func.c:629
+#: parser/parse_func.c:625
 #, c-format
 msgid "No function matches the given name and argument types. You might need to add explicit type casts."
 msgstr ""
 "Aucune fonction ne correspond au nom donné et aux types d'arguments.\n"
 "Vous devez ajouter des conversions explicites de type."
 
-#: parser/parse_func.c:731
+#: parser/parse_func.c:727
 #, c-format
 msgid "VARIADIC argument must be an array"
 msgstr "l'argument VARIADIC doit être un tableau"
 
-#: parser/parse_func.c:783 parser/parse_func.c:847
+#: parser/parse_func.c:779 parser/parse_func.c:843
 #, c-format
 msgid "%s(*) must be used to call a parameterless aggregate function"
 msgstr "%s(*) doit être utilisé pour appeler une fonction d'agrégat sans paramètre"
 
-#: parser/parse_func.c:790
+#: parser/parse_func.c:786
 #, c-format
 msgid "aggregates cannot return sets"
 msgstr "les agrégats ne peuvent pas renvoyer des ensembles"
 
-#: parser/parse_func.c:805
+#: parser/parse_func.c:801
 #, c-format
 msgid "aggregates cannot use named arguments"
 msgstr "les agrégats ne peuvent pas utiliser des arguments nommés"
 
-#: parser/parse_func.c:837
+#: parser/parse_func.c:833
 #, c-format
 msgid "DISTINCT is not implemented for window functions"
 msgstr "DISTINCT n'est pas implémenté pour des fonctions window"
 
-#: parser/parse_func.c:857
+#: parser/parse_func.c:853
 #, c-format
 msgid "aggregate ORDER BY is not implemented for window functions"
 msgstr "l'agrégat ORDER BY n'est pas implémenté pour les fonctions de fenêtrage"
 
-#: parser/parse_func.c:866
+#: parser/parse_func.c:862
 #, c-format
 msgid "FILTER is not implemented for non-aggregate window functions"
 msgstr "FILTER n'est pas implémenté pour des fonctions de fenêtrage non agrégats"
 
-#: parser/parse_func.c:875
+#: parser/parse_func.c:871
 #, c-format
 msgid "window function calls cannot contain set-returning function calls"
 msgstr ""
 "les appels à la fonction de fenêtrage ne peuvent pas contenir des appels à des\n"
 "fonctions renvoyant des ensembles de lignes"
 
-#: parser/parse_func.c:883
+#: parser/parse_func.c:879
 #, c-format
 msgid "window functions cannot return sets"
 msgstr "les fonctions window ne peuvent pas renvoyer des ensembles"
 
-#: parser/parse_func.c:2139 parser/parse_func.c:2330
+#: parser/parse_func.c:2124 parser/parse_func.c:2315
 #, c-format
 msgid "could not find a function named \"%s\""
 msgstr "n'a pas pu trouver une fonction nommée « %s »"
 
-#: parser/parse_func.c:2153 parser/parse_func.c:2348
+#: parser/parse_func.c:2138 parser/parse_func.c:2333
 #, c-format
 msgid "function name \"%s\" is not unique"
 msgstr "le nom de la fonction « %s » n'est pas unique"
 
-#: parser/parse_func.c:2155 parser/parse_func.c:2350
+#: parser/parse_func.c:2140 parser/parse_func.c:2335
 #, c-format
 msgid "Specify the argument list to select the function unambiguously."
 msgstr "Indiquez la liste d'arguments pour sélectionner la fonction sans ambiguïté."
 
-#: parser/parse_func.c:2199
+#: parser/parse_func.c:2184
 #, c-format
 msgid "procedures cannot have more than %d argument"
 msgid_plural "procedures cannot have more than %d arguments"
 msgstr[0] "les procédures ne peuvent avoir plus de %d argument"
 msgstr[1] "les procédures ne peuvent avoir plus de %d arguments"
 
-#: parser/parse_func.c:2248
+#: parser/parse_func.c:2233
 #, c-format
 msgid "%s is not a function"
 msgstr "%s n'est pas une fonction"
 
-#: parser/parse_func.c:2268
+#: parser/parse_func.c:2253
 #, c-format
 msgid "function %s is not an aggregate"
 msgstr "la fonction %s n'est pas un agrégat"
 
-#: parser/parse_func.c:2296
+#: parser/parse_func.c:2281
 #, c-format
 msgid "could not find a procedure named \"%s\""
 msgstr "n'a pas pu trouver une procédure nommée « %s »"
 
-#: parser/parse_func.c:2310
+#: parser/parse_func.c:2295
 #, c-format
 msgid "could not find an aggregate named \"%s\""
 msgstr "n'a pas pu trouver un aggrégat nommé « %s »"
 
-#: parser/parse_func.c:2315
+#: parser/parse_func.c:2300
 #, c-format
 msgid "aggregate %s(*) does not exist"
 msgstr "l'agrégat %s(*) n'existe pas"
 
-#: parser/parse_func.c:2320
+#: parser/parse_func.c:2305
 #, c-format
 msgid "aggregate %s does not exist"
 msgstr "l'agrégat %s n'existe pas"
 
-#: parser/parse_func.c:2355
+#: parser/parse_func.c:2340
 #, c-format
 msgid "procedure name \"%s\" is not unique"
 msgstr "le nom de la procédure « %s » n'est pas unique"
 
-#: parser/parse_func.c:2357
+#: parser/parse_func.c:2342
 #, c-format
 msgid "Specify the argument list to select the procedure unambiguously."
 msgstr "Définit la liste d'arguments pour sélectionner la procédure sans ambiguïté."
 
-#: parser/parse_func.c:2362
+#: parser/parse_func.c:2347
 #, c-format
 msgid "aggregate name \"%s\" is not unique"
 msgstr "le nom d'agrégat « %s » n'est pas unique"
 
-#: parser/parse_func.c:2364
+#: parser/parse_func.c:2349
 #, c-format
 msgid "Specify the argument list to select the aggregate unambiguously."
 msgstr "Définit la liste d'arguments pour sélectionner l'agrégat sans ambiguïté."
 
-#: parser/parse_func.c:2369
+#: parser/parse_func.c:2354
 #, c-format
 msgid "routine name \"%s\" is not unique"
 msgstr "le nom de la routine « %s » n'est pas unique"
 
-#: parser/parse_func.c:2371
+#: parser/parse_func.c:2356
 #, c-format
 msgid "Specify the argument list to select the routine unambiguously."
 msgstr "Définit la liste d'arguments pour sélectionner la routine sans ambiguïté."
 
-#: parser/parse_func.c:2426
+#: parser/parse_func.c:2411
 msgid "set-returning functions are not allowed in JOIN conditions"
 msgstr "les fonctions renvoyant un ensemble de lignes ne sont pas autorisées dans les conditions JOIN"
 
-#: parser/parse_func.c:2447
+#: parser/parse_func.c:2432
 msgid "set-returning functions are not allowed in policy expressions"
 msgstr "les fonctions renvoyant plusieurs lignes ne sont pas autorisées dans les expressions de politique"
 
-#: parser/parse_func.c:2463
+#: parser/parse_func.c:2448
 msgid "set-returning functions are not allowed in window definitions"
 msgstr "les fonctions renvoyant plusieurs lignes ne sont pas autorisées dans les définitions de fenêtres"
 
-#: parser/parse_func.c:2501
+#: parser/parse_func.c:2486
 msgid "set-returning functions are not allowed in check constraints"
 msgstr "les fonctions renvoyant plusieurs lignes ne sont pas autorisées dans les contraintes CHECK"
 
-#: parser/parse_func.c:2505
+#: parser/parse_func.c:2490
 msgid "set-returning functions are not allowed in DEFAULT expressions"
 msgstr "les fonctions renvoyant plusieurs lignes ne sont pas autorisées dans les expressions par défaut"
 
-#: parser/parse_func.c:2508
+#: parser/parse_func.c:2493
 msgid "set-returning functions are not allowed in index expressions"
 msgstr "les fonctions renvoyant plusieurs lignes ne sont pas autorisées dans les expressions d'index"
 
-#: parser/parse_func.c:2511
+#: parser/parse_func.c:2496
 msgid "set-returning functions are not allowed in index predicates"
 msgstr "les fonctions renvoyant plusieurs lignes ne sont pas autorisées dans les prédicats d'index"
 
-#: parser/parse_func.c:2514
+#: parser/parse_func.c:2499
 msgid "set-returning functions are not allowed in transform expressions"
 msgstr "les fonctions renvoyant plusieurs lignes ne sont pas autorisées dans les expressions de transformation"
 
-#: parser/parse_func.c:2517
+#: parser/parse_func.c:2502
 msgid "set-returning functions are not allowed in EXECUTE parameters"
 msgstr "les fonctions renvoyant plusieurs lignes ne sont pas autorisées dans les paramètres d'EXECUTE"
 
-#: parser/parse_func.c:2520
+#: parser/parse_func.c:2505
 msgid "set-returning functions are not allowed in trigger WHEN conditions"
 msgstr "les fonctions renvoyant plusieurs lignes ne sont pas autorisées dans les conditions WHEN des triggers"
 
-#: parser/parse_func.c:2523
+#: parser/parse_func.c:2508
 msgid "set-returning functions are not allowed in partition bound"
 msgstr "les fonctions renvoyant un ensemble de lignes ne sont pas autorisées dans les limites de partition"
 
-#: parser/parse_func.c:2526
+#: parser/parse_func.c:2511
 msgid "set-returning functions are not allowed in partition key expressions"
 msgstr "les fonctions renvoyant plusieurs lignes ne sont pas autorisées dans les expressions de clé de partitionnement"
 
-#: parser/parse_func.c:2529
+#: parser/parse_func.c:2514
 msgid "set-returning functions are not allowed in CALL arguments"
 msgstr "les fonctions renvoyant plusieurs lignes ne sont pas autorisées dans les arguments de CALL"
 
-#: parser/parse_func.c:2532
+#: parser/parse_func.c:2517
 msgid "set-returning functions are not allowed in COPY FROM WHERE conditions"
 msgstr "les fonctions renvoyant un ensemble de lignes ne sont pas autorisées dans les conditions WHERE d'un COPY FROM"
 
-#: parser/parse_func.c:2535
+#: parser/parse_func.c:2520
 msgid "set-returning functions are not allowed in column generation expressions"
 msgstr "les fonctions renvoyant un ensemble de lignes ne sont pas autorisées dans les expressions de génération de colonne"
 
-#: parser/parse_node.c:87
+#: parser/parse_node.c:86
 #, c-format
 msgid "target lists can have at most %d entries"
 msgstr "les listes cibles peuvent avoir au plus %d colonnes"
 
-#: parser/parse_node.c:257
+#: parser/parse_node.c:235
 #, c-format
 msgid "cannot subscript type %s because it is not an array"
 msgstr "ne peut pas indicer le type %s car il ne s'agit pas d'un tableau"
 
-#: parser/parse_node.c:362 parser/parse_node.c:399
+#: parser/parse_node.c:340 parser/parse_node.c:377
 #, c-format
 msgid "array subscript must have type integer"
 msgstr "l'indice d'un tableau doit être de type entier"
 
-#: parser/parse_node.c:430
+#: parser/parse_node.c:408
 #, c-format
 msgid "array assignment requires type %s but expression is of type %s"
 msgstr "l'affectation de tableaux requiert le type %s mais l'expression est de type %s"
 
-#: parser/parse_oper.c:125 parser/parse_oper.c:724 utils/adt/regproc.c:520 utils/adt/regproc.c:704
+#: parser/parse_oper.c:125 parser/parse_oper.c:724 utils/adt/regproc.c:521 utils/adt/regproc.c:705
 #, c-format
 msgid "operator does not exist: %s"
 msgstr "l'opérateur n'existe pas : %s"
@@ -16017,607 +16397,644 @@ msgstr "op ANY/ALL (tableau) requiert que l'opérateur ne renvoie pas un ensembl
 msgid "inconsistent types deduced for parameter $%d"
 msgstr "types incohérents déduit pour le paramètre $%d"
 
-#: parser/parse_relation.c:179
+#: parser/parse_relation.c:201
 #, c-format
 msgid "table reference \"%s\" is ambiguous"
 msgstr "la référence à la table « %s » est ambigu"
 
-#: parser/parse_relation.c:223
+#: parser/parse_relation.c:245
 #, c-format
 msgid "table reference %u is ambiguous"
 msgstr "la référence à la table %u est ambigu"
 
-#: parser/parse_relation.c:422
+#: parser/parse_relation.c:444
 #, c-format
 msgid "table name \"%s\" specified more than once"
 msgstr "le nom de la table « %s » est spécifié plus d'une fois"
 
-#: parser/parse_relation.c:449 parser/parse_relation.c:3292
+#: parser/parse_relation.c:473 parser/parse_relation.c:3446
 #, c-format
 msgid "invalid reference to FROM-clause entry for table \"%s\""
 msgstr "référence invalide d'une entrée de la clause FROM pour la table « %s »"
 
-#: parser/parse_relation.c:452 parser/parse_relation.c:3297
+#: parser/parse_relation.c:477 parser/parse_relation.c:3451
 #, c-format
 msgid "There is an entry for table \"%s\", but it cannot be referenced from this part of the query."
 msgstr ""
 "Il existe une entrée pour la table « %s » mais elle ne peut pas être\n"
 "référencée de cette partie de la requête."
 
-#: parser/parse_relation.c:454
+#: parser/parse_relation.c:479
 #, c-format
 msgid "The combining JOIN type must be INNER or LEFT for a LATERAL reference."
 msgstr "Le type JOIN combiné doit être INNER ou LEFT pour une référence LATERAL."
 
-#: parser/parse_relation.c:730
+#: parser/parse_relation.c:690
 #, c-format
 msgid "system column \"%s\" reference in check constraint is invalid"
 msgstr "la référence de la colonne système « %s » dans la contrainte CHECK est invalide"
 
-#: parser/parse_relation.c:741
+#: parser/parse_relation.c:699
 #, c-format
 msgid "cannot use system column \"%s\" in column generation expression"
 msgstr "ne peut pas utiliser la colonne système « %s » dans une expression de génération de colonne"
 
-#: parser/parse_relation.c:1100 parser/parse_relation.c:1404 parser/parse_relation.c:1985
+#: parser/parse_relation.c:1170 parser/parse_relation.c:1620 parser/parse_relation.c:2262
 #, c-format
 msgid "table \"%s\" has %d columns available but %d columns specified"
 msgstr "la table « %s » a %d colonnes disponibles mais %d colonnes spécifiées"
 
-#: parser/parse_relation.c:1187
+#: parser/parse_relation.c:1372
 #, c-format
 msgid "There is a WITH item named \"%s\", but it cannot be referenced from this part of the query."
 msgstr ""
 "Il existe un élément WITH nommé « %s » mais il ne peut pas être\n"
 "référencée de cette partie de la requête."
 
-#: parser/parse_relation.c:1189
+#: parser/parse_relation.c:1374
 #, c-format
 msgid "Use WITH RECURSIVE, or re-order the WITH items to remove forward references."
 msgstr ""
 "Utilisez WITH RECURSIVE ou ré-ordonnez les éléments WITH pour supprimer\n"
 "les références en avant."
 
-#: parser/parse_relation.c:1525
+#: parser/parse_relation.c:1747
 #, c-format
 msgid "a column definition list is only allowed for functions returning \"record\""
 msgstr "une liste de définition de colonnes n'autorisée que pour les fonctions renvoyant un « record »"
 
-#: parser/parse_relation.c:1534
+#: parser/parse_relation.c:1756
 #, c-format
 msgid "a column definition list is required for functions returning \"record\""
 msgstr "une liste de définition de colonnes est requise pour les fonctions renvoyant un « record »"
 
-#: parser/parse_relation.c:1620
+#: parser/parse_relation.c:1845
 #, c-format
 msgid "function \"%s\" in FROM has unsupported return type %s"
 msgstr "la fonction « %s » dans la clause FROM a un type de retour %s non supporté"
 
-#: parser/parse_relation.c:1811
+#: parser/parse_relation.c:2054
 #, c-format
 msgid "VALUES lists \"%s\" have %d columns available but %d columns specified"
 msgstr "les listes de VALUES « %s » ont %d colonnes disponibles mais %d colonnes spécifiées"
 
-#: parser/parse_relation.c:1867
+#: parser/parse_relation.c:2125
 #, c-format
 msgid "joins can have at most %d columns"
 msgstr "les jointures peuvent avoir au plus %d colonnes"
 
-#: parser/parse_relation.c:1958
+#: parser/parse_relation.c:2235
 #, c-format
 msgid "WITH query \"%s\" does not have a RETURNING clause"
 msgstr "La requête WITH « %s » n'a pas de clause RETURNING"
 
-#: parser/parse_relation.c:2899 parser/parse_relation.c:2937 parser/parse_relation.c:2946 parser/parse_relation.c:3072 parser/parse_relation.c:3082
+#: parser/parse_relation.c:3221 parser/parse_relation.c:3231
 #, c-format
 msgid "column %d of relation \"%s\" does not exist"
 msgstr "la colonne %d de la relation « %s » n'existe pas"
 
-#: parser/parse_relation.c:3295
+#: parser/parse_relation.c:3449
 #, c-format
 msgid "Perhaps you meant to reference the table alias \"%s\"."
 msgstr "Peut-être que vous souhaitiez référencer l'alias de la table « %s »."
 
-#: parser/parse_relation.c:3303
+#: parser/parse_relation.c:3457
 #, c-format
 msgid "missing FROM-clause entry for table \"%s\""
 msgstr "entrée manquante de la clause FROM pour la table « %s »"
 
-#: parser/parse_relation.c:3355
+#: parser/parse_relation.c:3509
 #, c-format
 msgid "Perhaps you meant to reference the column \"%s.%s\"."
 msgstr "Peut-être que vous souhaitiez référencer la colonne « %s.%s »."
 
-#: parser/parse_relation.c:3357
+#: parser/parse_relation.c:3511
 #, c-format
 msgid "There is a column named \"%s\" in table \"%s\", but it cannot be referenced from this part of the query."
 msgstr "Il existe une colonne nommée « %s » pour la table « %s » mais elle ne peut pas être référencée dans cette partie de la requête."
 
-#: parser/parse_relation.c:3374
+#: parser/parse_relation.c:3528
 #, c-format
 msgid "Perhaps you meant to reference the column \"%s.%s\" or the column \"%s.%s\"."
 msgstr "Peut-être que vous souhaitiez référencer la colonne « %s.%s » ou la colonne « %s.%s »."
 
-#: parser/parse_target.c:484 parser/parse_target.c:791
+#: parser/parse_target.c:478 parser/parse_target.c:792
 #, c-format
 msgid "cannot assign to system column \"%s\""
 msgstr "ne peut pas affecter à une colonne système « %s »"
 
-#: parser/parse_target.c:512
+#: parser/parse_target.c:506
 #, c-format
 msgid "cannot set an array element to DEFAULT"
 msgstr "ne peut pas initialiser un élément d'un tableau avec DEFAULT"
 
-#: parser/parse_target.c:517
+#: parser/parse_target.c:511
 #, c-format
 msgid "cannot set a subfield to DEFAULT"
 msgstr "ne peut pas initialiser un sous-champ avec DEFAULT"
 
-#: parser/parse_target.c:586
+#: parser/parse_target.c:584
 #, c-format
 msgid "column \"%s\" is of type %s but expression is of type %s"
 msgstr "la colonne « %s » est de type %s mais l'expression est de type %s"
 
-#: parser/parse_target.c:775
+#: parser/parse_target.c:776
 #, c-format
 msgid "cannot assign to field \"%s\" of column \"%s\" because its type %s is not a composite type"
 msgstr ""
 "ne peut pas l'affecter au champ « %s » de la colonne « %s » parce que son\n"
 "type %s n'est pas un type composé"
 
-#: parser/parse_target.c:784
+#: parser/parse_target.c:785
 #, c-format
 msgid "cannot assign to field \"%s\" of column \"%s\" because there is no such column in data type %s"
 msgstr ""
 "ne peut pas l'affecter au champ « %s » de la colonne « %s » parce qu'il n'existe\n"
 "pas une telle colonne dans le type de données %s"
 
-#: parser/parse_target.c:861
+#: parser/parse_target.c:864
 #, c-format
 msgid "array assignment to \"%s\" requires type %s but expression is of type %s"
 msgstr "l'affectation d'un tableau avec « %s » requiert le type %s mais l'expression est de type %s"
 
-#: parser/parse_target.c:871
+#: parser/parse_target.c:874
 #, c-format
 msgid "subfield \"%s\" is of type %s but expression is of type %s"
 msgstr "le sous-champ « %s » est de type %s mais l'expression est de type %s"
 
-#: parser/parse_target.c:1290
+#: parser/parse_target.c:1295
 #, c-format
 msgid "SELECT * with no tables specified is not valid"
 msgstr "Un SELECT * sans table spécifiée n'est pas valide"
 
-#: parser/parse_type.c:101
+#: parser/parse_type.c:100
 #, c-format
 msgid "improper %%TYPE reference (too few dotted names): %s"
 msgstr "référence %%TYPE invalide (trop peu de points entre les noms) : %s"
 
-#: parser/parse_type.c:123
+#: parser/parse_type.c:122
 #, c-format
 msgid "improper %%TYPE reference (too many dotted names): %s"
 msgstr "référence %%TYPE invalide (trop de points entre les noms) : %s"
 
-#: parser/parse_type.c:158
+#: parser/parse_type.c:157
 #, c-format
 msgid "type reference %s converted to %s"
 msgstr "référence de type %s convertie en %s"
 
-#: parser/parse_type.c:279 parser/parse_type.c:858 utils/cache/typcache.c:374
+#: parser/parse_type.c:278 parser/parse_type.c:857 utils/cache/typcache.c:383 utils/cache/typcache.c:437
 #, c-format
 msgid "type \"%s\" is only a shell"
 msgstr "le type « %s » est seulement un shell"
 
-#: parser/parse_type.c:364
+#: parser/parse_type.c:363
 #, c-format
 msgid "type modifier is not allowed for type \"%s\""
 msgstr "le modificateur de type n'est pas autorisé pour le type « %s »"
 
-#: parser/parse_type.c:406
+#: parser/parse_type.c:405
 #, c-format
 msgid "type modifiers must be simple constants or identifiers"
 msgstr "les modificateurs de type doivent être des constantes ou des identifiants"
 
-#: parser/parse_type.c:722 parser/parse_type.c:821
+#: parser/parse_type.c:721 parser/parse_type.c:820
 #, c-format
 msgid "invalid type name \"%s\""
 msgstr "nom de type « %s » invalide"
 
-#: parser/parse_utilcmd.c:263
+#: parser/parse_utilcmd.c:264
 #, c-format
 msgid "cannot create partitioned table as inheritance child"
 msgstr "ne peut pas créer une table partitionnée comme la fille d'un héritage"
 
-#: parser/parse_utilcmd.c:426
+#: parser/parse_utilcmd.c:428
 #, c-format
 msgid "%s will create implicit sequence \"%s\" for serial column \"%s.%s\""
 msgstr "%s créera des séquences implicites « %s » pour la colonne serial « %s.%s »"
 
-#: parser/parse_utilcmd.c:550
+#: parser/parse_utilcmd.c:559
 #, c-format
 msgid "array of serial is not implemented"
 msgstr "le tableau de type serial n'est pas implémenté"
 
-#: parser/parse_utilcmd.c:627 parser/parse_utilcmd.c:639
+#: parser/parse_utilcmd.c:637 parser/parse_utilcmd.c:649
 #, c-format
 msgid "conflicting NULL/NOT NULL declarations for column \"%s\" of table \"%s\""
 msgstr "déclarations NULL/NOT NULL en conflit pour la colonne « %s » de la table « %s »"
 
-#: parser/parse_utilcmd.c:651
+#: parser/parse_utilcmd.c:661
 #, c-format
 msgid "multiple default values specified for column \"%s\" of table \"%s\""
 msgstr ""
 "plusieurs valeurs par défaut sont spécifiées pour la colonne « %s » de la table\n"
 "« %s »"
 
-#: parser/parse_utilcmd.c:668
+#: parser/parse_utilcmd.c:678
 #, c-format
 msgid "identity columns are not supported on typed tables"
 msgstr "les colonnes d'identité uniques ne sont pas supportées sur les tables typées"
 
-#: parser/parse_utilcmd.c:672
+#: parser/parse_utilcmd.c:682
 #, c-format
 msgid "identity columns are not supported on partitions"
 msgstr "les colonnes d'identité ne sont pas supportées sur les partitions"
 
-#: parser/parse_utilcmd.c:681
+#: parser/parse_utilcmd.c:691
 #, c-format
 msgid "multiple identity specifications for column \"%s\" of table \"%s\""
 msgstr "plusieurs spécifications d'identité pour la colonne « %s » de la table « %s »"
 
-#: parser/parse_utilcmd.c:700
+#: parser/parse_utilcmd.c:711
 #, c-format
 msgid "generated columns are not supported on typed tables"
 msgstr "les colonnes générées ne sont pas supportées sur les tables typées"
 
-#: parser/parse_utilcmd.c:704
+#: parser/parse_utilcmd.c:715
 #, c-format
 msgid "generated columns are not supported on partitions"
 msgstr "les colonnes générées ne sont pas supportées sur les partitions"
 
-#: parser/parse_utilcmd.c:709
+#: parser/parse_utilcmd.c:720
 #, c-format
 msgid "multiple generation clauses specified for column \"%s\" of table \"%s\""
 msgstr "plusieurs expressions de géénration sont spécifiées pour la colonne « %s » de la table « %s »"
 
-#: parser/parse_utilcmd.c:727 parser/parse_utilcmd.c:842
+#: parser/parse_utilcmd.c:738 parser/parse_utilcmd.c:853
 #, c-format
 msgid "primary key constraints are not supported on foreign tables"
 msgstr "les clés primaires ne sont pas supportées par les tables distantes"
 
-#: parser/parse_utilcmd.c:736 parser/parse_utilcmd.c:852
+#: parser/parse_utilcmd.c:747 parser/parse_utilcmd.c:863
 #, c-format
 msgid "unique constraints are not supported on foreign tables"
 msgstr "les contraintes uniques ne sont pas supportées par les tables distantes"
 
-#: parser/parse_utilcmd.c:781
+#: parser/parse_utilcmd.c:792
 #, c-format
 msgid "both default and identity specified for column \"%s\" of table \"%s\""
 msgstr "une valeur par défaut et une identité ont été spécifiées pour la colonne « %s » de la table « %s »"
 
-#: parser/parse_utilcmd.c:789
+#: parser/parse_utilcmd.c:800
 #, c-format
 msgid "both default and generation expression specified for column \"%s\" of table \"%s\""
 msgstr "une valeur par défaut et une expression de génération ont été spécifiées à la fois pour la colonne « %s » de la table « %s »"
 
-#: parser/parse_utilcmd.c:797
+#: parser/parse_utilcmd.c:808
 #, c-format
 msgid "both identity and generation expression specified for column \"%s\" of table \"%s\""
 msgstr "une identité et une expression de génération ont été spécifiées à la fois pour la colonne « %s » de la table « %s »"
 
-#: parser/parse_utilcmd.c:862
+#: parser/parse_utilcmd.c:873
 #, c-format
 msgid "exclusion constraints are not supported on foreign tables"
 msgstr "les contraintes d'exclusion ne sont pas supportées par les tables distantes"
 
-#: parser/parse_utilcmd.c:868
+#: parser/parse_utilcmd.c:879
 #, c-format
 msgid "exclusion constraints are not supported on partitioned tables"
 msgstr "les contraintes d'exclusion ne sont pas supportées sur les tables partitionnées"
 
-#: parser/parse_utilcmd.c:932
+#: parser/parse_utilcmd.c:944
 #, c-format
 msgid "LIKE is not supported for creating foreign tables"
 msgstr "LIKE n'est pas supporté pour la création de tables distantes"
 
-#: parser/parse_utilcmd.c:1066
-#, c-format
-msgid "Generation expression for column \"%s\" contains a whole-row reference to table \"%s\"."
-msgstr "L'expression de génération de la colonne « %s » contient une référence de ligne complète vers la table « %s »."
-
-#: parser/parse_utilcmd.c:1563 parser/parse_utilcmd.c:1670
+#: parser/parse_utilcmd.c:1704 parser/parse_utilcmd.c:1813
 #, c-format
 msgid "Index \"%s\" contains a whole-row table reference."
 msgstr "l'index « %s » contient une référence de table de ligne complète"
 
-#: parser/parse_utilcmd.c:2036
+#: parser/parse_utilcmd.c:2163
 #, c-format
 msgid "cannot use an existing index in CREATE TABLE"
 msgstr "ne peut pas utiliser un index existant dans CREATE TABLE"
 
-#: parser/parse_utilcmd.c:2056
+#: parser/parse_utilcmd.c:2183
 #, c-format
 msgid "index \"%s\" is already associated with a constraint"
 msgstr "l'index « %s » est déjà associé à une contrainte"
 
-#: parser/parse_utilcmd.c:2071
+#: parser/parse_utilcmd.c:2198
 #, c-format
 msgid "index \"%s\" is not valid"
 msgstr "l'index « %s » n'est pas valide"
 
-#: parser/parse_utilcmd.c:2077
+#: parser/parse_utilcmd.c:2204
 #, c-format
 msgid "\"%s\" is not a unique index"
 msgstr "« %s » n'est pas un index unique"
 
-#: parser/parse_utilcmd.c:2078 parser/parse_utilcmd.c:2085 parser/parse_utilcmd.c:2092 parser/parse_utilcmd.c:2163
+#: parser/parse_utilcmd.c:2205 parser/parse_utilcmd.c:2212 parser/parse_utilcmd.c:2219 parser/parse_utilcmd.c:2296
 #, c-format
 msgid "Cannot create a primary key or unique constraint using such an index."
 msgstr "Ne peut pas créer une clé primaire ou une contrainte unique avec cet index."
 
-#: parser/parse_utilcmd.c:2084
+#: parser/parse_utilcmd.c:2211
 #, c-format
 msgid "index \"%s\" contains expressions"
 msgstr "l'index « %s » contient des expressions"
 
-#: parser/parse_utilcmd.c:2091
+#: parser/parse_utilcmd.c:2218
 #, c-format
 msgid "\"%s\" is a partial index"
 msgstr "« %s » est un index partiel"
 
-#: parser/parse_utilcmd.c:2103
+#: parser/parse_utilcmd.c:2230
 #, c-format
 msgid "\"%s\" is a deferrable index"
 msgstr "« %s » est un index déferrable"
 
-#: parser/parse_utilcmd.c:2104
+#: parser/parse_utilcmd.c:2231
 #, c-format
 msgid "Cannot create a non-deferrable constraint using a deferrable index."
 msgstr "Ne peut pas créer une contrainte non-déferrable utilisant un index déferrable."
 
-#: parser/parse_utilcmd.c:2162
+#: parser/parse_utilcmd.c:2295
 #, c-format
 msgid "index \"%s\" column number %d does not have default sorting behavior"
 msgstr "l'index « %s », colonne numéro %d, n'a pas de tri par défaut"
 
-#: parser/parse_utilcmd.c:2319
+#: parser/parse_utilcmd.c:2452
 #, c-format
 msgid "column \"%s\" appears twice in primary key constraint"
 msgstr "la colonne « %s » apparaît deux fois dans la contrainte de la clé primaire"
 
-#: parser/parse_utilcmd.c:2325
+#: parser/parse_utilcmd.c:2458
 #, c-format
 msgid "column \"%s\" appears twice in unique constraint"
 msgstr "la colonne « %s » apparaît deux fois sur une contrainte unique"
 
-#: parser/parse_utilcmd.c:2676
+#: parser/parse_utilcmd.c:2811
 #, c-format
 msgid "index expressions and predicates can refer only to the table being indexed"
 msgstr "les expressions et prédicats d'index peuvent seulement faire référence à la table en cours d'indexage"
 
-#: parser/parse_utilcmd.c:2722
+#: parser/parse_utilcmd.c:2857
 #, c-format
 msgid "rules on materialized views are not supported"
 msgstr "les règles ne sont pas supportés sur les vues matérialisées"
 
-#: parser/parse_utilcmd.c:2785
+#: parser/parse_utilcmd.c:2920
 #, c-format
 msgid "rule WHERE condition cannot contain references to other relations"
 msgstr ""
 "la condition WHERE d'une règle ne devrait pas contenir de références à d'autres\n"
 "relations"
 
-#: parser/parse_utilcmd.c:2859
+#: parser/parse_utilcmd.c:2994
 #, c-format
 msgid "rules with WHERE conditions can only have SELECT, INSERT, UPDATE, or DELETE actions"
 msgstr "les règles avec des conditions WHERE ne peuvent contenir que des actions SELECT, INSERT, UPDATE ou DELETE "
 
-#: parser/parse_utilcmd.c:2877 parser/parse_utilcmd.c:2976 rewrite/rewriteHandler.c:501 rewrite/rewriteManip.c:1015
+#: parser/parse_utilcmd.c:3012 parser/parse_utilcmd.c:3113 rewrite/rewriteHandler.c:502 rewrite/rewriteManip.c:1018
 #, c-format
 msgid "conditional UNION/INTERSECT/EXCEPT statements are not implemented"
 msgstr ""
 "les instructions conditionnelles UNION/INTERSECT/EXCEPT ne sont pas\n"
 "implémentées"
 
-#: parser/parse_utilcmd.c:2895
+#: parser/parse_utilcmd.c:3030
 #, c-format
 msgid "ON SELECT rule cannot use OLD"
 msgstr "la règle ON SELECT ne peut pas utiliser OLD"
 
-#: parser/parse_utilcmd.c:2899
+#: parser/parse_utilcmd.c:3034
 #, c-format
 msgid "ON SELECT rule cannot use NEW"
 msgstr "la règle ON SELECT ne peut pas utiliser NEW"
 
-#: parser/parse_utilcmd.c:2908
+#: parser/parse_utilcmd.c:3043
 #, c-format
 msgid "ON INSERT rule cannot use OLD"
 msgstr "la règle ON INSERT ne peut pas utiliser OLD"
 
-#: parser/parse_utilcmd.c:2914
+#: parser/parse_utilcmd.c:3049
 #, c-format
 msgid "ON DELETE rule cannot use NEW"
 msgstr "la règle ON INSERT ne peut pas utiliser NEW"
 
-#: parser/parse_utilcmd.c:2942
+#: parser/parse_utilcmd.c:3077
 #, c-format
 msgid "cannot refer to OLD within WITH query"
 msgstr "ne peut référencer OLD dans une requête WITH"
 
-#: parser/parse_utilcmd.c:2949
+#: parser/parse_utilcmd.c:3084
 #, c-format
 msgid "cannot refer to NEW within WITH query"
 msgstr "ne peut référencer NEW dans une requête WITH"
 
-#: parser/parse_utilcmd.c:3407
+#: parser/parse_utilcmd.c:3542
 #, c-format
 msgid "misplaced DEFERRABLE clause"
 msgstr "clause DEFERRABLE mal placée"
 
-#: parser/parse_utilcmd.c:3412 parser/parse_utilcmd.c:3427
+#: parser/parse_utilcmd.c:3547 parser/parse_utilcmd.c:3562
 #, c-format
 msgid "multiple DEFERRABLE/NOT DEFERRABLE clauses not allowed"
 msgstr "clauses DEFERRABLE/NOT DEFERRABLE multiples non autorisées"
 
-#: parser/parse_utilcmd.c:3422
+#: parser/parse_utilcmd.c:3557
 #, c-format
 msgid "misplaced NOT DEFERRABLE clause"
 msgstr "clause NOT DEFERRABLE mal placée"
 
-#: parser/parse_utilcmd.c:3443
+#: parser/parse_utilcmd.c:3578
 #, c-format
 msgid "misplaced INITIALLY DEFERRED clause"
 msgstr "clause INITIALLY DEFERRED mal placée"
 
-#: parser/parse_utilcmd.c:3448 parser/parse_utilcmd.c:3474
+#: parser/parse_utilcmd.c:3583 parser/parse_utilcmd.c:3609
 #, c-format
 msgid "multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed"
 msgstr "clauses INITIALLY IMMEDIATE/DEFERRED multiples non autorisées"
 
-#: parser/parse_utilcmd.c:3469
+#: parser/parse_utilcmd.c:3604
 #, c-format
 msgid "misplaced INITIALLY IMMEDIATE clause"
 msgstr "clause INITIALLY IMMEDIATE mal placée"
 
-#: parser/parse_utilcmd.c:3660
+#: parser/parse_utilcmd.c:3795
 #, c-format
 msgid "CREATE specifies a schema (%s) different from the one being created (%s)"
 msgstr "CREATE spécifie un schéma (%s) différent de celui tout juste créé (%s)"
 
-#: parser/parse_utilcmd.c:3694
+#: parser/parse_utilcmd.c:3830
+#, c-format
+msgid "\"%s\" is not a partitioned table"
+msgstr "« %s » n'est pas une table partitionnée"
+
+#: parser/parse_utilcmd.c:3837
 #, c-format
 msgid "table \"%s\" is not partitioned"
 msgstr "la table « %s » n'est pas partitionné"
 
-#: parser/parse_utilcmd.c:3701
+#: parser/parse_utilcmd.c:3844
 #, c-format
 msgid "index \"%s\" is not partitioned"
 msgstr "l'index « %s » n'est pas partitionné"
 
-#: parser/parse_utilcmd.c:3735
+#: parser/parse_utilcmd.c:3884
 #, c-format
 msgid "a hash-partitioned table may not have a default partition"
 msgstr "une table partitionnées par hash ne peut pas avoir de partition par défaut"
 
-#: parser/parse_utilcmd.c:3752
+#: parser/parse_utilcmd.c:3901
 #, c-format
 msgid "invalid bound specification for a hash partition"
 msgstr "spécification de limite invalide pour une partition par hash"
 
-#: parser/parse_utilcmd.c:3758 partitioning/partbounds.c:2817
+#: parser/parse_utilcmd.c:3907 partitioning/partbounds.c:4691
 #, c-format
 msgid "modulus for hash partition must be a positive integer"
 msgstr "le modulus pour une partition par hash doit être un entier positif"
 
-#: parser/parse_utilcmd.c:3765 partitioning/partbounds.c:2825
+#: parser/parse_utilcmd.c:3914 partitioning/partbounds.c:4699
 #, c-format
 msgid "remainder for hash partition must be less than modulus"
 msgstr "le modulus pour une&nbs