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 partition par hash doit être inférieur au modulus"
 
-#: parser/parse_utilcmd.c:3778
+#: parser/parse_utilcmd.c:3927
 #, c-format
 msgid "invalid bound specification for a list partition"
 msgstr "spécification de limite invalide pour une partition par liste"
 
-#: parser/parse_utilcmd.c:3831
+#: parser/parse_utilcmd.c:3980
 #, c-format
 msgid "invalid bound specification for a range partition"
 msgstr "spécification de limite invalide pour une partition par intervalle"
 
-#: parser/parse_utilcmd.c:3837
+#: parser/parse_utilcmd.c:3986
 #, c-format
 msgid "FROM must specify exactly one value per partitioning column"
 msgstr "FROM doit spécifier exactement une valeur par colonne de partitionnement"
 
-#: parser/parse_utilcmd.c:3841
+#: parser/parse_utilcmd.c:3990
 #, c-format
 msgid "TO must specify exactly one value per partitioning column"
 msgstr "TO doit spécifier exactement une valeur par colonne de partitionnement"
 
-#: parser/parse_utilcmd.c:3955
+#: parser/parse_utilcmd.c:4104
 #, c-format
 msgid "cannot specify NULL in range bound"
 msgstr "ne peut pas spécifier NULL dans la limite de l'intervalle"
 
-#: parser/parse_utilcmd.c:4004
+#: parser/parse_utilcmd.c:4153
 #, c-format
 msgid "every bound following MAXVALUE must also be MAXVALUE"
 msgstr "chaque limite suivant MAXVALUE doit aussi être MAXVALUE"
 
-#: parser/parse_utilcmd.c:4011
+#: parser/parse_utilcmd.c:4160
 #, c-format
 msgid "every bound following MINVALUE must also be MINVALUE"
 msgstr "chaque limite suivant MINVALUE doit aussi être MINVALUE"
 
-#: parser/parse_utilcmd.c:4046
+#: parser/parse_utilcmd.c:4202
+#, fuzzy, c-format
+#| msgid "could not determine which collation to use for partition expression"
+msgid "could not determine which collation to use for partition bound expression"
+msgstr "n'a pas pu déterminer le collationnement à utiliser pour l'expression de partitionnement"
+
+#: parser/parse_utilcmd.c:4219
 #, c-format
 msgid "collation of partition bound value for column \"%s\" does not match partition key collation \"%s\""
 msgstr "le collationnement de la valeur limite de partition de la colonne « %s » ne correspond pas à celui de la clé de partition « %s »"
 
-#: parser/parse_utilcmd.c:4063
+#: parser/parse_utilcmd.c:4236
 #, c-format
 msgid "specified value cannot be cast to type %s for column \"%s\""
 msgstr "la valeur spécifiée ne peut pas être convertie vers le type %s pour la colonne « %s »"
 
-#: parser/scansup.c:204
+#: parser/parser.c:228
+#, fuzzy
+#| msgid "\"\\u\" must be followed by four hexadecimal digits."
+msgid "UESCAPE must be followed by a simple string literal"
+msgstr "« \\u » doit être suivi par quatre chiffres hexadécimaux."
+
+#: parser/parser.c:233
+msgid "invalid Unicode escape character"
+msgstr "chaîne d'échappement Unicode invalide"
+
+#: parser/parser.c:302 scan.l:1329
+#, c-format
+msgid "invalid Unicode escape value"
+msgstr "valeur d'échappement Unicode invalide"
+
+#: parser/parser.c:449 scan.l:677
+#, c-format
+msgid "invalid Unicode escape"
+msgstr "échappement Unicode invalide"
+
+#: parser/parser.c:450
+#, fuzzy, c-format
+#| msgid "Unicode escapes must be \\uXXXX or \\UXXXXXXXX."
+msgid "Unicode escapes must be \\XXXX or \\+XXXXXX."
+msgstr "Les échappements Unicode doivent être de la forme \\uXXXX ou \\UXXXXXXXX."
+
+#: parser/parser.c:478 scan.l:638 scan.l:654 scan.l:670
+#, c-format
+msgid "invalid Unicode surrogate pair"
+msgstr "paire surrogate Unicode invalide"
+
+#: parser/scansup.c:203
 #, c-format
 msgid "identifier \"%s\" will be truncated to \"%s\""
 msgstr "l'identifiant « %s » sera tronqué en « %s »"
 
-#: partitioning/partbounds.c:959
+#: partitioning/partbounds.c:2831
 #, c-format
 msgid "partition \"%s\" conflicts with existing default partition \"%s\""
 msgstr "la partition « %s » est en conflit avec la partition par défaut existante « %s »"
 
-#: partitioning/partbounds.c:1018
+#: partitioning/partbounds.c:2890
 #, c-format
 msgid "every hash partition modulus must be a factor of the next larger modulus"
 msgstr "chaque modulo de partition hash doit être un facteur du prochain plus gros modulo"
 
-#: partitioning/partbounds.c:1114
+#: partitioning/partbounds.c:2986
 #, c-format
 msgid "empty range bound specified for partition \"%s\""
 msgstr "limite d'intervalle vide indiquée pour la partition « %s »"
 
-#: partitioning/partbounds.c:1116
+#: partitioning/partbounds.c:2988
 #, c-format
 msgid "Specified lower bound %s is greater than or equal to upper bound %s."
 msgstr "La limite inférieure spécifiée %s est supérieure ou égale à la limite supérieure %s."
 
-#: partitioning/partbounds.c:1213
+#: partitioning/partbounds.c:3085
 #, c-format
 msgid "partition \"%s\" would overlap partition \"%s\""
 msgstr "la partition « %s » surchargerait la partition « %s »"
 
-#: partitioning/partbounds.c:1330
+#: partitioning/partbounds.c:3202
 #, c-format
 msgid "skipped scanning foreign table \"%s\" which is a partition of default partition \"%s\""
 msgstr "parcours ignoré pour la table distante « %s » qui n'est pas une partition ou partition par défaut « %s »"
 
-#: partitioning/partbounds.c:1363
-#, c-format
-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"
-
-#: partitioning/partbounds.c:2821
+#: partitioning/partbounds.c:4695
 #, c-format
 msgid "remainder for hash partition must be a non-negative integer"
 msgstr "le reste pour une partition hash doit être un entier non négatif"
 
-#: partitioning/partbounds.c:2848
+#: partitioning/partbounds.c:4722
 #, c-format
 msgid "\"%s\" is not a hash partitioned table"
 msgstr "« %s » n'est pas une table partitionnée par hash"
 
-#: partitioning/partbounds.c:2859 partitioning/partbounds.c:2976
+#: partitioning/partbounds.c:4733 partitioning/partbounds.c:4850
 #, c-format
 msgid "number of partitioning columns (%d) does not match number of partition keys provided (%d)"
 msgstr "le nombre de colonnes de partitionnement (%d) ne correspond pas au nombre de clés de partitionnement fourni (%d)"
 
-#: partitioning/partbounds.c:2881 partitioning/partbounds.c:2913
+#: partitioning/partbounds.c:4755 partitioning/partbounds.c:4787
 #, c-format
 msgid "column %d of the partition key has type \"%s\", but supplied value is of type \"%s\""
 msgstr "la colonne %d de la clé de partitionnement a pour type « %s », mais la valeur fournie a pour type « %s »"
 
+#: port/pg_sema.c:209 port/pg_shmem.c:640 port/posix_sema.c:209 port/sysv_sema.c:327 port/sysv_shmem.c:640
+#, c-format
+msgid "could not stat data directory \"%s\": %m"
+msgstr "n'a pas pu lire les informations sur le répertoire des données « %s » : %m"
+
 #: port/pg_shmem.c:216 port/sysv_shmem.c:216
 #, c-format
 msgid "could not create shared memory segment: %m"
@@ -16655,12 +17072,12 @@ msgstr ""
 "Cette erreur ne signifie *pas* que vous manquez d'espace disque. Elle survient si tous les identifiants de mémoire partagé disponibles ont été pris, auquel cas vous devez augmenter le paramètre SHMMNI de votre noyau, ou parce que la limite maximum de la mémoire partagée\n"
 "de votre système a été atteinte. La documentation de PostgreSQL contient plus d'informations sur la configuration de la mémoire partagée."
 
-#: port/pg_shmem.c:577 port/sysv_shmem.c:577
+#: port/pg_shmem.c:578 port/sysv_shmem.c:578
 #, c-format
 msgid "could not map anonymous shared memory: %m"
 msgstr "n'a pas pu créer le segment de mémoire partagée anonyme : %m"
 
-#: port/pg_shmem.c:579 port/sysv_shmem.c:579
+#: port/pg_shmem.c:580 port/sysv_shmem.c:580
 #, c-format
 msgid "This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory, swap space, or huge pages. To reduce the request size (currently %zu bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections."
 msgstr ""
@@ -16671,39 +17088,34 @@ msgstr ""
 "valeur du paramètre shared_buffers de PostgreSQL ou le paramètre\n"
 "max_connections."
 
-#: port/pg_shmem.c:639 port/sysv_shmem.c:639
+#: port/pg_shmem.c:648 port/sysv_shmem.c:648
 #, c-format
 msgid "huge pages not supported on this platform"
 msgstr "Huge Pages non supportées sur cette plateforme"
 
-#: port/pg_shmem.c:700 port/sysv_shmem.c:700 utils/init/miscinit.c:1069
+#: port/pg_shmem.c:709 port/sysv_shmem.c:709 utils/init/miscinit.c:1137
 #, c-format
 msgid "pre-existing shared memory block (key %lu, ID %lu) is still in use"
 msgstr ""
 "le bloc de mémoire partagé pré-existant (clé %lu, ID %lu) est en cours\n"
 "d'utilisation"
 
-#: port/pg_shmem.c:703 port/sysv_shmem.c:703 utils/init/miscinit.c:1071
+#: port/pg_shmem.c:712 port/sysv_shmem.c:712 utils/init/miscinit.c:1139
 #, c-format
 msgid "Terminate any old server processes associated with data directory \"%s\"."
 msgstr "Termine les anciens processus serveurs associés avec le répertoire de données « %s »."
 
-#: port/pg_shmem.c:754 port/sysv_shmem.c:754
-#, c-format
-msgid "could not stat data directory \"%s\": %m"
-msgstr "n'a pas pu lire les informations sur le répertoire des données « %s » : %m"
-
-#: port/sysv_sema.c:123
+#: port/sysv_sema.c:124
 #, c-format
 msgid "could not create semaphores: %m"
 msgstr "n'a pas pu créer des sémaphores : %m"
 
-#: port/sysv_sema.c:124
+#: port/sysv_sema.c:125
 #, c-format
 msgid "Failed system call was semget(%lu, %d, 0%o)."
 msgstr "L'appel système qui a échoué était semget(%lu, %d, 0%o)."
 
-#: port/sysv_sema.c:128
+#: port/sysv_sema.c:129
 #, c-format
 msgid ""
 "This error does *not* mean that you have run out of disk space.  It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be exceeded.  You need to raise the respective kernel parameter.  Alternatively, reduce PostgreSQL's consumption of semaphores by reducing its max_connections parameter.\n"
@@ -16718,7 +17130,7 @@ msgstr ""
 "La documentation de PostgreSQL contient plus d'informations sur la\n"
 "configuration de votre système avec PostgreSQL."
 
-#: port/sysv_sema.c:158
+#: port/sysv_sema.c:159
 #, c-format
 msgid "You possibly need to raise your kernel's SEMVMX value to be at least %d.  Look into the PostgreSQL documentation for details."
 msgstr ""
@@ -16757,32 +17169,27 @@ msgstr ""
 "n'a pas pu créer le tube d'écoute de signal pour l'identifiant de processus %d :\n"
 "code d'erreur %lu"
 
-#: port/win32/signal.c:277 port/win32/signal.c:309
+#: port/win32/signal.c:251
 #, c-format
 msgid "could not create signal listener pipe: error code %lu; retrying\n"
 msgstr "n'a pas pu créer le tube d'écoute de signal : code d'erreur %lu ; nouvelle tentative\n"
 
-#: port/win32/signal.c:320
-#, c-format
-msgid "could not create signal dispatch thread: error code %lu\n"
-msgstr "n'a pas pu créer le thread de répartition des signaux : code d'erreur %lu\n"
-
 #: port/win32_sema.c:104
 #, c-format
 msgid "could not create semaphore: error code %lu"
 msgstr "n'a pas pu créer la sémaphore : code d'erreur %lu"
 
-#: port/win32_sema.c:181
+#: port/win32_sema.c:180
 #, c-format
 msgid "could not lock semaphore: error code %lu"
 msgstr "n'a pas pu verrouiller la sémaphore : code d'erreur %lu"
 
-#: port/win32_sema.c:201
+#: port/win32_sema.c:200
 #, c-format
 msgid "could not unlock semaphore: error code %lu"
 msgstr "n'a pas pu déverrouiller la sémaphore : code d'erreur %lu"
 
-#: port/win32_sema.c:231
+#: port/win32_sema.c:230
 #, c-format
 msgid "could not try-lock semaphore: error code %lu"
 msgstr "n'a pas pu tenter le verrouillage de la sémaphore : code d'erreur %lu"
@@ -16849,27 +17256,27 @@ msgstr "L'appel système qui a échoué était DuplicateHandle."
 msgid "Failed system call was MapViewOfFileEx."
 msgstr "L'appel système qui a échoué était MapViewOfFileEx."
 
-#: postmaster/autovacuum.c:405
+#: postmaster/autovacuum.c:406
 #, c-format
 msgid "could not fork autovacuum launcher process: %m"
 msgstr "n'a pas pu exécuter le processus autovacuum maître : %m"
 
-#: postmaster/autovacuum.c:441
+#: postmaster/autovacuum.c:442
 #, c-format
 msgid "autovacuum launcher started"
 msgstr "démarrage du processus de lancement de l'autovacuum"
 
-#: postmaster/autovacuum.c:819
+#: postmaster/autovacuum.c:839
 #, c-format
 msgid "autovacuum launcher shutting down"
 msgstr "arrêt du processus de lancement de l'autovacuum"
 
-#: postmaster/autovacuum.c:1481
+#: postmaster/autovacuum.c:1477
 #, c-format
 msgid "could not fork autovacuum worker process: %m"
 msgstr "n'a pas pu exécuter le processus autovacuum worker : %m"
 
-#: postmaster/autovacuum.c:1687
+#: postmaster/autovacuum.c:1686
 #, c-format
 msgid "autovacuum: processing database \"%s\""
 msgstr "autovacuum : traitement de la base de données « %s »"
@@ -16894,79 +17301,79 @@ msgstr "ANALYZE automatique de la table « %s.%s.%s »"
 msgid "processing work entry for relation \"%s.%s.%s\""
 msgstr "traitement de l'enregistrement de travail pour la relation « %s.%s.%s »"
 
-#: postmaster/autovacuum.c:3262
+#: postmaster/autovacuum.c:3285
 #, c-format
 msgid "autovacuum not started because of misconfiguration"
 msgstr "autovacuum non démarré à cause d'une mauvaise configuration"
 
-#: postmaster/autovacuum.c:3263
+#: postmaster/autovacuum.c:3286
 #, c-format
 msgid "Enable the \"track_counts\" option."
 msgstr "Activez l'option « track_counts »."
 
-#: postmaster/bgworker.c:395 postmaster/bgworker.c:855
+#: postmaster/bgworker.c:394 postmaster/bgworker.c:841
 #, c-format
 msgid "registering background worker \"%s\""
 msgstr "enregistrement du processus en tâche de fond « %s »"
 
-#: postmaster/bgworker.c:427
+#: postmaster/bgworker.c:426
 #, c-format
 msgid "unregistering background worker \"%s\""
 msgstr "désenregistrement du processus en tâche de fond « %s »"
 
-#: postmaster/bgworker.c:592
+#: postmaster/bgworker.c:591
 #, c-format
 msgid "background worker \"%s\": must attach to shared memory in order to request a database connection"
 msgstr "processus en tâche de fond « %s » : doit se lier à la mémoire partagée pour pouvoir demander une connexion à une base"
 
-#: postmaster/bgworker.c:601
+#: postmaster/bgworker.c:600
 #, c-format
 msgid "background worker \"%s\": cannot request database access if starting at postmaster start"
 msgstr "processus en tâche de fond « %s » : ne peut pas réclamer un accès à la base s'il démarre au lancement du postmaster"
 
-#: postmaster/bgworker.c:615
+#: postmaster/bgworker.c:614
 #, c-format
 msgid "background worker \"%s\": invalid restart interval"
 msgstr "processus en tâche de fond « %s »: intervalle de redémarrage invalide"
 
-#: postmaster/bgworker.c:630
+#: postmaster/bgworker.c:629
 #, c-format
 msgid "background worker \"%s\": parallel workers may not be configured for restart"
 msgstr "processus en tâche de fond « %s »: les processus parallélisés ne sont peut-être pas être configurés pour redémarrer"
 
-#: postmaster/bgworker.c:674
+#: postmaster/bgworker.c:653
 #, c-format
 msgid "terminating background worker \"%s\" due to administrator command"
 msgstr "arrêt du processus en tâche de fond « %s » suite à la demande de l'administrateur"
 
-#: postmaster/bgworker.c:863
+#: postmaster/bgworker.c:849
 #, c-format
 msgid "background worker \"%s\": must be registered in shared_preload_libraries"
 msgstr "processus en tâche de fond « %s » : doit être listé dans shared_preload_libraries"
 
-#: postmaster/bgworker.c:875
+#: postmaster/bgworker.c:861
 #, c-format
 msgid "background worker \"%s\": only dynamic background workers can request notification"
 msgstr "processus en tâche de fond « %s » : seuls les processus en tâche de fond dynamiques peuvent demander des notifications"
 
-#: postmaster/bgworker.c:890
+#: postmaster/bgworker.c:876
 #, c-format
 msgid "too many background workers"
 msgstr "trop de processus en tâche de fond"
 
-#: postmaster/bgworker.c:891
+#: postmaster/bgworker.c:877
 #, c-format
 msgid "Up to %d background worker can be registered with the current settings."
 msgid_plural "Up to %d background workers can be registered with the current settings."
 msgstr[0] "Un maximum de %d processus en tâche de fond peut être enregistré avec la configuration actuelle."
 msgstr[1] "Un maximum de %d processus en tâche de fond peuvent être enregistrés avec la configuration actuelle."
 
-#: postmaster/bgworker.c:895
+#: postmaster/bgworker.c:881
 #, c-format
 msgid "Consider increasing the configuration parameter \"max_worker_processes\"."
 msgstr "Considérez l'augmentation du paramètre « max_worker_processes »."
 
-#: postmaster/checkpointer.c:458
+#: postmaster/checkpointer.c:418
 #, c-format
 msgid "checkpoints are occurring too frequently (%d second apart)"
 msgid_plural "checkpoints are occurring too frequently (%d seconds apart)"
@@ -16977,351 +17384,352 @@ msgstr[1] ""
 "les points de vérification (checkpoints) arrivent trop fréquemment\n"
 "(toutes les %d secondes)"
 
-#: postmaster/checkpointer.c:462
+#: postmaster/checkpointer.c:422
 #, c-format
 msgid "Consider increasing the configuration parameter \"max_wal_size\"."
 msgstr "Considérez l'augmentation du paramètre « max_wal_size »."
 
-#: postmaster/checkpointer.c:1081
+#: postmaster/checkpointer.c:1032
 #, c-format
 msgid "checkpoint request failed"
 msgstr "échec de la demande de point de vérification"
 
-#: postmaster/checkpointer.c:1082
+#: postmaster/checkpointer.c:1033
 #, c-format
 msgid "Consult recent messages in the server log for details."
 msgstr ""
 "Consultez les messages récents du serveur dans les journaux applicatifs pour\n"
 "plus de détails."
 
-#: postmaster/checkpointer.c:1266
+#: postmaster/checkpointer.c:1217
 #, c-format
 msgid "compacted fsync request queue from %d entries to %d entries"
 msgstr "a compacté la queue de requêtes fsync de %d entrées à %d"
 
-#: postmaster/pgarch.c:159
+#: postmaster/pgarch.c:155
 #, c-format
 msgid "could not fork archiver: %m"
 msgstr "n'a pas pu lancer le processus fils correspondant au processus d'archivage : %m"
 
-#: postmaster/pgarch.c:470
+#: postmaster/pgarch.c:425
 #, c-format
 msgid "archive_mode enabled, yet archive_command is not set"
 msgstr "archive_mode activé, cependant archive_command n'est pas configuré"
 
-#: postmaster/pgarch.c:492
+#: postmaster/pgarch.c:447
 #, c-format
 msgid "removed orphan archive status file \"%s\""
 msgstr "supprimé le fichier de statut d'archivage orphelin « %s »"
 
-#: postmaster/pgarch.c:502
+#: postmaster/pgarch.c:457
 #, c-format
 msgid "removal of orphan archive status file \"%s\" failed too many times, will try again later"
 msgstr "la suppression du fichier de statut d'archive orphelin « %s » a échoué trop de fois, une nouvelle tentative aura lieu plus tard"
 
-#: postmaster/pgarch.c:538
+#: postmaster/pgarch.c:493
 #, c-format
 msgid "archiving write-ahead log file \"%s\" failed too many times, will try again later"
 msgstr "l'archivage du journal de transactions « %s » a échoué trop de fois, nouvelle tentative repoussée"
 
-#: postmaster/pgarch.c:639
+#: postmaster/pgarch.c:594
 #, c-format
 msgid "archive command failed with exit code %d"
 msgstr "échec de la commande d'archivage avec un code de retour %d"
 
-#: postmaster/pgarch.c:641 postmaster/pgarch.c:651 postmaster/pgarch.c:657 postmaster/pgarch.c:666
+#: postmaster/pgarch.c:596 postmaster/pgarch.c:606 postmaster/pgarch.c:612 postmaster/pgarch.c:621
 #, c-format
 msgid "The failed archive command was: %s"
 msgstr "La commande d'archivage qui a échoué était : %s"
 
-#: postmaster/pgarch.c:648
+#: postmaster/pgarch.c:603
 #, c-format
 msgid "archive command was terminated by exception 0x%X"
 msgstr "la commande d'archivage a été terminée par l'exception 0x%X"
 
-#: postmaster/pgarch.c:650 postmaster/postmaster.c:3669
+#: postmaster/pgarch.c:605 postmaster/postmaster.c:3742
 #, c-format
 msgid "See C include file \"ntstatus.h\" for a description of the hexadecimal value."
 msgstr ""
 "Voir le fichier d'en-tête C « ntstatus.h » pour une description de la valeur\n"
 "hexadécimale."
 
-#: postmaster/pgarch.c:655
+#: postmaster/pgarch.c:610
 #, c-format
 msgid "archive command was terminated by signal %d: %s"
 msgstr "la commande d'archivage a été terminée par le signal %d : %s"
 
-#: postmaster/pgarch.c:664
+#: postmaster/pgarch.c:619
 #, c-format
 msgid "archive command exited with unrecognized status %d"
 msgstr "la commande d'archivage a quitté avec le statut non reconnu %d"
 
-#: postmaster/pgstat.c:396
+#: postmaster/pgstat.c:419
 #, c-format
 msgid "could not resolve \"localhost\": %s"
 msgstr "n'a pas pu résoudre « localhost » : %s"
 
-#: postmaster/pgstat.c:419
+#: postmaster/pgstat.c:442
 #, c-format
 msgid "trying another address for the statistics collector"
 msgstr "nouvelle tentative avec une autre adresse pour le récupérateur de statistiques"
 
-#: postmaster/pgstat.c:428
+#: postmaster/pgstat.c:451
 #, c-format
 msgid "could not create socket for statistics collector: %m"
 msgstr "n'a pas pu créer la socket pour le récupérateur de statistiques : %m"
 
-#: postmaster/pgstat.c:440
+#: postmaster/pgstat.c:463
 #, c-format
 msgid "could not bind socket for statistics collector: %m"
 msgstr "n'a pas pu lier la socket au récupérateur de statistiques : %m"
 
-#: postmaster/pgstat.c:451
+#: postmaster/pgstat.c:474
 #, c-format
 msgid "could not get address of socket for statistics collector: %m"
 msgstr "n'a pas pu obtenir l'adresse de la socket du récupérateur de statistiques : %m"
 
-#: postmaster/pgstat.c:467
+#: postmaster/pgstat.c:490
 #, c-format
 msgid "could not connect socket for statistics collector: %m"
 msgstr "n'a pas pu connecter la socket au récupérateur de statistiques : %m"
 
-#: postmaster/pgstat.c:488
+#: postmaster/pgstat.c:511
 #, c-format
 msgid "could not send test message on socket for statistics collector: %m"
 msgstr ""
 "n'a pas pu envoyer le message de tests sur la socket du récupérateur de\n"
 "statistiques : %m"
 
-#: postmaster/pgstat.c:514
+#: postmaster/pgstat.c:537
 #, c-format
 msgid "select() failed in statistics collector: %m"
 msgstr "échec du select() dans le récupérateur de statistiques : %m"
 
-#: postmaster/pgstat.c:529
+#: postmaster/pgstat.c:552
 #, c-format
 msgid "test message did not get through on socket for statistics collector"
 msgstr ""
 "le message de test n'a pas pu arriver sur la socket du récupérateur de\n"
 "statistiques : %m"
 
-#: postmaster/pgstat.c:544
+#: postmaster/pgstat.c:567
 #, c-format
 msgid "could not receive test message on socket for statistics collector: %m"
 msgstr ""
 "n'a pas pu recevoir le message de tests sur la socket du récupérateur de\n"
 "statistiques : %m"
 
-#: postmaster/pgstat.c:554
+#: postmaster/pgstat.c:577
 #, c-format
 msgid "incorrect test message transmission on socket for statistics collector"
 msgstr ""
 "transmission incorrecte du message de tests sur la socket du récupérateur de\n"
 "statistiques"
 
-#: postmaster/pgstat.c:577
+#: postmaster/pgstat.c:600
 #, c-format
 msgid "could not set statistics collector socket to nonblocking mode: %m"
 msgstr ""
 "n'a pas pu initialiser la socket du récupérateur de statistiques dans le mode\n"
 "non bloquant : %m"
 
-#: postmaster/pgstat.c:616
+#: postmaster/pgstat.c:642
 #, c-format
 msgid "disabling statistics collector for lack of working socket"
 msgstr ""
 "désactivation du récupérateur de statistiques à cause du manque de socket\n"
 "fonctionnel"
 
-#: postmaster/pgstat.c:763
+#: postmaster/pgstat.c:789
 #, c-format
 msgid "could not fork statistics collector: %m"
 msgstr ""
 "n'a pas pu lancer le processus fils correspondant au récupérateur de\n"
 "statistiques : %m"
 
-#: postmaster/pgstat.c:1347
+#: postmaster/pgstat.c:1376
 #, c-format
 msgid "unrecognized reset target: \"%s\""
 msgstr "cible reset non reconnu : « %s »"
 
-#: postmaster/pgstat.c:1348
+#: postmaster/pgstat.c:1377
 #, c-format
 msgid "Target must be \"archiver\" or \"bgwriter\"."
 msgstr "La cible doit être « archiver » ou « bgwriter »."
 
-#: postmaster/pgstat.c:4534
+#: postmaster/pgstat.c:4561
 #, c-format
 msgid "could not read statistics message: %m"
 msgstr "n'a pas pu lire le message des statistiques : %m"
 
-#: postmaster/pgstat.c:4875 postmaster/pgstat.c:5032
+#: postmaster/pgstat.c:4883 postmaster/pgstat.c:5046
 #, c-format
 msgid "could not open temporary statistics file \"%s\": %m"
 msgstr "n'a pas pu ouvrir le fichier temporaire des statistiques « %s » : %m"
 
-#: postmaster/pgstat.c:4942 postmaster/pgstat.c:5077
+#: postmaster/pgstat.c:4956 postmaster/pgstat.c:5091
 #, c-format
 msgid "could not write temporary statistics file \"%s\": %m"
 msgstr "n'a pas pu écrire le fichier temporaire des statistiques « %s » : %m"
 
-#: postmaster/pgstat.c:4951 postmaster/pgstat.c:5086
+#: postmaster/pgstat.c:4965 postmaster/pgstat.c:5100
 #, c-format
 msgid "could not close temporary statistics file \"%s\": %m"
 msgstr "n'a pas pu fermer le fichier temporaire des statistiques « %s » : %m"
 
-#: postmaster/pgstat.c:4959 postmaster/pgstat.c:5094
+#: postmaster/pgstat.c:4973 postmaster/pgstat.c:5108
 #, c-format
 msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m"
 msgstr ""
 "n'a pas pu renommer le fichier temporaire des statistiques « %s » en\n"
 "« %s » : %m"
 
-#: postmaster/pgstat.c:5183 postmaster/pgstat.c:5389 postmaster/pgstat.c:5542
+#: postmaster/pgstat.c:5205 postmaster/pgstat.c:5422 postmaster/pgstat.c:5576
 #, c-format
 msgid "could not open statistics file \"%s\": %m"
 msgstr "n'a pas pu ouvrir le fichier de statistiques « %s » : %m"
 
-#: postmaster/pgstat.c:5195 postmaster/pgstat.c:5205 postmaster/pgstat.c:5226 postmaster/pgstat.c:5248 postmaster/pgstat.c:5263 postmaster/pgstat.c:5326 postmaster/pgstat.c:5401 postmaster/pgstat.c:5421 postmaster/pgstat.c:5439 postmaster/pgstat.c:5455 postmaster/pgstat.c:5473 postmaster/pgstat.c:5489 postmaster/pgstat.c:5554 postmaster/pgstat.c:5566 postmaster/pgstat.c:5578 postmaster/pgstat.c:5603 postmaster/pgstat.c:5625
+#: postmaster/pgstat.c:5217 postmaster/pgstat.c:5227 postmaster/pgstat.c:5248 postmaster/pgstat.c:5259 postmaster/pgstat.c:5281 postmaster/pgstat.c:5296 postmaster/pgstat.c:5359 postmaster/pgstat.c:5434 postmaster/pgstat.c:5454 postmaster/pgstat.c:5472 postmaster/pgstat.c:5488 postmaster/pgstat.c:5506 postmaster/pgstat.c:5522 postmaster/pgstat.c:5588 postmaster/pgstat.c:5600 postmaster/pgstat.c:5612 postmaster/pgstat.c:5623 postmaster/pgstat.c:5648
+#: postmaster/pgstat.c:5670
 #, c-format
 msgid "corrupted statistics file \"%s\""
 msgstr "fichier de statistiques « %s » corrompu"
 
-#: postmaster/pgstat.c:5754
+#: postmaster/pgstat.c:5799
 #, c-format
 msgid "using stale statistics instead of current ones because stats collector is not responding"
 msgstr ""
 "utilise de vieilles statistiques à la place des actuelles car le collecteur de\n"
 "statistiques ne répond pas"
 
-#: postmaster/pgstat.c:6081
+#: postmaster/pgstat.c:6129
 #, c-format
 msgid "database hash table corrupted during cleanup --- abort"
 msgstr ""
 "corruption de la table hachée de la base de données lors du lancement\n"
 "--- annulation"
 
-#: postmaster/postmaster.c:712
+#: postmaster/postmaster.c:733
 #, c-format
 msgid "%s: invalid argument for option -f: \"%s\"\n"
 msgstr "%s : argument invalide pour l'option -f : « %s »\n"
 
-#: postmaster/postmaster.c:798
+#: postmaster/postmaster.c:819
 #, c-format
 msgid "%s: invalid argument for option -t: \"%s\"\n"
 msgstr "%s : argument invalide pour l'option -t : « %s »\n"
 
-#: postmaster/postmaster.c:849
+#: postmaster/postmaster.c:870
 #, c-format
 msgid "%s: invalid argument: \"%s\"\n"
 msgstr "%s : argument invalide : « %s »\n"
 
-#: postmaster/postmaster.c:891
+#: postmaster/postmaster.c:912
 #, c-format
 msgid "%s: superuser_reserved_connections (%d) must be less than max_connections (%d)\n"
 msgstr "%s : superuser_reserved_connections (%d) doit être inférieur à max_connections (%d)\n"
 
-#: postmaster/postmaster.c:898
+#: postmaster/postmaster.c:919
 #, c-format
 msgid "WAL archival cannot be enabled when wal_level is \"minimal\""
 msgstr "L'archivage des journaux de transactions ne peut pas être activé quand wal_level vaut « minimal »"
 
-#: postmaster/postmaster.c:901
+#: postmaster/postmaster.c:922
 #, c-format
 msgid "WAL streaming (max_wal_senders > 0) requires wal_level \"replica\" or \"logical\""
 msgstr "l'envoi d'un flux de transactions (max_wal_senders > 0) nécessite que le paramètre wal_level à « replica » ou « logical »"
 
-#: postmaster/postmaster.c:909
+#: postmaster/postmaster.c:930
 #, c-format
 msgid "%s: invalid datetoken tables, please fix\n"
 msgstr "%s : tables datetoken invalide, merci de corriger\n"
 
-#: postmaster/postmaster.c:998
+#: postmaster/postmaster.c:1047
+#, c-format
+msgid "could not create I/O completion port for child queue"
+msgstr "n'a pas pu créer un port de terminaison I/O pour la queue"
+
+#: postmaster/postmaster.c:1113
+#, c-format
+msgid "ending log output to stderr"
+msgstr "arrêt des traces sur stderr"
+
+#: postmaster/postmaster.c:1114
+#, c-format
+msgid "Future log output will go to log destination \"%s\"."
+msgstr "Les traces suivantes iront sur « %s »."
+
+#: postmaster/postmaster.c:1125
 #, c-format
 msgid "starting %s"
 msgstr "démarrage de %s"
 
-#: postmaster/postmaster.c:1027 postmaster/postmaster.c:1125 utils/init/miscinit.c:1551
+#: postmaster/postmaster.c:1154 postmaster/postmaster.c:1252 utils/init/miscinit.c:1597
 #, c-format
 msgid "invalid list syntax in parameter \"%s\""
 msgstr "syntaxe de liste invalide pour le paramètre « %s »"
 
-#: postmaster/postmaster.c:1058
+#: postmaster/postmaster.c:1185
 #, c-format
 msgid "could not create listen socket for \"%s\""
 msgstr "n'a pas pu créer le socket d'écoute pour « %s »"
 
-#: postmaster/postmaster.c:1064
+#: postmaster/postmaster.c:1191
 #, c-format
 msgid "could not create any TCP/IP sockets"
 msgstr "n'a pas pu créer de socket TCP/IP"
 
-#: postmaster/postmaster.c:1147
+#: postmaster/postmaster.c:1274
 #, c-format
 msgid "could not create Unix-domain socket in directory \"%s\""
 msgstr "n'a pas pu créer la socket de domaine Unix dans le répertoire « %s »"
 
-#: postmaster/postmaster.c:1153
+#: postmaster/postmaster.c:1280
 #, c-format
 msgid "could not create any Unix-domain sockets"
 msgstr "n'a pas pu créer les sockets de domaine Unix"
 
-#: postmaster/postmaster.c:1165
+#: postmaster/postmaster.c:1292
 #, c-format
 msgid "no socket created for listening"
 msgstr "pas de socket créé pour l'écoute"
 
-#: postmaster/postmaster.c:1205
-#, c-format
-msgid "could not create I/O completion port for child queue"
-msgstr "n'a pas pu créer un port de terminaison I/O pour la queue"
-
-#: postmaster/postmaster.c:1234
+#: postmaster/postmaster.c:1323
 #, c-format
 msgid "%s: could not change permissions of external PID file \"%s\": %s\n"
 msgstr "%s : n'a pas pu modifier les droits du fichier PID externe « %s » : %s\n"
 
-#: postmaster/postmaster.c:1238
+#: postmaster/postmaster.c:1327
 #, c-format
 msgid "%s: could not write external PID file \"%s\": %s\n"
 msgstr "%s : n'a pas pu écrire le fichier PID externe « %s » : %s\n"
 
-#: postmaster/postmaster.c:1298
-#, c-format
-msgid "ending log output to stderr"
-msgstr "arrêt des traces sur stderr"
-
-#: postmaster/postmaster.c:1299
-#, c-format
-msgid "Future log output will go to log destination \"%s\"."
-msgstr "Les traces suivantes iront sur « %s »."
-
-#: postmaster/postmaster.c:1325 utils/init/postinit.c:216
+#: postmaster/postmaster.c:1360 utils/init/postinit.c:215
 #, c-format
 msgid "could not load pg_hba.conf"
 msgstr "n'a pas pu charger pg_hba.conf"
 
-#: postmaster/postmaster.c:1351
+#: postmaster/postmaster.c:1386
 #, c-format
 msgid "postmaster became multithreaded during startup"
 msgstr "le postmaster est devenu multithreadé lors du démarrage"
 
-#: postmaster/postmaster.c:1352
+#: postmaster/postmaster.c:1387
 #, c-format
 msgid "Set the LC_ALL environment variable to a valid locale."
 msgstr "Configurez la variable d'environnement LC_ALL avec une locale valide."
 
-#: postmaster/postmaster.c:1453
+#: postmaster/postmaster.c:1488
 #, c-format
 msgid "%s: could not locate matching postgres executable"
 msgstr "%s : n'a pas pu localiser l'exécutable postgres correspondant"
 
-#: postmaster/postmaster.c:1476 utils/misc/tzparser.c:341
+#: postmaster/postmaster.c:1511 utils/misc/tzparser.c:340
 #, c-format
 msgid "This may indicate an incomplete PostgreSQL installation, or that the file \"%s\" has been moved away from its proper location."
 msgstr "Ceci peut indiquer une installation PostgreSQL incomplète, ou que le fichier « %s » a été déplacé."
 
-#: postmaster/postmaster.c:1503
+#: postmaster/postmaster.c:1538
 #, c-format
 msgid ""
 "%s: could not find the database system\n"
@@ -17332,454 +17740,459 @@ msgstr ""
 "S'attendait à le trouver dans le répertoire « %s »,\n"
 "mais n'a pas réussi à ouvrir le fichier « %s »: %s\n"
 
-#: postmaster/postmaster.c:1680
+#: postmaster/postmaster.c:1715
 #, c-format
 msgid "select() failed in postmaster: %m"
 msgstr "échec de select() dans postmaster : %m"
 
-#: postmaster/postmaster.c:1835
+#: postmaster/postmaster.c:1870
 #, c-format
 msgid "performing immediate shutdown because data directory lock file is invalid"
 msgstr "forçage d'un arrêt immédiat car le fichier de verrou du répertoire de données est invalide"
 
-#: postmaster/postmaster.c:1934 postmaster/postmaster.c:1965
+#: postmaster/postmaster.c:1973 postmaster/postmaster.c:2004
 #, c-format
 msgid "incomplete startup packet"
 msgstr "paquet de démarrage incomplet"
 
-#: postmaster/postmaster.c:1946
+#: postmaster/postmaster.c:1985
 #, c-format
 msgid "invalid length of startup packet"
 msgstr "longueur invalide du paquet de démarrage"
 
-#: postmaster/postmaster.c:2004
+#: postmaster/postmaster.c:2043
 #, c-format
 msgid "failed to send SSL negotiation response: %m"
 msgstr "échec lors de l'envoi de la réponse de négotiation SSL : %m"
 
-#: postmaster/postmaster.c:2031
+#: postmaster/postmaster.c:2074
 #, c-format
 msgid "failed to send GSSAPI negotiation response: %m"
 msgstr "échec lors de l'envoi de la réponse à la négociation GSSAPI : %m"
 
-#: postmaster/postmaster.c:2056
+#: postmaster/postmaster.c:2104
 #, c-format
 msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u"
 msgstr "protocole frontal %u.%u non supporté : le serveur supporte de %u.0 à %u.%u"
 
-#: postmaster/postmaster.c:2120 utils/misc/guc.c:6560 utils/misc/guc.c:6596 utils/misc/guc.c:6666 utils/misc/guc.c:7989 utils/misc/guc.c:10811 utils/misc/guc.c:10845
+#: postmaster/postmaster.c:2168 utils/misc/guc.c:6769 utils/misc/guc.c:6805 utils/misc/guc.c:6875 utils/misc/guc.c:8198 utils/misc/guc.c:11044 utils/misc/guc.c:11078
 #, c-format
 msgid "invalid value for parameter \"%s\": \"%s\""
 msgstr "valeur invalide pour le paramètre « %s » : « %s »"
 
-#: postmaster/postmaster.c:2123
+#: postmaster/postmaster.c:2171
 #, c-format
 msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"."
 msgstr "Les valeurs valides sont : « false », « 0 », « true », « 1 », « database »."
 
-#: postmaster/postmaster.c:2168
+#: postmaster/postmaster.c:2216
 #, c-format
 msgid "invalid startup packet layout: expected terminator as last byte"
 msgstr ""
 "configuration invalide du paquet de démarrage : terminaison attendue comme\n"
 "dernier octet"
 
-#: postmaster/postmaster.c:2206
+#: postmaster/postmaster.c:2254
 #, c-format
 msgid "no PostgreSQL user name specified in startup packet"
 msgstr "aucun nom d'utilisateur PostgreSQL n'a été spécifié dans le paquet de démarrage"
 
-#: postmaster/postmaster.c:2265
+#: postmaster/postmaster.c:2318
 #, c-format
 msgid "the database system is starting up"
 msgstr "le système de bases de données se lance"
 
-#: postmaster/postmaster.c:2270
+#: postmaster/postmaster.c:2323
 #, c-format
 msgid "the database system is shutting down"
 msgstr "le système de base de données s'arrête"
 
-#: postmaster/postmaster.c:2275
+#: postmaster/postmaster.c:2328
 #, c-format
 msgid "the database system is in recovery mode"
 msgstr "le système de bases de données est en cours de restauration"
 
-#: postmaster/postmaster.c:2280 storage/ipc/procarray.c:293 storage/ipc/sinvaladt.c:298 storage/lmgr/proc.c:363
+#: postmaster/postmaster.c:2333 storage/ipc/procarray.c:293 storage/ipc/sinvaladt.c:297 storage/lmgr/proc.c:362
 #, c-format
 msgid "sorry, too many clients already"
 msgstr "désolé, trop de clients sont déjà connectés"
 
-#: postmaster/postmaster.c:2370
+#: postmaster/postmaster.c:2423
 #, c-format
 msgid "wrong key in cancel request for process %d"
 msgstr "mauvaise clé dans la demande d'annulation pour le processus %d"
 
-#: postmaster/postmaster.c:2382
+#: postmaster/postmaster.c:2435
 #, c-format
 msgid "PID %d in cancel request did not match any process"
 msgstr "le PID %d dans la demande d'annulation ne correspond à aucun processus"
 
-#: postmaster/postmaster.c:2629
+#: postmaster/postmaster.c:2706
 #, c-format
 msgid "received SIGHUP, reloading configuration files"
 msgstr "a reçu SIGHUP, rechargement des fichiers de configuration"
 
 #. translator: %s is a configuration file
-#: postmaster/postmaster.c:2655 postmaster/postmaster.c:2659
+#: postmaster/postmaster.c:2732 postmaster/postmaster.c:2736
 #, c-format
 msgid "%s was not reloaded"
 msgstr "%s n'a pas été rechargé"
 
-#: postmaster/postmaster.c:2669
+#: postmaster/postmaster.c:2746
 #, c-format
 msgid "SSL configuration was not reloaded"
 msgstr "la configuration SSL n'a pas été rechargée"
 
-#: postmaster/postmaster.c:2717
+#: postmaster/postmaster.c:2802
 #, c-format
 msgid "received smart shutdown request"
 msgstr "a reçu une demande d'arrêt intelligent"
 
-#: postmaster/postmaster.c:2775
+#: postmaster/postmaster.c:2848
 #, c-format
 msgid "received fast shutdown request"
 msgstr "a reçu une demande d'arrêt rapide"
 
-#: postmaster/postmaster.c:2808
+#: postmaster/postmaster.c:2866
 #, c-format
 msgid "aborting any active transactions"
 msgstr "annulation des transactions actives"
 
-#: postmaster/postmaster.c:2842
+#: postmaster/postmaster.c:2890
 #, c-format
 msgid "received immediate shutdown request"
 msgstr "a reçu une demande d'arrêt immédiat"
 
-#: postmaster/postmaster.c:2909
+#: postmaster/postmaster.c:2965
 #, c-format
 msgid "shutdown at recovery target"
 msgstr "arrêt sur la cible de restauration"
 
-#: postmaster/postmaster.c:2925 postmaster/postmaster.c:2948
+#: postmaster/postmaster.c:2983 postmaster/postmaster.c:3019
 msgid "startup process"
 msgstr "processus de lancement"
 
-#: postmaster/postmaster.c:2928
+#: postmaster/postmaster.c:2986
 #, c-format
 msgid "aborting startup due to startup process failure"
 msgstr "annulation du démarrage à cause d'un échec dans le processus de lancement"
 
-#: postmaster/postmaster.c:2989
+#: postmaster/postmaster.c:3061
 #, c-format
 msgid "database system is ready to accept connections"
 msgstr "le système de bases de données est prêt pour accepter les connexions"
 
-#: postmaster/postmaster.c:3010
+#: postmaster/postmaster.c:3082
 msgid "background writer process"
 msgstr "processus d'écriture en tâche de fond"
 
-#: postmaster/postmaster.c:3064
+#: postmaster/postmaster.c:3136
 msgid "checkpointer process"
 msgstr "processus checkpointer"
 
-#: postmaster/postmaster.c:3080
+#: postmaster/postmaster.c:3152
 msgid "WAL writer process"
 msgstr "processus d'écriture des journaux de transaction"
 
-#: postmaster/postmaster.c:3095
+#: postmaster/postmaster.c:3167
 msgid "WAL receiver process"
 msgstr "processus de réception des journaux de transaction"
 
-#: postmaster/postmaster.c:3110
+#: postmaster/postmaster.c:3182
 msgid "autovacuum launcher process"
 msgstr "processus de lancement de l'autovacuum"
 
-#: postmaster/postmaster.c:3125
+#: postmaster/postmaster.c:3197
 msgid "archiver process"
 msgstr "processus d'archivage"
 
-#: postmaster/postmaster.c:3141
+#: postmaster/postmaster.c:3213
 msgid "statistics collector process"
 msgstr "processus de récupération des statistiques"
 
-#: postmaster/postmaster.c:3155
+#: postmaster/postmaster.c:3227
 msgid "system logger process"
 msgstr "processus des journaux applicatifs"
 
-#: postmaster/postmaster.c:3217
+#: postmaster/postmaster.c:3291
 #, c-format
 msgid "background worker \"%s\""
 msgstr "processus en tâche de fond « %s »"
 
-#: postmaster/postmaster.c:3301 postmaster/postmaster.c:3321 postmaster/postmaster.c:3328 postmaster/postmaster.c:3346
+#: postmaster/postmaster.c:3375 postmaster/postmaster.c:3395 postmaster/postmaster.c:3402 postmaster/postmaster.c:3420
 msgid "server process"
 msgstr "processus serveur"
 
-#: postmaster/postmaster.c:3400
+#: postmaster/postmaster.c:3474
 #, c-format
 msgid "terminating any other active server processes"
 msgstr "arrêt des autres processus serveur actifs"
 
 #. translator: %s is a noun phrase describing a child process, such as
 #. "server process"
-#: postmaster/postmaster.c:3656
+#: postmaster/postmaster.c:3729
 #, c-format
 msgid "%s (PID %d) exited with exit code %d"
 msgstr "%s (PID %d) a quitté avec le code de sortie %d"
 
-#: postmaster/postmaster.c:3658 postmaster/postmaster.c:3670 postmaster/postmaster.c:3680 postmaster/postmaster.c:3691
+#: postmaster/postmaster.c:3731 postmaster/postmaster.c:3743 postmaster/postmaster.c:3753 postmaster/postmaster.c:3764
 #, c-format
 msgid "Failed process was running: %s"
 msgstr "Le processus qui a échoué exécutait : %s"
 
 #. translator: %s is a noun phrase describing a child process, such as
 #. "server process"
-#: postmaster/postmaster.c:3667
+#: postmaster/postmaster.c:3740
 #, c-format
 msgid "%s (PID %d) was terminated by exception 0x%X"
 msgstr "%s (PID %d) a été arrêté par l'exception 0x%X"
 
 #. translator: %s is a noun phrase describing a child process, such as
 #. "server process"
-#: postmaster/postmaster.c:3677
+#: postmaster/postmaster.c:3750
 #, c-format
 msgid "%s (PID %d) was terminated by signal %d: %s"
 msgstr "%s (PID %d) a été arrêté par le signal %d : %s"
 
 #. translator: %s is a noun phrase describing a child process, such as
 #. "server process"
-#: postmaster/postmaster.c:3689
+#: postmaster/postmaster.c:3762
 #, c-format
 msgid "%s (PID %d) exited with unrecognized status %d"
 msgstr "%s (PID %d) a quitté avec le statut inattendu %d"
 
-#: postmaster/postmaster.c:3872
+#: postmaster/postmaster.c:3970
 #, c-format
 msgid "abnormal database system shutdown"
 msgstr "le système de base de données a été arrêté anormalement"
 
-#: postmaster/postmaster.c:3912
+#: postmaster/postmaster.c:4010
 #, c-format
 msgid "all server processes terminated; reinitializing"
 msgstr "tous les processus serveur sont arrêtés ; réinitialisation"
 
-#: postmaster/postmaster.c:4082 postmaster/postmaster.c:5473 postmaster/postmaster.c:5847
+#: postmaster/postmaster.c:4180 postmaster/postmaster.c:5599 postmaster/postmaster.c:5986
 #, c-format
 msgid "could not generate random cancel key"
 msgstr "n'a pas pu générer la clé d'annulation aléatoire"
 
-#: postmaster/postmaster.c:4136
+#: postmaster/postmaster.c:4234
 #, c-format
 msgid "could not fork new process for connection: %m"
 msgstr "n'a pas pu lancer le nouveau processus fils pour la connexion : %m"
 
-#: postmaster/postmaster.c:4178
+#: postmaster/postmaster.c:4276
 msgid "could not fork new process for connection: "
 msgstr "n'a pas pu lancer le nouveau processus fils pour la connexion : "
 
-#: postmaster/postmaster.c:4288
+#: postmaster/postmaster.c:4393
 #, c-format
 msgid "connection received: host=%s port=%s"
 msgstr "connexion reçue : hôte=%s port=%s"
 
-#: postmaster/postmaster.c:4293
+#: postmaster/postmaster.c:4398
 #, c-format
 msgid "connection received: host=%s"
 msgstr "connexion reçue : hôte=%s"
 
-#: postmaster/postmaster.c:4563
+#: postmaster/postmaster.c:4668
 #, c-format
 msgid "could not execute server process \"%s\": %m"
 msgstr "n'a pas pu exécuter le processus serveur « %s » : %m"
 
-#: postmaster/postmaster.c:4716
+#: postmaster/postmaster.c:4827
 #, c-format
 msgid "giving up after too many tries to reserve shared memory"
 msgstr "abandon après trop de tentatives pour réserver la mémoire partagée"
 
-#: postmaster/postmaster.c:4717
+#: postmaster/postmaster.c:4828
 #, c-format
 msgid "This might be caused by ASLR or antivirus software."
 msgstr "Ceci pourrait être causé par un logiciel ASLR ou un antivirus."
 
-#: postmaster/postmaster.c:4928
+#: postmaster/postmaster.c:5034
 #, c-format
 msgid "SSL configuration could not be loaded in child process"
 msgstr "la configuration SSL n'a pas pu être chargée dans le processus fils"
 
-#: postmaster/postmaster.c:5060
+#: postmaster/postmaster.c:5166
 #, c-format
-msgid "Please report this to <pgsql-bugs@lists.postgresql.org>."
-msgstr "Veuillez rapporter ceci à <pgsql-bugs@lists.postgresql.org>."
+msgid "Please report this to <%s>."
+msgstr "Merci de signaler ceci à <%s>."
 
-#: postmaster/postmaster.c:5147
+#: postmaster/postmaster.c:5259
 #, c-format
 msgid "database system is ready to accept read only connections"
 msgstr "le système de bases de données est prêt pour accepter les connexions en lecture seule"
 
-#: postmaster/postmaster.c:5401
+#: postmaster/postmaster.c:5527
 #, c-format
 msgid "could not fork startup process: %m"
 msgstr "n'a pas pu lancer le processus fils de démarrage : %m"
 
-#: postmaster/postmaster.c:5405
+#: postmaster/postmaster.c:5531
 #, c-format
 msgid "could not fork background writer process: %m"
 msgstr ""
 "n'a pas pu créer un processus fils du processus d'écriture en tâche de\n"
 "fond : %m"
 
-#: postmaster/postmaster.c:5409
+#: postmaster/postmaster.c:5535
 #, c-format
 msgid "could not fork checkpointer process: %m"
 msgstr "n'a pas pu créer le processus checkpointer : %m"
 
-#: postmaster/postmaster.c:5413
+#: postmaster/postmaster.c:5539
 #, c-format
 msgid "could not fork WAL writer process: %m"
 msgstr ""
 "n'a pas pu créer un processus fils du processus d'écriture des journaux de\n"
 "transaction : %m"
 
-#: postmaster/postmaster.c:5417
+#: postmaster/postmaster.c:5543
 #, c-format
 msgid "could not fork WAL receiver process: %m"
 msgstr ""
 "n'a pas pu créer un processus fils de réception des journaux de\n"
 "transactions : %m"
 
-#: postmaster/postmaster.c:5421
+#: postmaster/postmaster.c:5547
 #, c-format
 msgid "could not fork process: %m"
 msgstr "n'a pas pu lancer le processus fils : %m"
 
-#: postmaster/postmaster.c:5618 postmaster/postmaster.c:5641
+#: postmaster/postmaster.c:5744 postmaster/postmaster.c:5767
 #, c-format
 msgid "database connection requirement not indicated during registration"
 msgstr "pré-requis de la connexion à la base non indiqué lors de l'enregistrement"
 
-#: postmaster/postmaster.c:5625 postmaster/postmaster.c:5648
+#: postmaster/postmaster.c:5751 postmaster/postmaster.c:5774
 #, c-format
 msgid "invalid processing mode in background worker"
 msgstr "mode de traitement invalide dans le processus en tâche de fond"
 
-#: postmaster/postmaster.c:5720
+#: postmaster/postmaster.c:5847
 #, c-format
 msgid "starting background worker process \"%s\""
 msgstr "démarrage du processus d'écriture en tâche de fond « %s »"
 
-#: postmaster/postmaster.c:5732
+#: postmaster/postmaster.c:5859
 #, c-format
 msgid "could not fork worker process: %m"
 msgstr "n'a pas pu créer un processus fils du processus en tâche de fond : %m"
 
-#: postmaster/postmaster.c:6168
+#: postmaster/postmaster.c:5972
+#, c-format
+msgid "no slot available for new worker process"
+msgstr "aucun slot disponible pour le nouveau processus worker"
+
+#: postmaster/postmaster.c:6307
 #, c-format
 msgid "could not duplicate socket %d for use in backend: error code %d"
 msgstr "n'a pas pu dupliquer la socket %d pour le serveur : code d'erreur %d"
 
-#: postmaster/postmaster.c:6200
+#: postmaster/postmaster.c:6339
 #, c-format
 msgid "could not create inherited socket: error code %d\n"
 msgstr "n'a pas pu créer la socket héritée : code d'erreur %d\n"
 
-#: postmaster/postmaster.c:6229
+#: postmaster/postmaster.c:6368
 #, c-format
 msgid "could not open backend variables file \"%s\": %s\n"
 msgstr "n'a pas pu ouvrir le fichier des variables moteurs « %s » : %s\n"
 
-#: postmaster/postmaster.c:6236
+#: postmaster/postmaster.c:6375
 #, c-format
 msgid "could not read from backend variables file \"%s\": %s\n"
 msgstr "n'a pas pu lire le fichier de configuration serveur « %s » : %s\n"
 
-#: postmaster/postmaster.c:6245
+#: postmaster/postmaster.c:6384
 #, c-format
 msgid "could not remove file \"%s\": %s\n"
 msgstr "n'a pas pu supprimer le fichier « %s » : %s\n"
 
-#: postmaster/postmaster.c:6262
+#: postmaster/postmaster.c:6401
 #, c-format
 msgid "could not map view of backend variables: error code %lu\n"
 msgstr ""
 "n'a pas pu exécuter \"map\" la vue des variables serveurs : code\n"
 "d'erreur %lu\n"
 
-#: postmaster/postmaster.c:6271
+#: postmaster/postmaster.c:6410
 #, c-format
 msgid "could not unmap view of backend variables: error code %lu\n"
 msgstr ""
 "n'a pas pu exécuter \"unmap\" sur la vue des variables serveurs : code\n"
 "d'erreur %lu\n"
 
-#: postmaster/postmaster.c:6278
+#: postmaster/postmaster.c:6417
 #, c-format
 msgid "could not close handle to backend parameter variables: error code %lu\n"
 msgstr ""
 "n'a pas pu fermer le lien vers les variables des paramètres du serveur :\n"
 "code d'erreur %lu\n"
 
-#: postmaster/postmaster.c:6442
+#: postmaster/postmaster.c:6595
 #, c-format
 msgid "could not read exit code for process\n"
 msgstr "n'a pas pu lire le code de sortie du processus\n"
 
-#: postmaster/postmaster.c:6447
+#: postmaster/postmaster.c:6600
 #, c-format
 msgid "could not post child completion status\n"
 msgstr "n'a pas pu poster le statut de fin de l'enfant\n"
 
-#: postmaster/syslogger.c:480 postmaster/syslogger.c:1154
+#: postmaster/syslogger.c:474 postmaster/syslogger.c:1153
 #, c-format
 msgid "could not read from logger pipe: %m"
 msgstr "n'a pas pu lire à partir du tube des journaux applicatifs : %m"
 
-#: postmaster/syslogger.c:528
+#: postmaster/syslogger.c:522
 #, c-format
 msgid "logger shutting down"
 msgstr "arrêt en cours des journaux applicatifs"
 
-#: postmaster/syslogger.c:572 postmaster/syslogger.c:586
+#: postmaster/syslogger.c:571 postmaster/syslogger.c:585
 #, c-format
 msgid "could not create pipe for syslog: %m"
 msgstr "n'a pas pu créer un tube pour syslog : %m"
 
-#: postmaster/syslogger.c:637
+#: postmaster/syslogger.c:636
 #, c-format
 msgid "could not fork system logger: %m"
 msgstr "n'a pas pu lancer le processus des journaux applicatifs : %m"
 
-#: postmaster/syslogger.c:673
+#: postmaster/syslogger.c:672
 #, c-format
 msgid "redirecting log output to logging collector process"
 msgstr "redirection des traces vers le processus de récupération des traces"
 
-#: postmaster/syslogger.c:674
+#: postmaster/syslogger.c:673
 #, c-format
 msgid "Future log output will appear in directory \"%s\"."
 msgstr "Les prochaines traces apparaîtront dans le répertoire « %s »."
 
-#: postmaster/syslogger.c:682
+#: postmaster/syslogger.c:681
 #, c-format
 msgid "could not redirect stdout: %m"
 msgstr "n'a pas pu rediriger la sortie (stdout) : %m"
 
-#: postmaster/syslogger.c:687 postmaster/syslogger.c:704
+#: postmaster/syslogger.c:686 postmaster/syslogger.c:703
 #, c-format
 msgid "could not redirect stderr: %m"
 msgstr "n'a pas pu rediriger la sortie des erreurs (stderr) : %m"
 
-#: postmaster/syslogger.c:1109
+#: postmaster/syslogger.c:1108
 #, c-format
 msgid "could not write to log file: %s\n"
 msgstr "n'a pas pu écrire dans le journal applicatif : %s\n"
 
-#: postmaster/syslogger.c:1226
+#: postmaster/syslogger.c:1225
 #, c-format
 msgid "could not open log file \"%s\": %m"
 msgstr "n'a pas pu ouvrir le fichier applicatif « %s » : %m"
 
-#: postmaster/syslogger.c:1288 postmaster/syslogger.c:1338
+#: postmaster/syslogger.c:1287 postmaster/syslogger.c:1337
 #, c-format
 msgid "disabling automatic rotation (use SIGHUP to re-enable)"
 msgstr "désactivation de la rotation automatique (utilisez SIGHUP pour la réactiver)"
@@ -17794,285 +18207,337 @@ msgstr "n'a pas pu déterminer le collationnement à utiliser pour une expressio
 msgid "nondeterministic collations are not supported for regular expressions"
 msgstr "les collationnements non déterministes ne sont pas supportés pour les expressions rationnelles"
 
-#: repl_gram.y:336 repl_gram.y:368
+#: repl_gram.y:349 repl_gram.y:381
 #, c-format
 msgid "invalid timeline %u"
 msgstr "timeline %u invalide"
 
-#: repl_scanner.l:129
+#: repl_scanner.l:131
 msgid "invalid streaming start location"
 msgstr "emplacement de démarrage du flux de réplication invalide"
 
-#: repl_scanner.l:180 scan.l:703
+#: repl_scanner.l:182 scan.l:717
 msgid "unterminated quoted string"
 msgstr "chaîne entre guillemets non terminée"
 
-#: replication/basebackup.c:102
+#: replication/backup_manifest.c:231
+#, fuzzy, c-format
+#| msgid "server reported unexpected next timeline %u, following timeline %u"
+msgid "expected end timeline %u but found timeline %u"
+msgstr "le serveur a renvoyé une timeline suivante %u inattendue, après la timeline %u"
+
+#: replication/backup_manifest.c:248
+#, fuzzy, c-format
+#| msgid "server reported unexpected next timeline %u, following timeline %u"
+msgid "expected start timeline %u but found timeline %u"
+msgstr "le serveur a renvoyé une timeline suivante %u inattendue, après la timeline %u"
+
+#: replication/backup_manifest.c:275
+#, fuzzy, c-format
+#| msgid "highest timeline %u of the primary is behind recovery timeline %u"
+msgid "start timeline %u not found in history of timeline %u"
+msgstr "la plus grande timeline %u du serveur principal est derrière la timeline de restauration %u"
+
+#: replication/backup_manifest.c:322
+#, c-format
+msgid "could not rewind temporary file"
+msgstr "n'a pas pu revenir au début du fichier temporaire"
+
+#: replication/backup_manifest.c:349
+#, c-format
+msgid "could not read from temporary file: %m"
+msgstr "n'a pas pu lire le fichier temporaire : %m"
+
+#: replication/basebackup.c:108
 #, c-format
 msgid "could not read from file \"%s\""
 msgstr "n'a pas pu lire à partir du fichier « %s »"
 
-#: replication/basebackup.c:462
+#: replication/basebackup.c:551
 #, c-format
 msgid "could not find any WAL files"
 msgstr "n'a pas pu trouver un seul fichier WAL"
 
-#: replication/basebackup.c:476 replication/basebackup.c:491 replication/basebackup.c:500
+#: replication/basebackup.c:566 replication/basebackup.c:582 replication/basebackup.c:591
 #, c-format
 msgid "could not find WAL file \"%s\""
 msgstr "n'a pas pu trouver le fichier WAL « %s »"
 
-#: replication/basebackup.c:542 replication/basebackup.c:572
+#: replication/basebackup.c:634 replication/basebackup.c:665
 #, c-format
 msgid "unexpected WAL file size \"%s\""
 msgstr "taille du fichier WAL « %s » inattendue"
 
-#: replication/basebackup.c:556 replication/basebackup.c:1567
+#: replication/basebackup.c:648 replication/basebackup.c:1752
 #, c-format
 msgid "base backup could not send data, aborting backup"
 msgstr "la sauvegarde de base n'a pas pu envoyer les données, annulation de la sauvegarde"
 
-#: replication/basebackup.c:630
-#, c-format
-msgid "%s total checksum verification failures"
-msgstr "%s erreurs de vérifications des sommes de contrôle"
+#: replication/basebackup.c:724
+#, fuzzy, c-format
+#| msgid "%s total checksum verification failures"
+msgid "%lld total checksum verification failure"
+msgid_plural "%lld total checksum verification failures"
+msgstr[0] "%s erreurs de vérifications des sommes de contrôle"
+msgstr[1] "%s erreurs de vérifications des sommes de contrôle"
 
-#: replication/basebackup.c:634
+#: replication/basebackup.c:731
 #, c-format
 msgid "checksum verification failure during base backup"
 msgstr "échec de la véffication de somme de controle durant la sauvegarde de base"
 
-#: replication/basebackup.c:678 replication/basebackup.c:687 replication/basebackup.c:696 replication/basebackup.c:705 replication/basebackup.c:714 replication/basebackup.c:725 replication/basebackup.c:742 replication/basebackup.c:751
+#: replication/basebackup.c:784 replication/basebackup.c:793 replication/basebackup.c:802 replication/basebackup.c:811 replication/basebackup.c:820 replication/basebackup.c:831 replication/basebackup.c:848 replication/basebackup.c:857 replication/basebackup.c:869 replication/basebackup.c:893
 #, c-format
 msgid "duplicate option \"%s\""
 msgstr "option « %s » dupliquée"
 
-#: replication/basebackup.c:731
+#: replication/basebackup.c:837
 #, c-format
 msgid "%d is outside the valid range for parameter \"%s\" (%d .. %d)"
 msgstr "%d est en dehors des limites valides pour le paramètre « %s » (%d .. %d)"
 
-#: replication/basebackup.c:1330
+#: replication/basebackup.c:882
+#, c-format
+msgid "unrecognized manifest option: \"%s\""
+msgstr "option de manifeste non reconnue : « %s »"
+
+#: replication/basebackup.c:898
+#, c-format
+msgid "unrecognized checksum algorithm: \"%s\""
+msgstr "algorithme de somme de contrôle inconnu : « %s »"
+
+#: replication/basebackup.c:913
+#, fuzzy, c-format
+#| msgid "manifest checksum mismatch"
+msgid "manifest checksums require a backup manifest"
+msgstr "différence de somme de contrôle pour le manifeste"
+
+#: replication/basebackup.c:1504
 #, c-format
 msgid "skipping special file \"%s\""
 msgstr "ignore le fichier spécial « %s »"
 
-#: replication/basebackup.c:1438
+#: replication/basebackup.c:1623
 #, c-format
 msgid "invalid segment number %d in file \"%s\""
 msgstr "numéro de segment %d invalide dans le fichier « %s »"
 
-#: replication/basebackup.c:1457
+#: replication/basebackup.c:1642
 #, c-format
 msgid "could not verify checksum in file \"%s\", block %d: read buffer size %d and page size %d differ"
 msgstr "n'a pas pu vérifier la somme de contrôle dans le fichier « %s », bloc %d : la taille de tampon de lecture %d et la taille de page %d diffèrent"
 
-#: replication/basebackup.c:1501 replication/basebackup.c:1531
+#: replication/basebackup.c:1686 replication/basebackup.c:1716
 #, c-format
 msgid "could not fseek in file \"%s\": %m"
 msgstr "n'a pas pu effectuer de fseek dans le fichier « %s » : %m"
 
-#: replication/basebackup.c:1523
+#: replication/basebackup.c:1708
 #, c-format
 msgid "could not reread block %d of file \"%s\": %m"
 msgstr "n'a pas pu relire le bloc %d dans le fichier « %s » : %m"
 
-#: replication/basebackup.c:1547
+#: replication/basebackup.c:1732
 #, c-format
 msgid "checksum verification failed in file \"%s\", block %d: calculated %X but expected %X"
 msgstr "échec de la vérification de la somme de contrôle dans le fichier « %s », bloc %d : calculé %X, alors que le bloc contient %X"
 
-#: replication/basebackup.c:1554
+#: replication/basebackup.c:1739
 #, c-format
 msgid "further checksum verification failures in file \"%s\" will not be reported"
 msgstr "les prochains échec de vérification de somme de contrôle dans le fichier « %s » ne seront pas reportés"
 
-#: replication/basebackup.c:1614
+#: replication/basebackup.c:1807
 #, c-format
 msgid "file \"%s\" has a total of %d checksum verification failure"
 msgid_plural "file \"%s\" has a total of %d checksum verification failures"
 msgstr[0] "le fichier « %s » a un total de %d échec de vérification de somme de contrôle"
 msgstr[1] "le fichier « %s » a un total de %d échecs de vérification de somme de contrôle"
 
-#: replication/basebackup.c:1647
+#: replication/basebackup.c:1843
 #, c-format
 msgid "file name too long for tar format: \"%s\""
 msgstr "nom du fichier trop long pour le format tar : « %s »"
 
-#: replication/basebackup.c:1652
+#: replication/basebackup.c:1848
 #, c-format
 msgid "symbolic link target too long for tar format: file name \"%s\", target \"%s\""
 msgstr "cible du lien symbolique trop long pour le format tar  : nom de fichier « %s », cible « %s »"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:232
+#: replication/libpqwalreceiver/libpqwalreceiver.c:227
+#, c-format
+msgid "could not clear search path: %s"
+msgstr "n'a pas pu effacer le search_path : %s"
+
+#: replication/libpqwalreceiver/libpqwalreceiver.c:251
 #, c-format
 msgid "invalid connection string syntax: %s"
 msgstr "syntaxe de la chaîne de connexion invalide : %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:256
+#: replication/libpqwalreceiver/libpqwalreceiver.c:275
 #, c-format
 msgid "could not parse connection string: %s"
 msgstr "n'a pas pu analyser la chaîne de connexion : %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:328
+#: replication/libpqwalreceiver/libpqwalreceiver.c:347
 #, c-format
 msgid "could not receive database system identifier and timeline ID from the primary server: %s"
 msgstr ""
 "n'a pas pu recevoir l'identifiant du système de bases de données et\n"
 "l'identifiant de la timeline à partir du serveur principal : %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:339 replication/libpqwalreceiver/libpqwalreceiver.c:557
+#: replication/libpqwalreceiver/libpqwalreceiver.c:358 replication/libpqwalreceiver/libpqwalreceiver.c:576
 #, c-format
 msgid "invalid response from primary server"
 msgstr "réponse invalide du serveur principal"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:340
+#: replication/libpqwalreceiver/libpqwalreceiver.c:359
 #, c-format
 msgid "Could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields."
 msgstr ""
 "N'a pas pu identifier le système : a récupéré %d lignes et %d champs,\n"
 "attendait %d lignes et %d champs (ou plus)."
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:413 replication/libpqwalreceiver/libpqwalreceiver.c:419 replication/libpqwalreceiver/libpqwalreceiver.c:444
+#: replication/libpqwalreceiver/libpqwalreceiver.c:432 replication/libpqwalreceiver/libpqwalreceiver.c:438 replication/libpqwalreceiver/libpqwalreceiver.c:463
 #, c-format
 msgid "could not start WAL streaming: %s"
 msgstr "n'a pas pu démarrer l'envoi des WAL : %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:467
+#: replication/libpqwalreceiver/libpqwalreceiver.c:486
 #, c-format
 msgid "could not send end-of-streaming message to primary: %s"
 msgstr "n'a pas pu transmettre le message de fin d'envoi de flux au primaire : %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:489
+#: replication/libpqwalreceiver/libpqwalreceiver.c:508
 #, c-format
 msgid "unexpected result set after end-of-streaming"
 msgstr "ensemble de résultats inattendu après la fin du flux de réplication"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:503
+#: replication/libpqwalreceiver/libpqwalreceiver.c:522
 #, c-format
 msgid "error while shutting down streaming COPY: %s"
 msgstr "erreur lors de l'arrêt de la copie en flux : %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:512
+#: replication/libpqwalreceiver/libpqwalreceiver.c:531
 #, c-format
 msgid "error reading result of streaming command: %s"
 msgstr "erreur lors de la lecture de la commande de flux : %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:520 replication/libpqwalreceiver/libpqwalreceiver.c:754
+#: replication/libpqwalreceiver/libpqwalreceiver.c:539 replication/libpqwalreceiver/libpqwalreceiver.c:773
 #, c-format
 msgid "unexpected result after CommandComplete: %s"
 msgstr "résultat inattendu après CommandComplete : %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:546
+#: replication/libpqwalreceiver/libpqwalreceiver.c:565
 #, c-format
 msgid "could not receive timeline history file from the primary server: %s"
 msgstr "n'a pas pu recevoir le fichier historique à partir du serveur principal : %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:558
+#: replication/libpqwalreceiver/libpqwalreceiver.c:577
 #, c-format
 msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields."
 msgstr "Attendait 1 ligne avec 2 champs, a obtenu %d lignes avec %d champs."
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:718 replication/libpqwalreceiver/libpqwalreceiver.c:769 replication/libpqwalreceiver/libpqwalreceiver.c:775
+#: replication/libpqwalreceiver/libpqwalreceiver.c:737 replication/libpqwalreceiver/libpqwalreceiver.c:788 replication/libpqwalreceiver/libpqwalreceiver.c:794
 #, c-format
 msgid "could not receive data from WAL stream: %s"
 msgstr "n'a pas pu recevoir des données du flux de WAL : %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:794
+#: replication/libpqwalreceiver/libpqwalreceiver.c:813
 #, c-format
 msgid "could not send data to WAL stream: %s"
 msgstr "n'a pas pu transmettre les données au flux WAL : %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:843
+#: replication/libpqwalreceiver/libpqwalreceiver.c:866
 #, c-format
 msgid "could not create replication slot \"%s\": %s"
 msgstr "n'a pas pu créer le slot de réplication « %s » : %s"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:877
+#: replication/libpqwalreceiver/libpqwalreceiver.c:911
 #, c-format
 msgid "invalid query response"
 msgstr "réponse à la requête invalide"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:878
+#: replication/libpqwalreceiver/libpqwalreceiver.c:912
 #, c-format
 msgid "Expected %d fields, got %d fields."
 msgstr "Attendait %d champs, a obtenu %d champs."
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:947
+#: replication/libpqwalreceiver/libpqwalreceiver.c:981
 #, c-format
 msgid "the query interface requires a database connection"
 msgstr "l'interface de la requête requiert une connexion à une base"
 
-#: replication/libpqwalreceiver/libpqwalreceiver.c:978
+#: replication/libpqwalreceiver/libpqwalreceiver.c:1012
 msgid "empty query"
 msgstr "requête vide"
 
-#: replication/logical/launcher.c:307
+#: replication/logical/launcher.c:295
 #, c-format
 msgid "starting logical replication worker for subscription \"%s\""
 msgstr "lancement du processus worker de réplication logique pour la souscription « %s »"
 
-#: replication/logical/launcher.c:314
+#: replication/logical/launcher.c:302
 #, c-format
 msgid "cannot start logical replication workers when max_replication_slots = 0"
 msgstr "ne peut pas démarrer les processus worker de la réplication logique quand max_replication_slots = 0"
 
-#: replication/logical/launcher.c:394
+#: replication/logical/launcher.c:382
 #, c-format
 msgid "out of logical replication worker slots"
 msgstr "plus de slots de processus worker pour la réplication logique"
 
-#: replication/logical/launcher.c:395
+#: replication/logical/launcher.c:383
 #, c-format
 msgid "You might need to increase max_logical_replication_workers."
 msgstr "Vous pourriez avoir besoin d'augmenter max_logical_replication_workers."
 
-#: replication/logical/launcher.c:450
+#: replication/logical/launcher.c:438
 #, c-format
 msgid "out of background worker slots"
 msgstr "plus de slots de processus en tâche de fond"
 
-#: replication/logical/launcher.c:451
+#: replication/logical/launcher.c:439
 #, c-format
 msgid "You might need to increase max_worker_processes."
 msgstr "Vous pourriez avoir besoin d'augmenter max_worker_processes."
 
-#: replication/logical/launcher.c:650
+#: replication/logical/launcher.c:638
 #, c-format
 msgid "logical replication worker slot %d is empty, cannot attach"
 msgstr "le slot %d du processus de réplication logique est vide, ne peut pas s'y attacher"
 
-#: replication/logical/launcher.c:659
+#: replication/logical/launcher.c:647
 #, c-format
 msgid "logical replication worker slot %d is already used by another worker, cannot attach"
 msgstr "le slot %d du processus de réplication logique est déjà utilisé par un autre processus, ne peut pas s'attacher"
 
-#: replication/logical/launcher.c:977
+#: replication/logical/launcher.c:951
 #, c-format
 msgid "logical replication launcher started"
 msgstr "lancement du processus de lancement de la réplication logique"
 
-#: replication/logical/logical.c:90
+#: replication/logical/logical.c:87
 #, c-format
 msgid "logical decoding requires wal_level >= logical"
 msgstr "le décodage logique requiert wal_level >= logical"
 
-#: replication/logical/logical.c:95
+#: replication/logical/logical.c:92
 #, c-format
 msgid "logical decoding requires a database connection"
 msgstr "le décodage logique requiert une connexion à une base"
 
-#: replication/logical/logical.c:113
+#: replication/logical/logical.c:110
 #, c-format
 msgid "logical decoding cannot be used while in recovery"
 msgstr "le décodage logique ne peut pas être utilisé lors de la restauration"
 
-#: replication/logical/logical.c:258 replication/logical/logical.c:396
+#: replication/logical/logical.c:258 replication/logical/logical.c:399
 #, c-format
 msgid "cannot use physical replication slot for logical decoding"
 msgstr "ne peut pas utiliser un slot de réplication physique pour le décodage logique"
 
-#: replication/logical/logical.c:263 replication/logical/logical.c:401
+#: replication/logical/logical.c:263 replication/logical/logical.c:404
 #, c-format
 msgid "replication slot \"%s\" was not created in this database"
 msgstr "le slot de réplication « %s » n'a pas été créé dans cette base de données"
@@ -18082,12 +18547,12 @@ msgstr "le slot de réplication « %s » n'a pas été créé dans cette base de
 msgid "cannot create logical replication slot in transaction that has performed writes"
 msgstr "ne peut pas créer un slot de réplication logique dans une transaction qui a fait des écritures"
 
-#: replication/logical/logical.c:441
+#: replication/logical/logical.c:444
 #, c-format
 msgid "starting logical decoding for slot \"%s\""
 msgstr "début du décodage logique pour le slot « %s »"
 
-#: replication/logical/logical.c:443
+#: replication/logical/logical.c:446
 #, c-format
 msgid "Streaming transactions committing after %X/%X, reading WAL from %X/%X."
 msgstr "Envoi des transactions validées après %X/%X, lecture des journaux à partir de %X/%X."
@@ -18102,660 +18567,686 @@ msgstr "slot « %s », plugin de sortie « %s », dans la fonction d'appel %s, a
 msgid "slot \"%s\", output plugin \"%s\", in the %s callback"
 msgstr "slot « %s », plugin de sortie « %s », dans la fonction d'appel %s"
 
-#: replication/logical/logicalfuncs.c:114 replication/slotfuncs.c:34
+#: replication/logical/logicalfuncs.c:104 replication/slotfuncs.c:34
 #, c-format
 msgid "must be superuser or replication role to use replication slots"
 msgstr ""
 "doit être un superutilisateur ou un rôle ayant l'attribut de réplication\n"
 "pour utiliser des slots de réplication"
 
-#: replication/logical/logicalfuncs.c:153
+#: replication/logical/logicalfuncs.c:134
 #, c-format
 msgid "slot name must not be null"
 msgstr "le nom du slot ne doit pas être NULL"
 
-#: replication/logical/logicalfuncs.c:169
+#: replication/logical/logicalfuncs.c:150
 #, c-format
 msgid "options array must not be null"
 msgstr "le tableau options ne doit pas être NULL"
 
-#: replication/logical/logicalfuncs.c:200
+#: replication/logical/logicalfuncs.c:181
 #, c-format
 msgid "array must be one-dimensional"
 msgstr "le tableau doit avoir une dimension"
 
-#: replication/logical/logicalfuncs.c:206
+#: replication/logical/logicalfuncs.c:187
 #, c-format
 msgid "array must not contain nulls"
 msgstr "le tableau ne doit pas contenir de valeurs NULL"
 
-#: replication/logical/logicalfuncs.c:222 utils/adt/json.c:2312 utils/adt/jsonb.c:1282
+#: replication/logical/logicalfuncs.c:203 utils/adt/json.c:1128 utils/adt/jsonb.c:1303
 #, c-format
 msgid "array must have even number of elements"
 msgstr "le tableau doit avoir un nombre pair d'éléments"
 
-#: replication/logical/logicalfuncs.c:269
+#: replication/logical/logicalfuncs.c:251
+#, c-format
+msgid "can no longer get changes from replication slot \"%s\""
+msgstr "ne peut plus obtenir de modifications à partir du slot de réplication « %s »"
+
+#: replication/logical/logicalfuncs.c:253 replication/slotfuncs.c:648
+#, c-format
+msgid "This slot has never previously reserved WAL, or has been invalidated."
+msgstr ""
+
+#: replication/logical/logicalfuncs.c:265
 #, c-format
 msgid "logical decoding output plugin \"%s\" produces binary output, but function \"%s\" expects textual data"
 msgstr "le plugin de sortie « %s » pour le décodage logique produit une sortie binaire, mais la fonction « %s » attend des données texte"
 
-#: replication/logical/origin.c:186
+#: replication/logical/origin.c:188
 #, c-format
 msgid "only superusers can query or manipulate replication origins"
 msgstr "seuls les super-utilisateurs peuvent lire ou manipuler les origines de réplication"
 
-#: replication/logical/origin.c:191
+#: replication/logical/origin.c:193
 #, c-format
 msgid "cannot query or manipulate replication origin when max_replication_slots = 0"
 msgstr "ne peut pas lire ou manipuler une originie de réplication logique quand max_replication_slots = 0"
 
-#: replication/logical/origin.c:196
+#: replication/logical/origin.c:198
 #, c-format
 msgid "cannot manipulate replication origins during recovery"
 msgstr "ne peut pas manipuler les origines de réplication lors d'une restauration"
 
-#: replication/logical/origin.c:231
+#: replication/logical/origin.c:233
 #, c-format
 msgid "replication origin \"%s\" does not exist"
 msgstr "l'origine de réplication « %s » n'existe pas"
 
-#: replication/logical/origin.c:322
+#: replication/logical/origin.c:324
 #, c-format
 msgid "could not find free replication origin OID"
 msgstr "n'a pas pu trouver d'OID d'origine de réplication libre"
 
-#: replication/logical/origin.c:370
+#: replication/logical/origin.c:372
 #, c-format
 msgid "could not drop replication origin with OID %d, in use by PID %d"
 msgstr "ne peut pas supprimer l'origine de réplication d'OID %d, utilisée par le PID %d"
 
-#: replication/logical/origin.c:462
+#: replication/logical/origin.c:464
 #, c-format
 msgid "replication origin with OID %u does not exist"
 msgstr "l'origine de réplication d'OID %u n'existe pas"
 
-#: replication/logical/origin.c:730
+#: replication/logical/origin.c:729
 #, c-format
 msgid "replication checkpoint has wrong magic %u instead of %u"
 msgstr "le checkpoint de réplication a le mauvais nombre magique (%u au lieu de %u)"
 
-#: replication/logical/origin.c:771
+#: replication/logical/origin.c:770
 #, c-format
 msgid "could not find free replication state, increase max_replication_slots"
 msgstr "n'a pas pu trouver d'état de réplication libre, augmentez max_replication_slots"
 
-#: replication/logical/origin.c:789
+#: replication/logical/origin.c:788
 #, c-format
 msgid "replication slot checkpoint has wrong checksum %u, expected %u"
 msgstr "le point de contrôle du slot de réplication à la mauvaise somme de contrôle %u, %u attendu"
 
-#: replication/logical/origin.c:917
+#: replication/logical/origin.c:916 replication/logical/origin.c:1102
 #, c-format
 msgid "replication origin with OID %d is already active for PID %d"
 msgstr "l'origine de réplication d'OID %d est déjà active pour le PID %d"
 
-#: replication/logical/origin.c:928 replication/logical/origin.c:1115
+#: replication/logical/origin.c:927 replication/logical/origin.c:1114
 #, c-format
 msgid "could not find free replication state slot for replication origin with OID %u"
 msgstr "n'a pas pu trouver de slot d'état de réplication libre pour l'origine de réplication d'OID %u"
 
-#: replication/logical/origin.c:930 replication/logical/origin.c:1117 replication/slot.c:1566
+#: replication/logical/origin.c:929 replication/logical/origin.c:1116 replication/slot.c:1762
 #, c-format
 msgid "Increase max_replication_slots and try again."
 msgstr "Augmentez max_replication_slots et recommencez."
 
-#: replication/logical/origin.c:1074
+#: replication/logical/origin.c:1073
 #, c-format
 msgid "cannot setup replication origin when one is already setup"
 msgstr "ne peut pas configurer l'origine de réplication si une origine existe déjà"
 
-#: replication/logical/origin.c:1103
-#, c-format
-msgid "replication origin %d is already active for PID %d"
-msgstr "l'origine de réplication %d est déjà active pour le PID %d"
-
-#: replication/logical/origin.c:1154 replication/logical/origin.c:1370 replication/logical/origin.c:1390
+#: replication/logical/origin.c:1153 replication/logical/origin.c:1369 replication/logical/origin.c:1389
 #, c-format
 msgid "no replication origin is configured"
 msgstr "aucune origine de réplication n'est configurée"
 
-#: replication/logical/origin.c:1237
+#: replication/logical/origin.c:1236
 #, c-format
 msgid "replication origin name \"%s\" is reserved"
 msgstr "le nom d'origine de réplication « %s » est réservé"
 
-#: replication/logical/origin.c:1239
+#: replication/logical/origin.c:1238
 #, c-format
 msgid "Origin names starting with \"pg_\" are reserved."
 msgstr "Les noms d'origine commençant par « pg_ » sont réservés."
 
-#: replication/logical/relation.c:255
+#: replication/logical/relation.c:302
 #, c-format
 msgid "logical replication target relation \"%s.%s\" does not exist"
 msgstr "la relation cible de la réplication logique « %s.%s » n'existe pas"
 
-#: replication/logical/relation.c:297
+#: replication/logical/relation.c:345
 #, c-format
 msgid "logical replication target relation \"%s.%s\" is missing some replicated columns"
 msgstr "il manque des colonnes répliquées dans la relation cible « %s.%s » de réplication logique"
 
-#: replication/logical/relation.c:337
+#: replication/logical/relation.c:385
 #, c-format
 msgid "logical replication target relation \"%s.%s\" uses system columns in REPLICA IDENTITY index"
 msgstr "la relation cible « %s.%s » de réplication logique utilise des colonnes systèmes dans l'index REPLICA IDENTITY"
 
-#: replication/logical/reorderbuffer.c:2507
+#: replication/logical/reorderbuffer.c:2663
 #, c-format
 msgid "could not write to data file for XID %u: %m"
 msgstr "n'a pas pu écrire dans le fichier pour le XID %u : %m"
 
-#: replication/logical/reorderbuffer.c:2600 replication/logical/reorderbuffer.c:2622
+#: replication/logical/reorderbuffer.c:2850 replication/logical/reorderbuffer.c:2875
 #, c-format
 msgid "could not read from reorderbuffer spill file: %m"
 msgstr "n'a pas pu lire le fichier « reorderbuffer spill » : %m"
 
-#: replication/logical/reorderbuffer.c:2604 replication/logical/reorderbuffer.c:2626
+#: replication/logical/reorderbuffer.c:2854 replication/logical/reorderbuffer.c:2879
 #, c-format
 msgid "could not read from reorderbuffer spill file: read %d instead of %u bytes"
 msgstr ""
 "n'a pas pu lire à partir du fichier « reorderbuffer spill » : a lu seulement %d octets\n"
 "sur %u"
 
-#: replication/logical/reorderbuffer.c:2849
+#: replication/logical/reorderbuffer.c:3114
 #, c-format
 msgid "could not remove file \"%s\" during removal of pg_replslot/%s/xid*: %m"
 msgstr "n'a pas pu supprimer le fichier « %s » pendant la suppression de pg_replslot/%s/xid* : %m"
 
-#: replication/logical/reorderbuffer.c:3319
+#: replication/logical/reorderbuffer.c:3606
 #, c-format
 msgid "could not read from file \"%s\": read %d instead of %d bytes"
 msgstr "n'a pas pu lire à partir du fichier « %s » : lu %d octets au lieu de %d octets"
 
-#: replication/logical/snapbuild.c:611
+#: replication/logical/snapbuild.c:606
 #, c-format
 msgid "initial slot snapshot too large"
 msgstr "snapshot du slot initial trop gros"
 
-#: replication/logical/snapbuild.c:665
+#: replication/logical/snapbuild.c:660
 #, c-format
 msgid "exported logical decoding snapshot: \"%s\" with %u transaction ID"
 msgid_plural "exported logical decoding snapshot: \"%s\" with %u transaction IDs"
 msgstr[0] "snapshot exporté pour le décodage logique : « %s » avec %u identifiant de transaction"
 msgstr[1] "snapshot exporté pour le décodage logique : « %s » avec %u identifiants de transaction"
 
-#: replication/logical/snapbuild.c:1270 replication/logical/snapbuild.c:1363 replication/logical/snapbuild.c:1917
+#: replication/logical/snapbuild.c:1265 replication/logical/snapbuild.c:1358 replication/logical/snapbuild.c:1912
 #, c-format
 msgid "logical decoding found consistent point at %X/%X"
 msgstr "le décodage logique a trouvé le point de cohérence à %X/%X"
 
-#: replication/logical/snapbuild.c:1272
+#: replication/logical/snapbuild.c:1267
 #, c-format
 msgid "There are no running transactions."
 msgstr "Il n'existe pas de transactions en cours."
 
-#: replication/logical/snapbuild.c:1314
+#: replication/logical/snapbuild.c:1309
 #, c-format
 msgid "logical decoding found initial starting point at %X/%X"
 msgstr "le décodage logique a trouvé le point de démarrage à %X/%X"
 
-#: replication/logical/snapbuild.c:1316 replication/logical/snapbuild.c:1340
+#: replication/logical/snapbuild.c:1311 replication/logical/snapbuild.c:1335
 #, c-format
 msgid "Waiting for transactions (approximately %d) older than %u to end."
 msgstr "En attente de transactions (approximativement %d) plus anciennes que %u pour terminer."
 
-#: replication/logical/snapbuild.c:1338
+#: replication/logical/snapbuild.c:1333
 #, c-format
 msgid "logical decoding found initial consistent point at %X/%X"
 msgstr "le décodage logique a trouvé le point de cohérence initial à %X/%X"
 
-#: replication/logical/snapbuild.c:1365
+#: replication/logical/snapbuild.c:1360
 #, c-format
 msgid "There are no old transactions anymore."
 msgstr "Il n'existe plus d'anciennes transactions."
 
-#: replication/logical/snapbuild.c:1759
+#: replication/logical/snapbuild.c:1754
 #, c-format
 msgid "snapbuild state file \"%s\" has wrong magic number: %u instead of %u"
 msgstr "le fichier d'état snapbuild « %s » a le nombre magique: %u au lieu de %u"
 
-#: replication/logical/snapbuild.c:1765
+#: replication/logical/snapbuild.c:1760
 #, c-format
 msgid "snapbuild state file \"%s\" has unsupported version: %u instead of %u"
 msgstr "le fichier d'état snapbuild « %s » a une version non supportée : %u au lieu de %u"
 
-#: replication/logical/snapbuild.c:1864
+#: replication/logical/snapbuild.c:1859
 #, c-format
 msgid "checksum mismatch for snapbuild state file \"%s\": is %u, should be %u"
 msgstr ""
 "différence de somme de contrôle pour lefichier d'état snapbuild %s :\n"
 "est %u, devrait être %u"
 
-#: replication/logical/snapbuild.c:1919
+#: replication/logical/snapbuild.c:1914
 #, c-format
 msgid "Logical decoding will begin using saved snapshot."
 msgstr "Le décodage logique commencera en utilisant un snapshot sauvegardé."
 
-#: replication/logical/snapbuild.c:1991
+#: replication/logical/snapbuild.c:1986
 #, c-format
 msgid "could not parse file name \"%s\""
 msgstr "n'a pas pu analyser le mode du fichier « %s »"
 
-#: replication/logical/tablesync.c:139
+#: replication/logical/tablesync.c:132
 #, c-format
 msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has finished"
 msgstr "le worker de synchronisation de table en réplication logique pour la souscription « %s », table « %s », a terminé"
 
-#: replication/logical/tablesync.c:672
+#: replication/logical/tablesync.c:664
 #, c-format
 msgid "could not fetch table info for table \"%s.%s\" from publisher: %s"
 msgstr "n'a pas pu récupérer l'information sur la table « %s.%s » à partir du publieur : %s"
 
-#: replication/logical/tablesync.c:678
+#: replication/logical/tablesync.c:670
 #, c-format
 msgid "table \"%s.%s\" not found on publisher"
 msgstr "table « %s.%s » non trouvée sur le publieur"
 
-#: replication/logical/tablesync.c:710
+#: replication/logical/tablesync.c:704
 #, c-format
 msgid "could not fetch table info for table \"%s.%s\": %s"
 msgstr "n'a pas pu récupérer les informations sur la table « %s.%s » : %s"
 
-#: replication/logical/tablesync.c:780
+#: replication/logical/tablesync.c:791
 #, c-format
 msgid "could not start initial contents copy for table \"%s.%s\": %s"
 msgstr "n'a pas pu lancer la copie initiale du contenu de la table « %s.%s » : %s"
 
-#: replication/logical/tablesync.c:894
+#: replication/logical/tablesync.c:905
 #, c-format
 msgid "table copy could not start transaction on publisher"
 msgstr "la copie de table n'a pas pu démarrer la transaction sur le publieur"
 
-#: replication/logical/tablesync.c:916
+#: replication/logical/tablesync.c:927
 #, c-format
 msgid "table copy could not finish transaction on publisher"
 msgstr "la copie de table n'a pas pu finir la transaction sur le publieur"
 
-#: replication/logical/worker.c:290
+#: replication/logical/worker.c:313
 #, c-format
 msgid "processing remote data for replication target relation \"%s.%s\" column \"%s\", remote type %s, local type %s"
 msgstr "traitement des données distantes pour la relation cible « %s.%s » de réplication logique, colonne « %s », type distant %s, type local %s"
 
-#: replication/logical/worker.c:511
+#: replication/logical/worker.c:552
 #, c-format
 msgid "ORIGIN message sent out of order"
 msgstr "message ORIGIN en désordre"
 
-#: replication/logical/worker.c:645
+#: replication/logical/worker.c:702
 #, c-format
 msgid "publisher did not send replica identity column expected by the logical replication target relation \"%s.%s\""
 msgstr "le publieur n'a pas envoyé la colonne d'identité du réplicat attendue par la relation cible « %s.%s » de la réplication logique"
 
-#: replication/logical/worker.c:652
+#: replication/logical/worker.c:709
 #, c-format
 msgid "logical replication target relation \"%s.%s\" has neither REPLICA IDENTITY index nor PRIMARY KEY and published relation does not have REPLICA IDENTITY FULL"
 msgstr "la relation cible « %s.%s » de réplication logique n'a ni un index REPLICA IDENTITY ni une clé primaire, et la relation publiée n'a pas REPLICA IDENTITY FULL"
 
-#: replication/logical/worker.c:993
+#: replication/logical/worker.c:1394
 #, c-format
 msgid "invalid logical replication message type \"%c\""
 msgstr "type de message « %c » de la réplication logique invalide"
 
-#: replication/logical/worker.c:1134
+#: replication/logical/worker.c:1537
 #, c-format
 msgid "data stream from publisher has ended"
 msgstr "le flux de données provenant du publieur s'est terminé"
 
-#: replication/logical/worker.c:1289
+#: replication/logical/worker.c:1692
 #, c-format
 msgid "terminating logical replication worker due to timeout"
 msgstr "arrêt du processus worker de la réplication logique suite à l'expiration du délai de réplication"
 
-#: replication/logical/worker.c:1437
+#: replication/logical/worker.c:1837
 #, c-format
 msgid "logical replication apply worker for subscription \"%s\" will stop because the subscription was removed"
 msgstr "le processus apply de réplication logique pour la souscription « %s » s'arrêtera car la souscription a été supprimée"
 
-#: replication/logical/worker.c:1451
+#: replication/logical/worker.c:1851
 #, c-format
 msgid "logical replication apply worker for subscription \"%s\" will stop because the subscription was disabled"
 msgstr "le processus apply de réplication logique pour la souscription « %s » s'arrêtera car la souscription a été désactivée"
 
-#: replication/logical/worker.c:1465
+#: replication/logical/worker.c:1865
 #, c-format
 msgid "logical replication apply worker for subscription \"%s\" will restart because the connection information was changed"
 msgstr "le processus apply de réplication logique pour la souscription « %s » redémarrera car la souscription a été modifiée"
 
-#: replication/logical/worker.c:1479
+#: replication/logical/worker.c:1879
 #, c-format
 msgid "logical replication apply worker for subscription \"%s\" will restart because subscription was renamed"
 msgstr "le processus apply de réplication logique pour la souscription « %s » redémarrera car la souscription a été renommée"
 
-#: replication/logical/worker.c:1496
+#: replication/logical/worker.c:1896
 #, c-format
 msgid "logical replication apply worker for subscription \"%s\" will restart because the replication slot name was changed"
 msgstr "le processus apply de réplication logique pour la souscription « %s » redémarrera car le nom du slot de réplication a été modifiée"
 
-#: replication/logical/worker.c:1510
+#: replication/logical/worker.c:1910
 #, c-format
 msgid "logical replication apply worker for subscription \"%s\" will restart because subscription's publications were changed"
 msgstr "le processus apply de réplication logique pour la souscription « %s » redémarrera car les publications ont été modifiées"
 
-#: replication/logical/worker.c:1614
+#: replication/logical/worker.c:2006
 #, c-format
 msgid "logical replication apply worker for subscription %u will not start because the subscription was removed during startup"
 msgstr "le processus apply de réplication logique pour la souscription %u ne démarrera pas car la souscription a été désactivée au démarrage"
 
-#: replication/logical/worker.c:1626
+#: replication/logical/worker.c:2018
 #, c-format
 msgid "logical replication apply worker for subscription \"%s\" will not start because the subscription was disabled during startup"
 msgstr "le processus apply de réplication logique pour la souscription « %s » ne démarrera pas car la souscription a été désactivée au démarrage"
 
-#: replication/logical/worker.c:1644
+#: replication/logical/worker.c:2036
 #, c-format
 msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started"
 msgstr "le processus de synchronisation des tables en réplication logique pour la souscription « %s », table « %s » a démarré"
 
-#: replication/logical/worker.c:1648
+#: replication/logical/worker.c:2040
 #, c-format
 msgid "logical replication apply worker for subscription \"%s\" has started"
 msgstr "le processus apply de réplication logique pour la souscription « %s » a démarré"
 
-#: replication/logical/worker.c:1687
+#: replication/logical/worker.c:2079
 #, c-format
 msgid "subscription has no replication slot set"
 msgstr "la souscription n'a aucun ensemble de slot de réplication"
 
-#: replication/pgoutput/pgoutput.c:117
+#: replication/pgoutput/pgoutput.c:147
 #, c-format
 msgid "invalid proto_version"
 msgstr "proto_version invalide"
 
-#: replication/pgoutput/pgoutput.c:122
+#: replication/pgoutput/pgoutput.c:152
 #, c-format
 msgid "proto_version \"%s\" out of range"
 msgstr "proto_version « %s » en dehors des limites"
 
-#: replication/pgoutput/pgoutput.c:139
+#: replication/pgoutput/pgoutput.c:169
 #, c-format
 msgid "invalid publication_names syntax"
 msgstr "syntaxe publication_names invalide"
 
-#: replication/pgoutput/pgoutput.c:181
+#: replication/pgoutput/pgoutput.c:211
 #, c-format
 msgid "client sent proto_version=%d but we only support protocol %d or lower"
 msgstr "le client a envoyé proto_version=%d mais nous supportons seulement le protocole %d et les protocoles antérieurs"
 
-#: replication/pgoutput/pgoutput.c:187
+#: replication/pgoutput/pgoutput.c:217
 #, c-format
 msgid "client sent proto_version=%d but we only support protocol %d or higher"
 msgstr "le client a envoyé proto_version=%d mais nous supportons seulement le protocole %d et les protocoles supérieurs"
 
-#: replication/pgoutput/pgoutput.c:193
+#: replication/pgoutput/pgoutput.c:223
 #, c-format
 msgid "publication_names parameter missing"
 msgstr "paramètre publication_names manquant"
 
-#: replication/slot.c:182
+#: replication/slot.c:183
 #, c-format
 msgid "replication slot name \"%s\" is too short"
 msgstr "le nom du slot de réplication « %s » est trop court"
 
-#: replication/slot.c:191
+#: replication/slot.c:192
 #, c-format
 msgid "replication slot name \"%s\" is too long"
 msgstr "le nom du slot de réplication « %s » est trop long"
 
-#: replication/slot.c:204
+#: replication/slot.c:205
 #, c-format
 msgid "replication slot name \"%s\" contains invalid character"
 msgstr "le nom du slot de réplication « %s » contient un caractère invalide"
 
-#: replication/slot.c:206
+#: replication/slot.c:207
 #, c-format
 msgid "Replication slot names may only contain lower case letters, numbers, and the underscore character."
 msgstr "Les noms des slots de réplication peuvent seulement contenir des lettres, des nombres et des tirets bas."
 
-#: replication/slot.c:253
+#: replication/slot.c:254
 #, c-format
 msgid "replication slot \"%s\" already exists"
 msgstr "le slot de réplication « %s » existe déjà"
 
-#: replication/slot.c:263
+#: replication/slot.c:264
 #, c-format
 msgid "all replication slots are in use"
 msgstr "tous les slots de réplication sont utilisés"
 
-#: replication/slot.c:264
+#: replication/slot.c:265
 #, c-format
 msgid "Free one or increase max_replication_slots."
 msgstr "Libérez un slot ou augmentez max_replication_slots."
 
-#: replication/slot.c:387 replication/slotfuncs.c:663
+#: replication/slot.c:407 replication/slotfuncs.c:760
 #, c-format
 msgid "replication slot \"%s\" does not exist"
 msgstr "le slot de réplication « %s » n'existe pas"
 
-#: replication/slot.c:398 replication/slot.c:947
+#: replication/slot.c:445 replication/slot.c:1006
 #, c-format
 msgid "replication slot \"%s\" is active for PID %d"
 msgstr "le slot de réplication « %s » est actif pour le PID %d"
 
-#: replication/slot.c:631 replication/slot.c:1139 replication/slot.c:1501
+#: replication/slot.c:683 replication/slot.c:1314 replication/slot.c:1697
 #, c-format
 msgid "could not remove directory \"%s\""
 msgstr "n'a pas pu supprimer le répertoire « %s »"
 
-#: replication/slot.c:982
+#: replication/slot.c:1041
 #, c-format
 msgid "replication slots can only be used if max_replication_slots > 0"
 msgstr "les slots de réplications peuvent seulement être utilisés si max_replication_slots > 0"
 
-#: replication/slot.c:987
+#: replication/slot.c:1046
 #, c-format
 msgid "replication slots can only be used if wal_level >= replica"
 msgstr "les slots de réplication peuvent seulement être utilisés si wal_level >= replica"
 
-#: replication/slot.c:1439
+#: replication/slot.c:1202
+#, fuzzy, c-format
+#| msgid "terminating walsender process due to replication timeout"
+msgid "terminating process %d because replication slot \"%s\" is too far behind"
+msgstr "arrêt du processus walreceiver suite à l'expiration du délai de réplication"
+
+#: replication/slot.c:1221
+#, c-format
+msgid "invalidating slot \"%s\" because its restart_lsn %X/%X exceeds max_slot_wal_keep_size"
+msgstr ""
+
+#: replication/slot.c:1635
 #, c-format
 msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u"
 msgstr "le fichier « %s » du slot de réplication a le nombre magique %u au lieu de %u"
 
-#: replication/slot.c:1446
+#: replication/slot.c:1642
 #, c-format
 msgid "replication slot file \"%s\" has unsupported version %u"
 msgstr "le fichier « %s » du slot de réplication a une version %u non supportée"
 
-#: replication/slot.c:1453
+#: replication/slot.c:1649
 #, c-format
 msgid "replication slot file \"%s\" has corrupted length %u"
 msgstr "le slot de réplication « %s » a une taille %u corrompue"
 
-#: replication/slot.c:1489
+#: replication/slot.c:1685
 #, c-format
 msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u"
 msgstr "différence de somme de contrôle pour le fichier de slot de réplication « %s » : est %u, devrait être %u"
 
-#: replication/slot.c:1523
+#: replication/slot.c:1719
 #, c-format
 msgid "logical replication slot \"%s\" exists, but wal_level < logical"
 msgstr "le slot de réplication logique « %s » existe mais, wal_level < logical"
 
-#: replication/slot.c:1525
+#: replication/slot.c:1721
 #, c-format
 msgid "Change wal_level to be logical or higher."
 msgstr "Modifiez wal_level pour valoir logical ou supérieur."
 
-#: replication/slot.c:1529
+#: replication/slot.c:1725
 #, c-format
 msgid "physical replication slot \"%s\" exists, but wal_level < replica"
 msgstr "le slot de réplication physique « %s » existe mais, wal_level < replica"
 
-#: replication/slot.c:1531
+#: replication/slot.c:1727
 #, c-format
 msgid "Change wal_level to be replica or higher."
 msgstr "Modifiez wal_level pour valoir replica ou supérieur."
 
-#: replication/slot.c:1565
+#: replication/slot.c:1761
 #, c-format
 msgid "too many replication slots active before shutdown"
 msgstr "trop de slots de réplication actifs avant l'arrêt"
 
-#: replication/slotfuncs.c:526
+#: replication/slotfuncs.c:624
 #, c-format
 msgid "invalid target WAL LSN"
 msgstr "WAL LSN cible invalide"
 
-#: replication/slotfuncs.c:548
+#: replication/slotfuncs.c:646
 #, c-format
-msgid "cannot advance replication slot that has not previously reserved WAL"
-msgstr "impossible d'avancer un slot de réplication qui n'a pas auparavant réservé de WAL"
+msgid "replication slot \"%s\" cannot be advanced"
+msgstr "le slot de réplication « %s » ne peut pas être avancé"
 
-#: replication/slotfuncs.c:564
+#: replication/slotfuncs.c:664
 #, c-format
 msgid "cannot advance replication slot to %X/%X, minimum is %X/%X"
 msgstr "impossible d'avancer le slot de réplication vers %X/%X, le minimum est %X/%X"
 
-#: replication/slotfuncs.c:670
+#: replication/slotfuncs.c:772
 #, c-format
 msgid "cannot copy physical replication slot \"%s\" as a logical replication slot"
 msgstr "ne peut pas copier le slot de réplication physique « %s » en tant que slot de réplication logique"
 
-#: replication/slotfuncs.c:672
+#: replication/slotfuncs.c:774
 #, c-format
 msgid "cannot copy logical replication slot \"%s\" as a physical replication slot"
 msgstr "ne peut pas copier le slot de réplication logique « %s » en tant que slot de réplication physique"
 
-#: replication/slotfuncs.c:681
+#: replication/slotfuncs.c:781
 #, c-format
 msgid "cannot copy a replication slot that doesn't reserve WAL"
 msgstr "ne peut pas copier un slot de réplication qui n'a pas auparavant réservé de WAL"
 
-#: replication/slotfuncs.c:746
+#: replication/slotfuncs.c:857
 #, c-format
 msgid "could not copy replication slot \"%s\""
 msgstr "n'a pas pu copier le slot de réplication « %s »"
 
-#: replication/slotfuncs.c:748
+#: replication/slotfuncs.c:859
 #, c-format
 msgid "The source replication slot was modified incompatibly during the copy operation."
 msgstr "Le slot de réplication source a été modifié de manière incompatible durant l'opération de copie."
 
-#: replication/syncrep.c:248
+#: replication/slotfuncs.c:865
+#, c-format
+msgid "cannot copy unfinished logical replication slot \"%s\""
+msgstr "ne peut pas copier le slot de réplication logique non terminé « %s »"
+
+#: replication/slotfuncs.c:867
+#, c-format
+msgid "Retry when the source replication slot's confirmed_flush_lsn is valid."
+msgstr ""
+
+#: replication/syncrep.c:257
 #, c-format
 msgid "canceling the wait for synchronous replication and terminating connection due to administrator command"
 msgstr ""
 "annulation de l'attente pour la réplication synchrone et arrêt des connexions\n"
 "suite à la demande de l'administrateur"
 
-#: replication/syncrep.c:249 replication/syncrep.c:266
+#: replication/syncrep.c:258 replication/syncrep.c:275
 #, c-format
 msgid "The transaction has already committed locally, but might not have been replicated to the standby."
 msgstr ""
 "La transaction a déjà enregistré les données localement, mais il se peut que\n"
 "cela n'ait pas été répliqué sur le serveur en standby."
 
-#: replication/syncrep.c:265
+#: replication/syncrep.c:274
 #, c-format
 msgid "canceling wait for synchronous replication due to user request"
 msgstr "annulation de l'attente pour la réplication synchrone à la demande de l'utilisateur"
 
-#: replication/syncrep.c:398
+#: replication/syncrep.c:416
 #, c-format
 msgid "standby \"%s\" now has synchronous standby priority %u"
 msgstr ""
 "le serveur « %s » en standby a maintenant une priorité %u en tant que standby\n"
 "synchrone"
 
-#: replication/syncrep.c:461
+#: replication/syncrep.c:483
 #, c-format
 msgid "standby \"%s\" is now a synchronous standby with priority %u"
 msgstr "le serveur « %s » en standby est maintenant un serveur standby synchrone de priorité %u"
 
-#: replication/syncrep.c:465
+#: replication/syncrep.c:487
 #, c-format
 msgid "standby \"%s\" is now a candidate for quorum synchronous standby"
 msgstr "le serveur standby « %s » est maintenant un candidat dans le quorum des standbys synchrones"
 
-#: replication/syncrep.c:1165
+#: replication/syncrep.c:1034
 #, c-format
 msgid "synchronous_standby_names parser failed"
 msgstr "l'analyseur du paramètre synchronous_standby_names a échoué"
 
-#: replication/syncrep.c:1171
+#: replication/syncrep.c:1040
 #, c-format
 msgid "number of synchronous standbys (%d) must be greater than zero"
 msgstr "le nombre de standbys synchrones (%d) doit être supérieur à zéro"
 
-#: replication/walreceiver.c:160
+#: replication/walreceiver.c:171
 #, c-format
 msgid "terminating walreceiver process due to administrator command"
 msgstr "arrêt du processus walreceiver suite à la demande de l'administrateur"
 
-#: replication/walreceiver.c:276
+#: replication/walreceiver.c:297
 #, c-format
 msgid "could not connect to the primary server: %s"
 msgstr "n'a pas pu se connecter au serveur principal : %s"
 
-#: replication/walreceiver.c:322
+#: replication/walreceiver.c:343
 #, c-format
 msgid "database system identifier differs between the primary and standby"
 msgstr ""
 "l'identifiant du système de bases de données diffère entre le serveur principal\n"
 "et le serveur en attente"
 
-#: replication/walreceiver.c:323
+#: replication/walreceiver.c:344
 #, c-format
 msgid "The primary's identifier is %s, the standby's identifier is %s."
 msgstr ""
 "L'identifiant du serveur principal est %s, l'identifiant du serveur en attente\n"
 "est %s."
 
-#: replication/walreceiver.c:333
+#: replication/walreceiver.c:354
 #, c-format
 msgid "highest timeline %u of the primary is behind recovery timeline %u"
 msgstr "la plus grande timeline %u du serveur principal est derrière la timeline de restauration %u"
 
-#: replication/walreceiver.c:369
+#: replication/walreceiver.c:408
 #, c-format
 msgid "started streaming WAL from primary at %X/%X on timeline %u"
 msgstr "démarré le flux des journaux depuis le principal à %X/%X sur la timeline %u"
 
-#: replication/walreceiver.c:374
+#: replication/walreceiver.c:413
 #, c-format
 msgid "restarted WAL streaming at %X/%X on timeline %u"
 msgstr "recommence le flux WAL à %X/%X sur la timeline %u"
 
-#: replication/walreceiver.c:403
+#: replication/walreceiver.c:442
 #, c-format
 msgid "cannot continue WAL streaming, recovery has already ended"
 msgstr "ne peut pas continuer le flux de journaux de transactions, la récupération est déjà terminée"
 
-#: replication/walreceiver.c:440
+#: replication/walreceiver.c:479
 #, c-format
 msgid "replication terminated by primary server"
 msgstr "réplication terminée par le serveur primaire"
 
-#: replication/walreceiver.c:441
+#: replication/walreceiver.c:480
 #, c-format
 msgid "End of WAL reached on timeline %u at %X/%X."
 msgstr "Fin du WAL atteint sur la timeline %u à %X/%X."
 
-#: replication/walreceiver.c:529
+#: replication/walreceiver.c:568
 #, c-format
 msgid "terminating walreceiver due to timeout"
 msgstr "arrêt du processus walreceiver suite à l'expiration du délai de réplication"
 
-#: replication/walreceiver.c:567
+#: replication/walreceiver.c:606
 #, c-format
 msgid "primary server contains no more WAL on requested timeline %u"
 msgstr "le serveur principal ne contient plus de WAL sur la timeline %u demandée"
 
-#: replication/walreceiver.c:582 replication/walreceiver.c:922
+#: replication/walreceiver.c:622 replication/walreceiver.c:929
 #, c-format
 msgid "could not close log segment %s: %m"
 msgstr "n'a pas pu fermer le journal de transactions %s : %m"
 
-#: replication/walreceiver.c:700
+#: replication/walreceiver.c:742
 #, c-format
 msgid "fetching timeline history file for timeline %u from primary server"
 msgstr "récupération du fichier historique pour la timeline %u à partir du serveur principal"
@@ -18765,128 +19256,138 @@ msgstr "récupération du fichier historique pour la timeline %u à partir du se
 msgid "could not write to log segment %s at offset %u, length %lu: %m"
 msgstr "n'a pas pu écrire le journal de transactions %s au décalage %u, longueur %lu : %m"
 
-#: replication/walsender.c:497
+#: replication/walsender.c:523 storage/smgr/md.c:1291
+#, c-format
+msgid "could not seek to end of file \"%s\": %m"
+msgstr "n'a pas pu trouver la fin du fichier « %s » : %m"
+
+#: replication/walsender.c:527
 #, c-format
 msgid "could not seek to beginning of file \"%s\": %m"
 msgstr "n'a pas pu se déplacer au début du fichier « %s » : %m"
 
-#: replication/walsender.c:548
+#: replication/walsender.c:578
 #, c-format
 msgid "IDENTIFY_SYSTEM has not been run before START_REPLICATION"
 msgstr "IDENTIFY_SYSTEM n'a pas été exécuté avant START_REPLICATION"
 
-#: replication/walsender.c:565
+#: replication/walsender.c:607
 #, c-format
 msgid "cannot use a logical replication slot for physical replication"
 msgstr "ne peut pas utiliser un slot de réplication logique pour une réplication physique"
 
-#: replication/walsender.c:628
+#: replication/walsender.c:676
 #, c-format
 msgid "requested starting point %X/%X on timeline %u is not in this server's history"
 msgstr "le point de reprise %X/%X de la timeline %u n'est pas dans l'historique du serveur"
 
-#: replication/walsender.c:632
+#: replication/walsender.c:680
 #, c-format
 msgid "This server's history forked from timeline %u at %X/%X."
 msgstr "L'historique du serveur a changé à partir de la timeline %u à %X/%X."
 
-#: replication/walsender.c:677
+#: replication/walsender.c:725
 #, c-format
 msgid "requested starting point %X/%X is ahead of the WAL flush position of this server %X/%X"
 msgstr "le point de reprise requis %X/%X est devant la position de vidage des WAL de ce serveur %X/%X"
 
 #. translator: %s is a CREATE_REPLICATION_SLOT statement
-#: replication/walsender.c:907
+#: replication/walsender.c:976
 #, c-format
 msgid "%s must not be called inside a transaction"
 msgstr "%s ne doit pas être appelé depuis une transaction"
 
 #. translator: %s is a CREATE_REPLICATION_SLOT statement
-#: replication/walsender.c:917
+#: replication/walsender.c:986
 #, c-format
 msgid "%s must be called inside a transaction"
 msgstr "%s doit être appelé au sein d'une transaction"
 
 #. translator: %s is a CREATE_REPLICATION_SLOT statement
-#: replication/walsender.c:923
+#: replication/walsender.c:992
 #, c-format
 msgid "%s must be called in REPEATABLE READ isolation mode transaction"
 msgstr "%s doit être appelé dans le niveau d'isolation REPEATABLE READ"
 
 #. translator: %s is a CREATE_REPLICATION_SLOT statement
-#: replication/walsender.c:929
+#: replication/walsender.c:998
 #, c-format
 msgid "%s must be called before any query"
 msgstr "%s doit être appelé avant toute requête"
 
 #. translator: %s is a CREATE_REPLICATION_SLOT statement
-#: replication/walsender.c:935
+#: replication/walsender.c:1004
 #, c-format
 msgid "%s must not be called in a subtransaction"
 msgstr "%s ne doit pas être appelé depuis une sous-transaction"
 
-#: replication/walsender.c:1082
+#: replication/walsender.c:1148
+#, c-format
+msgid "cannot read from logical replication slot \"%s\""
+msgstr "ne peut pas lire à partir du slot de réplication logique « %s »"
+
+#: replication/walsender.c:1150
+#, c-format
+msgid "This slot has been invalidated because it exceeded the maximum reserved size."
+msgstr ""
+
+#: replication/walsender.c:1160
 #, c-format
 msgid "terminating walsender process after promotion"
 msgstr "arrêt du processus walreceiver suite promotion"
 
-#: replication/walsender.c:1454
+#: replication/walsender.c:1534
 #, c-format
 msgid "cannot execute new commands while WAL sender is in stopping mode"
 msgstr "ne peut pas exécuter de nouvelles commandes alors que le walsender est en mode d'arrêt"
 
-#: replication/walsender.c:1487
+#: replication/walsender.c:1567
 #, c-format
 msgid "received replication command: %s"
 msgstr "commande de réplication reçu : %s"
 
-#: replication/walsender.c:1503 tcop/fastpath.c:279 tcop/postgres.c:1103 tcop/postgres.c:1426 tcop/postgres.c:1684 tcop/postgres.c:2077 tcop/postgres.c:2450 tcop/postgres.c:2529
+#: replication/walsender.c:1583 tcop/fastpath.c:279 tcop/postgres.c:1103 tcop/postgres.c:1455 tcop/postgres.c:1716 tcop/postgres.c:2174 tcop/postgres.c:2535 tcop/postgres.c:2614
 #, c-format
 msgid "current transaction is aborted, commands ignored until end of transaction block"
 msgstr ""
 "la transaction est annulée, les commandes sont ignorées jusqu'à la fin du bloc\n"
 "de la transaction"
 
-#: replication/walsender.c:1571
+#: replication/walsender.c:1669
 #, c-format
 msgid "cannot execute SQL commands in WAL sender for physical replication"
 msgstr "ne peut pas exécuter des commandes SQL dans le walsender pour la réplication physique"
 
-#: replication/walsender.c:1619 replication/walsender.c:1635
+#: replication/walsender.c:1714 replication/walsender.c:1730
 #, c-format
 msgid "unexpected EOF on standby connection"
 msgstr "fin de fichier (EOF) inattendue de la connexion du serveur en attente"
 
-#: replication/walsender.c:1649
+#: replication/walsender.c:1744
 #, c-format
 msgid "unexpected standby message type \"%c\", after receiving CopyDone"
 msgstr "type de message standby « %c » inattendu, après avoir reçu CopyDone"
 
-#: replication/walsender.c:1687
+#: replication/walsender.c:1782
 #, c-format
 msgid "invalid standby message type \"%c\""
 msgstr "type de message « %c » invalide pour le serveur en standby"
 
-#: replication/walsender.c:1728
+#: replication/walsender.c:1823
 #, c-format
 msgid "unexpected message type \"%c\""
 msgstr "type de message « %c » inattendu"
 
-#: replication/walsender.c:2146
+#: replication/walsender.c:2241
 #, c-format
 msgid "terminating walsender process due to replication timeout"
 msgstr "arrêt du processus walreceiver suite à l'expiration du délai de réplication"
 
-#: replication/walsender.c:2223
+#: replication/walsender.c:2318
 #, c-format
 msgid "\"%s\" has now caught up with upstream server"
 msgstr "« %s » a maintenant rattrapé le serveur en amont"
 
-#: replication/walsender.c:2482
-#, c-format
-msgid "could not read from log segment %s, offset %u, length %zu: %m"
-msgstr "n'a pas pu lire le segment %s du journal de transactions, décalage %u, longueur %zu : %m"
-
 #: rewrite/rewriteDefine.c:112 rewrite/rewriteDefine.c:989
 #, c-format
 msgid "rule \"%s\" for relation \"%s\" already exists"
@@ -19098,424 +19599,411 @@ msgstr "la règle « %s » de la relation « %s » n'existe pas"
 msgid "renaming an ON SELECT rule is not allowed"
 msgstr "le renommage d'une règle ON SELECT n'est pas autorisé"
 
-#: rewrite/rewriteHandler.c:544
+#: rewrite/rewriteHandler.c:545
 #, c-format
 msgid "WITH query name \"%s\" appears in both a rule action and the query being rewritten"
 msgstr "Le nom de la requête WITH « %s » apparaît à la fois dans l'action d'une règle et dans la requête en cours de ré-écriture"
 
-#: rewrite/rewriteHandler.c:604
+#: rewrite/rewriteHandler.c:605
 #, c-format
 msgid "cannot have RETURNING lists in multiple rules"
 msgstr "ne peut pas avoir des listes RETURNING dans plusieurs règles"
 
-#: rewrite/rewriteHandler.c:813 rewrite/rewriteHandler.c:825
+#: rewrite/rewriteHandler.c:816 rewrite/rewriteHandler.c:828
 #, c-format
 msgid "cannot insert into column \"%s\""
 msgstr "ne peut pas insérer dans la colonne « %s »"
 
-#: rewrite/rewriteHandler.c:814 rewrite/rewriteHandler.c:836
+#: rewrite/rewriteHandler.c:817 rewrite/rewriteHandler.c:839
 #, c-format
 msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS."
 msgstr "La colonne « %s » est une colonne d'identité définie comme GENERATED ALWAYS."
 
-#: rewrite/rewriteHandler.c:816
+#: rewrite/rewriteHandler.c:819
 #, c-format
 msgid "Use OVERRIDING SYSTEM VALUE to override."
 msgstr "Utilisez OVERRIDING SYSTEM VALUE pour surcharger."
 
-#: rewrite/rewriteHandler.c:835 rewrite/rewriteHandler.c:842
+#: rewrite/rewriteHandler.c:838 rewrite/rewriteHandler.c:845
 #, c-format
 msgid "column \"%s\" can only be updated to DEFAULT"
 msgstr "la colonne « %s » peut seulement être mise à jour en DEFAULT"
 
-#: rewrite/rewriteHandler.c:1011 rewrite/rewriteHandler.c:1029
+#: rewrite/rewriteHandler.c:1014 rewrite/rewriteHandler.c:1032
 #, c-format
 msgid "multiple assignments to same column \"%s\""
 msgstr "affectations multiples pour la même colonne « %s »"
 
-#: rewrite/rewriteHandler.c:2059
+#: rewrite/rewriteHandler.c:2062
 #, c-format
 msgid "infinite recursion detected in policy for relation \"%s\""
 msgstr "récursion infinie détectée dans la politique pour la relation « %s »"
 
-#: rewrite/rewriteHandler.c:2379
+#: rewrite/rewriteHandler.c:2382
 msgid "Junk view columns are not updatable."
 msgstr "Les colonnes « junk » des vues ne sont pas automatiquement disponibles en écriture."
 
-#: rewrite/rewriteHandler.c:2384
+#: rewrite/rewriteHandler.c:2387
 msgid "View columns that are not columns of their base relation are not updatable."
 msgstr "Les colonnes des vues qui ne font pas référence à des colonnes de la relation de base ne sont pas automatiquement modifiables."
 
-#: rewrite/rewriteHandler.c:2387
+#: rewrite/rewriteHandler.c:2390
 msgid "View columns that refer to system columns are not updatable."
 msgstr "Les colonnes des vues qui font référence à des colonnes systèmes ne sont pas automatiquement modifiables."
 
-#: rewrite/rewriteHandler.c:2390
+#: rewrite/rewriteHandler.c:2393
 msgid "View columns that return whole-row references are not updatable."
 msgstr "Les colonnes de vue qui font références à des lignes complètes ne sont pas automatiquement modifiables."
 
-#: rewrite/rewriteHandler.c:2451
+#: rewrite/rewriteHandler.c:2454
 msgid "Views containing DISTINCT are not automatically updatable."
 msgstr "Les vues contenant DISTINCT ne sont pas automatiquement disponibles en écriture."
 
-#: rewrite/rewriteHandler.c:2454
+#: rewrite/rewriteHandler.c:2457
 msgid "Views containing GROUP BY are not automatically updatable."
 msgstr "Les vues contenant GROUP BY ne sont pas automatiquement disponibles en écriture."
 
-#: rewrite/rewriteHandler.c:2457
+#: rewrite/rewriteHandler.c:2460
 msgid "Views containing HAVING are not automatically updatable."
 msgstr "Les vues contenant HAVING ne sont pas automatiquement disponibles en écriture."
 
-#: rewrite/rewriteHandler.c:2460
+#: rewrite/rewriteHandler.c:2463
 msgid "Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable."
 msgstr "Les vues contenant UNION, INTERSECT ou EXCEPT ne sont pas automatiquement disponibles en écriture."
 
-#: rewrite/rewriteHandler.c:2463
+#: rewrite/rewriteHandler.c:2466
 msgid "Views containing WITH are not automatically updatable."
 msgstr "Les vues contenant WITH ne sont pas automatiquement disponibles en écriture."
 
-#: rewrite/rewriteHandler.c:2466
+#: rewrite/rewriteHandler.c:2469
 msgid "Views containing LIMIT or OFFSET are not automatically updatable."
 msgstr "Les vues contenant LIMIT ou OFFSET ne sont pas automatiquement disponibles en écriture."
 
-#: rewrite/rewriteHandler.c:2478
+#: rewrite/rewriteHandler.c:2481
 msgid "Views that return aggregate functions are not automatically updatable."
 msgstr "Les vues qui renvoient des fonctions d'agrégat ne sont pas automatiquement disponibles en écriture."
 
-#: rewrite/rewriteHandler.c:2481
+#: rewrite/rewriteHandler.c:2484
 msgid "Views that return window functions are not automatically updatable."
 msgstr "Les vues qui renvoient des fonctions de fenêtrage ne sont pas automatiquement disponibles en écriture."
 
-#: rewrite/rewriteHandler.c:2484
+#: rewrite/rewriteHandler.c:2487
 msgid "Views that return set-returning functions are not automatically updatable."
 msgstr "Les vues qui renvoient des fonctions à plusieurs lignes ne sont pas automatiquement disponibles en écriture."
 
-#: rewrite/rewriteHandler.c:2491 rewrite/rewriteHandler.c:2495 rewrite/rewriteHandler.c:2503
+#: rewrite/rewriteHandler.c:2494 rewrite/rewriteHandler.c:2498 rewrite/rewriteHandler.c:2506
 msgid "Views that do not select from a single table or view are not automatically updatable."
 msgstr "Les vues qui lisent plusieurs tables ou vues ne sont pas automatiquement disponibles en écriture."
 
-#: rewrite/rewriteHandler.c:2506
+#: rewrite/rewriteHandler.c:2509
 msgid "Views containing TABLESAMPLE are not automatically updatable."
 msgstr "Les vues contenant TABLESAMPLE ne sont pas automatiquement disponibles en écriture."
 
-#: rewrite/rewriteHandler.c:2530
+#: rewrite/rewriteHandler.c:2533
 msgid "Views that have no updatable columns are not automatically updatable."
 msgstr "Les vues qui possèdent des colonnes non modifiables ne sont pas automatiquement disponibles en écriture."
 
-#: rewrite/rewriteHandler.c:2987
+#: rewrite/rewriteHandler.c:3010
 #, c-format
 msgid "cannot insert into column \"%s\" of view \"%s\""
 msgstr "ne peut pas insérer dans la colonne « %s » de la vue « %s »"
 
-#: rewrite/rewriteHandler.c:2995
+#: rewrite/rewriteHandler.c:3018
 #, c-format
 msgid "cannot update column \"%s\" of view \"%s\""
 msgstr "ne peut pas mettre à jour la colonne « %s » de la vue « %s »"
 
-#: rewrite/rewriteHandler.c:3471
+#: rewrite/rewriteHandler.c:3496
 #, c-format
 msgid "DO INSTEAD NOTHING rules are not supported for data-modifying statements in WITH"
 msgstr "les règles DO INSTEAD NOTHING ne sont pas supportées par les instructions de modification de données dans WITH"
 
-#: rewrite/rewriteHandler.c:3485
+#: rewrite/rewriteHandler.c:3510
 #, c-format
 msgid "conditional DO INSTEAD rules are not supported for data-modifying statements in WITH"
 msgstr ""
 "les règles DO INSTEAD conditionnelles ne sont pas supportées par les\n"
 "instructions de modification de données dans WITH"
 
-#: rewrite/rewriteHandler.c:3489
+#: rewrite/rewriteHandler.c:3514
 #, c-format
 msgid "DO ALSO rules are not supported for data-modifying statements in WITH"
 msgstr "les règles DO ALSO ne sont pas supportées par les instructions de modification de données dans WITH"
 
-#: rewrite/rewriteHandler.c:3494
+#: rewrite/rewriteHandler.c:3519
 #, c-format
 msgid "multi-statement DO INSTEAD rules are not supported for data-modifying statements in WITH"
 msgstr ""
 "les règles DO INSTEAD multi-instructions ne sont pas supportées pour les\n"
 "instructions de modification de données dans WITH"
 
-#: rewrite/rewriteHandler.c:3744
+#: rewrite/rewriteHandler.c:3710 rewrite/rewriteHandler.c:3718 rewrite/rewriteHandler.c:3726
+#, c-format
+msgid "Views with conditional DO INSTEAD rules are not automatically updatable."
+msgstr "Les vues contenant des règles DO INSTEAD conditionnelles ne sont pas automatiquement disponibles en écriture."
+
+#: rewrite/rewriteHandler.c:3819
 #, c-format
 msgid "cannot perform INSERT RETURNING on relation \"%s\""
 msgstr "ne peut pas exécuter INSERT RETURNING sur la relation « %s »"
 
-#: rewrite/rewriteHandler.c:3746
+#: rewrite/rewriteHandler.c:3821
 #, c-format
 msgid "You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause."
 msgstr ""
 "Vous avez besoin d'une règle ON INSERT DO INSTEAD sans condition avec une\n"
 "clause RETURNING."
 
-#: rewrite/rewriteHandler.c:3751
+#: rewrite/rewriteHandler.c:3826
 #, c-format
 msgid "cannot perform UPDATE RETURNING on relation \"%s\""
 msgstr "ne peut pas exécuter UPDATE RETURNING sur la relation « %s »"
 
-#: rewrite/rewriteHandler.c:3753
+#: rewrite/rewriteHandler.c:3828
 #, c-format
 msgid "You need an unconditional ON UPDATE DO INSTEAD rule with a RETURNING clause."
 msgstr ""
 "Vous avez besoin d'une règle ON UPDATE DO INSTEAD sans condition avec une\n"
 "clause RETURNING."
 
-#: rewrite/rewriteHandler.c:3758
+#: rewrite/rewriteHandler.c:3833
 #, c-format
 msgid "cannot perform DELETE RETURNING on relation \"%s\""
 msgstr "ne peut pas exécuter DELETE RETURNING sur la relation « %s »"
 
-#: rewrite/rewriteHandler.c:3760
+#: rewrite/rewriteHandler.c:3835
 #, c-format
 msgid "You need an unconditional ON DELETE DO INSTEAD rule with a RETURNING clause."
 msgstr ""
 "Vous avez besoin d'une règle ON DELETE DO INSTEAD sans condition avec une\n"
 "clause RETURNING."
 
-#: rewrite/rewriteHandler.c:3778
+#: rewrite/rewriteHandler.c:3853
 #, c-format
 msgid "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or UPDATE rules"
 msgstr "INSERT avec une clause ON CONFLICT ne peut pas être utilisée avec une table qui a des règles pour INSERT ou UPDATE"
 
-#: rewrite/rewriteHandler.c:3835
+#: rewrite/rewriteHandler.c:3910
 #, c-format
 msgid "WITH cannot be used in a query that is rewritten by rules into multiple queries"
 msgstr "WITH ne peut pas être utilisé dans une requête réécrite par des règles en plusieurs requêtes"
 
-#: rewrite/rewriteManip.c:1003
+#: rewrite/rewriteManip.c:1006
 #, c-format
 msgid "conditional utility statements are not implemented"
 msgstr "les instructions conditionnelles ne sont pas implémentées"
 
-#: rewrite/rewriteManip.c:1169
+#: rewrite/rewriteManip.c:1172
 #, c-format
 msgid "WHERE CURRENT OF on a view is not implemented"
 msgstr "WHERE CURRENT OF n'est pas implémenté sur une vue"
 
-#: rewrite/rewriteManip.c:1503
+#: rewrite/rewriteManip.c:1507
 #, c-format
 msgid "NEW variables in ON UPDATE rules cannot reference columns that are part of a multiple assignment in the subject UPDATE command"
 msgstr "les variables NEW dans des règles ON UPDATE ne peuvent pas référencer des colonnes faisant partie d'une affectation multiple dans une commande UPDATE"
 
-#: scan.l:463
+#: scan.l:458
 msgid "unterminated /* comment"
 msgstr "commentaire /* non terminé"
 
-#: scan.l:494
+#: scan.l:478
 msgid "unterminated bit string literal"
 msgstr "chaîne littérale bit non terminée"
 
-#: scan.l:515
+#: scan.l:492
 msgid "unterminated hexadecimal string literal"
 msgstr "chaîne littérale hexadécimale non terminée"
 
-#: scan.l:565
+#: scan.l:542
 #, c-format
 msgid "unsafe use of string constant with Unicode escapes"
 msgstr "utilisation non sûre de la constante de chaîne avec des échappements Unicode"
 
-#: scan.l:566
+#: scan.l:543
 #, c-format
 msgid "String constants with Unicode escapes cannot be used when standard_conforming_strings is off."
 msgstr ""
 "Les constantes de chaîne avec des échappements Unicode ne peuvent pas être\n"
 "utilisées quand standard_conforming_strings est désactivé."
 
-#: scan.l:612 scan.l:811
-msgid "invalid Unicode escape character"
-msgstr "chaîne d'échappement Unicode invalide"
-
-#: scan.l:638 scan.l:646 scan.l:654 scan.l:655 scan.l:656 scan.l:1400 scan.l:1427 scan.l:1431 scan.l:1469 scan.l:1473 scan.l:1495 scan.l:1505
-msgid "invalid Unicode surrogate pair"
-msgstr "paire surrogate Unicode invalide"
-
-#: scan.l:660
-#, c-format
-msgid "invalid Unicode escape"
-msgstr "échappement Unicode invalide"
+#: scan.l:604
+#, fuzzy
+#| msgid "unhandled previous state in xqs\n"
+msgid "unhandled previous state in xqs"
+msgstr "état précédent non géré dans xqs\n"
 
-#: scan.l:661
+#: scan.l:678
 #, c-format
 msgid "Unicode escapes must be \\uXXXX or \\UXXXXXXXX."
 msgstr "Les échappements Unicode doivent être de la forme \\uXXXX ou \\UXXXXXXXX."
 
-#: scan.l:672
+#: scan.l:689
 #, c-format
 msgid "unsafe use of \\' in a string literal"
 msgstr "utilisation non sûre de \\' dans une chaîne littérale"
 
-#: scan.l:673
+#: scan.l:690
 #, c-format
 msgid "Use '' to write quotes in strings. \\' is insecure in client-only encodings."
 msgstr ""
 "Utilisez '' pour écrire des guillemets dans une chaîne. \\' n'est pas sécurisé\n"
 "pour les encodages clients."
 
-#: scan.l:748
+#: scan.l:762
 msgid "unterminated dollar-quoted string"
 msgstr "chaîne entre guillemets dollars non terminée"
 
-#: scan.l:765 scan.l:791 scan.l:806
+#: scan.l:779 scan.l:789
 msgid "zero-length delimited identifier"
 msgstr "identifiant délimité de longueur nulle"
 
-#: scan.l:826 syncrep_scanner.l:91
+#: scan.l:800 syncrep_scanner.l:91
 msgid "unterminated quoted identifier"
 msgstr "identifiant entre guillemets non terminé"
 
-#: scan.l:989
+#: scan.l:963
 msgid "operator too long"
 msgstr "opérateur trop long"
 
 #. translator: %s is typically the translation of "syntax error"
-#: scan.l:1141
+#: scan.l:1171
 #, c-format
 msgid "%s at end of input"
 msgstr "%s à la fin de l'entrée"
 
 #. translator: first %s is typically the translation of "syntax error"
-#: scan.l:1149
+#: scan.l:1179
 #, c-format
 msgid "%s at or near \"%s\""
 msgstr "%s sur ou près de « %s »"
 
-#: scan.l:1314 scan.l:1346
-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\n"
-"valeurs de point de code au-dessus de 007F quand l'encodage serveur n'est\n"
-"pas UTF8"
-
-#: scan.l:1342 scan.l:1487
-msgid "invalid Unicode escape value"
-msgstr "valeur d'échappement Unicode invalide"
-
-#: scan.l:1551
+#: scan.l:1373
 #, c-format
 msgid "nonstandard use of \\' in a string literal"
 msgstr "utilisation non standard de \\' dans une chaîne littérale"
 
-#: scan.l:1552
+#: scan.l:1374
 #, c-format
 msgid "Use '' to write quotes in strings, or use the escape string syntax (E'...')."
 msgstr ""
 "Utilisez '' pour écrire des guillemets dans une chaîne ou utilisez la syntaxe de\n"
 "chaîne d'échappement (E'...')."
 
-#: scan.l:1561
+#: scan.l:1383
 #, c-format
 msgid "nonstandard use of \\\\ in a string literal"
 msgstr "utilisation non standard de \\\\ dans une chaîne littérale"
 
-#: scan.l:1562
+#: scan.l:1384
 #, c-format
 msgid "Use the escape string syntax for backslashes, e.g., E'\\\\'."
 msgstr "Utilisez la syntaxe de chaîne d'échappement pour les antislashs, c'est-à-dire E'\\\\'."
 
-#: scan.l:1576
+#: scan.l:1398
 #, c-format
 msgid "nonstandard use of escape in a string literal"
 msgstr "utilisation non standard d'un échappement dans une chaîne littérale"
 
-#: scan.l:1577
+#: scan.l:1399
 #, c-format
 msgid "Use the escape string syntax for escapes, e.g., E'\\r\\n'."
 msgstr ""
 "Utilisez la syntaxe de la chaîne d'échappement pour les échappements,\n"
 "c'est-à-dire E'\\r\\n'."
 
-#: snowball/dict_snowball.c:197
+#: snowball/dict_snowball.c:199
 #, c-format
 msgid "no Snowball stemmer available for language \"%s\" and encoding \"%s\""
 msgstr "aucun stemmer Snowball disponible pour la langue « %s » et l'encodage « %s »"
 
-#: snowball/dict_snowball.c:220 tsearch/dict_ispell.c:74 tsearch/dict_simple.c:49
+#: snowball/dict_snowball.c:222 tsearch/dict_ispell.c:74 tsearch/dict_simple.c:49
 #, c-format
 msgid "multiple StopWords parameters"
 msgstr "plusieurs paramètres StopWords"
 
-#: snowball/dict_snowball.c:229
+#: snowball/dict_snowball.c:231
 #, c-format
 msgid "multiple Language parameters"
 msgstr "multiples paramètres Language"
 
-#: snowball/dict_snowball.c:236
+#: snowball/dict_snowball.c:238
 #, c-format
 msgid "unrecognized Snowball parameter: \"%s\""
 msgstr "paramètre Snowball non reconnu : « %s »"
 
-#: snowball/dict_snowball.c:244
+#: snowball/dict_snowball.c:246
 #, c-format
 msgid "missing Language parameter"
 msgstr "paramètre Language manquant"
 
-#: statistics/dependencies.c:674 statistics/dependencies.c:727 statistics/mcv.c:1477 statistics/mcv.c:1508 statistics/mvdistinct.c:349 statistics/mvdistinct.c:402 utils/adt/pseudotypes.c:94 utils/adt/pseudotypes.c:122 utils/adt/pseudotypes.c:147 utils/adt/pseudotypes.c:171 utils/adt/pseudotypes.c:282 utils/adt/pseudotypes.c:307 utils/adt/pseudotypes.c:335 utils/adt/pseudotypes.c:363 utils/adt/pseudotypes.c:393
+#: statistics/dependencies.c:667 statistics/dependencies.c:720 statistics/mcv.c:1477 statistics/mcv.c:1508 statistics/mvdistinct.c:348 statistics/mvdistinct.c:401 utils/adt/pseudotypes.c:42 utils/adt/pseudotypes.c:76
 #, c-format
 msgid "cannot accept a value of type %s"
 msgstr "ne peut pas accepter une valeur de type %s"
 
-#: statistics/extended_stats.c:121
+#: statistics/extended_stats.c:145
 #, c-format
 msgid "statistics object \"%s.%s\" could not be computed for relation \"%s.%s\""
 msgstr "l'objet de statistiques « %s.%s » n'a pas pu être calculé pour la relation « %s.%s »"
 
-#: statistics/mcv.c:1366 utils/adt/jsonfuncs.c:1708
+#: statistics/mcv.c:1365 utils/adt/jsonfuncs.c:1800
 #, c-format
 msgid "function returning record called in context that cannot accept type record"
 msgstr ""
 "fonction renvoyant le type record appelée dans un contexte qui ne peut pas\n"
 "accepter le type record"
 
-#: storage/buffer/bufmgr.c:545 storage/buffer/bufmgr.c:658
+#: storage/buffer/bufmgr.c:588 storage/buffer/bufmgr.c:669
 #, c-format
 msgid "cannot access temporary tables of other sessions"
 msgstr "ne peut pas accéder aux tables temporaires d'autres sessions"
 
-#: storage/buffer/bufmgr.c:814
+#: storage/buffer/bufmgr.c:825
 #, c-format
 msgid "unexpected data beyond EOF in block %u of relation %s"
 msgstr ""
 "données inattendues après la fin de fichier dans le bloc %u de la relation\n"
 "%s"
 
-#: storage/buffer/bufmgr.c:816
+#: storage/buffer/bufmgr.c:827
 #, c-format
 msgid "This has been seen to occur with buggy kernels; consider updating your system."
 msgstr ""
 "Ceci s'est déjà vu avec des noyaux buggés ; pensez à mettre à jour votre\n"
 "système."
 
-#: storage/buffer/bufmgr.c:914
+#: storage/buffer/bufmgr.c:925
 #, c-format
 msgid "invalid page in block %u of relation %s; zeroing out page"
 msgstr "page invalide dans le bloc %u de la relation %s ; remplacement de la page par des zéros"
 
-#: storage/buffer/bufmgr.c:4056
+#: storage/buffer/bufmgr.c:4211
 #, c-format
 msgid "could not write block %u of %s"
 msgstr "n'a pas pu écrire le bloc %u de %s"
 
-#: storage/buffer/bufmgr.c:4058
+#: storage/buffer/bufmgr.c:4213
 #, c-format
 msgid "Multiple failures --- write error might be permanent."
 msgstr "Échecs multiples --- l'erreur d'écriture pourrait être permanent."
 
-#: storage/buffer/bufmgr.c:4079 storage/buffer/bufmgr.c:4098
+#: storage/buffer/bufmgr.c:4234 storage/buffer/bufmgr.c:4253
 #, c-format
 msgid "writing block %u of relation %s"
 msgstr "écriture du bloc %u de la relation %s"
 
-#: storage/buffer/bufmgr.c:4401
+#: storage/buffer/bufmgr.c:4556
 #, c-format
 msgid "snapshot too old"
 msgstr "snapshot trop ancien"
 
-#: storage/buffer/localbuf.c:199
+#: storage/buffer/localbuf.c:205
 #, c-format
 msgid "no empty local buffer available"
 msgstr "aucun tampon local vide disponible"
 
-#: storage/buffer/localbuf.c:427
+#: storage/buffer/localbuf.c:433
 #, c-format
 msgid "cannot access temporary tables during a parallel operation"
 msgstr "ne peut pas accéder à des tables temporaires pendant une opération parallèle"
@@ -19525,208 +20013,223 @@ msgstr "ne peut pas accéder à des tables temporaires pendant une opération pa
 msgid "could not open temporary file \"%s\" from BufFile \"%s\": %m"
 msgstr "n'a pas pu ouvrir le fichier temporaire « %s » à partir de BufFile « %s » : %m"
 
-#: storage/file/buffile.c:796
+#: storage/file/buffile.c:795
 #, c-format
 msgid "could not determine size of temporary file \"%s\" from BufFile \"%s\": %m"
 msgstr "n'a pas pu déterminer la taille du fichier temporaire « %s » à partir de BufFile « %s » : %m"
 
-#: storage/file/fd.c:458 storage/file/fd.c:530 storage/file/fd.c:566
+#: storage/file/fd.c:508 storage/file/fd.c:580 storage/file/fd.c:616
 #, c-format
 msgid "could not flush dirty data: %m"
 msgstr "n'a pas pu vider les données modifiées : %m"
 
-#: storage/file/fd.c:488
+#: storage/file/fd.c:538
 #, c-format
 msgid "could not determine dirty data size: %m"
 msgstr "n'a pas pu déterminer la taille des données modifiées : %m"
 
-#: storage/file/fd.c:540
+#: storage/file/fd.c:590
 #, c-format
 msgid "could not munmap() while flushing data: %m"
 msgstr "n'a pas exécuter munmap() durant la synchronisation des données : %m"
 
-#: storage/file/fd.c:748
+#: storage/file/fd.c:798
 #, c-format
 msgid "could not link file \"%s\" to \"%s\": %m"
 msgstr "n'a pas pu lier le fichier « %s » à « %s » : %m"
 
-#: storage/file/fd.c:842
+#: storage/file/fd.c:881
 #, c-format
 msgid "getrlimit failed: %m"
 msgstr "échec de getrlimit : %m"
 
-#: storage/file/fd.c:932
+#: storage/file/fd.c:971
 #, c-format
 msgid "insufficient file descriptors available to start server process"
 msgstr "nombre de descripteurs de fichier insuffisants pour lancer le processus serveur"
 
-#: storage/file/fd.c:933
+#: storage/file/fd.c:972
 #, c-format
 msgid "System allows %d, we need at least %d."
 msgstr "Le système autorise %d, nous avons besoin d'au moins %d."
 
-#: storage/file/fd.c:984 storage/file/fd.c:2246 storage/file/fd.c:2356 storage/file/fd.c:2507
+#: storage/file/fd.c:1023 storage/file/fd.c:2357 storage/file/fd.c:2467 storage/file/fd.c:2618
 #, c-format
 msgid "out of file descriptors: %m; release and retry"
 msgstr "plus de descripteurs de fichiers : %m; quittez et ré-essayez"
 
-#: storage/file/fd.c:1284
+#: storage/file/fd.c:1397
 #, c-format
 msgid "temporary file: path \"%s\", size %lu"
 msgstr "fichier temporaire : chemin « %s », taille %lu"
 
-#: storage/file/fd.c:1415
+#: storage/file/fd.c:1528
 #, c-format
 msgid "cannot create temporary directory \"%s\": %m"
 msgstr "ne peut pas créer le répertoire temporaire « %s » : %m"
 
-#: storage/file/fd.c:1422
+#: storage/file/fd.c:1535
 #, c-format
 msgid "cannot create temporary subdirectory \"%s\": %m"
 msgstr "ne peut pas créer le sous-répertoire temporaire « %s » : %m"
 
-#: storage/file/fd.c:1615
+#: storage/file/fd.c:1728
 #, c-format
 msgid "could not create temporary file \"%s\": %m"
 msgstr "n'a pas pu créer le fichier temporaire « %s » : %m"
 
-#: storage/file/fd.c:1650
+#: storage/file/fd.c:1763
 #, c-format
 msgid "could not open temporary file \"%s\": %m"
 msgstr "n'a pas pu ouvrir le fichier temporaire « %s » : %m"
 
-#: storage/file/fd.c:1691
+#: storage/file/fd.c:1804
 #, c-format
 msgid "could not unlink temporary file \"%s\": %m"
 msgstr "n'a pas pu supprimer le fichier temporaire « %s » : %m"
 
-#: storage/file/fd.c:1955
+#: storage/file/fd.c:2068
 #, c-format
 msgid "temporary file size exceeds temp_file_limit (%dkB)"
 msgstr "la taille du fichier temporaire dépasse temp_file_limit (%d Ko)"
 
-#: storage/file/fd.c:2222 storage/file/fd.c:2281
+#: storage/file/fd.c:2333 storage/file/fd.c:2392
 #, c-format
 msgid "exceeded maxAllocatedDescs (%d) while trying to open file \"%s\""
 msgstr "dépassement de maxAllocatedDescs (%d) lors de la tentative d'ouverture du fichier « %s »"
 
-#: storage/file/fd.c:2326
+#: storage/file/fd.c:2437
 #, c-format
 msgid "exceeded maxAllocatedDescs (%d) while trying to execute command \"%s\""
 msgstr "dépassement de maxAllocatedDescs (%d) lors de la tentative d'exécution de la commande « %s »"
 
-#: storage/file/fd.c:2483
+#: storage/file/fd.c:2594
 #, c-format
 msgid "exceeded maxAllocatedDescs (%d) while trying to open directory \"%s\""
 msgstr "dépassement de maxAllocatedDescs (%d) lors de la tentative d'ouverture du répertoire « %s »"
 
-#: storage/file/fd.c:3006
+#: storage/file/fd.c:3122
 #, c-format
 msgid "unexpected file found in temporary-files directory: \"%s\""
 msgstr "fichier non attendu dans le répertoire des fichiers temporaires : « %s »"
 
-#: storage/file/sharedfileset.c:95
+#: storage/file/sharedfileset.c:111
 #, c-format
 msgid "could not attach to a SharedFileSet that is already destroyed"
 msgstr "n'a pas pu s'attacher a un SharedFileSet qui est déjà détruit"
 
-#: storage/ipc/dsm.c:343
+#: storage/ipc/dsm.c:338
 #, c-format
 msgid "dynamic shared memory control segment is corrupt"
 msgstr "le segment contrôle de mémoire partagée dynamique est corrompu"
 
-#: storage/ipc/dsm.c:404
+#: storage/ipc/dsm.c:399
 #, c-format
 msgid "dynamic shared memory control segment is not valid"
 msgstr "le segment contrôle de mémoire partagée dynamique n'est pas valide"
 
-#: storage/ipc/dsm.c:500
+#: storage/ipc/dsm.c:494
 #, c-format
 msgid "too many dynamic shared memory segments"
 msgstr "trop de segments de mémoire partagée dynamique"
 
-#: storage/ipc/dsm_impl.c:230 storage/ipc/dsm_impl.c:517 storage/ipc/dsm_impl.c:621 storage/ipc/dsm_impl.c:792
+#: storage/ipc/dsm_impl.c:230 storage/ipc/dsm_impl.c:526 storage/ipc/dsm_impl.c:630 storage/ipc/dsm_impl.c:801
 #, c-format
 msgid "could not unmap shared memory segment \"%s\": %m"
 msgstr "n'a pas pu annuler le mappage du segment de mémoire partagée « %s » : %m"
 
-#: storage/ipc/dsm_impl.c:240 storage/ipc/dsm_impl.c:527 storage/ipc/dsm_impl.c:631 storage/ipc/dsm_impl.c:802
+#: storage/ipc/dsm_impl.c:240 storage/ipc/dsm_impl.c:536 storage/ipc/dsm_impl.c:640 storage/ipc/dsm_impl.c:811
 #, c-format
 msgid "could not remove shared memory segment \"%s\": %m"
 msgstr "n'a pas pu supprimer le segment de mémoire partagée « %s » : %m"
 
-#: storage/ipc/dsm_impl.c:261 storage/ipc/dsm_impl.c:702 storage/ipc/dsm_impl.c:816
+#: storage/ipc/dsm_impl.c:264 storage/ipc/dsm_impl.c:711 storage/ipc/dsm_impl.c:825
 #, c-format
 msgid "could not open shared memory segment \"%s\": %m"
 msgstr "n'a pas pu ouvrir le segment de mémoire partagée « %s » : %m"
 
-#: storage/ipc/dsm_impl.c:285 storage/ipc/dsm_impl.c:543 storage/ipc/dsm_impl.c:747 storage/ipc/dsm_impl.c:840
+#: storage/ipc/dsm_impl.c:289 storage/ipc/dsm_impl.c:552 storage/ipc/dsm_impl.c:756 storage/ipc/dsm_impl.c:849
 #, c-format
 msgid "could not stat shared memory segment \"%s\": %m"
 msgstr "n'a pas pu obtenir des informations sur le segment de mémoire partagée « %s » : %m"
 
-#: storage/ipc/dsm_impl.c:311 storage/ipc/dsm_impl.c:891
+#: storage/ipc/dsm_impl.c:316 storage/ipc/dsm_impl.c:900
 #, c-format
 msgid "could not resize shared memory segment \"%s\" to %zu bytes: %m"
 msgstr "n'a pas pu retailler le segment de mémoire partagée « %s » en %zu octets : %m"
 
-#: storage/ipc/dsm_impl.c:332 storage/ipc/dsm_impl.c:564 storage/ipc/dsm_impl.c:723 storage/ipc/dsm_impl.c:913
+#: storage/ipc/dsm_impl.c:338 storage/ipc/dsm_impl.c:573 storage/ipc/dsm_impl.c:732 storage/ipc/dsm_impl.c:922
 #, c-format
 msgid "could not map shared memory segment \"%s\": %m"
 msgstr "n'a pas pu mapper le segment de mémoire partagée « %s » : %m"
 
-#: storage/ipc/dsm_impl.c:499
+#: storage/ipc/dsm_impl.c:508
 #, c-format
 msgid "could not get shared memory segment: %m"
 msgstr "n'a pas pu obtenir le segment de mémoire partagée : %m"
 
-#: storage/ipc/dsm_impl.c:687
+#: storage/ipc/dsm_impl.c:696
 #, c-format
 msgid "could not create shared memory segment \"%s\": %m"
 msgstr "n'a pas pu créer le segment de mémoire partagée « %s » : %m"
 
-#: storage/ipc/dsm_impl.c:924
+#: storage/ipc/dsm_impl.c:933
 #, c-format
 msgid "could not close shared memory segment \"%s\": %m"
 msgstr "n'a pas pu fermer le segment de mémoire partagée « %s » : %m"
 
-#: storage/ipc/dsm_impl.c:963 storage/ipc/dsm_impl.c:1011
+#: storage/ipc/dsm_impl.c:972 storage/ipc/dsm_impl.c:1020
 #, c-format
 msgid "could not duplicate handle for \"%s\": %m"
 msgstr "n'a pas pu dupliquer le lien pour « %s » : %m"
 
 #. translator: %s is a syscall name, such as "poll()"
-#: storage/ipc/latch.c:860 storage/ipc/latch.c:1093 storage/ipc/latch.c:1219
+#: storage/ipc/latch.c:940 storage/ipc/latch.c:1094 storage/ipc/latch.c:1307 storage/ipc/latch.c:1457 storage/ipc/latch.c:1570
 #, c-format
 msgid "%s failed: %m"
 msgstr "échec de %s : %m"
 
-#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:929 storage/lmgr/lock.c:967 storage/lmgr/lock.c:2754 storage/lmgr/lock.c:4084 storage/lmgr/lock.c:4149 storage/lmgr/lock.c:4441 storage/lmgr/predicate.c:2404 storage/lmgr/predicate.c:2419 storage/lmgr/predicate.c:3918 storage/lmgr/predicate.c:5075 utils/hash/dynahash.c:1065
+#: storage/ipc/procarray.c:3014
+#, c-format
+msgid "database \"%s\" is being used by prepared transactions"
+msgstr "la base de données « %s » est utilisée par des transactions préparées."
+
+#: storage/ipc/procarray.c:3046 storage/ipc/signalfuncs.c:142
+#, c-format
+msgid "must be a superuser to terminate superuser process"
+msgstr "doit être super-utilisateur pour terminer le processus d'un super-utilisateur"
+
+#: storage/ipc/procarray.c:3053 storage/ipc/signalfuncs.c:147
+#, c-format
+msgid "must be a member of the role whose process is being terminated or member of pg_signal_backend"
+msgstr "doit être un membre du rôle dont le processus est en cours d'arrêt ou membre de pg_signal_backend"
+
+#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:982 storage/lmgr/lock.c:1020 storage/lmgr/lock.c:2845 storage/lmgr/lock.c:4175 storage/lmgr/lock.c:4240 storage/lmgr/lock.c:4532 storage/lmgr/predicate.c:2401 storage/lmgr/predicate.c:2416 storage/lmgr/predicate.c:3898 storage/lmgr/predicate.c:5009 utils/hash/dynahash.c:1067
 #, c-format
 msgid "out of shared memory"
 msgstr "mémoire partagée épuisée"
 
-#: storage/ipc/shmem.c:165 storage/ipc/shmem.c:246
+#: storage/ipc/shmem.c:170 storage/ipc/shmem.c:266
 #, c-format
 msgid "out of shared memory (%zu bytes requested)"
 msgstr "pas assez de mémoire partagée (%zu octets demandés)"
 
-#: storage/ipc/shmem.c:421
+#: storage/ipc/shmem.c:441
 #, c-format
 msgid "could not create ShmemIndex entry for data structure \"%s\""
 msgstr "n'a pas pu créer l'entrée ShmemIndex pour la structure de données « %s »"
 
-#: storage/ipc/shmem.c:436
+#: storage/ipc/shmem.c:456
 #, c-format
 msgid "ShmemIndex entry size is wrong for data structure \"%s\": expected %zu, actual %zu"
 msgstr "La taille de l'entrée ShmemIndex est mauvaise pour la structure de données « %s » : %zu attendu, %zu obtenu"
 
-#: storage/ipc/shmem.c:453
+#: storage/ipc/shmem.c:475
 #, c-format
 msgid "not enough shared memory for data structure \"%s\" (%zu bytes requested)"
 msgstr "pas assez de mémoire partagée pour la structure de données « %s » (%zu octets demandés)"
 
-#: storage/ipc/shmem.c:484 storage/ipc/shmem.c:503
+#: storage/ipc/shmem.c:507 storage/ipc/shmem.c:526
 #, c-format
 msgid "requested shared memory size overflows size_t"
 msgstr "la taille de la mémoire partagée demandée dépasse size_t"
@@ -19736,7 +20239,7 @@ msgstr "la taille de la mémoire partagée demandée dépasse size_t"
 msgid "PID %d is not a PostgreSQL server process"
 msgstr "le PID %d n'est pas un processus du serveur PostgreSQL"
 
-#: storage/ipc/signalfuncs.c:98 storage/lmgr/proc.c:1363
+#: storage/ipc/signalfuncs.c:98 storage/lmgr/proc.c:1366
 #, c-format
 msgid "could not send signal to process %d: %m"
 msgstr "n'a pas pu envoyer le signal au processus %d : %m"
@@ -19751,23 +20254,13 @@ msgstr "doit être super-utilisateur pour annuler la requête d'un super-utilisa
 msgid "must be a member of the role whose query is being canceled or member of pg_signal_backend"
 msgstr "doit être un membre du rôle dont la requête est en cours d'annulation ou membre de pg_signal_backend"
 
-#: storage/ipc/signalfuncs.c:142
-#, c-format
-msgid "must be a superuser to terminate superuser process"
-msgstr "doit être super-utilisateur pour terminer le processus d'un super-utilisateur"
-
-#: storage/ipc/signalfuncs.c:147
-#, c-format
-msgid "must be a member of the role whose process is being terminated or member of pg_signal_backend"
-msgstr "doit être un membre du rôle dont le processus est en cours d'arrêt ou membre de pg_signal_backend"
-
 #: storage/ipc/signalfuncs.c:183
 #, c-format
 msgid "must be superuser to rotate log files with adminpack 1.0"
 msgstr "doit être super-utilisateur pour exécuter la rotation des journaux applicatifs avec adminpack 1.0"
 
 #. translator: %s is a SQL function name
-#: storage/ipc/signalfuncs.c:185 utils/adt/genfile.c:223
+#: storage/ipc/signalfuncs.c:185 utils/adt/genfile.c:253
 #, c-format
 msgid "Consider using %s, which is part of core, instead."
 msgstr "Considérer l'utilisation de %s, qui fait partie de l'installation par défaut, à la place."
@@ -19777,389 +20270,395 @@ msgstr "Considérer l'utilisation de %s, qui fait partie de l'installation par d
 msgid "rotation not possible because log collection not active"
 msgstr "rotation impossible car la récupération des journaux applicatifs n'est pas activée"
 
-#: storage/ipc/standby.c:558 tcop/postgres.c:3110
+#: storage/ipc/standby.c:580 tcop/postgres.c:3177
 #, c-format
 msgid "canceling statement due to conflict with recovery"
 msgstr "annulation de la requête à cause d'un conflit avec la restauration"
 
-#: storage/ipc/standby.c:559 tcop/postgres.c:2384
+#: storage/ipc/standby.c:581 tcop/postgres.c:2469
 #, c-format
 msgid "User transaction caused buffer deadlock with recovery."
 msgstr "La transaction de l'utilisateur causait un verrou mortel lors de la restauration."
 
-#: storage/large_object/inv_api.c:189
+#: storage/large_object/inv_api.c:191
 #, c-format
 msgid "pg_largeobject entry for OID %u, page %d has invalid data field size %d"
 msgstr "l'entrée du Large Object d'OID %u, en page %d, a une taille de champ de données invalide, %d"
 
-#: storage/large_object/inv_api.c:270
+#: storage/large_object/inv_api.c:272
 #, c-format
 msgid "invalid flags for opening a large object: %d"
 msgstr "drapeaux invalides pour l'ouverture d'un « Large Object » : %d"
 
-#: storage/large_object/inv_api.c:460
+#: storage/large_object/inv_api.c:462
 #, c-format
 msgid "invalid whence setting: %d"
 msgstr "paramètrage de « whence » invalide : %d"
 
-#: storage/large_object/inv_api.c:632
+#: storage/large_object/inv_api.c:634
 #, c-format
 msgid "invalid large object write request size: %d"
 msgstr "taille de la requête d'écriture du « Large Object » invalide : %d"
 
-#: storage/lmgr/deadlock.c:1115
+#: storage/lmgr/deadlock.c:1124
 #, c-format
 msgid "Process %d waits for %s on %s; blocked by process %d."
 msgstr "Le processus %d attend %s sur %s ; bloqué par le processus %d."
 
-#: storage/lmgr/deadlock.c:1134
+#: storage/lmgr/deadlock.c:1143
 #, c-format
 msgid "Process %d: %s"
 msgstr "Processus %d : %s"
 
-#: storage/lmgr/deadlock.c:1143
+#: storage/lmgr/deadlock.c:1152
 #, c-format
 msgid "deadlock detected"
 msgstr "interblocage (deadlock) détecté"
 
-#: storage/lmgr/deadlock.c:1146
+#: storage/lmgr/deadlock.c:1155
 #, c-format
 msgid "See server log for query details."
 msgstr "Voir les journaux applicatifs du serveur pour les détails sur la requête."
 
-#: storage/lmgr/lmgr.c:815
+#: storage/lmgr/lmgr.c:830
 #, c-format
 msgid "while updating tuple (%u,%u) in relation \"%s\""
 msgstr "lors de la mise à jour de la ligne (%u,%u) dans la relation « %s »"
 
-#: storage/lmgr/lmgr.c:818
+#: storage/lmgr/lmgr.c:833
 #, c-format
 msgid "while deleting tuple (%u,%u) in relation \"%s\""
 msgstr "lors de la suppression de la ligne (%u,%u) dans la relation « %s »"
 
-#: storage/lmgr/lmgr.c:821
+#: storage/lmgr/lmgr.c:836
 #, c-format
 msgid "while locking tuple (%u,%u) in relation \"%s\""
 msgstr "lors du verrouillage de la ligne (%u,%u) dans la relation « %s »"
 
-#: storage/lmgr/lmgr.c:824
+#: storage/lmgr/lmgr.c:839
 #, c-format
 msgid "while locking updated version (%u,%u) of tuple in relation \"%s\""
 msgstr "lors du verrou de la version mise à jour (%u, %u) de la ligne de la relation « %s »"
 
-#: storage/lmgr/lmgr.c:827
+#: storage/lmgr/lmgr.c:842
 #, c-format
 msgid "while inserting index tuple (%u,%u) in relation \"%s\""
 msgstr "lors de l'insertion de l'enregistrement (%u, %u) de l'index dans la relation « %s »"
 
-#: storage/lmgr/lmgr.c:830
+#: storage/lmgr/lmgr.c:845
 #, c-format
 msgid "while checking uniqueness of tuple (%u,%u) in relation \"%s\""
 msgstr "lors de la vérification de l'unicité de l'enregistrement (%u,%u) dans la relation « %s »"
 
-#: storage/lmgr/lmgr.c:833
+#: storage/lmgr/lmgr.c:848
 #, c-format
 msgid "while rechecking updated tuple (%u,%u) in relation \"%s\""
 msgstr "lors de la re-vérification de l'enregistrement mis à jour (%u,%u) dans la relation « %s »"
 
-#: storage/lmgr/lmgr.c:836
+#: storage/lmgr/lmgr.c:851
 #, c-format
 msgid "while checking exclusion constraint on tuple (%u,%u) in relation \"%s\""
 msgstr "lors de la vérification de la contrainte d'exclusion sur l'enregistrement (%u,%u) dans la relation « %s »"
 
-#: storage/lmgr/lmgr.c:1093
+#: storage/lmgr/lmgr.c:1106
 #, c-format
 msgid "relation %u of database %u"
 msgstr "relation %u de la base de données %u"
 
-#: storage/lmgr/lmgr.c:1099
+#: storage/lmgr/lmgr.c:1112
 #, c-format
 msgid "extension of relation %u of database %u"
 msgstr "extension de la relation %u de la base de données %u"
 
-#: storage/lmgr/lmgr.c:1105
+#: storage/lmgr/lmgr.c:1118
+#, fuzzy, c-format
+#| msgid "missing pg_database entry for database \"%s\"\n"
+msgid "pg_database.datfrozenxid of database %u"
+msgstr "entrée manquante dans pg_database pour la base de données « %s »\n"
+
+#: storage/lmgr/lmgr.c:1123
 #, c-format
 msgid "page %u of relation %u of database %u"
 msgstr "page %u de la relation %u de la base de données %u"
 
-#: storage/lmgr/lmgr.c:1112
+#: storage/lmgr/lmgr.c:1130
 #, c-format
 msgid "tuple (%u,%u) of relation %u of database %u"
 msgstr "ligne (%u,%u) de la relation %u de la base de données %u"
 
-#: storage/lmgr/lmgr.c:1120
+#: storage/lmgr/lmgr.c:1138
 #, c-format
 msgid "transaction %u"
 msgstr "transaction %u"
 
-#: storage/lmgr/lmgr.c:1125
+#: storage/lmgr/lmgr.c:1143
 #, c-format
 msgid "virtual transaction %d/%u"
 msgstr "transaction virtuelle %d/%u"
 
-#: storage/lmgr/lmgr.c:1131
+#: storage/lmgr/lmgr.c:1149
 #, c-format
 msgid "speculative token %u of transaction %u"
 msgstr "jeton spéculatif %u de la transaction %u"
 
-#: storage/lmgr/lmgr.c:1137
+#: storage/lmgr/lmgr.c:1155
 #, c-format
 msgid "object %u of class %u of database %u"
 msgstr "objet %u de la classe %u de la base de données %u"
 
-#: storage/lmgr/lmgr.c:1145
+#: storage/lmgr/lmgr.c:1163
 #, c-format
 msgid "user lock [%u,%u,%u]"
 msgstr "verrou utilisateur [%u,%u,%u]"
 
-#: storage/lmgr/lmgr.c:1152
+#: storage/lmgr/lmgr.c:1170
 #, c-format
 msgid "advisory lock [%u,%u,%u,%u]"
 msgstr "verrou informatif [%u,%u,%u,%u]"
 
-#: storage/lmgr/lmgr.c:1160
+#: storage/lmgr/lmgr.c:1178
 #, c-format
 msgid "unrecognized locktag type %d"
 msgstr "type locktag non reconnu %d"
 
-#: storage/lmgr/lock.c:764
+#: storage/lmgr/lock.c:803
 #, c-format
 msgid "cannot acquire lock mode %s on database objects while recovery is in progress"
 msgstr ""
 "ne peut pas acquérir le mode de verrou %s sur les objets de base de données\n"
 "alors que la restauration est en cours"
 
-#: storage/lmgr/lock.c:766
+#: storage/lmgr/lock.c:805
 #, c-format
 msgid "Only RowExclusiveLock or less can be acquired on database objects during recovery."
 msgstr ""
 "Seuls RowExclusiveLock et les verrous inférieurs peuvent être acquis sur les\n"
 "objets d'une base pendant une restauration."
 
-#: storage/lmgr/lock.c:930 storage/lmgr/lock.c:968 storage/lmgr/lock.c:2755 storage/lmgr/lock.c:4085 storage/lmgr/lock.c:4150 storage/lmgr/lock.c:4442
+#: storage/lmgr/lock.c:983 storage/lmgr/lock.c:1021 storage/lmgr/lock.c:2846 storage/lmgr/lock.c:4176 storage/lmgr/lock.c:4241 storage/lmgr/lock.c:4533
 #, c-format
 msgid "You might need to increase max_locks_per_transaction."
 msgstr "Vous pourriez avoir besoin d'augmenter max_locks_per_transaction."
 
-#: storage/lmgr/lock.c:3201 storage/lmgr/lock.c:3317
+#: storage/lmgr/lock.c:3292 storage/lmgr/lock.c:3408
 #, c-format
 msgid "cannot PREPARE while holding both session-level and transaction-level locks on the same object"
 msgstr "ne peut pas utiliser PREPARE lorsque des verrous de niveau session et deniveau transaction sont détenus sur le même objet"
 
-#: storage/lmgr/predicate.c:703
+#: storage/lmgr/predicate.c:700
 #, c-format
 msgid "not enough elements in RWConflictPool to record a read/write conflict"
 msgstr "pas assez d'éléments dans RWConflictPool pour enregistrer un conflit en lecture/écriture"
 
-#: storage/lmgr/predicate.c:704 storage/lmgr/predicate.c:732
+#: storage/lmgr/predicate.c:701 storage/lmgr/predicate.c:729
 #, c-format
 msgid "You might need to run fewer transactions at a time or increase max_connections."
 msgstr ""
 "Il est possible que vous ayez à exécuter moins de transactions à la fois\n"
 "ou d'augmenter max_connections."
 
-#: storage/lmgr/predicate.c:731
+#: storage/lmgr/predicate.c:728
 #, c-format
 msgid "not enough elements in RWConflictPool to record a potential read/write conflict"
 msgstr "pas assez d'éléments dans RWConflictPool pour enregistrer un conflit en lecture/écriture potentiel"
 
-#: storage/lmgr/predicate.c:1538
+#: storage/lmgr/predicate.c:1535
 #, c-format
 msgid "deferrable snapshot was unsafe; trying a new one"
 msgstr "l'image déferrable est non sûre ; tentative avec une nouvelle image"
 
-#: storage/lmgr/predicate.c:1627
+#: storage/lmgr/predicate.c:1624
 #, c-format
 msgid "\"default_transaction_isolation\" is set to \"serializable\"."
 msgstr "« default_transaction_isolation » est configuré à « serializable »."
 
-#: storage/lmgr/predicate.c:1628
+#: storage/lmgr/predicate.c:1625
 #, c-format
 msgid "You can use \"SET default_transaction_isolation = 'repeatable read'\" to change the default."
 msgstr ""
 "Vous pouvez utiliser « SET default_transaction_isolation = 'repeatable read' »\n"
 "pour modifier la valeur par défaut."
 
-#: storage/lmgr/predicate.c:1679
+#: storage/lmgr/predicate.c:1676
 #, c-format
 msgid "a snapshot-importing transaction must not be READ ONLY DEFERRABLE"
 msgstr "une transaction important un snapshot ne doit pas être READ ONLY DEFERRABLE"
 
-#: storage/lmgr/predicate.c:1758 utils/time/snapmgr.c:623 utils/time/snapmgr.c:629
+#: storage/lmgr/predicate.c:1755 utils/time/snapmgr.c:623 utils/time/snapmgr.c:629
 #, c-format
 msgid "could not import the requested snapshot"
 msgstr "n'a pas pu importer le snapshot demandé"
 
-#: storage/lmgr/predicate.c:1759 utils/time/snapmgr.c:630
+#: storage/lmgr/predicate.c:1756 utils/time/snapmgr.c:630
 #, c-format
 msgid "The source process with PID %d is not running anymore."
 msgstr "Le processus source de PID %d n'est plus en cours d'exécution."
 
-#: storage/lmgr/predicate.c:2405 storage/lmgr/predicate.c:2420 storage/lmgr/predicate.c:3919
+#: storage/lmgr/predicate.c:2402 storage/lmgr/predicate.c:2417 storage/lmgr/predicate.c:3899
 #, c-format
 msgid "You might need to increase max_pred_locks_per_transaction."
 msgstr "Vous pourriez avoir besoin d'augmenter max_pred_locks_per_transaction."
 
-#: storage/lmgr/predicate.c:4075 storage/lmgr/predicate.c:4164 storage/lmgr/predicate.c:4172 storage/lmgr/predicate.c:4211 storage/lmgr/predicate.c:4454 storage/lmgr/predicate.c:4791 storage/lmgr/predicate.c:4803 storage/lmgr/predicate.c:4846 storage/lmgr/predicate.c:4884
+#: storage/lmgr/predicate.c:4030 storage/lmgr/predicate.c:4066 storage/lmgr/predicate.c:4099 storage/lmgr/predicate.c:4107 storage/lmgr/predicate.c:4146 storage/lmgr/predicate.c:4388 storage/lmgr/predicate.c:4725 storage/lmgr/predicate.c:4737 storage/lmgr/predicate.c:4780 storage/lmgr/predicate.c:4818
 #, c-format
 msgid "could not serialize access due to read/write dependencies among transactions"
 msgstr ""
 "n'a pas pu sérialiser un accès à cause des dépendances de lecture/écriture\n"
 "parmi les transactions"
 
-#: storage/lmgr/predicate.c:4077 storage/lmgr/predicate.c:4166 storage/lmgr/predicate.c:4174 storage/lmgr/predicate.c:4213 storage/lmgr/predicate.c:4456 storage/lmgr/predicate.c:4793 storage/lmgr/predicate.c:4805 storage/lmgr/predicate.c:4848 storage/lmgr/predicate.c:4886
+#: storage/lmgr/predicate.c:4032 storage/lmgr/predicate.c:4068 storage/lmgr/predicate.c:4101 storage/lmgr/predicate.c:4109 storage/lmgr/predicate.c:4148 storage/lmgr/predicate.c:4390 storage/lmgr/predicate.c:4727 storage/lmgr/predicate.c:4739 storage/lmgr/predicate.c:4782 storage/lmgr/predicate.c:4820
 #, c-format
 msgid "The transaction might succeed if retried."
 msgstr "La transaction pourrait réussir après une nouvelle tentative."
 
-#: storage/lmgr/proc.c:359
+#: storage/lmgr/proc.c:358
 #, c-format
 msgid "number of requested standby connections exceeds max_wal_senders (currently %d)"
 msgstr ""
 "le nombre de connexions demandées par le serveur en attente dépasse\n"
 "max_wal_senders (actuellement %d)"
 
-#: storage/lmgr/proc.c:1334
+#: storage/lmgr/proc.c:1337
 #, c-format
 msgid "Process %d waits for %s on %s."
 msgstr "Le processus %d attend %s sur %s."
 
-#: storage/lmgr/proc.c:1345
+#: storage/lmgr/proc.c:1348
 #, c-format
 msgid "sending cancel to blocking autovacuum PID %d"
 msgstr "envoi de l'annulation pour bloquer le PID %d de l'autovacuum"
 
-#: storage/lmgr/proc.c:1465
+#: storage/lmgr/proc.c:1468
 #, c-format
 msgid "process %d avoided deadlock for %s on %s by rearranging queue order after %ld.%03d ms"
 msgstr ""
 "le processus %d a évité un verrou mortel pour %s sur %s en modifiant l'ordre\n"
 "de la queue après %ld.%03d ms"
 
-#: storage/lmgr/proc.c:1480
+#: storage/lmgr/proc.c:1483
 #, c-format
 msgid "process %d detected deadlock while waiting for %s on %s after %ld.%03d ms"
 msgstr ""
 "le processus %d a détecté un verrou mortel alors qu'il était en attente de\n"
 "%s sur %s après %ld.%03d ms"
 
-#: storage/lmgr/proc.c:1489
+#: storage/lmgr/proc.c:1492
 #, c-format
 msgid "process %d still waiting for %s on %s after %ld.%03d ms"
 msgstr "le processus %d est toujours en attente de %s sur %s après %ld.%03d ms"
 
-#: storage/lmgr/proc.c:1496
+#: storage/lmgr/proc.c:1499
 #, c-format
 msgid "process %d acquired %s on %s after %ld.%03d ms"
 msgstr "le processus %d a acquis %s sur %s après %ld.%03d ms"
 
-#: storage/lmgr/proc.c:1512
+#: storage/lmgr/proc.c:1515
 #, c-format
 msgid "process %d failed to acquire %s on %s after %ld.%03d ms"
 msgstr "le processus %d a échoué pour l'acquisition de %s sur %s après %ld.%03d ms"
 
-#: storage/page/bufpage.c:152
+#: storage/page/bufpage.c:145
 #, c-format
 msgid "page verification failed, calculated checksum %u but expected %u"
 msgstr "échec de la vérification de la page, somme de contrôle calculé %u, mais attendait %u"
 
-#: storage/page/bufpage.c:216 storage/page/bufpage.c:510 storage/page/bufpage.c:747 storage/page/bufpage.c:880 storage/page/bufpage.c:976 storage/page/bufpage.c:1086
+#: storage/page/bufpage.c:209 storage/page/bufpage.c:503 storage/page/bufpage.c:740 storage/page/bufpage.c:873 storage/page/bufpage.c:969 storage/page/bufpage.c:1081
 #, c-format
 msgid "corrupted page pointers: lower = %u, upper = %u, special = %u"
 msgstr "pointeurs de page corrompus : le plus bas = %u, le plus haut = %u, spécial = %u"
 
-#: storage/page/bufpage.c:532
+#: storage/page/bufpage.c:525
 #, c-format
 msgid "corrupted line pointer: %u"
 msgstr "pointeur de ligne corrompu : %u"
 
-#: storage/page/bufpage.c:559 storage/page/bufpage.c:931
+#: storage/page/bufpage.c:552 storage/page/bufpage.c:924
 #, c-format
 msgid "corrupted item lengths: total %u, available space %u"
 msgstr "longueurs d'élément corrompus : total %u, espace disponible %u"
 
-#: storage/page/bufpage.c:766 storage/page/bufpage.c:904 storage/page/bufpage.c:992 storage/page/bufpage.c:1102
+#: storage/page/bufpage.c:759 storage/page/bufpage.c:897 storage/page/bufpage.c:985 storage/page/bufpage.c:1097
 #, c-format
 msgid "corrupted line pointer: offset = %u, size = %u"
 msgstr "pointeur de ligne corrompu : décalage = %u, taille = %u"
 
-#: storage/smgr/md.c:320 storage/smgr/md.c:815
+#: storage/smgr/md.c:333 storage/smgr/md.c:836
 #, c-format
 msgid "could not truncate file \"%s\": %m"
 msgstr "n'a pas pu tronquer le fichier « %s » : %m"
 
-#: storage/smgr/md.c:394
+#: storage/smgr/md.c:407
 #, c-format
 msgid "cannot extend file \"%s\" beyond %u blocks"
 msgstr "ne peut pas étendre le fichier « %s » de plus de %u blocs"
 
-#: storage/smgr/md.c:409
+#: storage/smgr/md.c:422
 #, c-format
 msgid "could not extend file \"%s\": %m"
 msgstr "n'a pas pu étendre le fichier « %s » : %m"
 
-#: storage/smgr/md.c:411 storage/smgr/md.c:418 storage/smgr/md.c:698
+#: storage/smgr/md.c:424 storage/smgr/md.c:431 storage/smgr/md.c:719
 #, c-format
 msgid "Check free disk space."
 msgstr "Vérifiez l'espace disque disponible."
 
-#: storage/smgr/md.c:415
+#: storage/smgr/md.c:428
 #, c-format
 msgid "could not extend file \"%s\": wrote only %d of %d bytes at block %u"
 msgstr ""
 "n'a pas pu étendre le fichier « %s » : a écrit seulement %d octets sur %d\n"
 "au bloc %u"
 
-#: storage/smgr/md.c:619
+#: storage/smgr/md.c:640
 #, c-format
 msgid "could not read block %u in file \"%s\": %m"
 msgstr "n'a pas pu lire le bloc %u dans le fichier « %s » : %m"
 
-#: storage/smgr/md.c:635
+#: storage/smgr/md.c:656
 #, c-format
 msgid "could not read block %u in file \"%s\": read only %d of %d bytes"
 msgstr ""
 "n'a pas pu lire le bloc %u du fichier « %s » : a lu seulement %d octets\n"
 "sur %d"
 
-#: storage/smgr/md.c:689
+#: storage/smgr/md.c:710
 #, c-format
 msgid "could not write block %u in file \"%s\": %m"
 msgstr "n'a pas pu écrire le bloc %u dans le fichier « %s » : %m"
 
-#: storage/smgr/md.c:694
+#: storage/smgr/md.c:715
 #, c-format
 msgid "could not write block %u in file \"%s\": wrote only %d of %d bytes"
 msgstr ""
 "n'a pas pu écrire le bloc %u du fichier « %s » : a seulement écrit %d\n"
 "octets sur %d"
 
-#: storage/smgr/md.c:786
+#: storage/smgr/md.c:807
 #, c-format
 msgid "could not truncate file \"%s\" to %u blocks: it's only %u blocks now"
 msgstr "n'a pas pu tronquer le fichier « %s » en %u blocs : il y a seulement %u blocs"
 
-#: storage/smgr/md.c:841
+#: storage/smgr/md.c:862
 #, c-format
 msgid "could not truncate file \"%s\" to %u blocks: %m"
 msgstr "n'a pas pu tronquer le fichier « %s » en %u blocs : %m"
 
-#: storage/smgr/md.c:913
+#: storage/smgr/md.c:957
 #, c-format
 msgid "could not forward fsync request because request queue is full"
 msgstr "n'a pas pu envoyer la requête fsync car la queue des requêtes est pleine"
 
-#: storage/smgr/md.c:1210
+#: storage/smgr/md.c:1256
 #, c-format
 msgid "could not open file \"%s\" (target block %u): previous segment is only %u blocks"
 msgstr "n'a pas pu ouvrir le fichier « %s » (bloc cible %u) : le segment précédent ne fait que %u blocs"
 
-#: storage/smgr/md.c:1224
+#: storage/smgr/md.c:1270
 #, c-format
 msgid "could not open file \"%s\" (target block %u): %m"
 msgstr "n'a pas pu ouvrir le fichier « %s » (bloc cible %u) : %m"
 
-#: storage/sync/sync.c:400
+#: storage/sync/sync.c:401
 #, c-format
 msgid "could not fsync file \"%s\" but retrying: %m"
 msgstr ""
@@ -20176,7 +20675,7 @@ msgstr "taille de l'argument %d invalide dans le message d'appel de la fonction"
 msgid "fastpath function call: \"%s\" (OID %u)"
 msgstr "appel de fonction fastpath : « %s » (OID %u)"
 
-#: tcop/fastpath.c:389 tcop/postgres.c:1288 tcop/postgres.c:1551 tcop/postgres.c:1918 tcop/postgres.c:2139
+#: tcop/fastpath.c:389 tcop/postgres.c:1323 tcop/postgres.c:1581 tcop/postgres.c:2013 tcop/postgres.c:2250
 #, c-format
 msgid "duration: %s ms"
 msgstr "durée : %s ms"
@@ -20205,142 +20704,142 @@ msgstr ""
 msgid "incorrect binary data format in function argument %d"
 msgstr "format des données binaires incorrect dans l'argument de la fonction %d"
 
-#: tcop/postgres.c:359 tcop/postgres.c:395 tcop/postgres.c:422
+#: tcop/postgres.c:355 tcop/postgres.c:391 tcop/postgres.c:418
 #, c-format
 msgid "unexpected EOF on client connection"
 msgstr "fin de fichier (EOF) inattendue de la connexion du client"
 
-#: tcop/postgres.c:445 tcop/postgres.c:457 tcop/postgres.c:468 tcop/postgres.c:480 tcop/postgres.c:4460
+#: tcop/postgres.c:441 tcop/postgres.c:453 tcop/postgres.c:464 tcop/postgres.c:476 tcop/postgres.c:4539
 #, c-format
 msgid "invalid frontend message type %d"
 msgstr "type %d du message de l'interface invalide"
 
-#: tcop/postgres.c:1043
+#: tcop/postgres.c:1042
 #, c-format
 msgid "statement: %s"
 msgstr "instruction : %s"
 
-#: tcop/postgres.c:1293
+#: tcop/postgres.c:1328
 #, c-format
 msgid "duration: %s ms  statement: %s"
 msgstr "durée : %s ms, instruction : %s"
 
-#: tcop/postgres.c:1343
+#: tcop/postgres.c:1377
 #, c-format
 msgid "parse %s: %s"
 msgstr "analyse %s : %s"
 
-#: tcop/postgres.c:1400
+#: tcop/postgres.c:1434
 #, c-format
 msgid "cannot insert multiple commands into a prepared statement"
 msgstr "ne peut pas insérer les commandes multiples dans une instruction préparée"
 
-#: tcop/postgres.c:1556
+#: tcop/postgres.c:1586
 #, c-format
 msgid "duration: %s ms  parse %s: %s"
 msgstr "durée : %s ms, analyse %s : %s"
 
-#: tcop/postgres.c:1601
+#: tcop/postgres.c:1633
 #, c-format
 msgid "bind %s to %s"
 msgstr "lie %s à %s"
 
-#: tcop/postgres.c:1620 tcop/postgres.c:2431
+#: tcop/postgres.c:1652 tcop/postgres.c:2516
 #, c-format
 msgid "unnamed prepared statement does not exist"
 msgstr "l'instruction préparée non nommée n'existe pas"
 
-#: tcop/postgres.c:1661
+#: tcop/postgres.c:1693
 #, c-format
 msgid "bind message has %d parameter formats but %d parameters"
 msgstr "le message bind a %d formats de paramètres mais %d paramètres"
 
-#: tcop/postgres.c:1667
+#: tcop/postgres.c:1699
 #, c-format
 msgid "bind message supplies %d parameters, but prepared statement \"%s\" requires %d"
 msgstr "le message bind fournit %d paramètres, mais l'instruction préparée « %s » en requiert %d"
 
-#: tcop/postgres.c:1827
+#: tcop/postgres.c:1897
 #, c-format
 msgid "incorrect binary data format in bind parameter %d"
 msgstr "format des données binaires incorrect dans le paramètre bind %d"
 
-#: tcop/postgres.c:1923
+#: tcop/postgres.c:2018
 #, c-format
 msgid "duration: %s ms  bind %s%s%s: %s"
 msgstr "durée : %s ms, lien %s%s%s : %s"
 
-#: tcop/postgres.c:1971 tcop/postgres.c:2515
+#: tcop/postgres.c:2068 tcop/postgres.c:2600
 #, c-format
 msgid "portal \"%s\" does not exist"
 msgstr "le portail « %s » n'existe pas"
 
-#: tcop/postgres.c:2056
+#: tcop/postgres.c:2153
 #, c-format
 msgid "%s %s%s%s: %s"
 msgstr "%s %s%s%s: %s"
 
-#: tcop/postgres.c:2058 tcop/postgres.c:2147
+#: tcop/postgres.c:2155 tcop/postgres.c:2258
 msgid "execute fetch from"
 msgstr "exécute fetch à partir de"
 
-#: tcop/postgres.c:2059 tcop/postgres.c:2148
+#: tcop/postgres.c:2156 tcop/postgres.c:2259
 msgid "execute"
 msgstr "exécute"
 
-#: tcop/postgres.c:2144
+#: tcop/postgres.c:2255
 #, c-format
 msgid "duration: %s ms  %s %s%s%s: %s"
 msgstr "durée : %s ms  %s %s%s%s: %s"
 
-#: tcop/postgres.c:2272
+#: tcop/postgres.c:2401
 #, c-format
 msgid "prepare: %s"
 msgstr "préparation : %s"
 
-#: tcop/postgres.c:2337
+#: tcop/postgres.c:2426
 #, c-format
 msgid "parameters: %s"
 msgstr "paramètres : %s"
 
-#: tcop/postgres.c:2356
+#: tcop/postgres.c:2441
 #, c-format
 msgid "abort reason: recovery conflict"
 msgstr "raison de l'annulation : conflit de restauration"
 
-#: tcop/postgres.c:2372
+#: tcop/postgres.c:2457
 #, c-format
 msgid "User was holding shared buffer pin for too long."
 msgstr "L'utilisateur conservait des blocs disques en mémoire partagée depuis trop longtemps."
 
-#: tcop/postgres.c:2375
+#: tcop/postgres.c:2460
 #, c-format
 msgid "User was holding a relation lock for too long."
 msgstr "L'utilisateur conservait un verrou sur une relation depuis trop longtemps."
 
-#: tcop/postgres.c:2378
+#: tcop/postgres.c:2463
 #, c-format
 msgid "User was or might have been using tablespace that must be dropped."
 msgstr "L'utilisateur utilisait ou pouvait utiliser un tablespace qui doit être supprimé."
 
-#: tcop/postgres.c:2381
+#: tcop/postgres.c:2466
 #, c-format
 msgid "User query might have needed to see row versions that must be removed."
 msgstr ""
 "La requête de l'utilisateur pourrait avoir eu besoin de voir des versions de\n"
 "lignes qui doivent être supprimées."
 
-#: tcop/postgres.c:2387
+#: tcop/postgres.c:2472
 #, c-format
 msgid "User was connected to a database that must be dropped."
 msgstr "L'utilisateur était connecté à une base de donnée qui doit être supprimé."
 
-#: tcop/postgres.c:2711
+#: tcop/postgres.c:2796
 #, c-format
 msgid "terminating connection because of crash of another server process"
 msgstr "arrêt de la connexion à cause de l'arrêt brutal d'un autre processus serveur"
 
-#: tcop/postgres.c:2712
+#: tcop/postgres.c:2797
 #, c-format
 msgid "The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory."
 msgstr ""
@@ -20348,89 +20847,89 @@ msgstr ""
 "courante et de quitter car un autre processus serveur a quitté anormalement\n"
 "et qu'il existe probablement de la mémoire partagée corrompue."
 
-#: tcop/postgres.c:2716 tcop/postgres.c:3040
+#: tcop/postgres.c:2801 tcop/postgres.c:3107
 #, c-format
 msgid "In a moment you should be able to reconnect to the database and repeat your command."
 msgstr ""
 "Dans un moment, vous devriez être capable de vous reconnecter à la base de\n"
 "données et de relancer votre commande."
 
-#: tcop/postgres.c:2798
+#: tcop/postgres.c:2883
 #, c-format
 msgid "floating-point exception"
 msgstr "exception dû à une virgule flottante"
 
-#: tcop/postgres.c:2799
+#: tcop/postgres.c:2884
 #, c-format
 msgid "An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid operation, such as division by zero."
 msgstr "Une opération invalide sur les virgules flottantes a été signalée. Ceci signifie probablement un résultat en dehors de l'échelle ou une opération invalide telle qu'une division par zéro."
 
-#: tcop/postgres.c:2970
+#: tcop/postgres.c:3037
 #, c-format
 msgid "canceling authentication due to timeout"
 msgstr "annulation de l'authentification à cause du délai écoulé"
 
-#: tcop/postgres.c:2974
+#: tcop/postgres.c:3041
 #, c-format
 msgid "terminating autovacuum process due to administrator command"
 msgstr "arrêt du processus autovacuum suite à la demande de l'administrateur"
 
-#: tcop/postgres.c:2978
+#: tcop/postgres.c:3045
 #, c-format
 msgid "terminating logical replication worker due to administrator command"
 msgstr "arrêt des processus workers de réplication logique suite à la demande de l'administrateur"
 
-#: tcop/postgres.c:2982
+#: tcop/postgres.c:3049
 #, c-format
 msgid "logical replication launcher shutting down"
 msgstr "arrêt du processus de lancement de la réplication logique"
 
-#: tcop/postgres.c:2995 tcop/postgres.c:3005 tcop/postgres.c:3038
+#: tcop/postgres.c:3062 tcop/postgres.c:3072 tcop/postgres.c:3105
 #, c-format
 msgid "terminating connection due to conflict with recovery"
 msgstr "arrêt de la connexion à cause d'un conflit avec la restauration"
 
-#: tcop/postgres.c:3011
+#: tcop/postgres.c:3078
 #, c-format
 msgid "terminating connection due to administrator command"
 msgstr "arrêt des connexions suite à la demande de l'administrateur"
 
-#: tcop/postgres.c:3021
+#: tcop/postgres.c:3088
 #, c-format
 msgid "connection to client lost"
 msgstr "connexion au client perdue"
 
-#: tcop/postgres.c:3087
+#: tcop/postgres.c:3154
 #, c-format
 msgid "canceling statement due to lock timeout"
 msgstr "annulation de la requête à cause du délai écoulé pour l'obtention des verrous"
 
-#: tcop/postgres.c:3094
+#: tcop/postgres.c:3161
 #, c-format
 msgid "canceling statement due to statement timeout"
 msgstr "annulation de la requête à cause du délai écoulé pour l'exécution de l'instruction"
 
-#: tcop/postgres.c:3101
+#: tcop/postgres.c:3168
 #, c-format
 msgid "canceling autovacuum task"
 msgstr "annulation de la tâche d'autovacuum"
 
-#: tcop/postgres.c:3124
+#: tcop/postgres.c:3191
 #, c-format
 msgid "canceling statement due to user request"
 msgstr "annulation de la requête à la demande de l'utilisateur"
 
-#: tcop/postgres.c:3134
+#: tcop/postgres.c:3201
 #, c-format
 msgid "terminating connection due to idle-in-transaction timeout"
 msgstr "arrêt des connexions suite à l'expiration du délai d'inactivité en transaction"
 
-#: tcop/postgres.c:3248
+#: tcop/postgres.c:3318
 #, c-format
 msgid "stack depth limit exceeded"
 msgstr "dépassement de limite (en profondeur) de la pile"
 
-#: tcop/postgres.c:3249
+#: tcop/postgres.c:3319
 #, c-format
 msgid "Increase the configuration parameter \"max_stack_depth\" (currently %dkB), after ensuring the platform's stack depth limit is adequate."
 msgstr ""
@@ -20438,112 +20937,112 @@ msgstr ""
 "être assuré que la limite de profondeur de la pile de la plateforme est\n"
 "adéquate."
 
-#: tcop/postgres.c:3312
+#: tcop/postgres.c:3382
 #, c-format
 msgid "\"max_stack_depth\" must not exceed %ldkB."
 msgstr "« max_stack_depth » ne doit pas dépasser %ld ko."
 
-#: tcop/postgres.c:3314
+#: tcop/postgres.c:3384
 #, c-format
 msgid "Increase the platform's stack depth limit via \"ulimit -s\" or local equivalent."
 msgstr ""
 "Augmenter la limite de profondeur de la pile sur votre plateforme via\n"
 "« ulimit -s » ou l'équivalent local."
 
-#: tcop/postgres.c:3674
+#: tcop/postgres.c:3744
 #, c-format
 msgid "invalid command-line argument for server process: %s"
 msgstr "argument invalide en ligne de commande pour le processus serveur : %s"
 
-#: tcop/postgres.c:3675 tcop/postgres.c:3681
+#: tcop/postgres.c:3745 tcop/postgres.c:3751
 #, c-format
 msgid "Try \"%s --help\" for more information."
 msgstr "Essayez « %s --help » pour plus d'informations."
 
-#: tcop/postgres.c:3679
+#: tcop/postgres.c:3749
 #, c-format
 msgid "%s: invalid command-line argument: %s"
 msgstr "%s : argument invalide en ligne de commande : %s"
 
-#: tcop/postgres.c:3741
+#: tcop/postgres.c:3811
 #, c-format
 msgid "%s: no database nor user name specified"
 msgstr "%s : ni base de données ni utilisateur spécifié"
 
-#: tcop/postgres.c:4368
+#: tcop/postgres.c:4447
 #, c-format
 msgid "invalid CLOSE message subtype %d"
 msgstr "sous-type %d du message CLOSE invalide"
 
-#: tcop/postgres.c:4403
+#: tcop/postgres.c:4482
 #, c-format
 msgid "invalid DESCRIBE message subtype %d"
 msgstr "sous-type %d du message DESCRIBE invalide"
 
-#: tcop/postgres.c:4481
+#: tcop/postgres.c:4560
 #, c-format
 msgid "fastpath function calls not supported in a replication connection"
 msgstr "appels à la fonction fastpath non supportés dans une connexion de réplication"
 
-#: tcop/postgres.c:4485
+#: tcop/postgres.c:4564
 #, c-format
 msgid "extended query protocol not supported in a replication connection"
 msgstr "protocole étendu de requêtes non supporté dans une connexion de réplication"
 
-#: tcop/postgres.c:4662
+#: tcop/postgres.c:4741
 #, c-format
 msgid "disconnection: session time: %d:%02d:%02d.%03d user=%s database=%s host=%s%s%s"
 msgstr ""
 "déconnexion : durée de la session : %d:%02d:%02d.%03d\n"
 "utilisateur=%s base=%s hôte=%s%s%s"
 
-#: tcop/pquery.c:642
+#: tcop/pquery.c:629
 #, c-format
 msgid "bind message has %d result formats but query has %d columns"
 msgstr "le message bind a %d formats de résultat mais la requête a %d colonnes"
 
-#: tcop/pquery.c:949
+#: tcop/pquery.c:932
 #, c-format
 msgid "cursor can only scan forward"
 msgstr "le curseur peut seulement parcourir en avant"
 
-#: tcop/pquery.c:950
+#: tcop/pquery.c:933
 #, c-format
 msgid "Declare it with SCROLL option to enable backward scan."
 msgstr "Déclarez-le avec l'option SCROLL pour activer le parcours inverse."
 
 #. translator: %s is name of a SQL command, eg CREATE
-#: tcop/utility.c:245
+#: tcop/utility.c:413
 #, c-format
 msgid "cannot execute %s in a read-only transaction"
 msgstr "ne peut pas exécuter %s dans une transaction en lecture seule"
 
 #. translator: %s is name of a SQL command, eg CREATE
-#: tcop/utility.c:263
+#: tcop/utility.c:431
 #, c-format
 msgid "cannot execute %s during a parallel operation"
 msgstr "ne peut pas exécuté %s lors d'une opération parallèle"
 
 #. translator: %s is name of a SQL command, eg CREATE
-#: tcop/utility.c:282
+#: tcop/utility.c:450
 #, c-format
 msgid "cannot execute %s during recovery"
 msgstr "ne peut pas exécuté %s lors de la restauration"
 
 #. translator: %s is name of a SQL command, eg PREPARE
-#: tcop/utility.c:300
+#: tcop/utility.c:468
 #, c-format
 msgid "cannot execute %s within security-restricted operation"
 msgstr ""
 "ne peut pas exécuter %s à l'intérieur d'une fonction restreinte\n"
 "pour sécurité"
 
-#: tcop/utility.c:760
+#: tcop/utility.c:912
 #, c-format
 msgid "must be superuser to do CHECKPOINT"
 msgstr "doit être super-utilisateur pour exécuter un point de vérification (CHECKPOINT)"
 
-#: tsearch/dict_ispell.c:52 tsearch/dict_thesaurus.c:624
+#: tsearch/dict_ispell.c:52 tsearch/dict_thesaurus.c:620
 #, c-format
 msgid "multiple DictFile parameters"
 msgstr "multiples paramètres DictFile"
@@ -20563,7 +21062,7 @@ msgstr "paramètre Ispell non reconnu : « %s »"
 msgid "missing AffFile parameter"
 msgstr "paramètre AffFile manquant"
 
-#: tsearch/dict_ispell.c:102 tsearch/dict_thesaurus.c:648
+#: tsearch/dict_ispell.c:102 tsearch/dict_thesaurus.c:644
 #, c-format
 msgid "missing DictFile parameter"
 msgstr "paramètre DictFile manquant"
@@ -20635,44 +21134,44 @@ msgstr "le mot d'exemple « %s » du thésaurus est un terme courant (règle %d)
 msgid "Use \"?\" to represent a stop word within a sample phrase."
 msgstr "Utilisez « ? » pour représenter un terme courant dans une phrase."
 
-#: tsearch/dict_thesaurus.c:576
+#: tsearch/dict_thesaurus.c:572
 #, c-format
 msgid "thesaurus substitute word \"%s\" is a stop word (rule %d)"
 msgstr "le mot substitut « %s » du thésaurus est un terme courant (règle %d)"
 
-#: tsearch/dict_thesaurus.c:583
+#: tsearch/dict_thesaurus.c:579
 #, c-format
 msgid "thesaurus substitute word \"%s\" isn't recognized by subdictionary (rule %d)"
 msgstr ""
 "le mot substitut « %s » du thésaurus n'est pas reconnu par le\n"
 "sous-dictionnaire (règle %d)"
 
-#: tsearch/dict_thesaurus.c:595
+#: tsearch/dict_thesaurus.c:591
 #, c-format
 msgid "thesaurus substitute phrase is empty (rule %d)"
 msgstr "la phrase substitut du thésaurus est vide (règle %d)"
 
-#: tsearch/dict_thesaurus.c:633
+#: tsearch/dict_thesaurus.c:629
 #, c-format
 msgid "multiple Dictionary parameters"
 msgstr "multiples paramètres Dictionary"
 
-#: tsearch/dict_thesaurus.c:640
+#: tsearch/dict_thesaurus.c:636
 #, c-format
 msgid "unrecognized Thesaurus parameter: \"%s\""
 msgstr "paramètre Thesaurus non reconnu : « %s »"
 
-#: tsearch/dict_thesaurus.c:652
+#: tsearch/dict_thesaurus.c:648
 #, c-format
 msgid "missing Dictionary parameter"
 msgstr "paramètre Dictionary manquant"
 
-#: tsearch/spell.c:380 tsearch/spell.c:397 tsearch/spell.c:406 tsearch/spell.c:1034
+#: tsearch/spell.c:380 tsearch/spell.c:397 tsearch/spell.c:406 tsearch/spell.c:1036
 #, c-format
 msgid "invalid affix flag \"%s\""
 msgstr "drapeau d'affixe invalide « %s »"
 
-#: tsearch/spell.c:384 tsearch/spell.c:1038
+#: tsearch/spell.c:384 tsearch/spell.c:1040
 #, c-format
 msgid "affix flag \"%s\" is out of range"
 msgstr "le drapeau d'affixe « %s » est en dehors des limites"
@@ -20687,47 +21186,47 @@ msgstr "données invalides dans le drapeau d'affixe « %s »"
 msgid "invalid affix flag \"%s\" with \"long\" flag value"
 msgstr "drapeau d'affixe invalide « %s » avec la valeur de drapeau « long »"
 
-#: tsearch/spell.c:522
+#: tsearch/spell.c:524
 #, c-format
 msgid "could not open dictionary file \"%s\": %m"
 msgstr "n'a pas pu ouvrir le fichier dictionnaire « %s » : %m"
 
-#: tsearch/spell.c:740 utils/adt/regexp.c:208
+#: tsearch/spell.c:742 utils/adt/regexp.c:208
 #, c-format
 msgid "invalid regular expression: %s"
 msgstr "expression rationnelle invalide : %s"
 
-#: tsearch/spell.c:1161 tsearch/spell.c:1726
+#: tsearch/spell.c:1163 tsearch/spell.c:1175 tsearch/spell.c:1734 tsearch/spell.c:1739 tsearch/spell.c:1744
 #, c-format
 msgid "invalid affix alias \"%s\""
 msgstr "alias d'affixe invalide « %s »"
 
-#: tsearch/spell.c:1211 tsearch/spell.c:1282 tsearch/spell.c:1431
+#: tsearch/spell.c:1216 tsearch/spell.c:1287 tsearch/spell.c:1436
 #, c-format
 msgid "could not open affix file \"%s\": %m"
 msgstr "n'a pas pu ouvrir le fichier affixe « %s » : %m"
 
-#: tsearch/spell.c:1265
+#: tsearch/spell.c:1270
 #, c-format
 msgid "Ispell dictionary supports only \"default\", \"long\", and \"num\" flag values"
 msgstr "le dictionnaire Ispell supporte seulement les valeurs de drapeau « default », « long »et « num »"
 
-#: tsearch/spell.c:1309
+#: tsearch/spell.c:1314
 #, c-format
 msgid "invalid number of flag vector aliases"
 msgstr "nombre d'alias de vecteur de drapeau invalide"
 
-#: tsearch/spell.c:1332
+#: tsearch/spell.c:1337
 #, c-format
 msgid "number of aliases exceeds specified number %d"
 msgstr "le nombre d'alias excède le nombre %d spécifié"
 
-#: tsearch/spell.c:1547
+#: tsearch/spell.c:1552
 #, c-format
 msgid "affix file contains both old-style and new-style commands"
 msgstr "le fichier d'affixes contient des commandes ancien et nouveau style"
 
-#: tsearch/to_tsany.c:185 utils/adt/tsvector.c:271 utils/adt/tsvector_op.c:1132
+#: tsearch/to_tsany.c:185 utils/adt/tsvector.c:272 utils/adt/tsvector_op.c:1121
 #, c-format
 msgid "string is too long for tsvector (%d bytes, max %d bytes)"
 msgstr "la chaîne est trop longue (%d octets, max %d octets)"
@@ -20742,12 +21241,12 @@ msgstr "ligne %d du fichier de configuration « %s » : « %s »"
 msgid "conversion from wchar_t to server encoding failed: %m"
 msgstr "échec de l'encodage de wchar_t vers l'encodage du serveur : %m"
 
-#: tsearch/ts_parse.c:390 tsearch/ts_parse.c:397 tsearch/ts_parse.c:566 tsearch/ts_parse.c:573
+#: tsearch/ts_parse.c:386 tsearch/ts_parse.c:393 tsearch/ts_parse.c:562 tsearch/ts_parse.c:569
 #, c-format
 msgid "word is too long to be indexed"
 msgstr "le mot est trop long pour être indexé"
 
-#: tsearch/ts_parse.c:391 tsearch/ts_parse.c:398 tsearch/ts_parse.c:567 tsearch/ts_parse.c:574
+#: tsearch/ts_parse.c:387 tsearch/ts_parse.c:394 tsearch/ts_parse.c:563 tsearch/ts_parse.c:570
 #, c-format
 msgid "Words longer than %d characters are ignored."
 msgstr "Les mots de plus de %d caractères sont ignorés."
@@ -20762,152 +21261,152 @@ msgstr "nom du fichier de configuration de la recherche plein texte invalide : 
 msgid "could not open stop-word file \"%s\": %m"
 msgstr "n'a pas pu ouvrir le fichier des termes courants « %s » : %m"
 
-#: tsearch/wparser.c:322 tsearch/wparser.c:410 tsearch/wparser.c:487
+#: tsearch/wparser.c:313 tsearch/wparser.c:401 tsearch/wparser.c:478
 #, c-format
 msgid "text search parser does not support headline creation"
 msgstr "l'analyseur de recherche plein texte ne supporte pas headline"
 
-#: tsearch/wparser_def.c:2486
+#: tsearch/wparser_def.c:2585
 #, c-format
 msgid "unrecognized headline parameter: \"%s\""
 msgstr "paramètre headline non reconnu : « %s »"
 
-#: tsearch/wparser_def.c:2495
+#: tsearch/wparser_def.c:2604
 #, c-format
 msgid "MinWords should be less than MaxWords"
 msgstr "MinWords doit avoir une valeur plus petite que celle de MaxWords"
 
-#: tsearch/wparser_def.c:2499
+#: tsearch/wparser_def.c:2608
 #, c-format
 msgid "MinWords should be positive"
 msgstr "MinWords doit être positif"
 
-#: tsearch/wparser_def.c:2503
+#: tsearch/wparser_def.c:2612
 #, c-format
 msgid "ShortWord should be >= 0"
 msgstr "ShortWord devrait être positif ou nul"
 
-#: tsearch/wparser_def.c:2507
+#: tsearch/wparser_def.c:2616
 #, c-format
 msgid "MaxFragments should be >= 0"
 msgstr "MaxFragments devrait être positif ou nul"
 
-#: utils/adt/acl.c:171 utils/adt/name.c:93
+#: utils/adt/acl.c:172 utils/adt/name.c:93
 #, c-format
 msgid "identifier too long"
 msgstr "identifiant trop long"
 
-#: utils/adt/acl.c:172 utils/adt/name.c:94
+#: utils/adt/acl.c:173 utils/adt/name.c:94
 #, c-format
 msgid "Identifier must be less than %d characters."
 msgstr "L'identifiant doit faire moins de %d caractères."
 
-#: utils/adt/acl.c:258
+#: utils/adt/acl.c:256
 #, c-format
 msgid "unrecognized key word: \"%s\""
 msgstr "mot clé non reconnu : « %s »"
 
-#: utils/adt/acl.c:259
+#: utils/adt/acl.c:257
 #, c-format
 msgid "ACL key word must be \"group\" or \"user\"."
 msgstr "le mot clé ACL doit être soit « group » soit « user »."
 
-#: utils/adt/acl.c:264
+#: utils/adt/acl.c:262
 #, c-format
 msgid "missing name"
 msgstr "nom manquant"
 
-#: utils/adt/acl.c:265
+#: utils/adt/acl.c:263
 #, c-format
 msgid "A name must follow the \"group\" or \"user\" key word."
 msgstr "Un nom doit suivre le mot clé « group » ou « user »."
 
-#: utils/adt/acl.c:271
+#: utils/adt/acl.c:269
 #, c-format
 msgid "missing \"=\" sign"
 msgstr "signe « = » manquant"
 
-#: utils/adt/acl.c:324
+#: utils/adt/acl.c:322
 #, c-format
 msgid "invalid mode character: must be one of \"%s\""
 msgstr "mode caractère invalide : doit faire partie de « %s »"
 
-#: utils/adt/acl.c:346
+#: utils/adt/acl.c:344
 #, c-format
 msgid "a name must follow the \"/\" sign"
 msgstr "un nom doit suivre le signe « / »"
 
-#: utils/adt/acl.c:354
+#: utils/adt/acl.c:352
 #, c-format
 msgid "defaulting grantor to user ID %u"
 msgstr "par défaut, le « donneur de droits » devient l'utilisateur d'identifiant %u"
 
-#: utils/adt/acl.c:545
+#: utils/adt/acl.c:538
 #, c-format
 msgid "ACL array contains wrong data type"
 msgstr "le tableau d'ACL contient un type de données incorrect"
 
-#: utils/adt/acl.c:549
+#: utils/adt/acl.c:542
 #, c-format
 msgid "ACL arrays must be one-dimensional"
 msgstr "les tableaux d'ACL ne doivent avoir qu'une seule dimension"
 
-#: utils/adt/acl.c:553
+#: utils/adt/acl.c:546
 #, c-format
 msgid "ACL arrays must not contain null values"
 msgstr "les tableaux d'ACL ne doivent pas contenir de valeurs NULL"
 
-#: utils/adt/acl.c:577
+#: utils/adt/acl.c:570
 #, c-format
 msgid "extra garbage at the end of the ACL specification"
 msgstr "données superflues à la fin de la spécification de l'ACL"
 
-#: utils/adt/acl.c:1212
+#: utils/adt/acl.c:1205
 #, c-format
 msgid "grant options cannot be granted back to your own grantor"
 msgstr "les options grant ne peuvent pas être rendues à votre propre donateur"
 
-#: utils/adt/acl.c:1273
+#: utils/adt/acl.c:1266
 #, c-format
 msgid "dependent privileges exist"
 msgstr "des privilèges dépendants existent"
 
-#: utils/adt/acl.c:1274
+#: utils/adt/acl.c:1267
 #, c-format
 msgid "Use CASCADE to revoke them too."
 msgstr "Utilisez CASCADE pour les révoquer aussi."
 
-#: utils/adt/acl.c:1536
+#: utils/adt/acl.c:1521
 #, c-format
 msgid "aclinsert is no longer supported"
 msgstr "aclinsert n'est plus supporté"
 
-#: utils/adt/acl.c:1546
+#: utils/adt/acl.c:1531
 #, c-format
 msgid "aclremove is no longer supported"
 msgstr "aclremove n'est plus supporté"
 
-#: utils/adt/acl.c:1632 utils/adt/acl.c:1686
+#: utils/adt/acl.c:1617 utils/adt/acl.c:1671
 #, c-format
 msgid "unrecognized privilege type: \"%s\""
 msgstr "type de droit non reconnu : « %s »"
 
-#: utils/adt/acl.c:3486 utils/adt/regproc.c:102 utils/adt/regproc.c:277
+#: utils/adt/acl.c:3471 utils/adt/regproc.c:103 utils/adt/regproc.c:278
 #, c-format
 msgid "function \"%s\" does not exist"
 msgstr "la fonction « %s » n'existe pas"
 
-#: utils/adt/acl.c:4958
+#: utils/adt/acl.c:4943
 #, c-format
 msgid "must be member of role \"%s\""
 msgstr "doit être un membre du rôle « %s »"
 
-#: utils/adt/array_expanded.c:274 utils/adt/arrayfuncs.c:932 utils/adt/arrayfuncs.c:1532 utils/adt/arrayfuncs.c:3235 utils/adt/arrayfuncs.c:3375 utils/adt/arrayfuncs.c:5909 utils/adt/arrayfuncs.c:6250 utils/adt/arrayutils.c:93 utils/adt/arrayutils.c:102 utils/adt/arrayutils.c:109
+#: utils/adt/array_expanded.c:274 utils/adt/arrayfuncs.c:933 utils/adt/arrayfuncs.c:1533 utils/adt/arrayfuncs.c:3236 utils/adt/arrayfuncs.c:3376 utils/adt/arrayfuncs.c:5911 utils/adt/arrayfuncs.c:6252 utils/adt/arrayutils.c:93 utils/adt/arrayutils.c:102 utils/adt/arrayutils.c:109
 #, c-format
 msgid "array size exceeds the maximum allowed (%d)"
 msgstr "la taille du tableau dépasse le maximum permis (%d)"
 
-#: utils/adt/array_userfuncs.c:80 utils/adt/array_userfuncs.c:466 utils/adt/array_userfuncs.c:546 utils/adt/json.c:1829 utils/adt/json.c:1924 utils/adt/json.c:1962 utils/adt/jsonb.c:1094 utils/adt/jsonb.c:1123 utils/adt/jsonb.c:1517 utils/adt/jsonb.c:1681 utils/adt/jsonb.c:1691
+#: utils/adt/array_userfuncs.c:80 utils/adt/array_userfuncs.c:466 utils/adt/array_userfuncs.c:546 utils/adt/json.c:645 utils/adt/json.c:740 utils/adt/json.c:778 utils/adt/jsonb.c:1115 utils/adt/jsonb.c:1144 utils/adt/jsonb.c:1538 utils/adt/jsonb.c:1702 utils/adt/jsonb.c:1712
 #, c-format
 msgid "could not determine input data type"
 msgstr "n'a pas pu déterminer le type de données date en entrée"
@@ -20917,8 +21416,8 @@ msgstr "n'a pas pu déterminer le type de données date en entrée"
 msgid "input data type is not an array"
 msgstr "le type de données en entrée n'est pas un tableau"
 
-#: utils/adt/array_userfuncs.c:129 utils/adt/array_userfuncs.c:181 utils/adt/arrayfuncs.c:1335 utils/adt/float.c:1220 utils/adt/float.c:1308 utils/adt/float.c:3883 utils/adt/float.c:3897 utils/adt/int.c:759 utils/adt/int.c:781 utils/adt/int.c:795 utils/adt/int.c:809 utils/adt/int.c:840 utils/adt/int.c:861 utils/adt/int.c:978 utils/adt/int.c:992 utils/adt/int.c:1006 utils/adt/int.c:1039 utils/adt/int.c:1053 utils/adt/int.c:1067
-#: utils/adt/int.c:1098 utils/adt/int.c:1180 utils/adt/int8.c:1167 utils/adt/numeric.c:1565 utils/adt/numeric.c:3240 utils/adt/varbit.c:1188 utils/adt/varbit.c:1574 utils/adt/varlena.c:1075 utils/adt/varlena.c:3337
+#: utils/adt/array_userfuncs.c:129 utils/adt/array_userfuncs.c:181 utils/adt/arrayfuncs.c:1336 utils/adt/float.c:1243 utils/adt/float.c:1317 utils/adt/float.c:3960 utils/adt/float.c:3974 utils/adt/int.c:759 utils/adt/int.c:781 utils/adt/int.c:795 utils/adt/int.c:809 utils/adt/int.c:840 utils/adt/int.c:861 utils/adt/int.c:978 utils/adt/int.c:992 utils/adt/int.c:1006 utils/adt/int.c:1039 utils/adt/int.c:1053 utils/adt/int.c:1067 utils/adt/int.c:1098
+#: utils/adt/int.c:1180 utils/adt/int.c:1244 utils/adt/int.c:1312 utils/adt/int.c:1318 utils/adt/int8.c:1292 utils/adt/numeric.c:1559 utils/adt/numeric.c:3435 utils/adt/varbit.c:1188 utils/adt/varbit.c:1576 utils/adt/varlena.c:1087 utils/adt/varlena.c:3377
 #, c-format
 msgid "integer out of range"
 msgstr "entier en dehors des limites"
@@ -20963,220 +21462,220 @@ msgstr "la recherche d'éléments dans des tableaux multidimensionnels n'est pas
 msgid "initial position must not be null"
 msgstr "la position initiale ne doit pas être NULL"
 
-#: utils/adt/arrayfuncs.c:269 utils/adt/arrayfuncs.c:283 utils/adt/arrayfuncs.c:294 utils/adt/arrayfuncs.c:316 utils/adt/arrayfuncs.c:331 utils/adt/arrayfuncs.c:345 utils/adt/arrayfuncs.c:351 utils/adt/arrayfuncs.c:358 utils/adt/arrayfuncs.c:489 utils/adt/arrayfuncs.c:505 utils/adt/arrayfuncs.c:516 utils/adt/arrayfuncs.c:531 utils/adt/arrayfuncs.c:552 utils/adt/arrayfuncs.c:582 utils/adt/arrayfuncs.c:589 utils/adt/arrayfuncs.c:597
-#: utils/adt/arrayfuncs.c:631 utils/adt/arrayfuncs.c:654 utils/adt/arrayfuncs.c:674 utils/adt/arrayfuncs.c:786 utils/adt/arrayfuncs.c:795 utils/adt/arrayfuncs.c:825 utils/adt/arrayfuncs.c:840 utils/adt/arrayfuncs.c:893
+#: utils/adt/arrayfuncs.c:270 utils/adt/arrayfuncs.c:284 utils/adt/arrayfuncs.c:295 utils/adt/arrayfuncs.c:317 utils/adt/arrayfuncs.c:332 utils/adt/arrayfuncs.c:346 utils/adt/arrayfuncs.c:352 utils/adt/arrayfuncs.c:359 utils/adt/arrayfuncs.c:490 utils/adt/arrayfuncs.c:506 utils/adt/arrayfuncs.c:517 utils/adt/arrayfuncs.c:532 utils/adt/arrayfuncs.c:553 utils/adt/arrayfuncs.c:583 utils/adt/arrayfuncs.c:590 utils/adt/arrayfuncs.c:598 utils/adt/arrayfuncs.c:632
+#: utils/adt/arrayfuncs.c:655 utils/adt/arrayfuncs.c:675 utils/adt/arrayfuncs.c:787 utils/adt/arrayfuncs.c:796 utils/adt/arrayfuncs.c:826 utils/adt/arrayfuncs.c:841 utils/adt/arrayfuncs.c:894
 #, c-format
 msgid "malformed array literal: \"%s\""
 msgstr "tableau litéral mal formé : « %s »"
 
-#: utils/adt/arrayfuncs.c:270
+#: utils/adt/arrayfuncs.c:271
 #, c-format
 msgid "\"[\" must introduce explicitly-specified array dimensions."
 msgstr "« [ » doit introduire des dimensions explicites de tableau."
 
-#: utils/adt/arrayfuncs.c:284
+#: utils/adt/arrayfuncs.c:285
 #, c-format
 msgid "Missing array dimension value."
 msgstr "Valeur  manquante de la dimension du tableau."
 
-#: utils/adt/arrayfuncs.c:295 utils/adt/arrayfuncs.c:332
+#: utils/adt/arrayfuncs.c:296 utils/adt/arrayfuncs.c:333
 #, c-format
 msgid "Missing \"%s\" after array dimensions."
 msgstr "« %s » manquant après les dimensions du tableau."
 
-#: utils/adt/arrayfuncs.c:304 utils/adt/arrayfuncs.c:2883 utils/adt/arrayfuncs.c:2915 utils/adt/arrayfuncs.c:2930
+#: utils/adt/arrayfuncs.c:305 utils/adt/arrayfuncs.c:2884 utils/adt/arrayfuncs.c:2916 utils/adt/arrayfuncs.c:2931
 #, c-format
 msgid "upper bound cannot be less than lower bound"
 msgstr "la limite supérieure ne peut pas être plus petite que la limite inférieure"
 
-#: utils/adt/arrayfuncs.c:317
+#: utils/adt/arrayfuncs.c:318
 #, c-format
 msgid "Array value must start with \"{\" or dimension information."
 msgstr "La valeur du tableau doit commencer par « { » ou par l'information de la dimension."
 
-#: utils/adt/arrayfuncs.c:346
+#: utils/adt/arrayfuncs.c:347
 #, c-format
 msgid "Array contents must start with \"{\"."
 msgstr "Le contenu du tableau doit commencer par « { »."
 
-#: utils/adt/arrayfuncs.c:352 utils/adt/arrayfuncs.c:359
+#: utils/adt/arrayfuncs.c:353 utils/adt/arrayfuncs.c:360
 #, c-format
 msgid "Specified array dimensions do not match array contents."
 msgstr "Les dimensions spécifiées du tableau ne correspondent pas au contenu du tableau."
 
-#: utils/adt/arrayfuncs.c:490 utils/adt/arrayfuncs.c:517 utils/adt/rangetypes.c:2181 utils/adt/rangetypes.c:2189 utils/adt/rowtypes.c:210 utils/adt/rowtypes.c:218
+#: utils/adt/arrayfuncs.c:491 utils/adt/arrayfuncs.c:518 utils/adt/rangetypes.c:2181 utils/adt/rangetypes.c:2189 utils/adt/rowtypes.c:210 utils/adt/rowtypes.c:218
 #, c-format
 msgid "Unexpected end of input."
 msgstr "Fin de l'entrée inattendue."
 
-#: utils/adt/arrayfuncs.c:506 utils/adt/arrayfuncs.c:553 utils/adt/arrayfuncs.c:583 utils/adt/arrayfuncs.c:632
+#: utils/adt/arrayfuncs.c:507 utils/adt/arrayfuncs.c:554 utils/adt/arrayfuncs.c:584 utils/adt/arrayfuncs.c:633
 #, c-format
 msgid "Unexpected \"%c\" character."
 msgstr "Caractère « %c » inattendu."
 
-#: utils/adt/arrayfuncs.c:532 utils/adt/arrayfuncs.c:655
+#: utils/adt/arrayfuncs.c:533 utils/adt/arrayfuncs.c:656
 #, c-format
 msgid "Unexpected array element."
 msgstr "Élément de tableau inattendu."
 
-#: utils/adt/arrayfuncs.c:590
+#: utils/adt/arrayfuncs.c:591
 #, c-format
 msgid "Unmatched \"%c\" character."
 msgstr "Caractère « %c » sans correspondance."
 
-#: utils/adt/arrayfuncs.c:598 utils/adt/jsonfuncs.c:2397
+#: utils/adt/arrayfuncs.c:599 utils/adt/jsonfuncs.c:2452
 #, c-format
 msgid "Multidimensional arrays must have sub-arrays with matching dimensions."
 msgstr "Les tableaux multidimensionnels doivent avoir des sous-tableaux avec les dimensions correspondantes"
 
-#: utils/adt/arrayfuncs.c:675
+#: utils/adt/arrayfuncs.c:676
 #, c-format
 msgid "Junk after closing right brace."
 msgstr "Problème après la parenthèse droite fermante."
 
-#: utils/adt/arrayfuncs.c:1297 utils/adt/arrayfuncs.c:3343 utils/adt/arrayfuncs.c:5815
+#: utils/adt/arrayfuncs.c:1298 utils/adt/arrayfuncs.c:3344 utils/adt/arrayfuncs.c:5817
 #, c-format
 msgid "invalid number of dimensions: %d"
 msgstr "nombre de dimensions invalides : %d"
 
-#: utils/adt/arrayfuncs.c:1308
+#: utils/adt/arrayfuncs.c:1309
 #, c-format
 msgid "invalid array flags"
 msgstr "drapeaux de tableau invalides"
 
-#: utils/adt/arrayfuncs.c:1316
+#: utils/adt/arrayfuncs.c:1317
 #, c-format
 msgid "wrong element type"
 msgstr "mauvais type d'élément"
 
-#: utils/adt/arrayfuncs.c:1366 utils/adt/rangetypes.c:335 utils/cache/lsyscache.c:2725
+#: utils/adt/arrayfuncs.c:1367 utils/adt/rangetypes.c:335 utils/cache/lsyscache.c:2835
 #, c-format
 msgid "no binary input function available for type %s"
 msgstr "aucune fonction d'entrée binaire disponible pour le type %s"
 
-#: utils/adt/arrayfuncs.c:1506
+#: utils/adt/arrayfuncs.c:1507
 #, c-format
 msgid "improper binary format in array element %d"
 msgstr "format binaire mal conçu dans l'élément du tableau %d"
 
-#: utils/adt/arrayfuncs.c:1587 utils/adt/rangetypes.c:340 utils/cache/lsyscache.c:2758
+#: utils/adt/arrayfuncs.c:1588 utils/adt/rangetypes.c:340 utils/cache/lsyscache.c:2868
 #, c-format
 msgid "no binary output function available for type %s"
 msgstr "aucune fonction de sortie binaire disponible pour le type %s"
 
-#: utils/adt/arrayfuncs.c:2065
+#: utils/adt/arrayfuncs.c:2066
 #, c-format
 msgid "slices of fixed-length arrays not implemented"
 msgstr "les morceaux des tableaux à longueur fixe ne sont pas implémentés"
 
-#: utils/adt/arrayfuncs.c:2243 utils/adt/arrayfuncs.c:2265 utils/adt/arrayfuncs.c:2314 utils/adt/arrayfuncs.c:2550 utils/adt/arrayfuncs.c:2861 utils/adt/arrayfuncs.c:5801 utils/adt/arrayfuncs.c:5827 utils/adt/arrayfuncs.c:5838 utils/adt/json.c:2325 utils/adt/json.c:2400 utils/adt/jsonb.c:1295 utils/adt/jsonb.c:1381 utils/adt/jsonfuncs.c:4301 utils/adt/jsonfuncs.c:4452 utils/adt/jsonfuncs.c:4497 utils/adt/jsonfuncs.c:4544
+#: utils/adt/arrayfuncs.c:2244 utils/adt/arrayfuncs.c:2266 utils/adt/arrayfuncs.c:2315 utils/adt/arrayfuncs.c:2551 utils/adt/arrayfuncs.c:2862 utils/adt/arrayfuncs.c:5803 utils/adt/arrayfuncs.c:5829 utils/adt/arrayfuncs.c:5840 utils/adt/json.c:1141 utils/adt/json.c:1216 utils/adt/jsonb.c:1316 utils/adt/jsonb.c:1402 utils/adt/jsonfuncs.c:4340 utils/adt/jsonfuncs.c:4490 utils/adt/jsonfuncs.c:4602 utils/adt/jsonfuncs.c:4648
 #, c-format
 msgid "wrong number of array subscripts"
 msgstr "mauvais nombre d'indices du tableau"
 
-#: utils/adt/arrayfuncs.c:2248 utils/adt/arrayfuncs.c:2356 utils/adt/arrayfuncs.c:2614 utils/adt/arrayfuncs.c:2920
+#: utils/adt/arrayfuncs.c:2249 utils/adt/arrayfuncs.c:2357 utils/adt/arrayfuncs.c:2615 utils/adt/arrayfuncs.c:2921
 #, c-format
 msgid "array subscript out of range"
 msgstr "indice du tableau en dehors de l'intervalle"
 
-#: utils/adt/arrayfuncs.c:2253
+#: utils/adt/arrayfuncs.c:2254
 #, c-format
 msgid "cannot assign null value to an element of a fixed-length array"
 msgstr "ne peut pas affecter une valeur NULL à un élément d'un tableau à longueur fixe"
 
-#: utils/adt/arrayfuncs.c:2808
+#: utils/adt/arrayfuncs.c:2809
 #, c-format
 msgid "updates on slices of fixed-length arrays not implemented"
 msgstr ""
 "les mises à jour de morceaux des tableaux à longueur fixe ne sont pas\n"
 "implémentées"
 
-#: utils/adt/arrayfuncs.c:2839
+#: utils/adt/arrayfuncs.c:2840
 #, c-format
 msgid "array slice subscript must provide both boundaries"
 msgstr "la tranche d'indice de tableau doit fournir les deux limites"
 
-#: utils/adt/arrayfuncs.c:2840
+#: utils/adt/arrayfuncs.c:2841
 #, c-format
 msgid "When assigning to a slice of an empty array value, slice boundaries must be fully specified."
 msgstr "Les limites de tranches doivent être entièrement spécifiées lors de l'assignation d'une valeur d'un tableau vide à une tranche."
 
-#: utils/adt/arrayfuncs.c:2851 utils/adt/arrayfuncs.c:2946
+#: utils/adt/arrayfuncs.c:2852 utils/adt/arrayfuncs.c:2947
 #, c-format
 msgid "source array too small"
 msgstr "tableau source trop petit"
 
-#: utils/adt/arrayfuncs.c:3499
+#: utils/adt/arrayfuncs.c:3500
 #, c-format
 msgid "null array element not allowed in this context"
 msgstr "élément NULL de tableau interdit dans ce contexte"
 
-#: utils/adt/arrayfuncs.c:3601 utils/adt/arrayfuncs.c:3772 utils/adt/arrayfuncs.c:4123
+#: utils/adt/arrayfuncs.c:3602 utils/adt/arrayfuncs.c:3773 utils/adt/arrayfuncs.c:4129
 #, c-format
 msgid "cannot compare arrays of different element types"
 msgstr "ne peut pas comparer des tableaux ayant des types d'éléments différents"
 
-#: utils/adt/arrayfuncs.c:3948 utils/adt/rangetypes.c:1254 utils/adt/rangetypes.c:1318
+#: utils/adt/arrayfuncs.c:3951 utils/adt/rangetypes.c:1254 utils/adt/rangetypes.c:1318
 #, c-format
 msgid "could not identify a hash function for type %s"
 msgstr "n'a pas pu identifier une fonction de hachage pour le type %s"
 
-#: utils/adt/arrayfuncs.c:4040
+#: utils/adt/arrayfuncs.c:4044
 #, c-format
 msgid "could not identify an extended hash function for type %s"
 msgstr "n'a pas pu identifier une fonction de hachage étendue pour le type %s"
 
-#: utils/adt/arrayfuncs.c:5215
+#: utils/adt/arrayfuncs.c:5221
 #, c-format
 msgid "data type %s is not an array type"
 msgstr "le type de données %s n'est pas un type tableau"
 
-#: utils/adt/arrayfuncs.c:5270
+#: utils/adt/arrayfuncs.c:5276
 #, c-format
 msgid "cannot accumulate null arrays"
 msgstr "ne peut pas accumuler des tableaux NULL"
 
-#: utils/adt/arrayfuncs.c:5298
+#: utils/adt/arrayfuncs.c:5304
 #, c-format
 msgid "cannot accumulate empty arrays"
 msgstr "ne peut pas concaténer des tableaux vides"
 
-#: utils/adt/arrayfuncs.c:5327 utils/adt/arrayfuncs.c:5333
+#: utils/adt/arrayfuncs.c:5331 utils/adt/arrayfuncs.c:5337
 #, c-format
 msgid "cannot accumulate arrays of different dimensionality"
 msgstr "ne peut pas accumuler des tableaux de dimensions différentes"
 
-#: utils/adt/arrayfuncs.c:5699 utils/adt/arrayfuncs.c:5739
+#: utils/adt/arrayfuncs.c:5701 utils/adt/arrayfuncs.c:5741
 #, c-format
 msgid "dimension array or low bound array cannot be null"
 msgstr "la dimension ou la limite basse du tableau ne peut pas être NULL"
 
-#: utils/adt/arrayfuncs.c:5802 utils/adt/arrayfuncs.c:5828
+#: utils/adt/arrayfuncs.c:5804 utils/adt/arrayfuncs.c:5830
 #, c-format
 msgid "Dimension array must be one dimensional."
 msgstr "Le tableau doit avoir une seule dimension."
 
-#: utils/adt/arrayfuncs.c:5807 utils/adt/arrayfuncs.c:5833
+#: utils/adt/arrayfuncs.c:5809 utils/adt/arrayfuncs.c:5835
 #, c-format
 msgid "dimension values cannot be null"
 msgstr "les valeurs de dimension ne peuvent pas être NULL"
 
-#: utils/adt/arrayfuncs.c:5839
+#: utils/adt/arrayfuncs.c:5841
 #, c-format
 msgid "Low bound array has different size than dimensions array."
 msgstr "La limite basse du tableau a une taille différentes des dimensions du tableau."
 
-#: utils/adt/arrayfuncs.c:6115
+#: utils/adt/arrayfuncs.c:6117
 #, c-format
 msgid "removing elements from multidimensional arrays is not supported"
 msgstr "la suppression d'éléments de tableaux multidimensionnels n'est pas supportée"
 
-#: utils/adt/arrayfuncs.c:6392
+#: utils/adt/arrayfuncs.c:6394
 #, c-format
 msgid "thresholds must be one-dimensional array"
 msgstr "les limites doivent être un tableau à une dimension"
 
-#: utils/adt/arrayfuncs.c:6397
+#: utils/adt/arrayfuncs.c:6399
 #, c-format
 msgid "thresholds array must not contain NULLs"
 msgstr "le tableau de limites ne doit pas contenir de valeurs NULL"
@@ -21202,20 +21701,20 @@ msgid "encoding conversion from %s to ASCII not supported"
 msgstr "la conversion de l'encodage de %s vers l'ASCII n'est pas supportée"
 
 #. translator: first %s is inet or cidr
-#: utils/adt/bool.c:153 utils/adt/cash.c:277 utils/adt/datetime.c:3773 utils/adt/float.c:168 utils/adt/float.c:252 utils/adt/float.c:276 utils/adt/float.c:390 utils/adt/float.c:474 utils/adt/float.c:501 utils/adt/geo_ops.c:220 utils/adt/geo_ops.c:230 utils/adt/geo_ops.c:242 utils/adt/geo_ops.c:274 utils/adt/geo_ops.c:316 utils/adt/geo_ops.c:326 utils/adt/geo_ops.c:974 utils/adt/geo_ops.c:1378 utils/adt/geo_ops.c:1413 utils/adt/geo_ops.c:1421
-#: utils/adt/geo_ops.c:3360 utils/adt/geo_ops.c:4526 utils/adt/geo_ops.c:4541 utils/adt/geo_ops.c:4548 utils/adt/int8.c:128 utils/adt/jsonpath.c:182 utils/adt/mac.c:94 utils/adt/mac8.c:93 utils/adt/mac8.c:166 utils/adt/mac8.c:184 utils/adt/mac8.c:202 utils/adt/mac8.c:221 utils/adt/network.c:74 utils/adt/numeric.c:607 utils/adt/numeric.c:634 utils/adt/numeric.c:5806 utils/adt/numeric.c:5830 utils/adt/numeric.c:5854 utils/adt/numeric.c:6684
-#: utils/adt/numeric.c:6710 utils/adt/numutils.c:52 utils/adt/numutils.c:62 utils/adt/numutils.c:106 utils/adt/numutils.c:182 utils/adt/numutils.c:258 utils/adt/oid.c:44 utils/adt/oid.c:58 utils/adt/oid.c:64 utils/adt/oid.c:86 utils/adt/pg_lsn.c:70 utils/adt/tid.c:73 utils/adt/tid.c:81 utils/adt/tid.c:89 utils/adt/timestamp.c:479 utils/adt/txid.c:410 utils/adt/uuid.c:136
+#: utils/adt/bool.c:153 utils/adt/cash.c:277 utils/adt/datetime.c:3757 utils/adt/float.c:187 utils/adt/float.c:271 utils/adt/float.c:295 utils/adt/float.c:412 utils/adt/float.c:497 utils/adt/float.c:525 utils/adt/geo_ops.c:220 utils/adt/geo_ops.c:230 utils/adt/geo_ops.c:242 utils/adt/geo_ops.c:274 utils/adt/geo_ops.c:316 utils/adt/geo_ops.c:326 utils/adt/geo_ops.c:974 utils/adt/geo_ops.c:1378 utils/adt/geo_ops.c:1413 utils/adt/geo_ops.c:1421
+#: utils/adt/geo_ops.c:3476 utils/adt/geo_ops.c:4645 utils/adt/geo_ops.c:4660 utils/adt/geo_ops.c:4667 utils/adt/int8.c:126 utils/adt/jsonpath.c:182 utils/adt/mac.c:94 utils/adt/mac8.c:93 utils/adt/mac8.c:166 utils/adt/mac8.c:184 utils/adt/mac8.c:202 utils/adt/mac8.c:221 utils/adt/network.c:100 utils/adt/numeric.c:601 utils/adt/numeric.c:628 utils/adt/numeric.c:6001 utils/adt/numeric.c:6025 utils/adt/numeric.c:6049 utils/adt/numeric.c:6882
+#: utils/adt/numeric.c:6908 utils/adt/numutils.c:116 utils/adt/numutils.c:126 utils/adt/numutils.c:170 utils/adt/numutils.c:246 utils/adt/numutils.c:322 utils/adt/oid.c:44 utils/adt/oid.c:58 utils/adt/oid.c:64 utils/adt/oid.c:86 utils/adt/pg_lsn.c:73 utils/adt/tid.c:74 utils/adt/tid.c:82 utils/adt/tid.c:90 utils/adt/timestamp.c:494 utils/adt/uuid.c:136 utils/adt/xid8funcs.c:346
 #, c-format
 msgid "invalid input syntax for type %s: \"%s\""
 msgstr "syntaxe en entrée invalide pour le type %s : « %s »"
 
-#: utils/adt/cash.c:215 utils/adt/cash.c:240 utils/adt/cash.c:250 utils/adt/cash.c:290 utils/adt/int8.c:120 utils/adt/numutils.c:76 utils/adt/numutils.c:83 utils/adt/numutils.c:176 utils/adt/numutils.c:252 utils/adt/oid.c:70 utils/adt/oid.c:109
+#: utils/adt/cash.c:215 utils/adt/cash.c:240 utils/adt/cash.c:250 utils/adt/cash.c:290 utils/adt/int8.c:118 utils/adt/numutils.c:140 utils/adt/numutils.c:147 utils/adt/numutils.c:240 utils/adt/numutils.c:316 utils/adt/oid.c:70 utils/adt/oid.c:109
 #, c-format
 msgid "value \"%s\" is out of range for type %s"
 msgstr "la valeur « %s » est en dehors des limites pour le type %s"
 
-#: utils/adt/cash.c:652 utils/adt/cash.c:702 utils/adt/cash.c:753 utils/adt/cash.c:802 utils/adt/cash.c:854 utils/adt/cash.c:904 utils/adt/int.c:824 utils/adt/int.c:940 utils/adt/int.c:1020 utils/adt/int.c:1082 utils/adt/int.c:1120 utils/adt/int.c:1148 utils/adt/int8.c:595 utils/adt/int8.c:653 utils/adt/int8.c:853 utils/adt/int8.c:933 utils/adt/int8.c:995 utils/adt/int8.c:1075 utils/adt/numeric.c:7248 utils/adt/numeric.c:7537
-#: utils/adt/numeric.c:8549 utils/adt/timestamp.c:3257
+#: utils/adt/cash.c:652 utils/adt/cash.c:702 utils/adt/cash.c:753 utils/adt/cash.c:802 utils/adt/cash.c:854 utils/adt/cash.c:904 utils/adt/float.c:104 utils/adt/int.c:824 utils/adt/int.c:940 utils/adt/int.c:1020 utils/adt/int.c:1082 utils/adt/int.c:1120 utils/adt/int.c:1148 utils/adt/int8.c:593 utils/adt/int8.c:651 utils/adt/int8.c:978 utils/adt/int8.c:1058 utils/adt/int8.c:1120 utils/adt/int8.c:1200 utils/adt/numeric.c:7446 utils/adt/numeric.c:7736
+#: utils/adt/numeric.c:9318 utils/adt/timestamp.c:3264
 #, c-format
 msgid "division by zero"
 msgstr "division par zéro"
@@ -21225,125 +21724,125 @@ msgstr "division par zéro"
 msgid "\"char\" out of range"
 msgstr "« char » hors des limites"
 
-#: utils/adt/date.c:65 utils/adt/timestamp.c:95 utils/adt/varbit.c:104 utils/adt/varchar.c:49
+#: utils/adt/date.c:61 utils/adt/timestamp.c:95 utils/adt/varbit.c:104 utils/adt/varchar.c:48
 #, c-format
 msgid "invalid type modifier"
 msgstr "modifieur de type invalide"
 
-#: utils/adt/date.c:77
+#: utils/adt/date.c:73
 #, c-format
 msgid "TIME(%d)%s precision must not be negative"
 msgstr "la précision de TIME(%d)%s ne doit pas être négative"
 
-#: utils/adt/date.c:83
+#: utils/adt/date.c:79
 #, c-format
 msgid "TIME(%d)%s precision reduced to maximum allowed, %d"
 msgstr "la précision de TIME(%d)%s a été réduite au maximum autorisée, %d"
 
-#: utils/adt/date.c:162 utils/adt/date.c:170 utils/adt/formatting.c:3736 utils/adt/formatting.c:3745
+#: utils/adt/date.c:158 utils/adt/date.c:166 utils/adt/formatting.c:4196 utils/adt/formatting.c:4205 utils/adt/formatting.c:4311 utils/adt/formatting.c:4321
 #, c-format
 msgid "date out of range: \"%s\""
 msgstr "date en dehors des limites : « %s »"
 
-#: utils/adt/date.c:217 utils/adt/date.c:529 utils/adt/date.c:553 utils/adt/xml.c:2228
+#: utils/adt/date.c:213 utils/adt/date.c:525 utils/adt/date.c:549 utils/adt/xml.c:2210
 #, c-format
 msgid "date out of range"
 msgstr "date en dehors des limites"
 
-#: utils/adt/date.c:263 utils/adt/timestamp.c:559
+#: utils/adt/date.c:259 utils/adt/timestamp.c:574
 #, c-format
 msgid "date field value out of range: %d-%02d-%02d"
 msgstr "valeur du champ date en dehors des limites : %d-%02d-%02d"
 
-#: utils/adt/date.c:270 utils/adt/date.c:279 utils/adt/timestamp.c:565
+#: utils/adt/date.c:266 utils/adt/date.c:275 utils/adt/timestamp.c:580
 #, c-format
 msgid "date out of range: %d-%02d-%02d"
 msgstr "date en dehors des limites : %d-%02d-%02d"
 
-#: utils/adt/date.c:317 utils/adt/date.c:340 utils/adt/date.c:366 utils/adt/date.c:1110 utils/adt/date.c:1156 utils/adt/date.c:1657 utils/adt/date.c:1688 utils/adt/date.c:1717 utils/adt/date.c:2549 utils/adt/datetime.c:1663 utils/adt/formatting.c:3602 utils/adt/formatting.c:3634 utils/adt/formatting.c:3711 utils/adt/json.c:1621 utils/adt/json.c:1641 utils/adt/timestamp.c:222 utils/adt/timestamp.c:254 utils/adt/timestamp.c:687
-#: utils/adt/timestamp.c:696 utils/adt/timestamp.c:774 utils/adt/timestamp.c:807 utils/adt/timestamp.c:2836 utils/adt/timestamp.c:2857 utils/adt/timestamp.c:2870 utils/adt/timestamp.c:2879 utils/adt/timestamp.c:2887 utils/adt/timestamp.c:2942 utils/adt/timestamp.c:2965 utils/adt/timestamp.c:2978 utils/adt/timestamp.c:2989 utils/adt/timestamp.c:2997 utils/adt/timestamp.c:3657 utils/adt/timestamp.c:3782 utils/adt/timestamp.c:3823
-#: utils/adt/timestamp.c:3913 utils/adt/timestamp.c:3957 utils/adt/timestamp.c:4060 utils/adt/timestamp.c:4544 utils/adt/timestamp.c:4643 utils/adt/timestamp.c:4653 utils/adt/timestamp.c:4745 utils/adt/timestamp.c:4847 utils/adt/timestamp.c:4857 utils/adt/timestamp.c:5077 utils/adt/timestamp.c:5091 utils/adt/timestamp.c:5096 utils/adt/timestamp.c:5110 utils/adt/timestamp.c:5143 utils/adt/timestamp.c:5192 utils/adt/timestamp.c:5199
-#: utils/adt/timestamp.c:5232 utils/adt/timestamp.c:5236 utils/adt/timestamp.c:5305 utils/adt/timestamp.c:5309 utils/adt/timestamp.c:5323 utils/adt/timestamp.c:5357 utils/adt/xml.c:2250 utils/adt/xml.c:2257 utils/adt/xml.c:2277 utils/adt/xml.c:2284
+#: utils/adt/date.c:313 utils/adt/date.c:336 utils/adt/date.c:362 utils/adt/date.c:1170 utils/adt/date.c:1216 utils/adt/date.c:1772 utils/adt/date.c:1803 utils/adt/date.c:1832 utils/adt/date.c:2664 utils/adt/datetime.c:1655 utils/adt/formatting.c:4053 utils/adt/formatting.c:4085 utils/adt/formatting.c:4165 utils/adt/formatting.c:4287 utils/adt/json.c:418 utils/adt/json.c:457 utils/adt/timestamp.c:222 utils/adt/timestamp.c:254 utils/adt/timestamp.c:692
+#: utils/adt/timestamp.c:701 utils/adt/timestamp.c:779 utils/adt/timestamp.c:812 utils/adt/timestamp.c:2843 utils/adt/timestamp.c:2864 utils/adt/timestamp.c:2877 utils/adt/timestamp.c:2886 utils/adt/timestamp.c:2894 utils/adt/timestamp.c:2949 utils/adt/timestamp.c:2972 utils/adt/timestamp.c:2985 utils/adt/timestamp.c:2996 utils/adt/timestamp.c:3004 utils/adt/timestamp.c:3664 utils/adt/timestamp.c:3789 utils/adt/timestamp.c:3830 utils/adt/timestamp.c:3920
+#: utils/adt/timestamp.c:3964 utils/adt/timestamp.c:4067 utils/adt/timestamp.c:4552 utils/adt/timestamp.c:4748 utils/adt/timestamp.c:5075 utils/adt/timestamp.c:5089 utils/adt/timestamp.c:5094 utils/adt/timestamp.c:5108 utils/adt/timestamp.c:5141 utils/adt/timestamp.c:5218 utils/adt/timestamp.c:5259 utils/adt/timestamp.c:5263 utils/adt/timestamp.c:5332 utils/adt/timestamp.c:5336 utils/adt/timestamp.c:5350 utils/adt/timestamp.c:5384 utils/adt/xml.c:2232
+#: utils/adt/xml.c:2239 utils/adt/xml.c:2259 utils/adt/xml.c:2266
 #, c-format
 msgid "timestamp out of range"
 msgstr "timestamp en dehors des limites"
 
-#: utils/adt/date.c:504
+#: utils/adt/date.c:500
 #, c-format
 msgid "cannot subtract infinite dates"
 msgstr "ne peut pas soustraire les valeurs dates infinies"
 
-#: utils/adt/date.c:582 utils/adt/date.c:613 utils/adt/date.c:631 utils/adt/date.c:2586 utils/adt/date.c:2596
+#: utils/adt/date.c:589 utils/adt/date.c:646 utils/adt/date.c:680 utils/adt/date.c:2701 utils/adt/date.c:2711
 #, c-format
 msgid "date out of range for timestamp"
 msgstr "date en dehors des limites pour un timestamp"
 
-#: utils/adt/date.c:1270 utils/adt/date.c:2044
+#: utils/adt/date.c:1389 utils/adt/date.c:2159 utils/adt/formatting.c:4373
 #, c-format
 msgid "time out of range"
 msgstr "heure en dehors des limites"
 
-#: utils/adt/date.c:1326 utils/adt/timestamp.c:584
+#: utils/adt/date.c:1441 utils/adt/timestamp.c:589
 #, c-format
 msgid "time field value out of range: %d:%02d:%02g"
 msgstr "valeur du champ time en dehors des limites : %d:%02d:%02g"
 
-#: utils/adt/date.c:1846 utils/adt/date.c:2348 utils/adt/float.c:1046 utils/adt/float.c:1115 utils/adt/int.c:616 utils/adt/int.c:663 utils/adt/int.c:698 utils/adt/int8.c:494 utils/adt/numeric.c:2203 utils/adt/timestamp.c:3306 utils/adt/timestamp.c:3337 utils/adt/timestamp.c:3368
+#: utils/adt/date.c:1961 utils/adt/date.c:2463 utils/adt/float.c:1071 utils/adt/float.c:1140 utils/adt/int.c:616 utils/adt/int.c:663 utils/adt/int.c:698 utils/adt/int8.c:492 utils/adt/numeric.c:2197 utils/adt/timestamp.c:3313 utils/adt/timestamp.c:3344 utils/adt/timestamp.c:3375
 #, c-format
 msgid "invalid preceding or following size in window function"
 msgstr "taille précédente ou suivante invalide dans la fonction de fenêtrage"
 
-#: utils/adt/date.c:1931 utils/adt/date.c:1944
+#: utils/adt/date.c:2046 utils/adt/date.c:2059
 #, c-format
 msgid "\"time\" units \"%s\" not recognized"
 msgstr "unités « %s » non reconnues pour le type « time »"
 
-#: utils/adt/date.c:2052
+#: utils/adt/date.c:2167
 #, c-format
 msgid "time zone displacement out of range"
 msgstr "déplacement du fuseau horaire en dehors des limites"
 
-#: utils/adt/date.c:2681 utils/adt/date.c:2694
+#: utils/adt/date.c:2796 utils/adt/date.c:2809
 #, c-format
 msgid "\"time with time zone\" units \"%s\" not recognized"
 msgstr "unités « %s » non reconnues pour le type « time with time zone »"
 
-#: utils/adt/date.c:2767 utils/adt/datetime.c:909 utils/adt/datetime.c:1821 utils/adt/datetime.c:4617 utils/adt/timestamp.c:498 utils/adt/timestamp.c:525 utils/adt/timestamp.c:4143 utils/adt/timestamp.c:5102 utils/adt/timestamp.c:5315
+#: utils/adt/date.c:2882 utils/adt/datetime.c:906 utils/adt/datetime.c:1813 utils/adt/datetime.c:4601 utils/adt/timestamp.c:513 utils/adt/timestamp.c:540 utils/adt/timestamp.c:4150 utils/adt/timestamp.c:5100 utils/adt/timestamp.c:5342
 #, c-format
 msgid "time zone \"%s\" not recognized"
 msgstr "le fuseau horaire « %s » n'est pas reconnu"
 
-#: utils/adt/date.c:2799 utils/adt/timestamp.c:5132 utils/adt/timestamp.c:5346
+#: utils/adt/date.c:2914 utils/adt/timestamp.c:5130 utils/adt/timestamp.c:5373
 #, c-format
 msgid "interval time zone \"%s\" must not include months or days"
 msgstr "l'intervalle de fuseau horaire « %s » ne doit pas spécifier de mois ou de jours"
 
-#: utils/adt/datetime.c:3746 utils/adt/datetime.c:3753
+#: utils/adt/datetime.c:3730 utils/adt/datetime.c:3737
 #, c-format
 msgid "date/time field value out of range: \"%s\""
 msgstr "valeur du champ date/time en dehors des limites : « %s »"
 
-#: utils/adt/datetime.c:3755
+#: utils/adt/datetime.c:3739
 #, c-format
 msgid "Perhaps you need a different \"datestyle\" setting."
 msgstr "Peut-être avez-vous besoin d'un paramètrage « datestyle » différent."
 
-#: utils/adt/datetime.c:3760
+#: utils/adt/datetime.c:3744
 #, c-format
 msgid "interval field value out of range: \"%s\""
 msgstr "valeur du champ interval en dehors des limites : « %s »"
 
-#: utils/adt/datetime.c:3766
+#: utils/adt/datetime.c:3750
 #, c-format
 msgid "time zone displacement out of range: \"%s\""
 msgstr "déplacement du fuseau horaire en dehors des limites : « %s »"
 
-#: utils/adt/datetime.c:4619
+#: utils/adt/datetime.c:4603
 #, c-format
 msgid "This time zone name appears in the configuration file for time zone abbreviation \"%s\"."
 msgstr "Ce nom du fuseau horaire apparaît dans le fichier de configuration des abréviations de fuseaux horaires « %s »."
 
-#: utils/adt/datum.c:88 utils/adt/datum.c:100
+#: utils/adt/datum.c:89 utils/adt/datum.c:101
 #, c-format
 msgid "invalid Datum pointer"
 msgstr "pointeur Datum invalide"
@@ -21368,37 +21867,48 @@ msgstr "Les unités valides pour ce paramètre sont « bytes », « kB », « MB
 msgid "type %s is not a domain"
 msgstr "le type %s n'est pas un domaine"
 
-#: utils/adt/encode.c:55 utils/adt/encode.c:91
+#: utils/adt/encode.c:64 utils/adt/encode.c:112
 #, c-format
 msgid "unrecognized encoding: \"%s\""
 msgstr "encodage non reconnu : « %s »"
 
-#: utils/adt/encode.c:150
+#: utils/adt/encode.c:78
+#, fuzzy, c-format
+#| msgid "encoding conversion from %s to ASCII not supported"
+msgid "result of encoding conversion is too large"
+msgstr "la conversion de l'encodage de %s vers l'ASCII n'est pas supportée"
+
+#: utils/adt/encode.c:126
+#, c-format
+msgid "result of decoding conversion is too large"
+msgstr ""
+
+#: utils/adt/encode.c:184
 #, c-format
 msgid "invalid hexadecimal digit: \"%c\""
 msgstr "chiffre hexadécimal invalide : « %c »"
 
-#: utils/adt/encode.c:178
+#: utils/adt/encode.c:212
 #, c-format
 msgid "invalid hexadecimal data: odd number of digits"
 msgstr "donnée hexadécimale invalide : nombre pair de chiffres"
 
-#: utils/adt/encode.c:295
+#: utils/adt/encode.c:329
 #, c-format
 msgid "unexpected \"=\" while decoding base64 sequence"
 msgstr "« = » inattendu lors du décodage de la séquence en base64"
 
-#: utils/adt/encode.c:307
+#: utils/adt/encode.c:341
 #, c-format
 msgid "invalid symbol \"%c\" while decoding base64 sequence"
 msgstr "symbole « %c » invalide lors du décodage de la séquence en base64"
 
-#: utils/adt/encode.c:327
+#: utils/adt/encode.c:361
 #, c-format
 msgid "invalid base64 end sequence"
 msgstr "séquence base64 de fin invalide"
 
-#: utils/adt/encode.c:328
+#: utils/adt/encode.c:362
 #, c-format
 msgid "Input data is missing padding, is truncated, or is otherwise corrupted."
 msgstr "Les données en entrée manquent un alignement, sont tronquées ou ont une corruption autre."
@@ -21433,316 +21943,376 @@ msgstr "n'a pas pu déterminer le type enum actuel"
 msgid "enum %s contains no values"
 msgstr "l'énumération « %s » ne contient aucune valeur"
 
-#: utils/adt/expandedrecord.c:98 utils/adt/expandedrecord.c:230 utils/cache/typcache.c:1574 utils/cache/typcache.c:1730 utils/cache/typcache.c:1860 utils/fmgr/funcapi.c:415
+#: utils/adt/expandedrecord.c:99 utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1632 utils/cache/typcache.c:1788 utils/cache/typcache.c:1918 utils/fmgr/funcapi.c:456
 #, c-format
 msgid "type %s is not composite"
 msgstr "le type %s n'est pas un type composite"
 
-#: utils/adt/float.c:246
+#: utils/adt/float.c:88
+#, c-format
+msgid "value out of range: overflow"
+msgstr "valeur en dehors des limites : dépassement"
+
+#: utils/adt/float.c:96
+#, c-format
+msgid "value out of range: underflow"
+msgstr "valeur en dehors des limites : trop petit"
+
+#: utils/adt/float.c:265
 #, c-format
 msgid "\"%s\" is out of range for type real"
 msgstr "« %s » est en dehors des limites du type real"
 
-#: utils/adt/float.c:466
+#: utils/adt/float.c:489
 #, c-format
 msgid "\"%s\" is out of range for type double precision"
 msgstr "« %s » est en dehors des limites du type double precision"
 
-#: utils/adt/float.c:1252 utils/adt/float.c:1340 utils/adt/int.c:336 utils/adt/int.c:874 utils/adt/int.c:896 utils/adt/int.c:910 utils/adt/int.c:924 utils/adt/int.c:956 utils/adt/int.c:1194 utils/adt/int8.c:1188 utils/adt/numeric.c:3358 utils/adt/numeric.c:3367
+#: utils/adt/float.c:1268 utils/adt/float.c:1342 utils/adt/int.c:336 utils/adt/int.c:874 utils/adt/int.c:896 utils/adt/int.c:910 utils/adt/int.c:924 utils/adt/int.c:956 utils/adt/int.c:1194 utils/adt/int8.c:1313 utils/adt/numeric.c:3553 utils/adt/numeric.c:3562
 #, c-format
 msgid "smallint out of range"
 msgstr "smallint en dehors des limites"
 
-#: utils/adt/float.c:1466 utils/adt/numeric.c:7970
+#: utils/adt/float.c:1468 utils/adt/numeric.c:8329
 #, c-format
 msgid "cannot take square root of a negative number"
 msgstr "ne peut pas calculer la racine carré d'un nombre négatif"
 
-#: utils/adt/float.c:1527 utils/adt/numeric.c:3138
+#: utils/adt/float.c:1536 utils/adt/numeric.c:3239
 #, c-format
 msgid "zero raised to a negative power is undefined"
 msgstr "zéro à une puissance négative est indéfini"
 
-#: utils/adt/float.c:1531 utils/adt/numeric.c:3144
+#: utils/adt/float.c:1540 utils/adt/numeric.c:3245
 #, c-format
 msgid "a negative number raised to a non-integer power yields a complex result"
 msgstr "un nombre négatif élevé à une puissance non entière donne un résultat complexe"
 
-#: utils/adt/float.c:1597 utils/adt/float.c:1627 utils/adt/numeric.c:8236
+#: utils/adt/float.c:1614 utils/adt/float.c:1647 utils/adt/numeric.c:8993
 #, c-format
 msgid "cannot take logarithm of zero"
 msgstr "ne peut pas calculer le logarithme de zéro"
 
-#: utils/adt/float.c:1601 utils/adt/float.c:1631 utils/adt/numeric.c:8240
+#: utils/adt/float.c:1618 utils/adt/float.c:1651 utils/adt/numeric.c:8997
 #, c-format
 msgid "cannot take logarithm of a negative number"
 msgstr "ne peut pas calculer le logarithme sur un nombre négatif"
 
-#: utils/adt/float.c:1661 utils/adt/float.c:1691 utils/adt/float.c:1783 utils/adt/float.c:1809 utils/adt/float.c:1836 utils/adt/float.c:1862 utils/adt/float.c:2009 utils/adt/float.c:2044 utils/adt/float.c:2208 utils/adt/float.c:2262 utils/adt/float.c:2326 utils/adt/float.c:2381 utils/adt/float.c:2569 utils/adt/float.c:2594
+#: utils/adt/float.c:1684 utils/adt/float.c:1715 utils/adt/float.c:1810 utils/adt/float.c:1837 utils/adt/float.c:1865 utils/adt/float.c:1892 utils/adt/float.c:2039 utils/adt/float.c:2076 utils/adt/float.c:2246 utils/adt/float.c:2302 utils/adt/float.c:2367 utils/adt/float.c:2424 utils/adt/float.c:2615 utils/adt/float.c:2639
 #, c-format
 msgid "input is out of range"
 msgstr "l'entrée est en dehors des limites"
 
-#: utils/adt/float.c:2662
+#: utils/adt/float.c:2706
 #, c-format
 msgid "setseed parameter %g is out of allowed range [-1,1]"
 msgstr "le paramètre setseed %g est en dehors de la fenêtre permise [-1,1]"
 
-#: utils/adt/float.c:2880 utils/adt/float.c:2956 utils/adt/float.c:3179
-#, c-format
-msgid "value out of range: overflow"
-msgstr "valeur en dehors des limites : dépassement"
-
-#: utils/adt/float.c:3861 utils/adt/numeric.c:1515
+#: utils/adt/float.c:3938 utils/adt/numeric.c:1509
 #, c-format
 msgid "count must be greater than zero"
 msgstr "le total doit être supérieur à zéro"
 
-#: utils/adt/float.c:3866 utils/adt/numeric.c:1522
+#: utils/adt/float.c:3943 utils/adt/numeric.c:1516
 #, c-format
 msgid "operand, lower bound, and upper bound cannot be NaN"
 msgstr "la limite inférieure et supérieure de l'opérande ne peuvent pas être NaN"
 
-#: utils/adt/float.c:3872
+#: utils/adt/float.c:3949
 #, c-format
 msgid "lower and upper bounds must be finite"
 msgstr "les limites basse et haute doivent être finies"
 
-#: utils/adt/float.c:3906 utils/adt/numeric.c:1535
+#: utils/adt/float.c:3983 utils/adt/numeric.c:1529
 #, c-format
 msgid "lower bound cannot equal upper bound"
 msgstr "la limite inférieure ne peut pas être plus égale à la limite supérieure"
 
-#: utils/adt/formatting.c:504
+#: utils/adt/formatting.c:532
 #, c-format
 msgid "invalid format specification for an interval value"
 msgstr "format de spécification invalide pour une valeur intervalle"
 
-#: utils/adt/formatting.c:505
+#: utils/adt/formatting.c:533
 #, c-format
 msgid "Intervals are not tied to specific calendar dates."
 msgstr "Les intervalles ne sont pas liés aux dates de calendriers spécifiques."
 
-#: utils/adt/formatting.c:1086
+#: utils/adt/formatting.c:1157
 #, c-format
 msgid "\"EEEE\" must be the last pattern used"
 msgstr "« EEEE » doit être le dernier motif utilisé"
 
-#: utils/adt/formatting.c:1094
+#: utils/adt/formatting.c:1165
 #, c-format
 msgid "\"9\" must be ahead of \"PR\""
 msgstr "« 9 » doit être avant « PR »"
 
-#: utils/adt/formatting.c:1110
+#: utils/adt/formatting.c:1181
 #, c-format
 msgid "\"0\" must be ahead of \"PR\""
 msgstr "« 0 » doit être avant « PR »"
 
-#: utils/adt/formatting.c:1137
+#: utils/adt/formatting.c:1208
 #, c-format
 msgid "multiple decimal points"
 msgstr "multiples points décimaux"
 
-#: utils/adt/formatting.c:1141 utils/adt/formatting.c:1224
+#: utils/adt/formatting.c:1212 utils/adt/formatting.c:1295
 #, c-format
 msgid "cannot use \"V\" and decimal point together"
 msgstr "ne peut pas utiliser « V » et le point décimal ensemble"
 
-#: utils/adt/formatting.c:1153
+#: utils/adt/formatting.c:1224
 #, c-format
 msgid "cannot use \"S\" twice"
 msgstr "ne peut pas utiliser « S » deux fois"
 
-#: utils/adt/formatting.c:1157
+#: utils/adt/formatting.c:1228
 #, c-format
 msgid "cannot use \"S\" and \"PL\"/\"MI\"/\"SG\"/\"PR\" together"
 msgstr "ne peut pas utiliser « S » et « PL »/« MI »/« SG »/« PR » ensemble"
 
-#: utils/adt/formatting.c:1177
+#: utils/adt/formatting.c:1248
 #, c-format
 msgid "cannot use \"S\" and \"MI\" together"
 msgstr "ne peut pas utiliser « S » et « MI » ensemble"
 
-#: utils/adt/formatting.c:1187
+#: utils/adt/formatting.c:1258
 #, c-format
 msgid "cannot use \"S\" and \"PL\" together"
 msgstr "ne peut pas utiliser « S » et « PL » ensemble"
 
-#: utils/adt/formatting.c:1197
+#: utils/adt/formatting.c:1268
 #, c-format
 msgid "cannot use \"S\" and \"SG\" together"
 msgstr "ne peut pas utiliser « S » et « SG » ensemble"
 
-#: utils/adt/formatting.c:1206
+#: utils/adt/formatting.c:1277
 #, c-format
 msgid "cannot use \"PR\" and \"S\"/\"PL\"/\"MI\"/\"SG\" together"
 msgstr "ne peut pas utiliser « PR » et « S »/« PL »/« MI »/« SG » ensemble"
 
-#: utils/adt/formatting.c:1232
+#: utils/adt/formatting.c:1303
 #, c-format
 msgid "cannot use \"EEEE\" twice"
 msgstr "ne peut pas utiliser « EEEE » deux fois"
 
-#: utils/adt/formatting.c:1238
+#: utils/adt/formatting.c:1309
 #, c-format
 msgid "\"EEEE\" is incompatible with other formats"
 msgstr "« EEEE » est incompatible avec les autres formats"
 
-#: utils/adt/formatting.c:1239
+#: utils/adt/formatting.c:1310
 #, c-format
 msgid "\"EEEE\" may only be used together with digit and decimal point patterns."
 msgstr "« EEEE » ne peut être utilisé qu'avec les motifs de chiffres et de points décimaux."
 
-#: utils/adt/formatting.c:1426
+#: utils/adt/formatting.c:1392
+#, c-format
+msgid "invalid datetime format separator: \"%s\""
+msgstr "séparateur de format datetime invalide : « %s »"
+
+#: utils/adt/formatting.c:1520
 #, c-format
 msgid "\"%s\" is not a number"
 msgstr "« %s » n'est pas un nombre"
 
-#: utils/adt/formatting.c:1504
+#: utils/adt/formatting.c:1598
 #, c-format
 msgid "case conversion failed: %s"
 msgstr "échec de la conversion de casse : %s"
 
-#: utils/adt/formatting.c:1569 utils/adt/formatting.c:1693 utils/adt/formatting.c:1818
+#: utils/adt/formatting.c:1663 utils/adt/formatting.c:1787 utils/adt/formatting.c:1912
 #, c-format
 msgid "could not determine which collation to use for %s function"
 msgstr "n'a pas pu déterminer le collationnement à utiliser pour la fonction %s"
 
-#: utils/adt/formatting.c:2188
+#: utils/adt/formatting.c:2284
 #, c-format
 msgid "invalid combination of date conventions"
 msgstr "combinaison invalide des conventions de date"
 
-#: utils/adt/formatting.c:2189
+#: utils/adt/formatting.c:2285
 #, c-format
 msgid "Do not mix Gregorian and ISO week date conventions in a formatting template."
 msgstr ""
 "Ne pas mixer les conventions de jour de semaine grégorien et ISO dans un\n"
 "modèle de formatage."
 
-#: utils/adt/formatting.c:2206
+#: utils/adt/formatting.c:2308
 #, c-format
 msgid "conflicting values for \"%s\" field in formatting string"
 msgstr "valeur conflictuelle pour le champ « %s » dans la chaîne de formatage"
 
-#: utils/adt/formatting.c:2208
+#: utils/adt/formatting.c:2311
 #, c-format
 msgid "This value contradicts a previous setting for the same field type."
 msgstr "Cette valeur contredit une configuration précédente pour le même type de champ."
 
-#: utils/adt/formatting.c:2269
+#: utils/adt/formatting.c:2382
 #, c-format
 msgid "source string too short for \"%s\" formatting field"
 msgstr "chaîne source trop petite pour le champ de formatage « %s »"
 
-#: utils/adt/formatting.c:2271
+#: utils/adt/formatting.c:2385
 #, c-format
 msgid "Field requires %d characters, but only %d remain."
 msgstr "Le champ requiert %d caractères, mais seuls %d restent."
 
-#: utils/adt/formatting.c:2274 utils/adt/formatting.c:2288
+#: utils/adt/formatting.c:2388 utils/adt/formatting.c:2403
 #, c-format
 msgid "If your source string is not fixed-width, try using the \"FM\" modifier."
 msgstr ""
 "Si votre chaîne source n'a pas une taille fixe, essayez d'utiliser le\n"
 "modifieur « FM »."
 
-#: utils/adt/formatting.c:2284 utils/adt/formatting.c:2297 utils/adt/formatting.c:2427
+#: utils/adt/formatting.c:2398 utils/adt/formatting.c:2412 utils/adt/formatting.c:2635
 #, c-format
 msgid "invalid value \"%s\" for \"%s\""
 msgstr "valeur « %s » invalide pour « %s »"
 
-#: utils/adt/formatting.c:2286
+#: utils/adt/formatting.c:2400
 #, c-format
 msgid "Field requires %d characters, but only %d could be parsed."
 msgstr "Le champ nécessite %d caractères, mais seulement %d ont pu être analysés."
 
-#: utils/adt/formatting.c:2299
+#: utils/adt/formatting.c:2414
 #, c-format
 msgid "Value must be an integer."
 msgstr "La valeur doit être un entier."
 
-#: utils/adt/formatting.c:2304
+#: utils/adt/formatting.c:2419
 #, c-format
 msgid "value for \"%s\" in source string is out of range"
 msgstr "la valeur pour « %s » dans la chaîne source est en dehors des limites"
 
-#: utils/adt/formatting.c:2306
+#: utils/adt/formatting.c:2421
 #, c-format
 msgid "Value must be in the range %d to %d."
 msgstr "La valeur doit être compris entre %d et %d."
 
-#: utils/adt/formatting.c:2429
+#: utils/adt/formatting.c:2637
 #, c-format
 msgid "The given value did not match any of the allowed values for this field."
 msgstr "La valeur donnée ne correspond pas aux valeurs autorisées pour ce champ."
 
-#: utils/adt/formatting.c:2627 utils/adt/formatting.c:2647 utils/adt/formatting.c:2667 utils/adt/formatting.c:2687 utils/adt/formatting.c:2706 utils/adt/formatting.c:2725 utils/adt/formatting.c:2749 utils/adt/formatting.c:2767 utils/adt/formatting.c:2785 utils/adt/formatting.c:2803 utils/adt/formatting.c:2820 utils/adt/formatting.c:2837
+#: utils/adt/formatting.c:2854 utils/adt/formatting.c:2874 utils/adt/formatting.c:2894 utils/adt/formatting.c:2914 utils/adt/formatting.c:2933 utils/adt/formatting.c:2952 utils/adt/formatting.c:2976 utils/adt/formatting.c:2994 utils/adt/formatting.c:3012 utils/adt/formatting.c:3030 utils/adt/formatting.c:3047 utils/adt/formatting.c:3064
 #, c-format
 msgid "localized string format value too long"
 msgstr "chaîne localisée trop longue"
 
-#: utils/adt/formatting.c:3179
+#: utils/adt/formatting.c:3298
+#, c-format
+msgid "unmatched format separator \"%c\""
+msgstr ""
+
+#: utils/adt/formatting.c:3453 utils/adt/formatting.c:3797
 #, c-format
 msgid "formatting field \"%s\" is only supported in to_char"
 msgstr "le formatage du champ « %s » est seulement supporté dans to_char"
 
-#: utils/adt/formatting.c:3320
+#: utils/adt/formatting.c:3628
 #, c-format
 msgid "invalid input string for \"Y,YYY\""
 msgstr "chaîne invalide en entrée pour « Y,YYY »"
 
-#: utils/adt/formatting.c:3854
+#: utils/adt/formatting.c:3714
+#, c-format
+msgid "input string is too short for datetime format"
+msgstr "la chaîne en entrée est trop courte pour le format datetime"
+
+#: utils/adt/formatting.c:3722
+#, c-format
+msgid "trailing characters remain in input string after datetime format"
+msgstr ""
+
+#: utils/adt/formatting.c:4267
+#, c-format
+msgid "missing time zone in input string for type timestamptz"
+msgstr ""
+
+#: utils/adt/formatting.c:4273
+#, c-format
+msgid "timestamptz out of range"
+msgstr "timestamptz en dehors des limites"
+
+#: utils/adt/formatting.c:4301
+#, c-format
+msgid "datetime format is zoned but not timed"
+msgstr ""
+
+#: utils/adt/formatting.c:4353
+#, c-format
+msgid "missing time zone in input string for type timetz"
+msgstr ""
+
+#: utils/adt/formatting.c:4359
+#, c-format
+msgid "timetz out of range"
+msgstr "timetz en dehors des limites"
+
+#: utils/adt/formatting.c:4385
+#, c-format
+msgid "datetime format is not dated and not timed"
+msgstr ""
+
+#: utils/adt/formatting.c:4518
 #, c-format
 msgid "hour \"%d\" is invalid for the 12-hour clock"
 msgstr "l'heure « %d » est invalide pour une horloge sur 12 heures"
 
-#: utils/adt/formatting.c:3856
+#: utils/adt/formatting.c:4520
 #, c-format
 msgid "Use the 24-hour clock, or give an hour between 1 and 12."
 msgstr "Utilisez une horloge sur 24 heures ou donnez une heure entre 1 et 12."
 
-#: utils/adt/formatting.c:3962
+#: utils/adt/formatting.c:4628
 #, c-format
 msgid "cannot calculate day of year without year information"
 msgstr "ne peut pas calculer le jour de l'année sans information sur l'année"
 
-#: utils/adt/formatting.c:4869
+#: utils/adt/formatting.c:5547
 #, c-format
 msgid "\"EEEE\" not supported for input"
 msgstr "« EEEE » non supporté en entrée"
 
-#: utils/adt/formatting.c:4881
+#: utils/adt/formatting.c:5559
 #, c-format
 msgid "\"RN\" not supported for input"
 msgstr "« RN » non supporté en entrée"
 
-#: utils/adt/genfile.c:81
+#: utils/adt/genfile.c:75
 #, c-format
 msgid "reference to parent directory (\"..\") not allowed"
 msgstr "référence non autorisée au répertoire parent (« .. »)"
 
-#: utils/adt/genfile.c:92
+#: utils/adt/genfile.c:86
 #, c-format
 msgid "absolute path not allowed"
 msgstr "chemin absolu non autorisé"
 
-#: utils/adt/genfile.c:97
+#: utils/adt/genfile.c:91
 #, c-format
 msgid "path must be in or below the current directory"
 msgstr "le chemin doit être dans ou en-dessous du répertoire courant"
 
-#: utils/adt/genfile.c:144 utils/adt/oracle_compat.c:185 utils/adt/oracle_compat.c:283 utils/adt/oracle_compat.c:759 utils/adt/oracle_compat.c:1054
+#: utils/adt/genfile.c:116 utils/adt/oracle_compat.c:185 utils/adt/oracle_compat.c:283 utils/adt/oracle_compat.c:759 utils/adt/oracle_compat.c:1054
 #, c-format
 msgid "requested length too large"
 msgstr "longueur demandée trop importante"
 
-#: utils/adt/genfile.c:161
+#: utils/adt/genfile.c:133
 #, c-format
 msgid "could not seek in file \"%s\": %m"
 msgstr "n'a pas pu parcourir le fichier « %s » : %m"
 
-#: utils/adt/genfile.c:221
+#: utils/adt/genfile.c:174
+#, c-format
+msgid "file length too large"
+msgstr "longueur du fichier trop importante"
+
+#: utils/adt/genfile.c:251
 #, c-format
 msgid "must be superuser to read files with adminpack 1.0"
 msgstr "doit être super-utilisateur pour lire des fichiers avec adminpack 1.0"
@@ -21757,7 +22327,7 @@ msgstr "spécification invalide de ligne : A et B ne peuvent pas être à zéro
 msgid "invalid line specification: must be two distinct points"
 msgstr "spécification de ligne invalide : doit être deux points distincts"
 
-#: utils/adt/geo_ops.c:1399 utils/adt/geo_ops.c:3370 utils/adt/geo_ops.c:4238 utils/adt/geo_ops.c:5129
+#: utils/adt/geo_ops.c:1399 utils/adt/geo_ops.c:3486 utils/adt/geo_ops.c:4354 utils/adt/geo_ops.c:5248
 #, c-format
 msgid "too many points requested"
 msgstr "trop de points demandé"
@@ -21767,52 +22337,57 @@ msgstr "trop de points demandé"
 msgid "invalid number of points in external \"path\" value"
 msgstr "nombre de points invalide dans la valeur externe de « path »"
 
-#: utils/adt/geo_ops.c:2459
+#: utils/adt/geo_ops.c:2537
 #, c-format
 msgid "function \"dist_lb\" not implemented"
 msgstr "la fonction « dist_lb » n'est pas implémentée"
 
-#: utils/adt/geo_ops.c:2859
+#: utils/adt/geo_ops.c:2556
+#, c-format
+msgid "function \"dist_bl\" not implemented"
+msgstr "fonction « dist_lb » non implémentée"
+
+#: utils/adt/geo_ops.c:2975
 #, c-format
 msgid "function \"close_sl\" not implemented"
 msgstr "la fonction « close_sl » n'est pas implémentée"
 
-#: utils/adt/geo_ops.c:3006
+#: utils/adt/geo_ops.c:3122
 #, c-format
 msgid "function \"close_lb\" not implemented"
 msgstr "la fonction « close_lb » n'est pas implémentée"
 
-#: utils/adt/geo_ops.c:3417
+#: utils/adt/geo_ops.c:3533
 #, c-format
 msgid "invalid number of points in external \"polygon\" value"
 msgstr "nombre de points invalide dans la valeur externe de « polygon »"
 
-#: utils/adt/geo_ops.c:3953
+#: utils/adt/geo_ops.c:4069
 #, c-format
 msgid "function \"poly_distance\" not implemented"
 msgstr "la fonction « poly_distance » n'est pas implémentée"
 
-#: utils/adt/geo_ops.c:4330
+#: utils/adt/geo_ops.c:4446
 #, c-format
 msgid "function \"path_center\" not implemented"
 msgstr "la fonction « path_center » n'est pas implémentée"
 
-#: utils/adt/geo_ops.c:4347
+#: utils/adt/geo_ops.c:4463
 #, c-format
 msgid "open path cannot be converted to polygon"
 msgstr "le chemin ouvert ne peut être converti en polygône"
 
-#: utils/adt/geo_ops.c:4594
+#: utils/adt/geo_ops.c:4713
 #, c-format
 msgid "invalid radius in external \"circle\" value"
 msgstr "diamètre invalide pour la valeur externe de « circle »"
 
-#: utils/adt/geo_ops.c:5115
+#: utils/adt/geo_ops.c:5234
 #, c-format
 msgid "cannot convert circle with radius zero to polygon"
 msgstr "ne peut pas convertir le cercle avec un diamètre zéro en un polygône"
 
-#: utils/adt/geo_ops.c:5120
+#: utils/adt/geo_ops.c:5239
 #, c-format
 msgid "must request at least 2 points"
 msgstr "doit demander au moins deux points"
@@ -21832,490 +22407,483 @@ msgstr "données int2vector invalide"
 msgid "oidvector has too many elements"
 msgstr "oidvector a trop d'éléments"
 
-#: utils/adt/int.c:1383 utils/adt/int8.c:1328 utils/adt/numeric.c:1423 utils/adt/timestamp.c:5408 utils/adt/timestamp.c:5489
+#: utils/adt/int.c:1510 utils/adt/int8.c:1439 utils/adt/numeric.c:1417 utils/adt/timestamp.c:5435 utils/adt/timestamp.c:5515
 #, c-format
 msgid "step size cannot equal zero"
 msgstr "la taille du pas ne peut pas valoir zéro"
 
-#: utils/adt/int8.c:529 utils/adt/int8.c:552 utils/adt/int8.c:566 utils/adt/int8.c:580 utils/adt/int8.c:611 utils/adt/int8.c:635 utils/adt/int8.c:690 utils/adt/int8.c:704 utils/adt/int8.c:728 utils/adt/int8.c:741 utils/adt/int8.c:810 utils/adt/int8.c:824 utils/adt/int8.c:838 utils/adt/int8.c:869 utils/adt/int8.c:891 utils/adt/int8.c:905 utils/adt/int8.c:919 utils/adt/int8.c:952 utils/adt/int8.c:966 utils/adt/int8.c:980 utils/adt/int8.c:1011
-#: utils/adt/int8.c:1033 utils/adt/int8.c:1047 utils/adt/int8.c:1061 utils/adt/int8.c:1230 utils/adt/int8.c:1272 utils/adt/numeric.c:3313 utils/adt/varbit.c:1654
+#: utils/adt/int8.c:527 utils/adt/int8.c:550 utils/adt/int8.c:564 utils/adt/int8.c:578 utils/adt/int8.c:609 utils/adt/int8.c:633 utils/adt/int8.c:715 utils/adt/int8.c:783 utils/adt/int8.c:789 utils/adt/int8.c:815 utils/adt/int8.c:829 utils/adt/int8.c:853 utils/adt/int8.c:866 utils/adt/int8.c:935 utils/adt/int8.c:949 utils/adt/int8.c:963 utils/adt/int8.c:994 utils/adt/int8.c:1016 utils/adt/int8.c:1030 utils/adt/int8.c:1044 utils/adt/int8.c:1077
+#: utils/adt/int8.c:1091 utils/adt/int8.c:1105 utils/adt/int8.c:1136 utils/adt/int8.c:1158 utils/adt/int8.c:1172 utils/adt/int8.c:1186 utils/adt/int8.c:1348 utils/adt/int8.c:1383 utils/adt/numeric.c:3508 utils/adt/varbit.c:1656
 #, c-format
 msgid "bigint out of range"
 msgstr "bigint en dehors des limites"
 
-#: utils/adt/int8.c:1285
+#: utils/adt/int8.c:1396
 #, c-format
 msgid "OID out of range"
 msgstr "OID en dehors des limites"
 
-#: utils/adt/json.c:787
-#, c-format
-msgid "Character with value 0x%02x must be escaped."
-msgstr "Le caractère de valeur 0x%02x doit être échappé."
-
-#: utils/adt/json.c:828
-#, c-format
-msgid "\"\\u\" must be followed by four hexadecimal digits."
-msgstr "« \\u » doit être suivi par quatre chiffres hexadécimaux."
-
-#: utils/adt/json.c:949 utils/adt/json.c:967
-#, c-format
-msgid "Escape sequence \"\\%s\" is invalid."
-msgstr "La séquence d'échappement « \\%s » est invalide."
-
-#: utils/adt/json.c:1136
-#, c-format
-msgid "The input string ended unexpectedly."
-msgstr "La chaîne en entrée se ferme de manière inattendue."
-
-#: utils/adt/json.c:1150
-#, c-format
-msgid "Expected end of input, but found \"%s\"."
-msgstr "Attendait une fin de l'entrée, mais a trouvé « %s »."
-
-#: utils/adt/json.c:1161
-#, c-format
-msgid "Expected JSON value, but found \"%s\"."
-msgstr "Valeur JSON attendue, mais « %s » trouvé."
-
-#: utils/adt/json.c:1169 utils/adt/json.c:1217
-#, c-format
-msgid "Expected string, but found \"%s\"."
-msgstr "Chaîne attendue, mais « %s » trouvé."
-
-#: utils/adt/json.c:1177
-#, c-format
-msgid "Expected array element or \"]\", but found \"%s\"."
-msgstr "Élément de tableau ou « ] » attendu, mais trouvé « %s »."
-
-#: utils/adt/json.c:1185
-#, c-format
-msgid "Expected \",\" or \"]\", but found \"%s\"."
-msgstr "« , » ou « ] » attendu, mais trouvé « %s »."
-
-#: utils/adt/json.c:1193
-#, c-format
-msgid "Expected string or \"}\", but found \"%s\"."
-msgstr "Chaîne ou « } » attendu, mais « %s » trouvé"
-
-#: utils/adt/json.c:1201
-#, c-format
-msgid "Expected \":\", but found \"%s\"."
-msgstr "« : » attendu, mais trouvé « %s »."
-
-#: utils/adt/json.c:1209
-#, c-format
-msgid "Expected \",\" or \"}\", but found \"%s\"."
-msgstr "« , » ou « } » attendu, mais trouvé « %s »."
-
-#: utils/adt/json.c:1247
-#, c-format
-msgid "Token \"%s\" is invalid."
-msgstr "Le jeton « %s » n'est pas valide."
-
-#: utils/adt/json.c:1319
-#, c-format
-msgid "JSON data, line %d: %s%s%s"
-msgstr "données JSON, ligne %d : %s%s%s"
-
-#: utils/adt/json.c:1475 utils/adt/jsonb.c:739
+#: utils/adt/json.c:271 utils/adt/jsonb.c:757
 #, c-format
 msgid "key value must be scalar, not array, composite, or json"
 msgstr "la valeur clé doit être scalaire, et non pas un tableau ou une valeur composite ou un json"
 
-#: utils/adt/json.c:2076 utils/adt/json.c:2086 utils/fmgr/funcapi.c:1549
+#: utils/adt/json.c:892 utils/adt/json.c:902 utils/fmgr/funcapi.c:1812
 #, c-format
 msgid "could not determine data type for argument %d"
 msgstr "n'a pas pu déterminer le type de données pour l'argument %d"
 
-#: utils/adt/json.c:2110 utils/adt/jsonb.c:1707
+#: utils/adt/json.c:926 utils/adt/jsonb.c:1728
 #, c-format
 msgid "field name must not be null"
 msgstr "le nom du champ ne doit pas être NULL"
 
-#: utils/adt/json.c:2194 utils/adt/jsonb.c:1157
+#: utils/adt/json.c:1010 utils/adt/jsonb.c:1178
 #, c-format
 msgid "argument list must have even number of elements"
 msgstr "la liste d'arguments doit avoir un nombre pair d'éléments"
 
 #. translator: %s is a SQL function name
-#: utils/adt/json.c:2196 utils/adt/jsonb.c:1159
+#: utils/adt/json.c:1012 utils/adt/jsonb.c:1180
 #, c-format
 msgid "The arguments of %s must consist of alternating keys and values."
 msgstr "Les arguments de %s doivent consister en clés et valeurs alternées."
 
-#: utils/adt/json.c:2212
+#: utils/adt/json.c:1028
 #, c-format
 msgid "argument %d cannot be null"
 msgstr "l'argument %d ne peut pas être NULL"
 
-#: utils/adt/json.c:2213
+#: utils/adt/json.c:1029
 #, c-format
 msgid "Object keys should be text."
 msgstr "Les clés de l'objet doivent être du texte."
 
-#: utils/adt/json.c:2319 utils/adt/jsonb.c:1289
+#: utils/adt/json.c:1135 utils/adt/jsonb.c:1310
 #, c-format
 msgid "array must have two columns"
 msgstr "le tableau doit avoir deux colonnes"
 
-#: utils/adt/json.c:2343 utils/adt/json.c:2427 utils/adt/jsonb.c:1313 utils/adt/jsonb.c:1408
+#: utils/adt/json.c:1159 utils/adt/json.c:1243 utils/adt/jsonb.c:1334 utils/adt/jsonb.c:1429
 #, c-format
 msgid "null value not allowed for object key"
 msgstr "valeur NULL non autorisée pour une clé d'objet"
 
-#: utils/adt/json.c:2416 utils/adt/jsonb.c:1397
+#: utils/adt/json.c:1232 utils/adt/jsonb.c:1418
 #, c-format
 msgid "mismatched array dimensions"
 msgstr "dimensions du tableau non correspondantes"
 
-#: utils/adt/jsonb.c:269
+#: utils/adt/jsonb.c:287
 #, c-format
 msgid "string too long to represent as jsonb string"
 msgstr "chaîne trop longue pour être représentée en tant que chaîne jsonb"
 
-#: utils/adt/jsonb.c:270
+#: utils/adt/jsonb.c:288
 #, c-format
 msgid "Due to an implementation restriction, jsonb strings cannot exceed %d bytes."
 msgstr "Dû à l'implémentation, les chaînes jsonb ne peuvent excéder %d octets."
 
-#: utils/adt/jsonb.c:1172
+#: utils/adt/jsonb.c:1193
 #, c-format
 msgid "argument %d: key must not be null"
 msgstr "argument %d : la clé ne doit pas être NULL"
 
-#: utils/adt/jsonb.c:1760
+#: utils/adt/jsonb.c:1781
 #, c-format
 msgid "object keys must be strings"
 msgstr "les clés de l'objet doivent être du texte"
 
-#: utils/adt/jsonb.c:1923
+#: utils/adt/jsonb.c:1944
 #, c-format
 msgid "cannot cast jsonb null to type %s"
 msgstr "ne peut pas convertir un jsonb NULL vers le type %s"
 
-#: utils/adt/jsonb.c:1924
+#: utils/adt/jsonb.c:1945
 #, c-format
 msgid "cannot cast jsonb string to type %s"
 msgstr "ne peut pas convertir la chaîne jsonb vers le type %s"
 
-#: utils/adt/jsonb.c:1925
+#: utils/adt/jsonb.c:1946
 #, c-format
 msgid "cannot cast jsonb numeric to type %s"
 msgstr "ne peut pas convertir le numeric jsonb vers le type %s"
 
-#: utils/adt/jsonb.c:1926
+#: utils/adt/jsonb.c:1947
 #, c-format
 msgid "cannot cast jsonb boolean to type %s"
 msgstr "ne peut pas convertir le booléen jsonb vers le type %s"
 
-#: utils/adt/jsonb.c:1927
+#: utils/adt/jsonb.c:1948
 #, c-format
 msgid "cannot cast jsonb array to type %s"
 msgstr "ne peut pas convertir le tableau jsonb vers le type %s"
 
-#: utils/adt/jsonb.c:1928
+#: utils/adt/jsonb.c:1949
 #, c-format
 msgid "cannot cast jsonb object to type %s"
 msgstr "ne peut pas convertir l'objet jsonb vers le type %s"
 
-#: utils/adt/jsonb.c:1929
+#: utils/adt/jsonb.c:1950
 #, c-format
 msgid "cannot cast jsonb array or object to type %s"
 msgstr "ne peut pas convertir le tableau ou l'objet jsonb vers le type %s"
 
-#: utils/adt/jsonb_util.c:657
+#: utils/adt/jsonb_util.c:699
 #, c-format
 msgid "number of jsonb object pairs exceeds the maximum allowed (%zu)"
 msgstr "le nombre de paires d'objets jsonb dépasse le maximum autorisé (%zu)"
 
-#: utils/adt/jsonb_util.c:698
+#: utils/adt/jsonb_util.c:740
 #, c-format
 msgid "number of jsonb array elements exceeds the maximum allowed (%zu)"
 msgstr "le nombre d'éléments du tableau jsonb dépasse le maximum autorisé (%zu)"
 
-#: utils/adt/jsonb_util.c:1569 utils/adt/jsonb_util.c:1589
+#: utils/adt/jsonb_util.c:1614 utils/adt/jsonb_util.c:1634
 #, c-format
 msgid "total size of jsonb array elements exceeds the maximum of %u bytes"
 msgstr "la taille totale des éléments du tableau jsonb dépasse le maximum de %u octets"
 
-#: utils/adt/jsonb_util.c:1650 utils/adt/jsonb_util.c:1685 utils/adt/jsonb_util.c:1705
+#: utils/adt/jsonb_util.c:1695 utils/adt/jsonb_util.c:1730 utils/adt/jsonb_util.c:1750
 #, c-format
 msgid "total size of jsonb object elements exceeds the maximum of %u bytes"
 msgstr "la taille totale des éléments de l'objet JSON dépasse le maximum de %u octets"
 
-#: utils/adt/jsonfuncs.c:522 utils/adt/jsonfuncs.c:687 utils/adt/jsonfuncs.c:2275 utils/adt/jsonfuncs.c:2715 utils/adt/jsonfuncs.c:3505 utils/adt/jsonfuncs.c:3836
+#: utils/adt/jsonfuncs.c:551 utils/adt/jsonfuncs.c:796 utils/adt/jsonfuncs.c:2330 utils/adt/jsonfuncs.c:2770 utils/adt/jsonfuncs.c:3560 utils/adt/jsonfuncs.c:3891
 #, c-format
 msgid "cannot call %s on a scalar"
 msgstr "ne peut pas appeler %s sur un scalaire"
 
-#: utils/adt/jsonfuncs.c:527 utils/adt/jsonfuncs.c:674 utils/adt/jsonfuncs.c:2717 utils/adt/jsonfuncs.c:3494
+#: utils/adt/jsonfuncs.c:556 utils/adt/jsonfuncs.c:783 utils/adt/jsonfuncs.c:2772 utils/adt/jsonfuncs.c:3549
 #, c-format
 msgid "cannot call %s on an array"
 msgstr "ne peut pas appeler %s sur un tableau"
 
-#: utils/adt/jsonfuncs.c:1590 utils/adt/jsonfuncs.c:1625
+#: utils/adt/jsonfuncs.c:692
+#, c-format
+msgid "JSON data, line %d: %s%s%s"
+msgstr "données JSON, ligne %d : %s%s%s"
+
+#: utils/adt/jsonfuncs.c:1682 utils/adt/jsonfuncs.c:1717
 #, c-format
 msgid "cannot get array length of a scalar"
 msgstr "ne peut pas obtenir la longueur d'un scalaire"
 
-#: utils/adt/jsonfuncs.c:1594 utils/adt/jsonfuncs.c:1613
+#: utils/adt/jsonfuncs.c:1686 utils/adt/jsonfuncs.c:1705
 #, c-format
 msgid "cannot get array length of a non-array"
 msgstr "ne peut pas obtenir la longueur du tableau d'un objet qui n'est pas un tableau"
 
-#: utils/adt/jsonfuncs.c:1690
+#: utils/adt/jsonfuncs.c:1782
 #, c-format
 msgid "cannot call %s on a non-object"
 msgstr "ne peut pas appeler %s sur un non objet"
 
-#: utils/adt/jsonfuncs.c:1948
+#: utils/adt/jsonfuncs.c:2021
 #, c-format
 msgid "cannot deconstruct an array as an object"
 msgstr "ne peut pas déconstruire un tableau sous la forme d'un objet"
 
-#: utils/adt/jsonfuncs.c:1960
+#: utils/adt/jsonfuncs.c:2033
 #, c-format
 msgid "cannot deconstruct a scalar"
 msgstr "ne peut pas décomposer un scalaire"
 
-#: utils/adt/jsonfuncs.c:2006
+#: utils/adt/jsonfuncs.c:2079
 #, c-format
 msgid "cannot extract elements from a scalar"
 msgstr "ne peut pas extraire des éléments d'un scalaire"
 
-#: utils/adt/jsonfuncs.c:2010
+#: utils/adt/jsonfuncs.c:2083
 #, c-format
 msgid "cannot extract elements from an object"
 msgstr "ne peut pas extraire des éléments d'un objet"
 
-#: utils/adt/jsonfuncs.c:2262 utils/adt/jsonfuncs.c:3720
+#: utils/adt/jsonfuncs.c:2317 utils/adt/jsonfuncs.c:3775
 #, c-format
 msgid "cannot call %s on a non-array"
 msgstr "ne peut pas appeler %s sur un type non tableau"
 
-#: utils/adt/jsonfuncs.c:2332 utils/adt/jsonfuncs.c:2337 utils/adt/jsonfuncs.c:2354 utils/adt/jsonfuncs.c:2360
+#: utils/adt/jsonfuncs.c:2387 utils/adt/jsonfuncs.c:2392 utils/adt/jsonfuncs.c:2409 utils/adt/jsonfuncs.c:2415
 #, c-format
 msgid "expected JSON array"
 msgstr "attendait un tableau JSON"
 
-#: utils/adt/jsonfuncs.c:2333
+#: utils/adt/jsonfuncs.c:2388
 #, c-format
 msgid "See the value of key \"%s\"."
 msgstr "Voir la valeur de la clé « %s »."
 
-#: utils/adt/jsonfuncs.c:2355
+#: utils/adt/jsonfuncs.c:2410
 #, c-format
 msgid "See the array element %s of key \"%s\"."
 msgstr "Voir l'élément de tableau %s de la clé « %s »."
 
-#: utils/adt/jsonfuncs.c:2361
+#: utils/adt/jsonfuncs.c:2416
 #, c-format
 msgid "See the array element %s."
 msgstr "Voir l'élément de tableau %s."
 
-#: utils/adt/jsonfuncs.c:2396
+#: utils/adt/jsonfuncs.c:2451
 #, c-format
 msgid "malformed JSON array"
 msgstr "tableau JSON mal formé"
 
 #. translator: %s is a function name, eg json_to_record
-#: utils/adt/jsonfuncs.c:3223
+#: utils/adt/jsonfuncs.c:3278
 #, c-format
 msgid "first argument of %s must be a row type"
 msgstr "le premier argument de %s doit être un type row"
 
 #. translator: %s is a function name, eg json_to_record
-#: utils/adt/jsonfuncs.c:3247
+#: utils/adt/jsonfuncs.c:3302
 #, c-format
 msgid "could not determine row type for result of %s"
 msgstr "n'a pas pu déterminer le type de ligne pour le résultat %s"
 
-#: utils/adt/jsonfuncs.c:3249
+#: utils/adt/jsonfuncs.c:3304
 #, c-format
 msgid "Provide a non-null record argument, or call the function in the FROM clause using a column definition list."
 msgstr "Fournissez comme argument un enregistrement non NULL, ou appelez la fonction dans la clause FROM en utilisant une liste de définition de colonnes."
 
-#: utils/adt/jsonfuncs.c:3737 utils/adt/jsonfuncs.c:3818
+#: utils/adt/jsonfuncs.c:3792 utils/adt/jsonfuncs.c:3873
 #, c-format
 msgid "argument of %s must be an array of objects"
 msgstr "l'argument de %s doit être un tableau d'objets"
 
-#: utils/adt/jsonfuncs.c:3770
+#: utils/adt/jsonfuncs.c:3825
 #, c-format
 msgid "cannot call %s on an object"
 msgstr "ne peut pas appeler %s sur un objet"
 
-#: utils/adt/jsonfuncs.c:4247 utils/adt/jsonfuncs.c:4306 utils/adt/jsonfuncs.c:4386
+#: utils/adt/jsonfuncs.c:4286 utils/adt/jsonfuncs.c:4345 utils/adt/jsonfuncs.c:4425
 #, c-format
 msgid "cannot delete from scalar"
 msgstr "ne peut pas supprimer à partir du scalaire"
 
-#: utils/adt/jsonfuncs.c:4391
+#: utils/adt/jsonfuncs.c:4430
 #, c-format
 msgid "cannot delete from object using integer index"
 msgstr "ne peut pas supprimer à partir de l'objet en utilisant l'index de l'entier"
 
-#: utils/adt/jsonfuncs.c:4457 utils/adt/jsonfuncs.c:4549
+#: utils/adt/jsonfuncs.c:4495 utils/adt/jsonfuncs.c:4653
 #, c-format
 msgid "cannot set path in scalar"
 msgstr "ne peut pas initialiser le chemin dans le scalaire"
 
-#: utils/adt/jsonfuncs.c:4502
+#: utils/adt/jsonfuncs.c:4537 utils/adt/jsonfuncs.c:4579
+#, c-format
+msgid "null_value_treatment must be \"delete_key\", \"return_target\", \"use_json_null\", or \"raise_exception\""
+msgstr ""
+
+#: utils/adt/jsonfuncs.c:4550
+#, c-format
+msgid "JSON value must not be null"
+msgstr "la valeur JSON ne doit pas être NULL"
+
+#: utils/adt/jsonfuncs.c:4551
+#, c-format
+msgid "Exception was raised because null_value_treatment is \"raise_exception\"."
+msgstr "Une exception a été levée parce que null_value_treatment vaut « raise_exception »."
+
+#: utils/adt/jsonfuncs.c:4552
+#, c-format
+msgid "To avoid, either change the null_value_treatment argument or ensure that an SQL NULL is not passed."
+msgstr ""
+
+#: utils/adt/jsonfuncs.c:4607
 #, c-format
 msgid "cannot delete path in scalar"
 msgstr "ne peut pas supprimer un chemin dans le scalaire"
 
-#: utils/adt/jsonfuncs.c:4672
+#: utils/adt/jsonfuncs.c:4776
 #, c-format
 msgid "invalid concatenation of jsonb objects"
 msgstr "concaténation invalide d'objets jsonb"
 
-#: utils/adt/jsonfuncs.c:4706
+#: utils/adt/jsonfuncs.c:4810
 #, c-format
 msgid "path element at position %d is null"
 msgstr "l'élément de chemin à la position %d est nul"
 
-#: utils/adt/jsonfuncs.c:4792
+#: utils/adt/jsonfuncs.c:4896
 #, c-format
 msgid "cannot replace existing key"
 msgstr "ne peut pas remplacer une clé existante"
 
-#: utils/adt/jsonfuncs.c:4793
+#: utils/adt/jsonfuncs.c:4897
 #, c-format
 msgid "Try using the function jsonb_set to replace key value."
 msgstr "Essayez d'utiliser la fonction jsonb_set pour remplacer la valeur de la clé."
 
-#: utils/adt/jsonfuncs.c:4875
+#: utils/adt/jsonfuncs.c:4979
 #, c-format
 msgid "path element at position %d is not an integer: \"%s\""
 msgstr "l'élément du chemin à la position %d n'est pas un entier : « %s »"
 
-#: utils/adt/jsonfuncs.c:4994
+#: utils/adt/jsonfuncs.c:5098
 #, c-format
 msgid "wrong flag type, only arrays and scalars are allowed"
 msgstr "mauvais type de drapeau, seuls les tableaux et scalaires sont autorisés"
 
-#: utils/adt/jsonfuncs.c:5001
+#: utils/adt/jsonfuncs.c:5105
 #, c-format
 msgid "flag array element is not a string"
 msgstr "le drapeau d'élément de tableau n'est pas une chaîne"
 
-#: utils/adt/jsonfuncs.c:5002 utils/adt/jsonfuncs.c:5024
+#: utils/adt/jsonfuncs.c:5106 utils/adt/jsonfuncs.c:5128
 #, c-format
 msgid "Possible values are: \"string\", \"numeric\", \"boolean\", \"key\", and \"all\"."
 msgstr "Les valeurs possibles sont : « string », « numeric », « boolean », « key » et « all »."
 
-#: utils/adt/jsonfuncs.c:5022
+#: utils/adt/jsonfuncs.c:5126
 #, c-format
 msgid "wrong flag in flag array: \"%s\""
 msgstr "mauvais drapeau dans le drapeau de tableau : « %s »"
 
-#: utils/adt/jsonpath.c:360
+#: utils/adt/jsonpath.c:362
 #, c-format
 msgid "@ is not allowed in root expressions"
 msgstr "@ n'est pas autorisé dans les expressions racine"
 
-#: utils/adt/jsonpath.c:366
+#: utils/adt/jsonpath.c:368
 #, c-format
 msgid "LAST is allowed only in array subscripts"
 msgstr "LAST n'est autorisé que dans les indices de tableau"
 
-#: utils/adt/jsonpath_exec.c:340
+#: utils/adt/jsonpath_exec.c:360
 #, c-format
 msgid "single boolean result is expected"
 msgstr "un résultat booléen unique est attendu"
 
-#: utils/adt/jsonpath_exec.c:488
+#: utils/adt/jsonpath_exec.c:556
 #, c-format
 msgid "\"vars\" argument is not an object"
 msgstr "l'argument « vars » n'est pas un objet"
 
-#: utils/adt/jsonpath_exec.c:489
+#: utils/adt/jsonpath_exec.c:557
 #, c-format
 msgid "Jsonpath parameters should be encoded as key-value pairs of \"vars\" object."
 msgstr "Les paramètres jsonpath doivent être encodés en paires clé-valeur d'objets « vars»"
 
-#: utils/adt/jsonpath_exec.c:605
+#: utils/adt/jsonpath_exec.c:674
 #, c-format
 msgid "JSON object does not contain key \"%s\""
 msgstr "l'objet JSON ne contient pas la clé « %s »"
 
-#: utils/adt/jsonpath_exec.c:617
+#: utils/adt/jsonpath_exec.c:686
 #, c-format
 msgid "jsonpath member accessor can only be applied to an object"
 msgstr "l'accesseur du membre jsonpath ne peut être appliqué qu'à un objet"
 
-#: utils/adt/jsonpath_exec.c:646
+#: utils/adt/jsonpath_exec.c:715
 #, c-format
 msgid "jsonpath wildcard array accessor can only be applied to an array"
 msgstr "l'accesseur de tableau générique jsonpath ne peut être appliqué qu'à un tableau"
 
-#: utils/adt/jsonpath_exec.c:694
+#: utils/adt/jsonpath_exec.c:763
 #, c-format
 msgid "jsonpath array subscript is out of bounds"
 msgstr "indice du tableau jsonpath hors limites"
 
-#: utils/adt/jsonpath_exec.c:751
+#: utils/adt/jsonpath_exec.c:820
 #, c-format
 msgid "jsonpath array accessor can only be applied to an array"
 msgstr "l'accesseur de tableau jsonpath ne peut être appliqué qu'à un tableau"
 
-#: utils/adt/jsonpath_exec.c:805
+#: utils/adt/jsonpath_exec.c:874
 #, c-format
 msgid "jsonpath wildcard member accessor can only be applied to an object"
 msgstr "l'accesseur du membre générique jsonpath ne peut être appliqué qu'à un objet"
 
-#: utils/adt/jsonpath_exec.c:935
+#: utils/adt/jsonpath_exec.c:1004
 #, c-format
 msgid "jsonpath item method .%s() can only be applied to an array"
 msgstr "la méthode de l'objet jsonpath .%s() ne peut être appliquée qu'à un tableau"
 
-#: utils/adt/jsonpath_exec.c:989 utils/adt/jsonpath_exec.c:1010 utils/adt/jsonpath_exec.c:1680
+#: utils/adt/jsonpath_exec.c:1059
+#, fuzzy, c-format
+#| msgid "\"%s\" is out of range for type double precision"
+msgid "numeric argument of jsonpath item method .%s() is out of range for type double precision"
+msgstr "« %s » est en dehors des limites du type double precision"
+
+#: utils/adt/jsonpath_exec.c:1080
 #, c-format
-msgid "jsonpath item method .%s() can only be applied to a numeric value"
-msgstr "la méthode de l'objet jsonpath .%s() ne peut être appliquée qu'à une valeur numérique"
+msgid "string argument of jsonpath item method .%s() is not a valid representation of a double precision number"
+msgstr ""
 
-#: utils/adt/jsonpath_exec.c:1023
+#: utils/adt/jsonpath_exec.c:1093
 #, c-format
 msgid "jsonpath item method .%s() can only be applied to a string or numeric value"
 msgstr "la méthode de l'objet jsonpath .%s() ne peut être appliquée qu'à une chaîne ou une valeur numérique"
 
-#: utils/adt/jsonpath_exec.c:1507
+#: utils/adt/jsonpath_exec.c:1583
 #, c-format
 msgid "left operand of jsonpath operator %s is not a single numeric value"
 msgstr "l'opérande gauche de l'opérateur jsonpath %s n'est pas une valeur numérique unique"
 
-#: utils/adt/jsonpath_exec.c:1514
+#: utils/adt/jsonpath_exec.c:1590
 #, c-format
 msgid "right operand of jsonpath operator %s is not a single numeric value"
 msgstr "l'opérande droite de l'opérateur jsonpath %s n'est pas une valeur numérique unique"
 
-#: utils/adt/jsonpath_exec.c:1582
+#: utils/adt/jsonpath_exec.c:1658
 #, c-format
 msgid "operand of unary jsonpath operator %s is not a numeric value"
 msgstr "l'opérande de l'opérateur jsonpath unaire %s n'est pas une valeur numérique"
 
-#: utils/adt/jsonpath_exec.c:1739
+#: utils/adt/jsonpath_exec.c:1756
+#, c-format
+msgid "jsonpath item method .%s() can only be applied to a numeric value"
+msgstr "la méthode de l'objet jsonpath .%s() ne peut être appliquée qu'à une valeur numérique"
+
+#: utils/adt/jsonpath_exec.c:1796
+#, fuzzy, c-format
+#| msgid "jsonpath item method .%s() can only be applied to an array"
+msgid "jsonpath item method .%s() can only be applied to a string"
+msgstr "la méthode de l'objet jsonpath .%s() ne peut être appliquée qu'à un tableau"
+
+#: utils/adt/jsonpath_exec.c:1884
+#, fuzzy, c-format
+#| msgid "COPY format \"%s\" not recognized"
+msgid "datetime format is not recognized: \"%s\""
+msgstr "format COPY « %s » non reconnu"
+
+#: utils/adt/jsonpath_exec.c:1886
+#, c-format
+msgid "Use a datetime template argument to specify the input data format."
+msgstr ""
+
+#: utils/adt/jsonpath_exec.c:1954
 #, c-format
 msgid "jsonpath item method .%s() can only be applied to an object"
 msgstr "la méthode .%s() de l'entité jsonpath ne peut être appliquée qu'à un objet"
 
-#: utils/adt/jsonpath_exec.c:1922
+#: utils/adt/jsonpath_exec.c:2137
 #, c-format
 msgid "could not find jsonpath variable \"%s\""
 msgstr "n'a pas pu trouver la variable jsonpath « %s »"
 
-#: utils/adt/jsonpath_exec.c:2169
+#: utils/adt/jsonpath_exec.c:2401
 #, c-format
 msgid "jsonpath array subscript is not a single numeric value"
 msgstr "l'indice du tableau jsonpath n'est pas une valeur numérique unique"
 
-#: utils/adt/jsonpath_exec.c:2181
+#: utils/adt/jsonpath_exec.c:2413
 #, c-format
 msgid "jsonpath array subscript is out of integer range"
 msgstr "indice du tableau jsonpath hors des limites d'un entier"
 
+#: utils/adt/jsonpath_exec.c:2590
+#, c-format
+msgid "cannot convert value from %s to %s without time zone usage"
+msgstr "ne peut pas convertir la valeur de %s à %s sans utilisation des fuseaux horaires"
+
+#: utils/adt/jsonpath_exec.c:2592
+#, c-format
+msgid "Use *_tz() function for time zone support."
+msgstr "Utilisez la fonction *_tz() pour le support des fuseaux horaires."
+
 #: utils/adt/levenshtein.c:133
 #, c-format
 msgid "levenshtein argument exceeds maximum length of %d characters"
@@ -22326,7 +22894,7 @@ msgstr "l'argument levenshtein dépasse la longueur maximale de %d caractères"
 msgid "nondeterministic collations are not supported for LIKE"
 msgstr "les collationnements non déterministes ne sont pas supportés pour LIKE"
 
-#: utils/adt/like.c:193 utils/adt/like_support.c:964
+#: utils/adt/like.c:193 utils/adt/like_support.c:1002
 #, c-format
 msgid "could not determine which collation to use for ILIKE"
 msgstr "n'a pas pu déterminer le collationnement à utiliser pour ILIKE"
@@ -22336,36 +22904,31 @@ msgstr "n'a pas pu déterminer le collationnement à utiliser pour ILIKE"
 msgid "nondeterministic collations are not supported for ILIKE"
 msgstr "les collationnements non déterministes ne sont pas supportés pour ILIKE"
 
-#: utils/adt/like_match.c:107 utils/adt/like_match.c:167
+#: utils/adt/like_match.c:108 utils/adt/like_match.c:168
 #, c-format
 msgid "LIKE pattern must not end with escape character"
 msgstr "le motif LIKE ne doit pas se terminer avec un caractère d'échappement"
 
-#: utils/adt/like_match.c:292 utils/adt/regexp.c:702
+#: utils/adt/like_match.c:293 utils/adt/regexp.c:700
 #, c-format
 msgid "invalid escape string"
 msgstr "chaîne d'échappement invalide"
 
-#: utils/adt/like_match.c:293 utils/adt/regexp.c:703
+#: utils/adt/like_match.c:294 utils/adt/regexp.c:701
 #, c-format
 msgid "Escape string must be empty or one character."
 msgstr "La chaîne d'échappement doit être vide ou ne contenir qu'un caractère."
 
-#: utils/adt/like_support.c:949
+#: utils/adt/like_support.c:987
 #, c-format
 msgid "case insensitive matching not supported on type bytea"
 msgstr "la recherche insensible à la casse n'est pas supportée avec le type bytea"
 
-#: utils/adt/like_support.c:1051
+#: utils/adt/like_support.c:1089
 #, c-format
 msgid "regular-expression matching not supported on type bytea"
 msgstr "la recherche par expression rationnelle n'est pas supportée sur le type bytea"
 
-#: utils/adt/lockfuncs.c:664
-#, c-format
-msgid "cannot use advisory locks during a parallel operation"
-msgstr "ne peut pas utiliser les verrous informatifs lors d'une opération parallèle"
-
 #: utils/adt/mac.c:102
 #, c-format
 msgid "invalid octet value in \"macaddr\" value: \"%s\""
@@ -22381,225 +22944,225 @@ msgstr "donnée macaddr8 hors de l'échelle pour être convertie en macaddr"
 msgid "Only addresses that have FF and FE as values in the 4th and 5th bytes from the left, for example xx:xx:xx:ff:fe:xx:xx:xx, are eligible to be converted from macaddr8 to macaddr."
 msgstr "Seules les adresses qui ont FF ou FE comme valeurs dans les 4è et 5è octets à partir de la gauche, par exemple xx:xx:xx:ff:fe:xx:xx:xx, , sont éligibles à être converties de macaddr8 à macaddr."
 
-#: utils/adt/misc.c:225
+#: utils/adt/misc.c:240
 #, c-format
 msgid "global tablespace never has databases"
 msgstr "le tablespace global n'a jamais de bases de données"
 
-#: utils/adt/misc.c:246
+#: utils/adt/misc.c:262
 #, c-format
 msgid "%u is not a tablespace OID"
 msgstr "%u n'est pas un OID de tablespace"
 
-#: utils/adt/misc.c:435
+#: utils/adt/misc.c:448
 msgid "unreserved"
 msgstr "non réservé"
 
-#: utils/adt/misc.c:439
+#: utils/adt/misc.c:452
 msgid "unreserved (cannot be function or type name)"
 msgstr "non réservé (ne peut pas être un nom de fonction ou de type)"
 
-#: utils/adt/misc.c:443
+#: utils/adt/misc.c:456
 msgid "reserved (can be function or type name)"
 msgstr "réservé (peut être un nom de fonction ou de type)"
 
-#: utils/adt/misc.c:447
+#: utils/adt/misc.c:460
 msgid "reserved"
 msgstr "réservé"
 
-#: utils/adt/misc.c:621 utils/adt/misc.c:635 utils/adt/misc.c:674 utils/adt/misc.c:680 utils/adt/misc.c:686 utils/adt/misc.c:709
+#: utils/adt/misc.c:634 utils/adt/misc.c:648 utils/adt/misc.c:687 utils/adt/misc.c:693 utils/adt/misc.c:699 utils/adt/misc.c:722
 #, c-format
 msgid "string is not a valid identifier: \"%s\""
 msgstr "la chaîne n'est pas un identifiant valide : « %s »"
 
-#: utils/adt/misc.c:623
+#: utils/adt/misc.c:636
 #, c-format
 msgid "String has unclosed double quotes."
 msgstr "La chaîne des guillements doubles non fermés."
 
-#: utils/adt/misc.c:637
+#: utils/adt/misc.c:650
 #, c-format
 msgid "Quoted identifier must not be empty."
 msgstr "L'identifiant entre guillemets ne doit pas être vide."
 
-#: utils/adt/misc.c:676
+#: utils/adt/misc.c:689
 #, c-format
 msgid "No valid identifier before \".\"."
 msgstr "Pas d'identifiant valide avant « . »."
 
-#: utils/adt/misc.c:682
+#: utils/adt/misc.c:695
 #, c-format
 msgid "No valid identifier after \".\"."
 msgstr "Pas d'identifiant valide après « . »."
 
-#: utils/adt/misc.c:743
+#: utils/adt/misc.c:753
 #, c-format
 msgid "log format \"%s\" is not supported"
 msgstr "le format de trace « %s » n'est pas supporté"
 
-#: utils/adt/misc.c:744
+#: utils/adt/misc.c:754
 #, c-format
 msgid "The supported log formats are \"stderr\" and \"csvlog\"."
 msgstr "Les formats de traces supportés sont « stderr » et « csvlog »."
 
-#: utils/adt/network.c:85
+#: utils/adt/network.c:111
 #, c-format
 msgid "invalid cidr value: \"%s\""
 msgstr "valeur cidr invalide : « %s »"
 
-#: utils/adt/network.c:86 utils/adt/network.c:216
+#: utils/adt/network.c:112 utils/adt/network.c:242
 #, c-format
 msgid "Value has bits set to right of mask."
 msgstr "La valeur a des bits positionnés à la droite du masque."
 
-#: utils/adt/network.c:127 utils/adt/network.c:800 utils/adt/network.c:825 utils/adt/network.c:850
+#: utils/adt/network.c:153 utils/adt/network.c:1199 utils/adt/network.c:1224 utils/adt/network.c:1249
 #, c-format
 msgid "could not format inet value: %m"
 msgstr "n'a pas pu formater la valeur inet : %m"
 
 #. translator: %s is inet or cidr
-#: utils/adt/network.c:184
+#: utils/adt/network.c:210
 #, c-format
 msgid "invalid address family in external \"%s\" value"
 msgstr "famille d'adresses invalide dans la valeur externe « %s »"
 
 #. translator: %s is inet or cidr
-#: utils/adt/network.c:191
+#: utils/adt/network.c:217
 #, c-format
 msgid "invalid bits in external \"%s\" value"
 msgstr "bits invalides dans la valeur externe « %s »"
 
 #. translator: %s is inet or cidr
-#: utils/adt/network.c:200
+#: utils/adt/network.c:226
 #, c-format
 msgid "invalid length in external \"%s\" value"
 msgstr "longueur invalide dans la valeur externe « %s »"
 
-#: utils/adt/network.c:215
+#: utils/adt/network.c:241
 #, c-format
 msgid "invalid external \"cidr\" value"
 msgstr "valeur externe « cidr » invalide"
 
-#: utils/adt/network.c:311 utils/adt/network.c:334
+#: utils/adt/network.c:337 utils/adt/network.c:360
 #, c-format
 msgid "invalid mask length: %d"
 msgstr "longueur du masque invalide : %d"
 
-#: utils/adt/network.c:868
+#: utils/adt/network.c:1267
 #, c-format
 msgid "could not format cidr value: %m"
 msgstr "n'a pas pu formater la valeur cidr : %m"
 
-#: utils/adt/network.c:1101
+#: utils/adt/network.c:1500
 #, c-format
 msgid "cannot merge addresses from different families"
 msgstr "ne peut pas assembler les adresses de familles différentes"
 
-#: utils/adt/network.c:1517
+#: utils/adt/network.c:1916
 #, c-format
 msgid "cannot AND inet values of different sizes"
 msgstr ""
 "ne peut pas utiliser l'opérateur AND sur des champs de type inet de tailles\n"
 "différentes"
 
-#: utils/adt/network.c:1549
+#: utils/adt/network.c:1948
 #, c-format
 msgid "cannot OR inet values of different sizes"
 msgstr ""
 "ne peut pas utiliser l'opérateur OR sur des champs de type inet de tailles\n"
 "différentes"
 
-#: utils/adt/network.c:1610 utils/adt/network.c:1686
+#: utils/adt/network.c:2009 utils/adt/network.c:2085
 #, c-format
 msgid "result is out of range"
 msgstr "le résultat est en dehors des limites"
 
-#: utils/adt/network.c:1651
+#: utils/adt/network.c:2050
 #, c-format
 msgid "cannot subtract inet values of different sizes"
 msgstr "ne peut pas soustraire des valeurs inet de tailles différentes"
 
-#: utils/adt/numeric.c:833
+#: utils/adt/numeric.c:827
 #, c-format
 msgid "invalid sign in external \"numeric\" value"
 msgstr "signe invalide dans la valeur externe « numeric »"
 
-#: utils/adt/numeric.c:839
+#: utils/adt/numeric.c:833
 #, c-format
 msgid "invalid scale in external \"numeric\" value"
 msgstr "échelle invalide dans la valeur externe « numeric »"
 
-#: utils/adt/numeric.c:848
+#: utils/adt/numeric.c:842
 #, c-format
 msgid "invalid digit in external \"numeric\" value"
 msgstr "chiffre invalide dans la valeur externe « numeric »"
 
-#: utils/adt/numeric.c:1046 utils/adt/numeric.c:1060
+#: utils/adt/numeric.c:1040 utils/adt/numeric.c:1054
 #, c-format
 msgid "NUMERIC precision %d must be between 1 and %d"
 msgstr "la précision NUMERIC %d doit être comprise entre 1 et %d"
 
-#: utils/adt/numeric.c:1051
+#: utils/adt/numeric.c:1045
 #, c-format
 msgid "NUMERIC scale %d must be between 0 and precision %d"
 msgstr "l'échelle NUMERIC %d doit être comprise entre 0 et le précision %d"
 
-#: utils/adt/numeric.c:1069
+#: utils/adt/numeric.c:1063
 #, c-format
 msgid "invalid NUMERIC type modifier"
 msgstr "modificateur de type NUMERIC invalide"
 
-#: utils/adt/numeric.c:1401
+#: utils/adt/numeric.c:1395
 #, c-format
 msgid "start value cannot be NaN"
 msgstr "la valeur de démarrage ne peut pas être NaN"
 
-#: utils/adt/numeric.c:1406
+#: utils/adt/numeric.c:1400
 #, c-format
 msgid "stop value cannot be NaN"
 msgstr "la valeur d'arrêt ne peut pas être NaN"
 
-#: utils/adt/numeric.c:1416
+#: utils/adt/numeric.c:1410
 #, c-format
 msgid "step size cannot be NaN"
 msgstr "la taille du pas ne peut pas être NaN"
 
-#: utils/adt/numeric.c:2857 utils/adt/numeric.c:5869 utils/adt/numeric.c:6324 utils/adt/numeric.c:8046 utils/adt/numeric.c:8471 utils/adt/numeric.c:8585 utils/adt/numeric.c:8658
+#: utils/adt/numeric.c:2958 utils/adt/numeric.c:6064 utils/adt/numeric.c:6522 utils/adt/numeric.c:8802 utils/adt/numeric.c:9240 utils/adt/numeric.c:9354 utils/adt/numeric.c:9427
 #, c-format
 msgid "value overflows numeric format"
 msgstr "la valeur dépasse le format numeric"
 
-#: utils/adt/numeric.c:3222
+#: utils/adt/numeric.c:3417
 #, c-format
 msgid "cannot convert NaN to integer"
 msgstr "ne peut pas convertir NaN en un entier"
 
-#: utils/adt/numeric.c:3305
+#: utils/adt/numeric.c:3500
 #, c-format
 msgid "cannot convert NaN to bigint"
 msgstr "ne peut pas convertir NaN en un entier de type bigint"
 
-#: utils/adt/numeric.c:3350
+#: utils/adt/numeric.c:3545
 #, c-format
 msgid "cannot convert NaN to smallint"
 msgstr "ne peut pas convertir NaN en un entier de type smallint"
 
-#: utils/adt/numeric.c:3387 utils/adt/numeric.c:3458
+#: utils/adt/numeric.c:3582 utils/adt/numeric.c:3653
 #, c-format
 msgid "cannot convert infinity to numeric"
 msgstr "ne peut pas convertir infinity en un type numeric"
 
-#: utils/adt/numeric.c:6408
+#: utils/adt/numeric.c:6606
 #, c-format
 msgid "numeric field overflow"
 msgstr "champ numérique en dehors des limites"
 
-#: utils/adt/numeric.c:6409
+#: utils/adt/numeric.c:6607
 #, c-format
 msgid "A field with precision %d, scale %d must round to an absolute value less than %s%d."
 msgstr "Un champ de précision %d et d'échelle %d doit être arrondi à une valeur absolue inférieure à %s%d."
 
-#: utils/adt/numutils.c:90
+#: utils/adt/numutils.c:154
 #, c-format
 msgid "value \"%s\" is out of range for 8-bit integer"
 msgstr "la valeur « %s » est en dehors des limites des entiers sur 8 bits"
@@ -22634,89 +23197,99 @@ msgstr "caractère nul interdit"
 msgid "percentile value %g is not between 0 and 1"
 msgstr "la valeur centile %g n'est pas entre 0 et 1"
 
-#: utils/adt/pg_locale.c:1097
+#: utils/adt/pg_locale.c:1262
 #, c-format
 msgid "Apply system library package updates."
 msgstr "Applique les mises à jour du paquet de bibliothèque système."
 
-#: utils/adt/pg_locale.c:1312
+#: utils/adt/pg_locale.c:1477
 #, c-format
 msgid "could not create locale \"%s\": %m"
 msgstr "n'a pas pu créer la locale « %s » : %m"
 
-#: utils/adt/pg_locale.c:1315
+#: utils/adt/pg_locale.c:1480
 #, c-format
 msgid "The operating system could not find any locale data for the locale name \"%s\"."
 msgstr "Le système d'exploitation n'a pas pu trouver des données de locale pour la locale « %s »."
 
-#: utils/adt/pg_locale.c:1417
+#: utils/adt/pg_locale.c:1582
 #, c-format
 msgid "collations with different collate and ctype values are not supported on this platform"
 msgstr ""
 "les collationnements avec des valeurs différents pour le tri et le jeu de\n"
 "caractères ne sont pas supportés sur cette plateforme"
 
-#: utils/adt/pg_locale.c:1426
+#: utils/adt/pg_locale.c:1591
 #, c-format
 msgid "collation provider LIBC is not supported on this platform"
 msgstr "le fournisseur du collationnement, LIBC, n'est pas supporté sur cette plateforme"
 
-#: utils/adt/pg_locale.c:1438
+#: utils/adt/pg_locale.c:1603
 #, c-format
 msgid "collations with different collate and ctype values are not supported by ICU"
 msgstr "les collationnements avec des valeurs différentes pour le tri (collate) et le jeu de caractères (ctype) ne sont pas supportés par ICU"
 
-#: utils/adt/pg_locale.c:1444 utils/adt/pg_locale.c:1535 utils/adt/pg_locale.c:1753
+#: utils/adt/pg_locale.c:1609 utils/adt/pg_locale.c:1696 utils/adt/pg_locale.c:1969
 #, c-format
 msgid "could not open collator for locale \"%s\": %s"
 msgstr "n'a pas pu ouvrir le collationneur pour la locale « %s » : %s"
 
-#: utils/adt/pg_locale.c:1458
+#: utils/adt/pg_locale.c:1623
 #, c-format
 msgid "ICU is not supported in this build"
 msgstr "ICU n'est pas supporté dans cette installation"
 
-#: utils/adt/pg_locale.c:1459
+#: utils/adt/pg_locale.c:1624
 #, c-format
 msgid "You need to rebuild PostgreSQL using --with-icu."
 msgstr "Vous devez recompiler PostgreSQL en utilisant --with-icu."
 
-#: utils/adt/pg_locale.c:1479
+#: utils/adt/pg_locale.c:1644
 #, c-format
 msgid "collation \"%s\" has no actual version, but a version was specified"
 msgstr "le collationnement « %s » n'a pas de version réelle mais une version était indiquée"
 
-#: utils/adt/pg_locale.c:1486
+#: utils/adt/pg_locale.c:1651
 #, c-format
 msgid "collation \"%s\" has version mismatch"
 msgstr "le collationnement « %s » a des versions différentes"
 
-#: utils/adt/pg_locale.c:1488
+#: utils/adt/pg_locale.c:1653
 #, c-format
 msgid "The collation in the database was created using version %s, but the operating system provides version %s."
 msgstr "Le collationnement dans la base de données a été créé en utilisant la version %s mais le système d'exploitation fournit la version %s."
 
-#: utils/adt/pg_locale.c:1491
+#: utils/adt/pg_locale.c:1656
 #, c-format
 msgid "Rebuild all objects affected by this collation and run ALTER COLLATION %s REFRESH VERSION, or build PostgreSQL with the right library version."
 msgstr "Reconstruisez tous les objets affectés par ce collationnement, et lancez ALTER COLLATION %s REFRESH VERSION, ou construisez PostgreSQL avec la bonne version de bibliothèque."
 
-#: utils/adt/pg_locale.c:1575
+#: utils/adt/pg_locale.c:1747
+#, c-format
+msgid "could not get collation version for locale \"%s\": error code %lu"
+msgstr "n'a pas obtenir la version du collationnement pour la locale « %s » : code d'erreur %lu"
+
+#: utils/adt/pg_locale.c:1784
+#, c-format
+msgid "encoding \"%s\" not supported by ICU"
+msgstr "encodage « %s » non supporté par ICU"
+
+#: utils/adt/pg_locale.c:1791
 #, c-format
 msgid "could not open ICU converter for encoding \"%s\": %s"
 msgstr "n'a pas pu ouvrir le convertisseur ICU pour l'encodage « %s » : %s"
 
-#: utils/adt/pg_locale.c:1606 utils/adt/pg_locale.c:1615 utils/adt/pg_locale.c:1644 utils/adt/pg_locale.c:1654
+#: utils/adt/pg_locale.c:1822 utils/adt/pg_locale.c:1831 utils/adt/pg_locale.c:1860 utils/adt/pg_locale.c:1870
 #, c-format
 msgid "%s failed: %s"
 msgstr "échec de %s : %s"
 
-#: utils/adt/pg_locale.c:1926
+#: utils/adt/pg_locale.c:2142
 #, c-format
 msgid "invalid multibyte character for locale"
 msgstr "caractère multi-octets invalide pour la locale"
 
-#: utils/adt/pg_locale.c:1927
+#: utils/adt/pg_locale.c:2143
 #, c-format
 msgid "The server's LC_CTYPE locale is probably incompatible with the database encoding."
 msgstr ""
@@ -22728,31 +23301,26 @@ msgstr ""
 msgid "function can only be called when server is in binary upgrade mode"
 msgstr "la fonction peut seulement être appelée quand le serveur est en mode de mise à jour binaire"
 
-#: utils/adt/pgstatfuncs.c:479
+#: utils/adt/pgstatfuncs.c:500
 #, c-format
 msgid "invalid command name: \"%s\""
 msgstr "nom de commande invalide : « %s »"
 
-#: utils/adt/pseudotypes.c:247
+#: utils/adt/pseudotypes.c:57 utils/adt/pseudotypes.c:91
+#, c-format
+msgid "cannot display a value of type %s"
+msgstr "ne peut pas afficher une valeur de type %s"
+
+#: utils/adt/pseudotypes.c:283
 #, c-format
 msgid "cannot accept a value of a shell type"
 msgstr "ne peut pas accepter une valeur de type shell"
 
-#: utils/adt/pseudotypes.c:260
+#: utils/adt/pseudotypes.c:293
 #, c-format
 msgid "cannot display a value of a shell type"
 msgstr "ne peut pas afficher une valeur de type shell"
 
-#: utils/adt/pseudotypes.c:350 utils/adt/pseudotypes.c:376
-#, c-format
-msgid "cannot output a value of type %s"
-msgstr "ne peut pas afficher une valeur de type %s"
-
-#: utils/adt/pseudotypes.c:403
-#, c-format
-msgid "cannot display a value of type %s"
-msgstr "ne peut pas afficher une valeur de type %s"
-
 #: utils/adt/rangetypes.c:406
 #, c-format
 msgid "range constructor flags argument must not be null"
@@ -22815,7 +23383,7 @@ msgstr "Trop de virgules."
 msgid "Junk after right parenthesis or bracket."
 msgstr "Problème après la parenthèse droite ou le crochet droit."
 
-#: utils/adt/regexp.c:289 utils/adt/regexp.c:1490 utils/adt/varlena.c:4451
+#: utils/adt/regexp.c:289 utils/adt/regexp.c:1543 utils/adt/varlena.c:4493
 #, c-format
 msgid "regular expression failed: %s"
 msgstr "l'expression rationnelle a échoué : %s"
@@ -22825,149 +23393,149 @@ msgstr "l'expression rationnelle a échoué : %s"
 msgid "invalid regular expression option: \"%c\""
 msgstr "option d'expression rationnelle invalide : « %c »"
 
-#: utils/adt/regexp.c:838
+#: utils/adt/regexp.c:836
 #, c-format
 msgid "SQL regular expression may not contain more than two escape-double-quote separators"
 msgstr "une expression régulière SQL ne peut contenir plus de deux guillemets doubles comme séparateur d'échappement"
 
 #. translator: %s is a SQL function name
-#: utils/adt/regexp.c:924 utils/adt/regexp.c:1307 utils/adt/regexp.c:1362
+#: utils/adt/regexp.c:981 utils/adt/regexp.c:1363 utils/adt/regexp.c:1418
 #, c-format
 msgid "%s does not support the \"global\" option"
 msgstr "%s ne supporte pas l'option « global »"
 
-#: utils/adt/regexp.c:926
+#: utils/adt/regexp.c:983
 #, c-format
 msgid "Use the regexp_matches function instead."
 msgstr "Utilisez la foncction regexp_matches à la place."
 
-#: utils/adt/regexp.c:1108
+#: utils/adt/regexp.c:1165
 #, c-format
 msgid "too many regular expression matches"
 msgstr "trop de correspondances pour l'expression rationnelle"
 
-#: utils/adt/regproc.c:106
+#: utils/adt/regproc.c:107
 #, c-format
 msgid "more than one function named \"%s\""
 msgstr "il existe plus d'une fonction nommée « %s »"
 
-#: utils/adt/regproc.c:524
+#: utils/adt/regproc.c:525
 #, c-format
 msgid "more than one operator named %s"
 msgstr "il existe plus d'un opérateur nommé%s"
 
-#: utils/adt/regproc.c:696 utils/adt/regproc.c:737 utils/adt/regproc.c:1865 utils/adt/ruleutils.c:9210 utils/adt/ruleutils.c:9378
+#: utils/adt/regproc.c:697 utils/adt/regproc.c:738 utils/adt/regproc.c:2018 utils/adt/ruleutils.c:9299 utils/adt/ruleutils.c:9468
 #, c-format
 msgid "too many arguments"
 msgstr "trop d'arguments"
 
-#: utils/adt/regproc.c:697 utils/adt/regproc.c:738
+#: utils/adt/regproc.c:698 utils/adt/regproc.c:739
 #, c-format
 msgid "Provide two argument types for operator."
 msgstr "Fournit deux types d'argument pour l'opérateur."
 
-#: utils/adt/regproc.c:1449 utils/adt/regproc.c:1473 utils/adt/regproc.c:1574 utils/adt/regproc.c:1598 utils/adt/regproc.c:1700 utils/adt/regproc.c:1705 utils/adt/varlena.c:3600 utils/adt/varlena.c:3605
+#: utils/adt/regproc.c:1602 utils/adt/regproc.c:1626 utils/adt/regproc.c:1727 utils/adt/regproc.c:1751 utils/adt/regproc.c:1853 utils/adt/regproc.c:1858 utils/adt/varlena.c:3642 utils/adt/varlena.c:3647
 #, c-format
 msgid "invalid name syntax"
 msgstr "syntaxe du nom invalide"
 
-#: utils/adt/regproc.c:1763
+#: utils/adt/regproc.c:1916
 #, c-format
 msgid "expected a left parenthesis"
 msgstr "attendait une parenthèse gauche"
 
-#: utils/adt/regproc.c:1779
+#: utils/adt/regproc.c:1932
 #, c-format
 msgid "expected a right parenthesis"
 msgstr "attendait une parenthèse droite"
 
-#: utils/adt/regproc.c:1798
+#: utils/adt/regproc.c:1951
 #, c-format
 msgid "expected a type name"
 msgstr "attendait un nom de type"
 
-#: utils/adt/regproc.c:1830
+#: utils/adt/regproc.c:1983
 #, c-format
 msgid "improper type name"
 msgstr "nom du type invalide"
 
-#: utils/adt/ri_triggers.c:298 utils/adt/ri_triggers.c:1534 utils/adt/ri_triggers.c:2465
+#: utils/adt/ri_triggers.c:296 utils/adt/ri_triggers.c:1537 utils/adt/ri_triggers.c:2470
 #, c-format
 msgid "insert or update on table \"%s\" violates foreign key constraint \"%s\""
 msgstr ""
 "une instruction insert ou update sur la table « %s » viole la contrainte de clé\n"
 "étrangère « %s »"
 
-#: utils/adt/ri_triggers.c:301 utils/adt/ri_triggers.c:1537
+#: utils/adt/ri_triggers.c:299 utils/adt/ri_triggers.c:1540
 #, c-format
 msgid "MATCH FULL does not allow mixing of null and nonnull key values."
 msgstr "MATCH FULL n'autorise pas le mixage de valeurs clés NULL et non NULL."
 
-#: utils/adt/ri_triggers.c:1932
+#: utils/adt/ri_triggers.c:1940
 #, c-format
 msgid "function \"%s\" must be fired for INSERT"
 msgstr "la fonction « %s » doit être exécutée pour l'instruction INSERT"
 
-#: utils/adt/ri_triggers.c:1938
+#: utils/adt/ri_triggers.c:1946
 #, c-format
 msgid "function \"%s\" must be fired for UPDATE"
 msgstr "la fonction « %s » doit être exécutée pour l'instruction UPDATE"
 
-#: utils/adt/ri_triggers.c:1944
+#: utils/adt/ri_triggers.c:1952
 #, c-format
 msgid "function \"%s\" must be fired for DELETE"
 msgstr "la fonction « %s » doit être exécutée pour l'instruction DELETE"
 
-#: utils/adt/ri_triggers.c:1967
+#: utils/adt/ri_triggers.c:1975
 #, c-format
 msgid "no pg_constraint entry for trigger \"%s\" on table \"%s\""
 msgstr "aucune entrée pg_constraint pour le trigger « %s » sur la table « %s »"
 
-#: utils/adt/ri_triggers.c:1969
+#: utils/adt/ri_triggers.c:1977
 #, c-format
 msgid "Remove this referential integrity trigger and its mates, then do ALTER TABLE ADD CONSTRAINT."
 msgstr ""
 "Supprimez ce trigger sur une intégrité référentielle et ses enfants,\n"
 "puis faites un ALTER TABLE ADD CONSTRAINT."
 
-#: utils/adt/ri_triggers.c:2291
+#: utils/adt/ri_triggers.c:2295
 #, c-format
 msgid "referential integrity query on \"%s\" from constraint \"%s\" on \"%s\" gave unexpected result"
 msgstr ""
 "la requête d'intégrité référentielle sur « %s » à partir de la contrainte « %s »\n"
 "sur « %s » donne des résultats inattendus"
 
-#: utils/adt/ri_triggers.c:2295
+#: utils/adt/ri_triggers.c:2299
 #, c-format
 msgid "This is most likely due to a rule having rewritten the query."
 msgstr "Ceci est certainement dû à une règle qui a ré-écrit la requête."
 
-#: utils/adt/ri_triggers.c:2456
+#: utils/adt/ri_triggers.c:2460
 #, c-format
 msgid "removing partition \"%s\" violates foreign key constraint \"%s\""
 msgstr "la suppression de la partition « %s » viole la contrainte de clé étrangère « %s »"
 
-#: utils/adt/ri_triggers.c:2459 utils/adt/ri_triggers.c:2483
+#: utils/adt/ri_triggers.c:2463 utils/adt/ri_triggers.c:2488
 #, c-format
 msgid "Key (%s)=(%s) is still referenced from table \"%s\"."
 msgstr "La clé (%s)=(%s) est toujours référencée à partir de la table « %s »."
 
-#: utils/adt/ri_triggers.c:2469
+#: utils/adt/ri_triggers.c:2474
 #, c-format
 msgid "Key (%s)=(%s) is not present in table \"%s\"."
 msgstr "La clé (%s)=(%s) n'est pas présente dans la table « %s »."
 
-#: utils/adt/ri_triggers.c:2472
+#: utils/adt/ri_triggers.c:2477
 #, c-format
 msgid "Key is not present in table \"%s\"."
 msgstr "La clé n'est pas présente dans la table « %s »."
 
-#: utils/adt/ri_triggers.c:2478
+#: utils/adt/ri_triggers.c:2483
 #, c-format
 msgid "update or delete on table \"%s\" violates foreign key constraint \"%s\" on table \"%s\""
 msgstr "UPDATE ou DELETE sur la table « %s » viole la contrainte de clé étrangère « %s » de la table « %s »"
 
-#: utils/adt/ri_triggers.c:2486
+#: utils/adt/ri_triggers.c:2491
 #, c-format
 msgid "Key is still referenced from table \"%s\"."
 msgstr "La clé est toujours référencée à partir de la table « %s »."
@@ -23017,21 +23585,21 @@ msgstr "mauvais type de données : %u, alors que %u attendu"
 msgid "improper binary format in record column %d"
 msgstr "format binaire invalide dans l'enregistrement de la colonne %d"
 
-#: utils/adt/rowtypes.c:911 utils/adt/rowtypes.c:1155 utils/adt/rowtypes.c:1414 utils/adt/rowtypes.c:1658
+#: utils/adt/rowtypes.c:911 utils/adt/rowtypes.c:1157 utils/adt/rowtypes.c:1415 utils/adt/rowtypes.c:1661
 #, c-format
 msgid "cannot compare dissimilar column types %s and %s at record column %d"
 msgstr ""
 "ne peut pas comparer les types de colonnes non similaires %s et %s pour la\n"
 "colonne %d de l'enregistrement"
 
-#: utils/adt/rowtypes.c:1000 utils/adt/rowtypes.c:1226 utils/adt/rowtypes.c:1509 utils/adt/rowtypes.c:1694
+#: utils/adt/rowtypes.c:1002 utils/adt/rowtypes.c:1227 utils/adt/rowtypes.c:1512 utils/adt/rowtypes.c:1697
 #, c-format
 msgid "cannot compare record types with different numbers of columns"
 msgstr ""
 "ne peut pas comparer les types d'enregistrement avec des numéros différents\n"
 "des colonnes"
 
-#: utils/adt/ruleutils.c:4885
+#: utils/adt/ruleutils.c:4821
 #, c-format
 msgid "rule \"%s\" has unsupported event type %d"
 msgstr "la règle « %s » a un type d'événement %d non supporté"
@@ -23046,103 +23614,103 @@ msgstr "la précision de TIMESTAMP(%d)%s ne doit pas être négative"
 msgid "TIMESTAMP(%d)%s precision reduced to maximum allowed, %d"
 msgstr "la précision de TIMESTAMP(%d)%s est réduite au maximum autorisé, %d"
 
-#: utils/adt/timestamp.c:176 utils/adt/timestamp.c:419 utils/misc/guc.c:11607
+#: utils/adt/timestamp.c:176 utils/adt/timestamp.c:434 utils/misc/guc.c:11901
 #, c-format
 msgid "timestamp out of range: \"%s\""
 msgstr "timestamp en dehors de limites : « %s »"
 
-#: utils/adt/timestamp.c:365
+#: utils/adt/timestamp.c:372
 #, c-format
 msgid "timestamp(%d) precision must be between %d and %d"
 msgstr "la précision de timestamp(%d) doit être comprise entre %d et %d"
 
-#: utils/adt/timestamp.c:481
+#: utils/adt/timestamp.c:496
 #, c-format
 msgid "Numeric time zones must have \"-\" or \"+\" as first character."
 msgstr "Les fuseaux horaires numériques doivent avoir « - » ou « + » comme premier caractère."
 
-#: utils/adt/timestamp.c:494
+#: utils/adt/timestamp.c:509
 #, c-format
 msgid "numeric time zone \"%s\" out of range"
 msgstr "le fuseau horaire numérique « %s » est en dehors des limites"
 
-#: utils/adt/timestamp.c:596 utils/adt/timestamp.c:606 utils/adt/timestamp.c:614
+#: utils/adt/timestamp.c:601 utils/adt/timestamp.c:611 utils/adt/timestamp.c:619
 #, c-format
 msgid "timestamp out of range: %d-%02d-%02d %d:%02d:%02g"
 msgstr "timestamp en dehors de limites : %d-%02d-%02d %d:%02d:%02g"
 
-#: utils/adt/timestamp.c:715
+#: utils/adt/timestamp.c:720
 #, c-format
 msgid "timestamp cannot be NaN"
 msgstr "timestamp ne peut pas valoir NaN"
 
-#: utils/adt/timestamp.c:733 utils/adt/timestamp.c:745
+#: utils/adt/timestamp.c:738 utils/adt/timestamp.c:750
 #, c-format
 msgid "timestamp out of range: \"%g\""
 msgstr "timestamp en dehors de limites : « %g »"
 
-#: utils/adt/timestamp.c:930 utils/adt/timestamp.c:1504 utils/adt/timestamp.c:1937 utils/adt/timestamp.c:3035 utils/adt/timestamp.c:3040 utils/adt/timestamp.c:3045 utils/adt/timestamp.c:3095 utils/adt/timestamp.c:3102 utils/adt/timestamp.c:3109 utils/adt/timestamp.c:3129 utils/adt/timestamp.c:3136 utils/adt/timestamp.c:3143 utils/adt/timestamp.c:3173 utils/adt/timestamp.c:3181 utils/adt/timestamp.c:3225 utils/adt/timestamp.c:3652
-#: utils/adt/timestamp.c:3777 utils/adt/timestamp.c:4237
+#: utils/adt/timestamp.c:935 utils/adt/timestamp.c:1509 utils/adt/timestamp.c:1944 utils/adt/timestamp.c:3042 utils/adt/timestamp.c:3047 utils/adt/timestamp.c:3052 utils/adt/timestamp.c:3102 utils/adt/timestamp.c:3109 utils/adt/timestamp.c:3116 utils/adt/timestamp.c:3136 utils/adt/timestamp.c:3143 utils/adt/timestamp.c:3150 utils/adt/timestamp.c:3180 utils/adt/timestamp.c:3188 utils/adt/timestamp.c:3232 utils/adt/timestamp.c:3659 utils/adt/timestamp.c:3784
+#: utils/adt/timestamp.c:4244
 #, c-format
 msgid "interval out of range"
 msgstr "intervalle en dehors des limites"
 
-#: utils/adt/timestamp.c:1057 utils/adt/timestamp.c:1090
+#: utils/adt/timestamp.c:1062 utils/adt/timestamp.c:1095
 #, c-format
 msgid "invalid INTERVAL type modifier"
 msgstr "modificateur de type INTERVAL invalide"
 
-#: utils/adt/timestamp.c:1073
+#: utils/adt/timestamp.c:1078
 #, c-format
 msgid "INTERVAL(%d) precision must not be negative"
 msgstr "la précision de l'intervalle INTERVAL(%d) ne doit pas être négative"
 
-#: utils/adt/timestamp.c:1079
+#: utils/adt/timestamp.c:1084
 #, c-format
 msgid "INTERVAL(%d) precision reduced to maximum allowed, %d"
 msgstr "La précision de l'intervalle INTERVAL(%d) doit être réduit au maximum permis, %d"
 
-#: utils/adt/timestamp.c:1461
+#: utils/adt/timestamp.c:1466
 #, c-format
 msgid "interval(%d) precision must be between %d and %d"
 msgstr "la précision de interval(%d) doit être comprise entre %d et %d"
 
-#: utils/adt/timestamp.c:2636
+#: utils/adt/timestamp.c:2643
 #, c-format
 msgid "cannot subtract infinite timestamps"
 msgstr "ne peut pas soustraire les valeurs timestamps infinies"
 
-#: utils/adt/timestamp.c:3905 utils/adt/timestamp.c:4497 utils/adt/timestamp.c:4664 utils/adt/timestamp.c:4685
+#: utils/adt/timestamp.c:3912 utils/adt/timestamp.c:4505 utils/adt/timestamp.c:4667 utils/adt/timestamp.c:4688
 #, c-format
 msgid "timestamp units \"%s\" not supported"
 msgstr "les unités timestamp « %s » ne sont pas supportées"
 
-#: utils/adt/timestamp.c:3919 utils/adt/timestamp.c:4451 utils/adt/timestamp.c:4695
+#: utils/adt/timestamp.c:3926 utils/adt/timestamp.c:4459 utils/adt/timestamp.c:4698
 #, c-format
 msgid "timestamp units \"%s\" not recognized"
 msgstr "les unité « %s » ne sont pas reconnues pour le type timestamp"
 
-#: utils/adt/timestamp.c:4049 utils/adt/timestamp.c:4492 utils/adt/timestamp.c:4865 utils/adt/timestamp.c:4887
+#: utils/adt/timestamp.c:4056 utils/adt/timestamp.c:4500 utils/adt/timestamp.c:4863 utils/adt/timestamp.c:4885
 #, c-format
 msgid "timestamp with time zone units \"%s\" not supported"
 msgstr "les unités « %s » ne sont pas supportées pour le type « timestamp with time zone »"
 
-#: utils/adt/timestamp.c:4066 utils/adt/timestamp.c:4446 utils/adt/timestamp.c:4896
+#: utils/adt/timestamp.c:4073 utils/adt/timestamp.c:4454 utils/adt/timestamp.c:4894
 #, c-format
 msgid "timestamp with time zone units \"%s\" not recognized"
 msgstr "les unités « %s » ne sont pas reconnues pour le type « timestamp with time zone »"
 
-#: utils/adt/timestamp.c:4224
+#: utils/adt/timestamp.c:4231
 #, c-format
 msgid "interval units \"%s\" not supported because months usually have fractional weeks"
 msgstr "unités d'intervalle « %s » non supporté car les mois ont généralement des semaines fractionnaires"
 
-#: utils/adt/timestamp.c:4230 utils/adt/timestamp.c:4990
+#: utils/adt/timestamp.c:4237 utils/adt/timestamp.c:4988
 #, c-format
 msgid "interval units \"%s\" not supported"
 msgstr "les unités « %s » ne sont pas supportées pour le type interval"
 
-#: utils/adt/timestamp.c:4246 utils/adt/timestamp.c:5013
+#: utils/adt/timestamp.c:4253 utils/adt/timestamp.c:5011
 #, c-format
 msgid "interval units \"%s\" not recognized"
 msgstr "les unités « %s » ne sont pas reconnues pour le type interval"
@@ -23167,7 +23735,7 @@ msgstr "suppress_redundant_updates_trigger : doit être appelé avant une mise 
 msgid "suppress_redundant_updates_trigger: must be called for each row"
 msgstr "suppress_redundant_updates_trigger : doit être appelé pour chaque ligne"
 
-#: utils/adt/tsgistidx.c:81
+#: utils/adt/tsgistidx.c:92
 #, c-format
 msgid "gtsvector_in not implemented"
 msgstr "gtsvector_in n'est pas encore implémenté"
@@ -23219,7 +23787,7 @@ msgstr ""
 "la requête de recherche plein texte ne contient que des termes courants\n"
 "ou ne contient pas de lexemes, ignoré"
 
-#: utils/adt/tsquery_op.c:123
+#: utils/adt/tsquery_op.c:124
 #, c-format
 msgid "distance in phrase operator should be non-negative and less than %d"
 msgstr "la distance dans l'opérateur de phrase devrait pas positif et inférieur à %d"
@@ -23229,89 +23797,89 @@ msgstr "la distance dans l'opérateur de phrase devrait pas positif et inférieu
 msgid "ts_rewrite query must return two tsquery columns"
 msgstr "la requête ts_rewrite doit renvoyer deux colonnes tsquery"
 
-#: utils/adt/tsrank.c:413
+#: utils/adt/tsrank.c:412
 #, c-format
 msgid "array of weight must be one-dimensional"
 msgstr "le tableau de poids doit avoir une seule dimension"
 
-#: utils/adt/tsrank.c:418
+#: utils/adt/tsrank.c:417
 #, c-format
 msgid "array of weight is too short"
 msgstr "le tableau de poids est trop court"
 
-#: utils/adt/tsrank.c:423
+#: utils/adt/tsrank.c:422
 #, c-format
 msgid "array of weight must not contain nulls"
 msgstr "le tableau de poids ne doit pas contenir de valeurs NULL"
 
-#: utils/adt/tsrank.c:432 utils/adt/tsrank.c:869
+#: utils/adt/tsrank.c:431 utils/adt/tsrank.c:872
 #, c-format
 msgid "weight out of range"
 msgstr "poids en dehors des limites"
 
-#: utils/adt/tsvector.c:214
+#: utils/adt/tsvector.c:215
 #, c-format
 msgid "word is too long (%ld bytes, max %ld bytes)"
 msgstr "le mot est trop long (%ld octets, max %ld octets)"
 
-#: utils/adt/tsvector.c:221
+#: utils/adt/tsvector.c:222
 #, c-format
 msgid "string is too long for tsvector (%ld bytes, max %ld bytes)"
 msgstr "la chaîne est trop longue pour tsvector (%ld octets, max %ld octets)"
 
-#: utils/adt/tsvector_op.c:321 utils/adt/tsvector_op.c:608 utils/adt/tsvector_op.c:776
+#: utils/adt/tsvector_op.c:328 utils/adt/tsvector_op.c:608 utils/adt/tsvector_op.c:770
 #, c-format
 msgid "lexeme array may not contain nulls"
 msgstr "le tableau de lexème ne doit pas contenir de valeurs NULL"
 
-#: utils/adt/tsvector_op.c:851
+#: utils/adt/tsvector_op.c:840
 #, c-format
 msgid "weight array may not contain nulls"
 msgstr "le tableau de poids ne doit pas contenir de valeurs NULL"
 
-#: utils/adt/tsvector_op.c:875
+#: utils/adt/tsvector_op.c:864
 #, c-format
 msgid "unrecognized weight: \"%c\""
 msgstr "poids non reconnu : « %c »"
 
-#: utils/adt/tsvector_op.c:2312
+#: utils/adt/tsvector_op.c:2414
 #, c-format
 msgid "ts_stat query must return one tsvector column"
 msgstr "la requête ts_stat doit renvoyer une colonne tsvector"
 
-#: utils/adt/tsvector_op.c:2494
+#: utils/adt/tsvector_op.c:2603
 #, c-format
 msgid "tsvector column \"%s\" does not exist"
 msgstr "la colonne tsvector « %s » n'existe pas"
 
-#: utils/adt/tsvector_op.c:2501
+#: utils/adt/tsvector_op.c:2610
 #, c-format
 msgid "column \"%s\" is not of tsvector type"
 msgstr "la colonne « %s » n'est pas de type tsvector"
 
-#: utils/adt/tsvector_op.c:2513
+#: utils/adt/tsvector_op.c:2622
 #, c-format
 msgid "configuration column \"%s\" does not exist"
 msgstr "la colonne de configuration « %s » n'existe pas"
 
-#: utils/adt/tsvector_op.c:2519
+#: utils/adt/tsvector_op.c:2628
 #, c-format
 msgid "column \"%s\" is not of regconfig type"
 msgstr "la colonne « %s » n'est pas de type regconfig"
 
-#: utils/adt/tsvector_op.c:2526
+#: utils/adt/tsvector_op.c:2635
 #, c-format
 msgid "configuration column \"%s\" must not be null"
 msgstr "la colonne de configuration « %s » ne doit pas être NULL"
 
-#: utils/adt/tsvector_op.c:2539
+#: utils/adt/tsvector_op.c:2648
 #, c-format
 msgid "text search configuration name \"%s\" must be schema-qualified"
 msgstr ""
 "le nom de la configuration de la recherche plein texte « %s » doit être\n"
 "qualifié par son schéma"
 
-#: utils/adt/tsvector_op.c:2564
+#: utils/adt/tsvector_op.c:2673
 #, c-format
 msgid "column \"%s\" is not of a character type"
 msgstr "la colonne « %s » n'est pas de type caractère"
@@ -23331,22 +23899,17 @@ msgstr "il n'existe pas de caractères d'échappement : « %s »"
 msgid "wrong position info in tsvector: \"%s\""
 msgstr "mauvaise information de position dans tsvector : « %s »"
 
-#: utils/adt/txid.c:140
-#, c-format
-msgid "transaction ID %s is in the future"
-msgstr "l'identifiant de transaction %s est dans le futur"
-
-#: utils/adt/txid.c:629
+#: utils/adt/uuid.c:428
 #, c-format
-msgid "invalid external txid_snapshot data"
-msgstr "valeur externe « txid_snapshot » invalide"
+msgid "could not generate random values"
+msgstr "n'a pas pu générer de valeurs aléatoires"
 
-#: utils/adt/varbit.c:109 utils/adt/varchar.c:54
+#: utils/adt/varbit.c:109 utils/adt/varchar.c:53
 #, c-format
 msgid "length for type %s must be at least 1"
 msgstr "la longueur du type %s doit être d'au moins 1"
 
-#: utils/adt/varbit.c:114 utils/adt/varchar.c:58
+#: utils/adt/varbit.c:114 utils/adt/varchar.c:57
 #, c-format
 msgid "length for type %s cannot exceed %d"
 msgstr "la longueur du type %s ne peut pas excéder %d"
@@ -23381,7 +23944,7 @@ msgstr "longueur invalide dans la chaîne bit externe"
 msgid "bit string too long for type bit varying(%d)"
 msgstr "la chaîne de bits est trop longue pour le type bit varying(%d)"
 
-#: utils/adt/varbit.c:1086 utils/adt/varbit.c:1184 utils/adt/varlena.c:863 utils/adt/varlena.c:927 utils/adt/varlena.c:1071 utils/adt/varlena.c:3266 utils/adt/varlena.c:3333
+#: utils/adt/varbit.c:1086 utils/adt/varbit.c:1184 utils/adt/varlena.c:875 utils/adt/varlena.c:939 utils/adt/varlena.c:1083 utils/adt/varlena.c:3306 utils/adt/varlena.c:3373
 #, c-format
 msgid "negative substring length not allowed"
 msgstr "longueur de sous-chaîne négative non autorisée"
@@ -23401,106 +23964,122 @@ msgstr "ne peut pas utiliser l'opérateur OR sur des chaînes bit de tailles dif
 msgid "cannot XOR bit strings of different sizes"
 msgstr "ne peut pas utiliser l'opérateur XOR sur des chaînes bit de tailles différentes"
 
-#: utils/adt/varbit.c:1802 utils/adt/varbit.c:1860
+#: utils/adt/varbit.c:1804 utils/adt/varbit.c:1862
 #, c-format
 msgid "bit index %d out of valid range (0..%d)"
 msgstr "index de bit %d en dehors des limites valides (0..%d)"
 
-#: utils/adt/varbit.c:1811 utils/adt/varlena.c:3524
+#: utils/adt/varbit.c:1813 utils/adt/varlena.c:3566
 #, c-format
 msgid "new bit must be 0 or 1"
 msgstr "le nouveau bit doit valoir soit 0 soit 1"
 
-#: utils/adt/varchar.c:158 utils/adt/varchar.c:311
+#: utils/adt/varchar.c:157 utils/adt/varchar.c:310
 #, c-format
 msgid "value too long for type character(%d)"
 msgstr "valeur trop longue pour le type character(%d)"
 
-#: utils/adt/varchar.c:473 utils/adt/varchar.c:635
+#: utils/adt/varchar.c:472 utils/adt/varchar.c:634
 #, c-format
 msgid "value too long for type character varying(%d)"
 msgstr "valeur trop longue pour le type character varying(%d)"
 
-#: utils/adt/varchar.c:733 utils/adt/varlena.c:1455
+#: utils/adt/varchar.c:732 utils/adt/varlena.c:1475
 #, c-format
 msgid "could not determine which collation to use for string comparison"
 msgstr "n'a pas pu déterminer le collationnement à utiliser pour la comparaison de chaîne"
 
-#: utils/adt/varlena.c:1165 utils/adt/varlena.c:1895
+#: utils/adt/varlena.c:1182 utils/adt/varlena.c:1915
 #, c-format
 msgid "nondeterministic collations are not supported for substring searches"
 msgstr "les collationnements non déterministes ne sont pas supportés pour les recherches de sous-chaînes"
 
-#: utils/adt/varlena.c:1554 utils/adt/varlena.c:1567
+#: utils/adt/varlena.c:1574 utils/adt/varlena.c:1587
 #, c-format
 msgid "could not convert string to UTF-16: error code %lu"
 msgstr "n'a pas pu convertir la chaîne en UTF-16 : erreur %lu"
 
-#: utils/adt/varlena.c:1582
+#: utils/adt/varlena.c:1602
 #, c-format
 msgid "could not compare Unicode strings: %m"
 msgstr "n'a pas pu comparer les chaînes unicode : %m"
 
-#: utils/adt/varlena.c:1633 utils/adt/varlena.c:2347
+#: utils/adt/varlena.c:1653 utils/adt/varlena.c:2367
 #, c-format
 msgid "collation failed: %s"
 msgstr "échec du collationnement : %s"
 
-#: utils/adt/varlena.c:2555
+#: utils/adt/varlena.c:2575
 #, c-format
 msgid "sort key generation failed: %s"
 msgstr "échec de génération de la clé de tri : %s"
 
-#: utils/adt/varlena.c:3410 utils/adt/varlena.c:3441 utils/adt/varlena.c:3476 utils/adt/varlena.c:3512
+#: utils/adt/varlena.c:3450 utils/adt/varlena.c:3517
 #, c-format
 msgid "index %d out of valid range, 0..%d"
 msgstr "index %d en dehors des limites valides, 0..%d"
 
-#: utils/adt/varlena.c:4548
+#: utils/adt/varlena.c:3481 utils/adt/varlena.c:3553
+#, fuzzy, c-format
+#| msgid "index %d out of valid range, 0..%d"
+msgid "index %lld out of valid range, 0..%lld"
+msgstr "index %d en dehors des limites valides, 0..%d"
+
+#: utils/adt/varlena.c:4590
 #, c-format
 msgid "field position must be greater than zero"
 msgstr "la position du champ doit être plus grand que zéro"
 
-#: utils/adt/varlena.c:5414
+#: utils/adt/varlena.c:5456
 #, c-format
 msgid "unterminated format() type specifier"
 msgstr "spécificateur de type pour format() non terminé"
 
-#: utils/adt/varlena.c:5415 utils/adt/varlena.c:5549 utils/adt/varlena.c:5670
+#: utils/adt/varlena.c:5457 utils/adt/varlena.c:5591 utils/adt/varlena.c:5712
 #, c-format
 msgid "For a single \"%%\" use \"%%%%\"."
 msgstr "Pour un unique \"%%\" utilisez \"%%%%\"."
 
-#: utils/adt/varlena.c:5547 utils/adt/varlena.c:5668
+#: utils/adt/varlena.c:5589 utils/adt/varlena.c:5710
 #, c-format
 msgid "unrecognized format() type specifier \"%c\""
 msgstr "spécificateur de type « %c » pour format() non reconnu"
 
-#: utils/adt/varlena.c:5560 utils/adt/varlena.c:5617
+#: utils/adt/varlena.c:5602 utils/adt/varlena.c:5659
 #, c-format
 msgid "too few arguments for format()"
 msgstr "trop peu d'arguments pour format()"
 
-#: utils/adt/varlena.c:5713 utils/adt/varlena.c:5895
+#: utils/adt/varlena.c:5755 utils/adt/varlena.c:5937
 #, c-format
 msgid "number is out of range"
 msgstr "le nombre est en dehors des limites"
 
-#: utils/adt/varlena.c:5776 utils/adt/varlena.c:5804
+#: utils/adt/varlena.c:5818 utils/adt/varlena.c:5846
 #, c-format
 msgid "format specifies argument 0, but arguments are numbered from 1"
 msgstr "le format indique l'argument 0 mais les arguments sont numérotés à partir de 1"
 
-#: utils/adt/varlena.c:5797
+#: utils/adt/varlena.c:5839
 #, c-format
 msgid "width argument position must be ended by \"$\""
 msgstr "la position de l'argument width doit se terminer par « $ »"
 
-#: utils/adt/varlena.c:5842
+#: utils/adt/varlena.c:5884
 #, c-format
 msgid "null values cannot be formatted as an SQL identifier"
 msgstr "les valeurs NULL ne peuvent pas être formatés comme un identifiant SQL"
 
+#: utils/adt/varlena.c:6010
+#, c-format
+msgid "Unicode normalization can only be performed if server encoding is UTF8"
+msgstr ""
+
+#: utils/adt/varlena.c:6023
+#, c-format
+msgid "invalid normalization form: %s"
+msgstr "forme de normalisation invalide : %s"
+
 #: utils/adt/windowfuncs.c:243
 #, c-format
 msgid "argument of ntile must be greater than zero"
@@ -23511,6 +24090,16 @@ msgstr "l'argument de ntile doit être supérieur à zéro"
 msgid "argument of nth_value must be greater than zero"
 msgstr "l'argument de nth_value doit être supérieur à zéro"
 
+#: utils/adt/xid8funcs.c:116
+#, c-format
+msgid "transaction ID %s is in the future"
+msgstr "l'identifiant de transaction %s est dans le futur"
+
+#: utils/adt/xid8funcs.c:547
+#, c-format
+msgid "invalid external pg_snapshot data"
+msgstr "données pg_snapshot externes invalides"
+
 #: utils/adt/xml.c:222
 #, c-format
 msgid "unsupported XML feature"
@@ -23526,7 +24115,7 @@ msgstr "Cette fonctionnalité nécessite que le serveur dispose du support de li
 msgid "You need to rebuild PostgreSQL using --with-libxml."
 msgstr "Vous devez recompiler PostgreSQL en utilisant --with-libxml."
 
-#: utils/adt/xml.c:243 utils/mb/mbutils.c:512
+#: utils/adt/xml.c:243 utils/mb/mbutils.c:570
 #, c-format
 msgid "invalid encoding name \"%s\""
 msgstr "nom d'encodage « %s » invalide"
@@ -23615,84 +24204,89 @@ msgstr "Analyse de la déclaration XML : « ?> » attendu."
 msgid "Unrecognized libxml error code: %d."
 msgstr "Code d'erreur libxml non reconnu : %d."
 
-#: utils/adt/xml.c:2229
+#: utils/adt/xml.c:2211
 #, c-format
 msgid "XML does not support infinite date values."
 msgstr "XML ne supporte pas les valeurs infinies de date."
 
-#: utils/adt/xml.c:2251 utils/adt/xml.c:2278
+#: utils/adt/xml.c:2233 utils/adt/xml.c:2260
 #, c-format
 msgid "XML does not support infinite timestamp values."
 msgstr "XML ne supporte pas les valeurs infinies de timestamp."
 
-#: utils/adt/xml.c:2690
+#: utils/adt/xml.c:2676
 #, c-format
 msgid "invalid query"
 msgstr "requête invalide"
 
-#: utils/adt/xml.c:4037
+#: utils/adt/xml.c:4016
 #, c-format
 msgid "invalid array for XML namespace mapping"
 msgstr "tableau invalide pour la correspondance de l'espace de nom XML"
 
-#: utils/adt/xml.c:4038
+#: utils/adt/xml.c:4017
 #, c-format
 msgid "The array must be two-dimensional with length of the second axis equal to 2."
 msgstr ""
 "Le tableau doit avoir deux dimensions avec une longueur de 2 pour le\n"
 "deuxième axe."
 
-#: utils/adt/xml.c:4062
+#: utils/adt/xml.c:4041
 #, c-format
 msgid "empty XPath expression"
 msgstr "expression XPath vide"
 
-#: utils/adt/xml.c:4114
+#: utils/adt/xml.c:4093
 #, c-format
 msgid "neither namespace name nor URI may be null"
 msgstr "ni le nom de l'espace de noms ni l'URI ne peuvent être NULL"
 
-#: utils/adt/xml.c:4121
+#: utils/adt/xml.c:4100
 #, c-format
 msgid "could not register XML namespace with name \"%s\" and URI \"%s\""
 msgstr "n'a pas pu enregistrer l'espace de noms XML de nom « %s » et d'URI « %s »"
 
-#: utils/adt/xml.c:4472
+#: utils/adt/xml.c:4451
 #, c-format
 msgid "DEFAULT namespace is not supported"
 msgstr "l'espace de nom DEFAULT n'est pas supporté"
 
-#: utils/adt/xml.c:4501
+#: utils/adt/xml.c:4480
 #, c-format
 msgid "row path filter must not be empty string"
 msgstr "le filtre du chemin de ligne ne doit pas être une chaîne vide"
 
-#: utils/adt/xml.c:4532
+#: utils/adt/xml.c:4511
 #, c-format
 msgid "column path filter must not be empty string"
 msgstr "le filtre du chemin de colonne ne doit pas être une chaîne vide"
 
-#: utils/adt/xml.c:4682
+#: utils/adt/xml.c:4661
 #, c-format
 msgid "more than one value returned by column XPath expression"
 msgstr "plus d'une valeur renvoyée par l'expression XPath de colonne"
 
-#: utils/cache/lsyscache.c:2654 utils/cache/lsyscache.c:2687 utils/cache/lsyscache.c:2720 utils/cache/lsyscache.c:2753
+#: utils/cache/lsyscache.c:1015
+#, 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"
+
+#: utils/cache/lsyscache.c:2764 utils/cache/lsyscache.c:2797 utils/cache/lsyscache.c:2830 utils/cache/lsyscache.c:2863
 #, c-format
 msgid "type %s is only a shell"
 msgstr "le type %s est seulement un shell"
 
-#: utils/cache/lsyscache.c:2659
+#: utils/cache/lsyscache.c:2769
 #, c-format
 msgid "no input function available for type %s"
 msgstr "aucune fonction en entrée disponible pour le type %s"
 
-#: utils/cache/lsyscache.c:2692
+#: utils/cache/lsyscache.c:2802
 #, c-format
 msgid "no output function available for type %s"
 msgstr "aucune fonction en sortie disponible pour le type %s"
 
-#: utils/cache/partcache.c:195
+#: utils/cache/partcache.c:215
 #, c-format
 msgid "operator class \"%s\" of access method %s is missing support function %d for type %s"
 msgstr "la classe d'opérateur « %s » de la méthode d'accès %s nécessite la fonction de support manquante %d pour le type %s"
@@ -23702,17 +24296,17 @@ msgstr "la classe d'opérateur « %s » de la méthode d'accès %s nécessite la
 msgid "cached plan must not change result type"
 msgstr "le plan en cache ne doit pas modifier le type en résultat"
 
-#: utils/cache/relcache.c:5758
+#: utils/cache/relcache.c:6078
 #, c-format
 msgid "could not create relation-cache initialization file \"%s\": %m"
 msgstr "n'a pas pu créer le fichier d'initialisation relation-cache « %s » : %m"
 
-#: utils/cache/relcache.c:5760
+#: utils/cache/relcache.c:6080
 #, c-format
 msgid "Continuing anyway, but there's something wrong."
 msgstr "Continue malgré tout, mais quelque chose s'est mal passé."
 
-#: utils/cache/relcache.c:6072
+#: utils/cache/relcache.c:6402
 #, c-format
 msgid "could not remove cache file \"%s\": %m"
 msgstr "n'a pas pu supprimer le fichier cache « %s » : %m"
@@ -23736,110 +24330,115 @@ msgstr ""
 "le fichier de correspondance des relations « %s » contient une somme de\n"
 "contrôle incorrecte"
 
-#: utils/cache/typcache.c:1634 utils/fmgr/funcapi.c:420
+#: utils/cache/typcache.c:1692 utils/fmgr/funcapi.c:461
 #, c-format
 msgid "record type has not been registered"
 msgstr "le type d'enregistrement n'a pas été enregistré"
 
-#: utils/error/assert.c:34
+#: utils/error/assert.c:37
 #, c-format
 msgid "TRAP: ExceptionalCondition: bad arguments\n"
 msgstr "TRAP : ExceptionalCondition : mauvais arguments\n"
 
-#: utils/error/assert.c:37
+#: utils/error/assert.c:40
 #, c-format
 msgid "TRAP: %s(\"%s\", File: \"%s\", Line: %d)\n"
 msgstr "TRAP : %s(« %s », fichier : « %s », ligne : %d)\n"
 
-#: utils/error/elog.c:319 utils/error/elog.c:1293
-#, c-format
-msgid "error occurred at %s:%d before error message processing is available\n"
+#: utils/error/elog.c:322
+#, fuzzy, c-format
+#| msgid "error occurred at %s:%d before error message processing is available\n"
+msgid "error occurred before error message processing is available\n"
 msgstr ""
 "erreur survenue à %s:%d avant que le traitement des messages d'erreurs ne\n"
 "soit disponible\n"
 
-#: utils/error/elog.c:1871
+#: utils/error/elog.c:1868
 #, c-format
 msgid "could not reopen file \"%s\" as stderr: %m"
 msgstr "n'a pas pu ré-ouvrir le fichier « %s » comme stderr : %m"
 
-#: utils/error/elog.c:1884
+#: utils/error/elog.c:1881
 #, c-format
 msgid "could not reopen file \"%s\" as stdout: %m"
 msgstr "n'a pas pu ré-ouvrir le fichier « %s » comme stdout : %m"
 
-#: utils/error/elog.c:2376 utils/error/elog.c:2393 utils/error/elog.c:2409
+#: utils/error/elog.c:2373 utils/error/elog.c:2407 utils/error/elog.c:2423
 msgid "[unknown]"
 msgstr "[inconnu]"
 
-#: utils/error/elog.c:2869 utils/error/elog.c:3172 utils/error/elog.c:3280
+#: utils/error/elog.c:2893 utils/error/elog.c:3203 utils/error/elog.c:3311
 msgid "missing error text"
 msgstr "texte d'erreur manquant"
 
-#: utils/error/elog.c:2872 utils/error/elog.c:2875 utils/error/elog.c:3283 utils/error/elog.c:3286
+#: utils/error/elog.c:2896 utils/error/elog.c:2899 utils/error/elog.c:3314 utils/error/elog.c:3317
 #, c-format
 msgid " at character %d"
 msgstr " au caractère %d"
 
-#: utils/error/elog.c:2885 utils/error/elog.c:2892
+#: utils/error/elog.c:2909 utils/error/elog.c:2916
 msgid "DETAIL:  "
 msgstr "DÉTAIL:  "
 
-#: utils/error/elog.c:2899
+#: utils/error/elog.c:2923
 msgid "HINT:  "
 msgstr "ASTUCE :  "
 
-#: utils/error/elog.c:2906
+#: utils/error/elog.c:2930
 msgid "QUERY:  "
 msgstr "REQUÊTE :  "
 
-#: utils/error/elog.c:2913
+#: utils/error/elog.c:2937
 msgid "CONTEXT:  "
 msgstr "CONTEXTE :  "
 
-#: utils/error/elog.c:2923
+#: utils/error/elog.c:2947
 #, c-format
 msgid "LOCATION:  %s, %s:%d\n"
 msgstr "EMPLACEMENT :  %s, %s:%d\n"
 
-#: utils/error/elog.c:2930
+#: utils/error/elog.c:2954
 #, c-format
 msgid "LOCATION:  %s:%d\n"
 msgstr "EMPLACEMENT :  %s:%d\n"
 
-#: utils/error/elog.c:2944
+#: utils/error/elog.c:2961
+msgid "BACKTRACE:  "
+msgstr "PILE D'APPEL : "
+
+#: utils/error/elog.c:2975
 msgid "STATEMENT:  "
 msgstr "INSTRUCTION :  "
 
-#: utils/error/elog.c:3333
+#: utils/error/elog.c:3364
 msgid "DEBUG"
 msgstr "DEBUG"
 
-#: utils/error/elog.c:3337
+#: utils/error/elog.c:3368
 msgid "LOG"
 msgstr "LOG"
 
-#: utils/error/elog.c:3340
+#: utils/error/elog.c:3371
 msgid "INFO"
 msgstr "INFO"
 
-#: utils/error/elog.c:3343
+#: utils/error/elog.c:3374
 msgid "NOTICE"
 msgstr "NOTICE"
 
-#: utils/error/elog.c:3346
+#: utils/error/elog.c:3377
 msgid "WARNING"
 msgstr "ATTENTION"
 
-#: utils/error/elog.c:3349
+#: utils/error/elog.c:3380
 msgid "ERROR"
 msgstr "ERREUR"
 
-#: utils/error/elog.c:3352
+#: utils/error/elog.c:3383
 msgid "FATAL"
 msgstr "FATAL"
 
-#: utils/error/elog.c:3355
+#: utils/error/elog.c:3386
 msgid "PANIC"
 msgstr "PANIC"
 
@@ -23892,280 +24491,280 @@ msgstr "Le serveur a NAMEDATALEN = %d, la bibliothèque a %d."
 
 #: utils/fmgr/dfmgr.c:373
 #, c-format
-msgid "Server has FLOAT4PASSBYVAL = %s, library has %s."
-msgstr "Le serveur a FLOAT4PASSBYVAL = %s, la bibliothèque a %s."
-
-#: utils/fmgr/dfmgr.c:382
-#, c-format
 msgid "Server has FLOAT8PASSBYVAL = %s, library has %s."
 msgstr "Le serveur a FLOAT8PASSBYVAL = %s, la bibliothèque a %s."
 
-#: utils/fmgr/dfmgr.c:389
+#: utils/fmgr/dfmgr.c:380
 msgid "Magic block has unexpected length or padding difference."
 msgstr "Le bloc magique a une longueur inattendue ou une différence de padding."
 
-#: utils/fmgr/dfmgr.c:392
+#: utils/fmgr/dfmgr.c:383
 #, c-format
 msgid "incompatible library \"%s\": magic block mismatch"
 msgstr "bibliothèque « %s » incompatible : différences dans le bloc magique"
 
-#: utils/fmgr/dfmgr.c:556
+#: utils/fmgr/dfmgr.c:547
 #, c-format
 msgid "access to library \"%s\" is not allowed"
 msgstr "l'accès à la bibliothèque « %s » n'est pas autorisé"
 
-#: utils/fmgr/dfmgr.c:582
+#: utils/fmgr/dfmgr.c:573
 #, c-format
 msgid "invalid macro name in dynamic library path: %s"
 msgstr "nom de macro invalide dans le chemin des bibliothèques partagées : %s"
 
-#: utils/fmgr/dfmgr.c:622
+#: utils/fmgr/dfmgr.c:613
 #, c-format
 msgid "zero-length component in parameter \"dynamic_library_path\""
 msgstr "composant de longueur zéro dans le paramètre « dynamic_library_path »"
 
-#: utils/fmgr/dfmgr.c:641
+#: utils/fmgr/dfmgr.c:632
 #, c-format
 msgid "component in parameter \"dynamic_library_path\" is not an absolute path"
 msgstr "un composant du paramètre « dynamic_library_path » n'est pas un chemin absolu"
 
-#: utils/fmgr/fmgr.c:236
+#: utils/fmgr/fmgr.c:238
 #, c-format
 msgid "internal function \"%s\" is not in internal lookup table"
 msgstr "la fonction interne « %s » n'est pas dans une table de recherche interne"
 
-#: utils/fmgr/fmgr.c:485
+#: utils/fmgr/fmgr.c:487
 #, c-format
 msgid "could not find function information for function \"%s\""
 msgstr "n'a pas pu trouver d'informations sur la fonction « %s »"
 
-#: utils/fmgr/fmgr.c:487
+#: utils/fmgr/fmgr.c:489
 #, c-format
 msgid "SQL-callable functions need an accompanying PG_FUNCTION_INFO_V1(funcname)."
 msgstr "Les fonctions appelables en SQL ont besoin d'un PG_FUNCTION_INFO_V1(nom_fonction)."
 
-#: utils/fmgr/fmgr.c:505
+#: utils/fmgr/fmgr.c:507
 #, c-format
 msgid "unrecognized API version %d reported by info function \"%s\""
 msgstr "version API %d non reconnue mais rapportée par la fonction info « %s »"
 
-#: utils/fmgr/fmgr.c:2032
+#: utils/fmgr/fmgr.c:2003
+#, c-format
+msgid "operator class options info is absent in function call context"
+msgstr ""
+
+#: utils/fmgr/fmgr.c:2070
 #, c-format
 msgid "language validation function %u called for language %u instead of %u"
 msgstr "fonction %u de validation du langage appelée pour le langage %u au lieu de %u"
 
-#: utils/fmgr/funcapi.c:343
+#: utils/fmgr/funcapi.c:384
 #, c-format
 msgid "could not determine actual result type for function \"%s\" declared to return type %s"
 msgstr ""
 "n'a pas pu déterminer le type du résultat actuel pour la fonction « %s »\n"
 "déclarant retourner le type %s"
 
-#: utils/fmgr/funcapi.c:1388 utils/fmgr/funcapi.c:1420
+#: utils/fmgr/funcapi.c:1651 utils/fmgr/funcapi.c:1683
 #, c-format
 msgid "number of aliases does not match number of columns"
 msgstr "le nombre d'alias ne correspond pas au nombre de colonnes"
 
-#: utils/fmgr/funcapi.c:1414
+#: utils/fmgr/funcapi.c:1677
 #, c-format
 msgid "no column alias was provided"
 msgstr "aucun alias de colonne n'a été fourni"
 
-#: utils/fmgr/funcapi.c:1438
+#: utils/fmgr/funcapi.c:1701
 #, c-format
 msgid "could not determine row description for function returning record"
 msgstr ""
 "n'a pas pu déterminer la description de la ligne pour la fonction renvoyant\n"
 "l'enregistrement"
 
-#: utils/init/miscinit.c:110
+#: utils/init/miscinit.c:285
 #, c-format
 msgid "data directory \"%s\" does not exist"
 msgstr "le répertoire des données « %s » n'existe pas"
 
-#: utils/init/miscinit.c:115
+#: utils/init/miscinit.c:290
 #, c-format
 msgid "could not read permissions of directory \"%s\": %m"
 msgstr "n'a pas pu lire les droits du répertoire « %s » : %m"
 
-#: utils/init/miscinit.c:123
+#: utils/init/miscinit.c:298
 #, c-format
 msgid "specified data directory \"%s\" is not a directory"
 msgstr "le répertoire des données « %s » n'est pas un répertoire"
 
-#: utils/init/miscinit.c:139
+#: utils/init/miscinit.c:314
 #, c-format
 msgid "data directory \"%s\" has wrong ownership"
 msgstr "le répertoire des données « %s » a un mauvais propriétaire"
 
-#: utils/init/miscinit.c:141
+#: utils/init/miscinit.c:316
 #, c-format
 msgid "The server must be started by the user that owns the data directory."
 msgstr ""
 "Le serveur doit être en cours d'exécution par l'utilisateur qui possède le\n"
 "répertoire des données."
 
-#: utils/init/miscinit.c:159
+#: utils/init/miscinit.c:334
 #, c-format
 msgid "data directory \"%s\" has invalid permissions"
 msgstr "le répertoire des données « %s » a des permissions non valides"
 
-#: utils/init/miscinit.c:161
+#: utils/init/miscinit.c:336
 #, c-format
 msgid "Permissions should be u=rwx (0700) or u=rwx,g=rx (0750)."
 msgstr "Les droits devraient être u=rwx (0700) ou u=rwx,g=rx (0750)."
 
-#: utils/init/miscinit.c:547 utils/misc/guc.c:6930
+#: utils/init/miscinit.c:615 utils/misc/guc.c:7139
 #, c-format
 msgid "cannot set parameter \"%s\" within security-restricted operation"
 msgstr ""
 "ne peut pas configurer le paramètre « %s » à l'intérieur d'une fonction\n"
 "restreinte pour sécurité"
 
-#: utils/init/miscinit.c:615
+#: utils/init/miscinit.c:683
 #, c-format
 msgid "role with OID %u does not exist"
 msgstr "le rôle d'OID %u n'existe pas"
 
-#: utils/init/miscinit.c:645
+#: utils/init/miscinit.c:713
 #, c-format
 msgid "role \"%s\" is not permitted to log in"
 msgstr "le rôle « %s » n'est pas autorisé à se connecter"
 
-#: utils/init/miscinit.c:663
+#: utils/init/miscinit.c:731
 #, c-format
 msgid "too many connections for role \"%s\""
 msgstr "trop de connexions pour le rôle « %s »"
 
-#: utils/init/miscinit.c:723
+#: utils/init/miscinit.c:791
 #, c-format
 msgid "permission denied to set session authorization"
 msgstr "droit refusé pour initialiser une autorisation de session"
 
-#: utils/init/miscinit.c:806
+#: utils/init/miscinit.c:874
 #, c-format
 msgid "invalid role OID: %u"
 msgstr "OID du rôle invalide : %u"
 
-#: utils/init/miscinit.c:860
+#: utils/init/miscinit.c:928
 #, c-format
 msgid "database system is shut down"
 msgstr "le système de base de données est arrêté"
 
-#: utils/init/miscinit.c:947
+#: utils/init/miscinit.c:1015
 #, c-format
 msgid "could not create lock file \"%s\": %m"
 msgstr "n'a pas pu créer le fichier verrou « %s » : %m"
 
-#: utils/init/miscinit.c:961
+#: utils/init/miscinit.c:1029
 #, c-format
 msgid "could not open lock file \"%s\": %m"
 msgstr "n'a pas pu ouvrir le fichier verrou « %s » : %m"
 
-#: utils/init/miscinit.c:968
+#: utils/init/miscinit.c:1036
 #, c-format
 msgid "could not read lock file \"%s\": %m"
 msgstr "n'a pas pu lire le fichier verrou « %s » : %m"
 
-#: utils/init/miscinit.c:977
+#: utils/init/miscinit.c:1045
 #, c-format
 msgid "lock file \"%s\" is empty"
 msgstr "le fichier verrou « %s » est vide"
 
-#: utils/init/miscinit.c:978
+#: utils/init/miscinit.c:1046
 #, c-format
 msgid "Either another server is starting, or the lock file is the remnant of a previous server startup crash."
 msgstr "Soit un autre serveur est en cours de démarrage, soit le fichier verrou est un reste d'un précédent crash au démarrage du serveur."
 
-#: utils/init/miscinit.c:1022
+#: utils/init/miscinit.c:1090
 #, c-format
 msgid "lock file \"%s\" already exists"
 msgstr "le fichier verrou « %s » existe déjà"
 
-#: utils/init/miscinit.c:1026
+#: utils/init/miscinit.c:1094
 #, c-format
 msgid "Is another postgres (PID %d) running in data directory \"%s\"?"
 msgstr ""
 "Un autre postgres (de PID %d) est-il déjà lancé avec comme répertoire de\n"
 "données « %s » ?"
 
-#: utils/init/miscinit.c:1028
+#: utils/init/miscinit.c:1096
 #, c-format
 msgid "Is another postmaster (PID %d) running in data directory \"%s\"?"
 msgstr ""
 "Un autre postmaster (de PID %d) est-il déjà lancé avec comme répertoire de\n"
 "données « %s » ?"
 
-#: utils/init/miscinit.c:1031
+#: utils/init/miscinit.c:1099
 #, c-format
 msgid "Is another postgres (PID %d) using socket file \"%s\"?"
 msgstr "Un autre postgres (de PID %d) est-il déjà lancé en utilisant la socket « %s » ?"
 
-#: utils/init/miscinit.c:1033
+#: utils/init/miscinit.c:1101
 #, c-format
 msgid "Is another postmaster (PID %d) using socket file \"%s\"?"
 msgstr "Un autre postmaster (de PID %d) est-il déjà lancé en utilisant la socket « %s » ?"
 
-#: utils/init/miscinit.c:1084
+#: utils/init/miscinit.c:1152
 #, c-format
 msgid "could not remove old lock file \"%s\": %m"
 msgstr "n'a pas pu supprimer le vieux fichier verrou « %s » : %m"
 
-#: utils/init/miscinit.c:1086
+#: utils/init/miscinit.c:1154
 #, c-format
 msgid "The file seems accidentally left over, but it could not be removed. Please remove the file by hand and try again."
 msgstr ""
 "Le fichier semble avoir été oublié accidentellement mais il ne peut pas être\n"
 "supprimé. Merci de supprimer ce fichier manuellement et de ré-essayer."
 
-#: utils/init/miscinit.c:1123 utils/init/miscinit.c:1137 utils/init/miscinit.c:1148
+#: utils/init/miscinit.c:1191 utils/init/miscinit.c:1205 utils/init/miscinit.c:1216
 #, c-format
 msgid "could not write lock file \"%s\": %m"
 msgstr "n'a pas pu écrire le fichier verrou « %s » : %m"
 
-#: utils/init/miscinit.c:1280 utils/init/miscinit.c:1423 utils/misc/guc.c:9834
+#: utils/init/miscinit.c:1327 utils/init/miscinit.c:1469 utils/misc/guc.c:10038
 #, c-format
 msgid "could not read from file \"%s\": %m"
 msgstr "n'a pas pu lire à partir du fichier « %s » : %m"
 
-#: utils/init/miscinit.c:1411
+#: utils/init/miscinit.c:1457
 #, c-format
 msgid "could not open file \"%s\": %m; continuing anyway"
 msgstr "n'a pas pu ouvrir le fichier « %s » : %m ; poursuite du traitement"
 
-#: utils/init/miscinit.c:1436
+#: utils/init/miscinit.c:1482
 #, c-format
 msgid "lock file \"%s\" contains wrong PID: %ld instead of %ld"
 msgstr "le fichier de verrou « %s » contient le mauvais PID : %ld au lieu de %ld"
 
-#: utils/init/miscinit.c:1475 utils/init/miscinit.c:1491
+#: utils/init/miscinit.c:1521 utils/init/miscinit.c:1537
 #, c-format
 msgid "\"%s\" is not a valid data directory"
 msgstr "« %s » n'est pas un répertoire de données valide"
 
-#: utils/init/miscinit.c:1477
+#: utils/init/miscinit.c:1523
 #, c-format
 msgid "File \"%s\" is missing."
 msgstr "Le fichier « %s » est manquant."
 
-#: utils/init/miscinit.c:1493
+#: utils/init/miscinit.c:1539
 #, c-format
 msgid "File \"%s\" does not contain valid data."
 msgstr "Le fichier « %s » ne contient aucune donnée valide."
 
-#: utils/init/miscinit.c:1495
+#: utils/init/miscinit.c:1541
 #, c-format
 msgid "You might need to initdb."
 msgstr "Vous pouvez avoir besoin d'exécuter initdb."
 
-#: utils/init/miscinit.c:1503
+#: utils/init/miscinit.c:1549
 #, c-format
 msgid "The data directory was initialized by PostgreSQL version %s, which is not compatible with this version %s."
 msgstr ""
 "Le répertoire des données a été initialisé avec PostgreSQL version %s,\n"
 "qui est non compatible avec cette version %s."
 
-#: utils/init/miscinit.c:1570
+#: utils/init/miscinit.c:1616
 #, c-format
 msgid "loaded library \"%s\""
 msgstr "bibliothèque « %s » chargée"
@@ -24274,70 +24873,70 @@ msgstr ""
 "La base de données a été initialisée avec un LC_CTYPE à « %s »,\n"
 "qui n'est pas reconnu par setlocale()."
 
-#: utils/init/postinit.c:764
+#: utils/init/postinit.c:762
 #, c-format
 msgid "no roles are defined in this database system"
 msgstr "aucun rôle n'est défini dans le système de bases de données"
 
-#: utils/init/postinit.c:765
+#: utils/init/postinit.c:763
 #, c-format
 msgid "You should immediately run CREATE USER \"%s\" SUPERUSER;."
 msgstr "Vous devez immédiatement exécuter « CREATE USER \"%s\" CREATEUSER; »."
 
-#: utils/init/postinit.c:801
+#: utils/init/postinit.c:799
 #, c-format
 msgid "new replication connections are not allowed during database shutdown"
 msgstr ""
 "les nouvelles connexions pour la réplication ne sont pas autorisées pendant\n"
 "l'arrêt du serveur de base de données"
 
-#: utils/init/postinit.c:805
+#: utils/init/postinit.c:803
 #, c-format
 msgid "must be superuser to connect during database shutdown"
 msgstr ""
 "doit être super-utilisateur pour se connecter pendant un arrêt de la base de\n"
 "données"
 
-#: utils/init/postinit.c:815
+#: utils/init/postinit.c:813
 #, c-format
 msgid "must be superuser to connect in binary upgrade mode"
 msgstr "doit être super-utilisateur pour se connecter en mode de mise à jour binaire"
 
-#: utils/init/postinit.c:828
+#: utils/init/postinit.c:826
 #, c-format
 msgid "remaining connection slots are reserved for non-replication superuser connections"
 msgstr ""
 "les emplacements de connexions restants sont réservés pour les connexions\n"
 "superutilisateur non relatif à la réplication"
 
-#: utils/init/postinit.c:838
+#: utils/init/postinit.c:836
 #, c-format
 msgid "must be superuser or replication role to start walsender"
 msgstr ""
 "doit être un superutilisateur ou un rôle ayant l'attribut de réplication\n"
 "pour exécuter walsender"
 
-#: utils/init/postinit.c:907
+#: utils/init/postinit.c:905
 #, c-format
 msgid "database %u does not exist"
 msgstr "la base de données « %u » n'existe pas"
 
-#: utils/init/postinit.c:996
+#: utils/init/postinit.c:994
 #, c-format
 msgid "It seems to have just been dropped or renamed."
 msgstr "Cet objet semble avoir été tout juste supprimé ou renommé."
 
-#: utils/init/postinit.c:1014
+#: utils/init/postinit.c:1012
 #, c-format
 msgid "The database subdirectory \"%s\" is missing."
 msgstr "Le sous-répertoire de la base de données « %s » est manquant."
 
-#: utils/init/postinit.c:1019
+#: utils/init/postinit.c:1017
 #, c-format
 msgid "could not access directory \"%s\": %m"
 msgstr "n'a pas pu accéder au répertoire « %s » : %m"
 
-#: utils/mb/conv.c:488 utils/mb/conv.c:680
+#: utils/mb/conv.c:443 utils/mb/conv.c:635
 #, c-format
 msgid "invalid encoding number: %d"
 msgstr "numéro d'encodage invalide : %d"
@@ -24352,386 +24951,387 @@ msgstr "identifiant d'encodage %d inattendu pour les jeux de caractères ISO-885
 msgid "unexpected encoding ID %d for WIN character sets"
 msgstr "identifiant d'encodage %d inattendu pour les jeux de caractères WIN"
 
-#: utils/mb/encnames.c:473
-#, c-format
-msgid "encoding \"%s\" not supported by ICU"
-msgstr "encodage « %s » non supporté par ICU"
-
-#: utils/mb/encnames.c:572
-#, c-format
-msgid "encoding name too long"
-msgstr "nom d'encodage trop long"
-
-#: utils/mb/mbutils.c:296
+#: utils/mb/mbutils.c:297 utils/mb/mbutils.c:842
 #, c-format
 msgid "conversion between %s and %s is not supported"
 msgstr "la conversion entre %s et %s n'est pas supportée"
 
-#: utils/mb/mbutils.c:355
+#: utils/mb/mbutils.c:385
 #, c-format
 msgid "default conversion function for encoding \"%s\" to \"%s\" does not exist"
 msgstr ""
 "la fonction de conversion par défaut pour l'encodage de « %s » en « %s »\n"
 "n'existe pas"
 
-#: utils/mb/mbutils.c:366 utils/mb/mbutils.c:699
+#: utils/mb/mbutils.c:402 utils/mb/mbutils.c:429 utils/mb/mbutils.c:758 utils/mb/mbutils.c:784
 #, c-format
 msgid "String of %d bytes is too long for encoding conversion."
 msgstr "Une chaîne de %d octets est trop longue pour la conversion d'encodage."
 
-#: utils/mb/mbutils.c:453
+#: utils/mb/mbutils.c:511
 #, c-format
 msgid "invalid source encoding name \"%s\""
 msgstr "nom de l'encodage source « %s » invalide"
 
-#: utils/mb/mbutils.c:458
+#: utils/mb/mbutils.c:516
 #, c-format
 msgid "invalid destination encoding name \"%s\""
 msgstr "nom de l'encodage destination « %s » invalide"
 
-#: utils/mb/mbutils.c:598
+#: utils/mb/mbutils.c:656
 #, c-format
 msgid "invalid byte value for encoding \"%s\": 0x%02x"
 msgstr "valeur d'octet invalide pour l'encodage « %s » : 0x%02x"
 
-#: utils/mb/mbutils.c:940
+#: utils/mb/mbutils.c:819
+#, c-format
+msgid "invalid Unicode code point"
+msgstr "point code Unicode invalide"
+
+#: utils/mb/mbutils.c:1087
 #, c-format
 msgid "bind_textdomain_codeset failed"
 msgstr "échec de bind_textdomain_codeset"
 
-#: utils/mb/wchar.c:2063
+#: utils/mb/mbutils.c:1595
 #, c-format
 msgid "invalid byte sequence for encoding \"%s\": %s"
 msgstr "séquence d'octets invalide pour l'encodage « %s » : %s"
 
-#: utils/mb/wchar.c:2096
+#: utils/mb/mbutils.c:1628
 #, c-format
 msgid "character with byte sequence %s in encoding \"%s\" has no equivalent in encoding \"%s\""
 msgstr ""
 "le caractère dont la séquence d'octets est %s dans l'encodage « %s » n'a pas\n"
 "d'équivalent dans l'encodage « %s »"
 
-#: utils/misc/guc.c:634
+#: utils/misc/guc.c:679
 msgid "Ungrouped"
 msgstr "Dégroupé"
 
-#: utils/misc/guc.c:636
+#: utils/misc/guc.c:681
 msgid "File Locations"
 msgstr "Emplacement des fichiers"
 
-#: utils/misc/guc.c:638
+#: utils/misc/guc.c:683
 msgid "Connections and Authentication"
 msgstr "Connexions et authentification"
 
-#: utils/misc/guc.c:640
+#: utils/misc/guc.c:685
 msgid "Connections and Authentication / Connection Settings"
 msgstr "Connexions et authentification / Paramètrages de connexion"
 
-#: utils/misc/guc.c:642
+#: utils/misc/guc.c:687
 msgid "Connections and Authentication / Authentication"
 msgstr "Connexions et authentification / Authentification"
 
-#: utils/misc/guc.c:644
+#: utils/misc/guc.c:689
 msgid "Connections and Authentication / SSL"
 msgstr "Connexions et authentification / SSL"
 
-#: utils/misc/guc.c:646
+#: utils/misc/guc.c:691
 msgid "Resource Usage"
 msgstr "Utilisation des ressources"
 
-#: utils/misc/guc.c:648
+#: utils/misc/guc.c:693
 msgid "Resource Usage / Memory"
 msgstr "Utilisation des ressources / Mémoire"
 
-#: utils/misc/guc.c:650
+#: utils/misc/guc.c:695
 msgid "Resource Usage / Disk"
 msgstr "Utilisation des ressources / Disques"
 
-#: utils/misc/guc.c:652
+#: utils/misc/guc.c:697
 msgid "Resource Usage / Kernel Resources"
 msgstr "Utilisation des ressources / Ressources noyau"
 
-#: utils/misc/guc.c:654
+#: utils/misc/guc.c:699
 msgid "Resource Usage / Cost-Based Vacuum Delay"
 msgstr "Utilisation des ressources / Délai du VACUUM basé sur le coût"
 
-#: utils/misc/guc.c:656
+#: utils/misc/guc.c:701
 msgid "Resource Usage / Background Writer"
 msgstr "Utilisation des ressources / Processus d'écriture en tâche de fond"
 
-#: utils/misc/guc.c:658
+#: utils/misc/guc.c:703
 msgid "Resource Usage / Asynchronous Behavior"
 msgstr "Utilisation des ressources / Comportement asynchrone"
 
-#: utils/misc/guc.c:660
+#: utils/misc/guc.c:705
 msgid "Write-Ahead Log"
 msgstr "Write-Ahead Log"
 
-#: utils/misc/guc.c:662
+#: utils/misc/guc.c:707
 msgid "Write-Ahead Log / Settings"
 msgstr "Write-Ahead Log / Paramètrages"
 
-#: utils/misc/guc.c:664
+#: utils/misc/guc.c:709
 msgid "Write-Ahead Log / Checkpoints"
 msgstr "Write-Ahead Log / Points de vérification (Checkpoints)"
 
-#: utils/misc/guc.c:666
+#: utils/misc/guc.c:711
 msgid "Write-Ahead Log / Archiving"
 msgstr "Write-Ahead Log / Archivage"
 
-#: utils/misc/guc.c:668
+#: utils/misc/guc.c:713
 msgid "Write-Ahead Log / Archive Recovery"
 msgstr "Write-Ahead Log / Restauration d'archive"
 
-#: utils/misc/guc.c:670
+#: utils/misc/guc.c:715
 msgid "Write-Ahead Log / Recovery Target"
 msgstr "Write-Ahead Log / Cible de restauration"
 
-#: utils/misc/guc.c:672
+#: utils/misc/guc.c:717
 msgid "Replication"
 msgstr "Réplication"
 
-#: utils/misc/guc.c:674
+#: utils/misc/guc.c:719
 msgid "Replication / Sending Servers"
 msgstr "Réplication / Serveurs d'envoi"
 
-#: utils/misc/guc.c:676
+#: utils/misc/guc.c:721
 msgid "Replication / Master Server"
 msgstr "Réplication / Serveur maître"
 
-#: utils/misc/guc.c:678
+#: utils/misc/guc.c:723
 msgid "Replication / Standby Servers"
 msgstr "Réplication / Serveurs en attente"
 
-#: utils/misc/guc.c:680
+#: utils/misc/guc.c:725
 msgid "Replication / Subscribers"
 msgstr "Réplication / Abonnés"
 
-#: utils/misc/guc.c:682
+#: utils/misc/guc.c:727
 msgid "Query Tuning"
 msgstr "Optimisation des requêtes"
 
-#: utils/misc/guc.c:684
+#: utils/misc/guc.c:729
 msgid "Query Tuning / Planner Method Configuration"
 msgstr "Optimisation des requêtes / Configuration de la méthode du planificateur"
 
-#: utils/misc/guc.c:686
+#: utils/misc/guc.c:731
 msgid "Query Tuning / Planner Cost Constants"
 msgstr "Optimisation des requêtes / Constantes des coûts du planificateur"
 
-#: utils/misc/guc.c:688
+#: utils/misc/guc.c:733
 msgid "Query Tuning / Genetic Query Optimizer"
 msgstr "Optimisation des requêtes / Optimiseur génétique de requêtes"
 
-#: utils/misc/guc.c:690
+#: utils/misc/guc.c:735
 msgid "Query Tuning / Other Planner Options"
 msgstr "Optimisation des requêtes / Autres options du planificateur"
 
-#: utils/misc/guc.c:692
+#: utils/misc/guc.c:737
 msgid "Reporting and Logging"
 msgstr "Rapports et traces"
 
-#: utils/misc/guc.c:694
+#: utils/misc/guc.c:739
 msgid "Reporting and Logging / Where to Log"
 msgstr "Rapports et traces / Où tracer"
 
-#: utils/misc/guc.c:696
+#: utils/misc/guc.c:741
 msgid "Reporting and Logging / When to Log"
 msgstr "Rapports et traces / Quand tracer"
 
-#: utils/misc/guc.c:698
+#: utils/misc/guc.c:743
 msgid "Reporting and Logging / What to Log"
 msgstr "Rapports et traces / Que tracer"
 
-#: utils/misc/guc.c:700
+#: utils/misc/guc.c:745
 msgid "Process Title"
 msgstr "Titre du processus"
 
-#: utils/misc/guc.c:702
+#: utils/misc/guc.c:747
 msgid "Statistics"
 msgstr "Statistiques"
 
-#: utils/misc/guc.c:704
+#: utils/misc/guc.c:749
 msgid "Statistics / Monitoring"
 msgstr "Statistiques / Surveillance"
 
-#: utils/misc/guc.c:706
+#: utils/misc/guc.c:751
 msgid "Statistics / Query and Index Statistics Collector"
 msgstr "Statistiques / Récupérateur des statistiques sur les requêtes et sur les index"
 
-#: utils/misc/guc.c:708
+#: utils/misc/guc.c:753
 msgid "Autovacuum"
 msgstr "Autovacuum"
 
-#: utils/misc/guc.c:710
+#: utils/misc/guc.c:755
 msgid "Client Connection Defaults"
 msgstr "Valeurs par défaut pour les connexions client"
 
-#: utils/misc/guc.c:712
+#: utils/misc/guc.c:757
 msgid "Client Connection Defaults / Statement Behavior"
 msgstr "Valeurs par défaut pour les connexions client / Comportement des instructions"
 
-#: utils/misc/guc.c:714
+#: utils/misc/guc.c:759
 msgid "Client Connection Defaults / Locale and Formatting"
 msgstr "Valeurs par défaut pour les connexions client / Locale et formattage"
 
-#: utils/misc/guc.c:716
+#: utils/misc/guc.c:761
 msgid "Client Connection Defaults / Shared Library Preloading"
 msgstr "Valeurs par défaut pour les connexions des clients / Préchargement des bibliothèques partagées"
 
-#: utils/misc/guc.c:718
+#: utils/misc/guc.c:763
 msgid "Client Connection Defaults / Other Defaults"
 msgstr "Valeurs par défaut pour les connexions client / Autres valeurs par défaut"
 
-#: utils/misc/guc.c:720
+#: utils/misc/guc.c:765
 msgid "Lock Management"
 msgstr "Gestion des verrous"
 
-#: utils/misc/guc.c:722
+#: utils/misc/guc.c:767
 msgid "Version and Platform Compatibility"
 msgstr "Compatibilité des versions et des plateformes"
 
-#: utils/misc/guc.c:724
+#: utils/misc/guc.c:769
 msgid "Version and Platform Compatibility / Previous PostgreSQL Versions"
 msgstr "Compatibilité des versions et des plateformes / Anciennes versions de PostgreSQL"
 
-#: utils/misc/guc.c:726
+#: utils/misc/guc.c:771
 msgid "Version and Platform Compatibility / Other Platforms and Clients"
 msgstr "Compatibilité des versions et des plateformes / Anciennes plateformes et anciens clients"
 
-#: utils/misc/guc.c:728
+#: utils/misc/guc.c:773
 msgid "Error Handling"
 msgstr "Gestion des erreurs"
 
-#: utils/misc/guc.c:730
+#: utils/misc/guc.c:775
 msgid "Preset Options"
 msgstr "Options pré-configurées"
 
-#: utils/misc/guc.c:732
+#: utils/misc/guc.c:777
 msgid "Customized Options"
 msgstr "Options personnalisées"
 
-#: utils/misc/guc.c:734
+#: utils/misc/guc.c:779
 msgid "Developer Options"
 msgstr "Options pour le développeur"
 
-#: utils/misc/guc.c:786
+#: utils/misc/guc.c:837
 msgid "Valid units for this parameter are \"B\", \"kB\", \"MB\", \"GB\", and \"TB\"."
 msgstr "Les unités valides pour ce paramètre sont « B », « kB », « MB », « GB » et « TB »."
 
-#: utils/misc/guc.c:823
+#: utils/misc/guc.c:874
 msgid "Valid units for this parameter are \"us\", \"ms\", \"s\", \"min\", \"h\", and \"d\"."
 msgstr "Les unités valides pour ce paramètre sont «us », « ms », « s », « min », « h » et « d »."
 
-#: utils/misc/guc.c:885
+#: utils/misc/guc.c:936
 msgid "Enables the planner's use of sequential-scan plans."
 msgstr "Active l'utilisation des parcours séquentiels par le planificateur."
 
-#: utils/misc/guc.c:895
+#: utils/misc/guc.c:946
 msgid "Enables the planner's use of index-scan plans."
 msgstr "Active l'utilisation des parcours d'index par le planificateur."
 
-#: utils/misc/guc.c:905
+#: utils/misc/guc.c:956
 msgid "Enables the planner's use of index-only-scan plans."
 msgstr "Active l'utilisation des parcours d'index seul par le planificateur."
 
-#: utils/misc/guc.c:915
+#: utils/misc/guc.c:966
 msgid "Enables the planner's use of bitmap-scan plans."
 msgstr "Active l'utilisation des parcours de bitmap par le planificateur."
 
-#: utils/misc/guc.c:925
+#: utils/misc/guc.c:976
 msgid "Enables the planner's use of TID scan plans."
 msgstr "Active l'utilisation de plans de parcours TID par le planificateur."
 
-#: utils/misc/guc.c:935
+#: utils/misc/guc.c:986
 msgid "Enables the planner's use of explicit sort steps."
 msgstr "Active l'utilisation des étapes de tris explicites par le planificateur."
 
-#: utils/misc/guc.c:945
+#: utils/misc/guc.c:996
+#, fuzzy
+#| msgid "Enables the planner's use of explicit sort steps."
+msgid "Enables the planner's use of incremental sort steps."
+msgstr "Active l'utilisation des étapes de tris explicites par le planificateur."
+
+#: utils/misc/guc.c:1005
 msgid "Enables the planner's use of hashed aggregation plans."
 msgstr "Active l'utilisation de plans d'agrégats hâchés par le planificateur."
 
-#: utils/misc/guc.c:955
+#: utils/misc/guc.c:1015
 msgid "Enables the planner's use of materialization."
 msgstr "Active l'utilisation de la matérialisation par le planificateur."
 
-#: utils/misc/guc.c:965
+#: utils/misc/guc.c:1025
 msgid "Enables the planner's use of nested-loop join plans."
 msgstr "Active l'utilisation de plans avec des jointures imbriquées par le planificateur."
 
-#: utils/misc/guc.c:975
+#: utils/misc/guc.c:1035
 msgid "Enables the planner's use of merge join plans."
 msgstr "Active l'utilisation de plans de jointures MERGE par le planificateur."
 
-#: utils/misc/guc.c:985
+#: utils/misc/guc.c:1045
 msgid "Enables the planner's use of hash join plans."
 msgstr "Active l'utilisation de plans de jointures hâchées par le planificateur."
 
-#: utils/misc/guc.c:995
+#: utils/misc/guc.c:1055
 msgid "Enables the planner's use of gather merge plans."
 msgstr "Active l'utilisation de plans GATHER MERGE par le planificateur."
 
-#: utils/misc/guc.c:1005
+#: utils/misc/guc.c:1065
 msgid "Enables partitionwise join."
 msgstr "Active l'utilisation de jointures entre partitions."
 
-#: utils/misc/guc.c:1015
+#: utils/misc/guc.c:1075
 msgid "Enables partitionwise aggregation and grouping."
 msgstr "Active les agrégations et regroupements par partition."
 
-#: utils/misc/guc.c:1025
+#: utils/misc/guc.c:1085
 msgid "Enables the planner's use of parallel append plans."
 msgstr "Active l'utilisation de plans Append parallèles par le planificateur."
 
-#: utils/misc/guc.c:1035
+#: utils/misc/guc.c:1095
 msgid "Enables the planner's use of parallel hash plans."
 msgstr "Active l'utilisation de plans de jointures hâchées parallèles par le planificateur."
 
-#: utils/misc/guc.c:1045
+#: utils/misc/guc.c:1105
 msgid "Enables plan-time and run-time partition pruning."
 msgstr "Active l'élagage de partition durant la planification et l'exécution."
 
-#: utils/misc/guc.c:1046
+#: utils/misc/guc.c:1106
 msgid "Allows the query planner and executor to compare partition bounds to conditions in the query to determine which partitions must be scanned."
 msgstr "Autorise le planificateur de requête et l'exécuteur à comparer les limites des partitions avec les conditions des requêtes pour déterminer les partitions à parcourir."
 
-#: utils/misc/guc.c:1057
+#: utils/misc/guc.c:1117
 msgid "Enables genetic query optimization."
 msgstr "Active l'optimisation génétique des requêtes."
 
-#: utils/misc/guc.c:1058
+#: utils/misc/guc.c:1118
 msgid "This algorithm attempts to do planning without exhaustive searching."
 msgstr "Cet algorithme essaie de faire une planification sans recherche exhaustive."
 
-#: utils/misc/guc.c:1069
+#: utils/misc/guc.c:1129
 msgid "Shows whether the current user is a superuser."
 msgstr "Affiche si l'utilisateur actuel est un super-utilisateur."
 
-#: utils/misc/guc.c:1079
+#: utils/misc/guc.c:1139
 msgid "Enables advertising the server via Bonjour."
 msgstr "Active la publication du serveur via Bonjour."
 
-#: utils/misc/guc.c:1088
+#: utils/misc/guc.c:1148
 msgid "Collects transaction commit time."
 msgstr "Récupère l'horodatage de la validation de la transaction."
 
-#: utils/misc/guc.c:1097
+#: utils/misc/guc.c:1157
 msgid "Enables SSL connections."
 msgstr "Active les connexions SSL."
 
-#: utils/misc/guc.c:1106
+#: utils/misc/guc.c:1166
 msgid "Also use ssl_passphrase_command during server reload."
 msgstr "Utilise également ssl_passphrase_command durant le rechargement du serveur."
 
-#: utils/misc/guc.c:1115
+#: utils/misc/guc.c:1175
 msgid "Give priority to server ciphersuite order."
 msgstr "Donne la priorité à l'ordre des chiffrements du serveur."
 
-#: utils/misc/guc.c:1124
+#: utils/misc/guc.c:1184
 msgid "Forces synchronization of updates to disk."
 msgstr "Force la synchronisation des mises à jour sur le disque."
 
-#: utils/misc/guc.c:1125
+#: utils/misc/guc.c:1185
 msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This insures that a database cluster will recover to a consistent state after an operating system or hardware crash."
 msgstr ""
 "Le serveur utilisera l'appel système fsync() à différents endroits pour\n"
@@ -24739,19 +25339,19 @@ msgstr ""
 "nous assure qu'un groupe de bases de données se retrouvera dans un état\n"
 "cohérent après un arrêt brutal dû au système d'exploitation ou au matériel."
 
-#: utils/misc/guc.c:1136
+#: utils/misc/guc.c:1196
 msgid "Continues processing after a checksum failure."
 msgstr "Continue le traitement après un échec de la somme de contrôle."
 
-#: utils/misc/guc.c:1137
+#: utils/misc/guc.c:1197
 msgid "Detection of a checksum failure normally causes PostgreSQL to report an error, aborting the current transaction. Setting ignore_checksum_failure to true causes the system to ignore the failure (but still report a warning), and continue processing. This behavior could cause crashes or other serious problems. Only has an effect if checksums are enabled."
 msgstr "La détection d'une erreur de somme de contrôle a normalement pour effet de rapporter une erreur, annulant la transaction en cours. Régler ignore_checksum_failure à true permet au système d'ignorer cette erreur (mais rapporte toujours un avertissement), et continue le traitement. Ce comportement pourrait causer un arrêt brutal ou d'autres problèmes sérieux. Cela a un effet seulement si les sommes de contrôle (checksums) sont activés."
 
-#: utils/misc/guc.c:1151
+#: utils/misc/guc.c:1211
 msgid "Continues processing past damaged page headers."
 msgstr "Continue le travail après les en-têtes de page endommagés."
 
-#: utils/misc/guc.c:1152
+#: utils/misc/guc.c:1212
 msgid "Detection of a damaged page header normally causes PostgreSQL to report an error, aborting the current transaction. Setting zero_damaged_pages to true causes the system to instead report a warning, zero out the damaged page, and continue processing. This behavior will destroy data, namely all the rows on the damaged page."
 msgstr ""
 "La détection d'une en-tête de page endommagée cause normalement le rapport\n"
@@ -24760,181 +25360,193 @@ msgstr ""
 "message d'attention et continue à travailler. Ce comportement détruira des\n"
 "données, notamment toutes les lignes de la page endommagée."
 
-#: utils/misc/guc.c:1165
+#: utils/misc/guc.c:1225
+#, fuzzy
+#| msgid "Continues processing after a checksum failure."
+msgid "Continues recovery after an invalid pages failure."
+msgstr "Continue le traitement après un échec de la somme de contrôle."
+
+#: utils/misc/guc.c:1226
+#, fuzzy
+#| msgid "Detection of a checksum failure normally causes PostgreSQL to report an error, aborting the current transaction. Setting ignore_checksum_failure to true causes the system to ignore the failure (but still report a warning), and continue processing. This behavior could cause crashes or other serious problems. Only has an effect if checksums are enabled."
+msgid "Detection of WAL records having references to invalid pages during recovery causes PostgreSQL to raise a PANIC-level error, aborting the recovery. Setting ignore_invalid_pages to true causes the system to ignore invalid page references in WAL records (but still report a warning), and continue recovery. This behavior may cause crashes, data loss, propagate or hide corruption, or other serious problems. Only has an effect during recovery or in standby mode."
+msgstr "La détection d'une erreur de somme de contrôle a normalement pour effet de rapporter une erreur, annulant la transaction en cours. Régler ignore_checksum_failure à true permet au système d'ignorer cette erreur (mais rapporte toujours un avertissement), et continue le traitement. Ce comportement pourrait causer un arrêt brutal ou d'autres problèmes sérieux. Cela a un effet seulement si les sommes de contrôle (checksums) sont activés."
+
+#: utils/misc/guc.c:1244
 msgid "Writes full pages to WAL when first modified after a checkpoint."
 msgstr ""
 "Écrit des pages complètes dans les WAL lors d'une première modification après\n"
 "un point de vérification."
 
-#: utils/misc/guc.c:1166
+#: utils/misc/guc.c:1245
 msgid "A page write in process during an operating system crash might be only partially written to disk.  During recovery, the row changes stored in WAL are not enough to recover.  This option writes pages when first modified after a checkpoint to WAL so full recovery is possible."
 msgstr "Une page écrite au moment d'un arrêt brutal du système d'exploitation pourrait n'être écrite sur le disque que partiellement. Lors de la récupération, les modifications stockées dans le journal de transaction ne sont pas suffisantes pour terminer la récupération. Cette option écrit les pages lors de la première modification après un checkpoint afin que la récupération complète soit possible."
 
-#: utils/misc/guc.c:1179
+#: utils/misc/guc.c:1258
 msgid "Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modifications."
 msgstr ""
 "Écrit des pages complètes dans les WAL lors d'une première modification après\n"
 "un point de vérification, y compris pour des modifications non critiques."
 
-#: utils/misc/guc.c:1189
+#: utils/misc/guc.c:1268
 msgid "Compresses full-page writes written in WAL file."
 msgstr "Compresse les blocs complets écrits dans les journaux de transactions."
 
-#: utils/misc/guc.c:1199
+#: utils/misc/guc.c:1278
 msgid "Writes zeroes to new WAL files before first use."
 msgstr "Écrit des zéros dans les nouveaux journaux de transaction avant leur première utilisation."
 
-#: utils/misc/guc.c:1209
+#: utils/misc/guc.c:1288
 msgid "Recycles WAL files by renaming them."
 msgstr "Recycle les journaux de transactions en les renommant."
 
-#: utils/misc/guc.c:1219
+#: utils/misc/guc.c:1298
 msgid "Logs each checkpoint."
 msgstr "Trace tous les points de vérification."
 
-#: utils/misc/guc.c:1228
+#: utils/misc/guc.c:1307
 msgid "Logs each successful connection."
 msgstr "Trace toutes les connexions réussies."
 
-#: utils/misc/guc.c:1237
+#: utils/misc/guc.c:1316
 msgid "Logs end of a session, including duration."
 msgstr "Trace la fin d'une session, avec sa durée."
 
-#: utils/misc/guc.c:1246
+#: utils/misc/guc.c:1325
 msgid "Logs each replication command."
 msgstr "Trace chaque commande de réplication."
 
-#: utils/misc/guc.c:1255
+#: utils/misc/guc.c:1334
 msgid "Shows whether the running server has assertion checks enabled."
 msgstr "Affiche si le serveur en cours d'exécution a les vérifications d'assertion activées."
 
-#: utils/misc/guc.c:1270
+#: utils/misc/guc.c:1349
 msgid "Terminate session on any error."
 msgstr "Termine la session sans erreur."
 
-#: utils/misc/guc.c:1279
+#: utils/misc/guc.c:1358
 msgid "Reinitialize server after backend crash."
 msgstr "Réinitialisation du serveur après un arrêt brutal d'un processus serveur."
 
-#: utils/misc/guc.c:1289
+#: utils/misc/guc.c:1368
 msgid "Logs the duration of each completed SQL statement."
 msgstr "Trace la durée de chaque instruction SQL terminée."
 
-#: utils/misc/guc.c:1298
+#: utils/misc/guc.c:1377
 msgid "Logs each query's parse tree."
 msgstr "Trace l'arbre d'analyse de chaque requête."
 
-#: utils/misc/guc.c:1307
+#: utils/misc/guc.c:1386
 msgid "Logs each query's rewritten parse tree."
 msgstr "Trace l'arbre d'analyse réécrit de chaque requête."
 
-#: utils/misc/guc.c:1316
+#: utils/misc/guc.c:1395
 msgid "Logs each query's execution plan."
 msgstr "Trace le plan d'exécution de chaque requête."
 
-#: utils/misc/guc.c:1325
+#: utils/misc/guc.c:1404
 msgid "Indents parse and plan tree displays."
 msgstr "Indente l'affichage des arbres d'analyse et de planification."
 
-#: utils/misc/guc.c:1334
+#: utils/misc/guc.c:1413
 msgid "Writes parser performance statistics to the server log."
 msgstr ""
 "Écrit les statistiques de performance de l'analyseur dans les journaux applicatifs\n"
 "du serveur."
 
-#: utils/misc/guc.c:1343
+#: utils/misc/guc.c:1422
 msgid "Writes planner performance statistics to the server log."
 msgstr ""
 "Écrit les statistiques de performance de planification dans les journaux\n"
 "applicatifs du serveur."
 
-#: utils/misc/guc.c:1352
+#: utils/misc/guc.c:1431
 msgid "Writes executor performance statistics to the server log."
 msgstr ""
 "Écrit les statistiques de performance de l'exécuteur dans les journaux applicatifs\n"
 "du serveur."
 
-#: utils/misc/guc.c:1361
+#: utils/misc/guc.c:1440
 msgid "Writes cumulative performance statistics to the server log."
 msgstr ""
 "Écrit les statistiques de performance cumulatives dans les journaux applicatifs\n"
 "du serveur."
 
-#: utils/misc/guc.c:1371
+#: utils/misc/guc.c:1450
 msgid "Logs system resource usage statistics (memory and CPU) on various B-tree operations."
 msgstr "Trace les statistiques d'utilisation des ressources systèmes (mémoire et CPU) sur les différentes opérations B-tree."
 
-#: utils/misc/guc.c:1383
+#: utils/misc/guc.c:1462
 msgid "Collects information about executing commands."
 msgstr "Récupère les statistiques sur les commandes en exécution."
 
-#: utils/misc/guc.c:1384
+#: utils/misc/guc.c:1463
 msgid "Enables the collection of information on the currently executing command of each session, along with the time at which that command began execution."
 msgstr ""
 "Active la récupération d'informations sur la commande en cours d'exécution\n"
 "pour chaque session, avec l'heure de début de l'exécution de la commande."
 
-#: utils/misc/guc.c:1394
+#: utils/misc/guc.c:1473
 msgid "Collects statistics on database activity."
 msgstr "Récupère les statistiques sur l'activité de la base de données."
 
-#: utils/misc/guc.c:1403
+#: utils/misc/guc.c:1482
 msgid "Collects timing statistics for database I/O activity."
 msgstr "Récupère les statistiques d'horodatage sur l'activité en entrées/sorties de la base de données."
 
-#: utils/misc/guc.c:1413
+#: utils/misc/guc.c:1492
 msgid "Updates the process title to show the active SQL command."
 msgstr ""
 "Met à jour le titre du processus pour indiquer la commande SQL en cours\n"
 "d'exécution."
 
-#: utils/misc/guc.c:1414
+#: utils/misc/guc.c:1493
 msgid "Enables updating of the process title every time a new SQL command is received by the server."
 msgstr ""
 "Active la mise à jour du titre du processus chaque fois qu'une nouvelle\n"
 "commande SQL est reçue par le serveur."
 
-#: utils/misc/guc.c:1427
+#: utils/misc/guc.c:1506
 msgid "Starts the autovacuum subprocess."
 msgstr "Exécute le sous-processus de l'autovacuum."
 
-#: utils/misc/guc.c:1437
+#: utils/misc/guc.c:1516
 msgid "Generates debugging output for LISTEN and NOTIFY."
 msgstr "Génère une sortie de débogage pour LISTEN et NOTIFY."
 
-#: utils/misc/guc.c:1449
+#: utils/misc/guc.c:1528
 msgid "Emits information about lock usage."
 msgstr "Émet des informations sur l'utilisation des verrous."
 
-#: utils/misc/guc.c:1459
+#: utils/misc/guc.c:1538
 msgid "Emits information about user lock usage."
 msgstr "Émet des informations sur l'utilisation des verrous utilisateurs."
 
-#: utils/misc/guc.c:1469
+#: utils/misc/guc.c:1548
 msgid "Emits information about lightweight lock usage."
 msgstr "Émet des informations sur l'utilisation des verrous légers."
 
-#: utils/misc/guc.c:1479
+#: utils/misc/guc.c:1558
 msgid "Dumps information about all current locks when a deadlock timeout occurs."
 msgstr "Trace les informations sur les verrous actuels lorsqu'un délai sur le deadlock est dépassé."
 
-#: utils/misc/guc.c:1491
+#: utils/misc/guc.c:1570
 msgid "Logs long lock waits."
 msgstr "Trace les attentes longues de verrou."
 
-#: utils/misc/guc.c:1501
+#: utils/misc/guc.c:1580
 msgid "Logs the host name in the connection logs."
 msgstr "Trace le nom d'hôte dans les traces de connexion."
 
-#: utils/misc/guc.c:1502
+#: utils/misc/guc.c:1581
 msgid "By default, connection logs only show the IP address of the connecting host. If you want them to show the host name you can turn this on, but depending on your host name resolution setup it might impose a non-negligible performance penalty."
 msgstr "Par défaut, une connexion ne trace que l'adresse IP de l'hôte se connectant. Si vous voulez que s'affiche le nom de l'hôte, vous pouvez activer cette option mais, selon la configuration de la résolution de noms de votre hôte, cela peut imposer un coût en performances non négligeable."
 
-#: utils/misc/guc.c:1513
+#: utils/misc/guc.c:1592
 msgid "Treats \"expr=NULL\" as \"expr IS NULL\"."
 msgstr "Traite « expr=NULL » comme « expr IS NULL »."
 
-#: utils/misc/guc.c:1514
+#: utils/misc/guc.c:1593
 msgid "When turned on, expressions of the form expr = NULL (or NULL = expr) are treated as expr IS NULL, that is, they return true if expr evaluates to the null value, and false otherwise. The correct behavior of expr = NULL is to always return null (unknown)."
 msgstr ""
 "Une fois activé, les expressions de la forme expr = NULL (ou NULL = expr)\n"
@@ -24942,321 +25554,325 @@ msgstr ""
 "l'expression est évaluée comme étant NULL et false sinon. Le comportement\n"
 "correct de expr = NULL est de toujours renvoyer NULL (inconnu)."
 
-#: utils/misc/guc.c:1526
+#: utils/misc/guc.c:1605
 msgid "Enables per-database user names."
 msgstr "Active les noms d'utilisateur par base de données."
 
-#: utils/misc/guc.c:1535
+#: utils/misc/guc.c:1614
 msgid "Sets the default read-only status of new transactions."
 msgstr "Initialise le statut de lecture seule par défaut des nouvelles transactions."
 
-#: utils/misc/guc.c:1544
+#: utils/misc/guc.c:1623
 msgid "Sets the current transaction's read-only status."
 msgstr "Affiche le statut de lecture seule de la transaction actuelle."
 
-#: utils/misc/guc.c:1554
+#: utils/misc/guc.c:1633
 msgid "Sets the default deferrable status of new transactions."
 msgstr "Initialise le statut déferrable par défaut des nouvelles transactions."
 
-#: utils/misc/guc.c:1563
+#: utils/misc/guc.c:1642
 msgid "Whether to defer a read-only serializable transaction until it can be executed with no possible serialization failures."
 msgstr ""
 "S'il faut repousser une transaction sérialisable en lecture seule jusqu'à ce qu'elle\n"
 "puisse être exécutée sans échecs possibles de sérialisation."
 
-#: utils/misc/guc.c:1573
+#: utils/misc/guc.c:1652
 msgid "Enable row security."
 msgstr "Active la sécurité niveau ligne."
 
-#: utils/misc/guc.c:1574
+#: utils/misc/guc.c:1653
 msgid "When enabled, row security will be applied to all users."
 msgstr "Lorsqu'il est activé, le mode de sécurité niveau ligne sera appliqué à tous les utilisateurs."
 
-#: utils/misc/guc.c:1582
+#: utils/misc/guc.c:1661
 msgid "Check function bodies during CREATE FUNCTION."
 msgstr "Vérifie les corps de fonction lors du CREATE FUNCTION."
 
-#: utils/misc/guc.c:1591
+#: utils/misc/guc.c:1670
 msgid "Enable input of NULL elements in arrays."
 msgstr "Active la saisie d'éléments NULL dans les tableaux."
 
-#: utils/misc/guc.c:1592
+#: utils/misc/guc.c:1671
 msgid "When turned on, unquoted NULL in an array input value means a null value; otherwise it is taken literally."
 msgstr ""
 "Si activé, un NULL sans guillemets en tant que valeur d'entrée dans un\n"
 "tableau signifie une valeur NULL ; sinon, il sera pris littéralement."
 
-#: utils/misc/guc.c:1608
+#: utils/misc/guc.c:1687
 msgid "WITH OIDS is no longer supported; this can only be false."
 msgstr "WITH OID n'est plus supporté ; ce paramètre ne peut être positionné qu'à false (faux)."
 
-#: utils/misc/guc.c:1618
+#: utils/misc/guc.c:1697
 msgid "Start a subprocess to capture stderr output and/or csvlogs into log files."
 msgstr ""
 "Lance un sous-processus pour capturer la sortie d'erreurs (stderr) et/ou\n"
 "csvlogs dans des journaux applicatifs."
 
-#: utils/misc/guc.c:1627
+#: utils/misc/guc.c:1706
 msgid "Truncate existing log files of same name during log rotation."
 msgstr ""
 "Tronque les journaux applicatifs existants du même nom lors de la rotation\n"
 "des journaux applicatifs."
 
-#: utils/misc/guc.c:1638
+#: utils/misc/guc.c:1717
 msgid "Emit information about resource usage in sorting."
 msgstr "Émet des informations sur l'utilisation des ressources lors d'un tri."
 
-#: utils/misc/guc.c:1652
+#: utils/misc/guc.c:1731
 msgid "Generate debugging output for synchronized scanning."
 msgstr "Génère une sortie de débogage pour les parcours synchronisés."
 
-#: utils/misc/guc.c:1667
+#: utils/misc/guc.c:1746
 msgid "Enable bounded sorting using heap sort."
 msgstr "Active le tri limité en utilisant le tri de heap."
 
-#: utils/misc/guc.c:1680
+#: utils/misc/guc.c:1759
 msgid "Emit WAL-related debugging output."
 msgstr "Émet une sortie de débogage concernant les journaux de transactions."
 
-#: utils/misc/guc.c:1692
+#: utils/misc/guc.c:1771
 msgid "Datetimes are integer based."
 msgstr "Les types datetime sont basés sur des entiers."
 
-#: utils/misc/guc.c:1703
+#: utils/misc/guc.c:1782
 msgid "Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive."
 msgstr ""
 "Indique si les noms d'utilisateurs Kerberos et GSSAPI devraient être traités\n"
 "sans se soucier de la casse."
 
-#: utils/misc/guc.c:1713
+#: utils/misc/guc.c:1792
 msgid "Warn about backslash escapes in ordinary string literals."
 msgstr "Avertie sur les échappements par antislash dans les chaînes ordinaires."
 
-#: utils/misc/guc.c:1723
+#: utils/misc/guc.c:1802
 msgid "Causes '...' strings to treat backslashes literally."
 msgstr "Fait que les chaînes '...' traitent les antislashs littéralement."
 
-#: utils/misc/guc.c:1734
+#: utils/misc/guc.c:1813
 msgid "Enable synchronized sequential scans."
 msgstr "Active l'utilisation des parcours séquentiels synchronisés."
 
-#: utils/misc/guc.c:1744
+#: utils/misc/guc.c:1823
 msgid "Sets whether to include or exclude transaction with recovery target."
 msgstr "Définit s'il faut inclure ou exclure la transaction de la cible de restauration."
 
-#: utils/misc/guc.c:1754
+#: utils/misc/guc.c:1833
 msgid "Allows connections and queries during recovery."
 msgstr "Autorise les connexions et les requêtes pendant la restauration."
 
-#: utils/misc/guc.c:1764
+#: utils/misc/guc.c:1843
 msgid "Allows feedback from a hot standby to the primary that will avoid query conflicts."
 msgstr "Permet l'envoi d'informations d'un serveur en hot standby vers le serveur principal pour éviter les conflits de requêtes."
 
-#: utils/misc/guc.c:1774
+#: utils/misc/guc.c:1853
 msgid "Allows modifications of the structure of system tables."
 msgstr "Permet les modifications de la structure des tables systèmes."
 
-#: utils/misc/guc.c:1785
+#: utils/misc/guc.c:1864
 msgid "Disables reading from system indexes."
 msgstr "Désactive la lecture des index système."
 
-#: utils/misc/guc.c:1786
+#: utils/misc/guc.c:1865
 msgid "It does not prevent updating the indexes, so it is safe to use.  The worst consequence is slowness."
 msgstr ""
 "Cela n'empêche pas la mise à jour des index, donc vous pouvez l'utiliser en\n"
 "toute sécurité. La pire conséquence est la lenteur."
 
-#: utils/misc/guc.c:1797
+#: utils/misc/guc.c:1876
 msgid "Enables backward compatibility mode for privilege checks on large objects."
 msgstr ""
 "Active la compatibilité ascendante pour la vérification des droits sur les\n"
 "Large Objects."
 
-#: utils/misc/guc.c:1798
+#: utils/misc/guc.c:1877
 msgid "Skips privilege checks when reading or modifying large objects, for compatibility with PostgreSQL releases prior to 9.0."
 msgstr ""
 "Ignore la vérification des droits lors de la lecture et de la modification\n"
 "des Larges Objects, pour la compatibilité avec les versions antérieures à la\n"
 "9.0."
 
-#: utils/misc/guc.c:1808
+#: utils/misc/guc.c:1887
 msgid "Emit a warning for constructs that changed meaning since PostgreSQL 9.4."
 msgstr "Émet un avertissement pour les constructions dont la signification a changé depuis PostgreSQL 9.4."
 
-#: utils/misc/guc.c:1818
+#: utils/misc/guc.c:1897
 msgid "When generating SQL fragments, quote all identifiers."
 msgstr "Lors de la génération des rragments SQL, mettre entre guillemets tous les identifiants."
 
-#: utils/misc/guc.c:1828
+#: utils/misc/guc.c:1907
 msgid "Shows whether data checksums are turned on for this cluster."
 msgstr "Affiche si les sommes de contrôle sont activées sur les données pour cette instance."
 
-#: utils/misc/guc.c:1839
+#: utils/misc/guc.c:1918
 msgid "Add sequence number to syslog messages to avoid duplicate suppression."
 msgstr "Ajoute un numéro de séquence aux messages syslog pour éviter des suppressions de doublons."
 
-#: utils/misc/guc.c:1849
+#: utils/misc/guc.c:1928
 msgid "Split messages sent to syslog by lines and to fit into 1024 bytes."
 msgstr "Sépare les messages envoyés à syslog par lignes afin de les faire tenir dans 1024 octets."
 
-#: utils/misc/guc.c:1859
+#: utils/misc/guc.c:1938
 msgid "Controls whether Gather and Gather Merge also run subplans."
 msgstr "Controle si les nœuds Gather et Gather Merge doivent également exécuter des sous-plans."
 
-#: utils/misc/guc.c:1860
+#: utils/misc/guc.c:1939
 msgid "Should gather nodes also run subplans, or just gather tuples?"
 msgstr "Est-ce que les nœuds Gather devrait également exécuter des sous-plans, ou juste receuiller des lignes ?"
 
-#: utils/misc/guc.c:1870
+#: utils/misc/guc.c:1949
 msgid "Allow JIT compilation."
 msgstr "Autorise la compilation JIT."
 
-#: utils/misc/guc.c:1881
+#: utils/misc/guc.c:1960
 msgid "Register JIT compiled function with debugger."
 msgstr "Enregister la fonction JIT compilée avec debugueur."
 
-#: utils/misc/guc.c:1898
+#: utils/misc/guc.c:1977
 msgid "Write out LLVM bitcode to facilitate JIT debugging."
 msgstr "Écrire le bitcode LLVM pour faciliter de débugage JIT."
 
-#: utils/misc/guc.c:1909
+#: utils/misc/guc.c:1988
 msgid "Allow JIT compilation of expressions."
 msgstr "Autorise la compilation JIT des expressions."
 
-#: utils/misc/guc.c:1920
+#: utils/misc/guc.c:1999
 msgid "Register JIT compiled function with perf profiler."
 msgstr "Enregistrer la fonction compilée JIT avec le profiler perf."
 
-#: utils/misc/guc.c:1937
+#: utils/misc/guc.c:2016
 msgid "Allow JIT compilation of tuple deforming."
 msgstr "Autorise la compilation JIT de la décomposition des lignes."
 
-#: utils/misc/guc.c:1948
+#: utils/misc/guc.c:2027
 msgid "Whether to continue running after a failure to sync data files."
 msgstr "Soit de continuer à s'exécuter après un échec lors de la synchronisation des fichiers de données."
 
-#: utils/misc/guc.c:1966
+#: utils/misc/guc.c:2036
+msgid "Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured."
+msgstr ""
+
+#: utils/misc/guc.c:2054
 msgid "Forces a switch to the next WAL file if a new file has not been started within N seconds."
 msgstr ""
 "Force un changement du journal de transaction si un nouveau fichier n'a pas\n"
 "été créé depuis N secondes."
 
-#: utils/misc/guc.c:1977
+#: utils/misc/guc.c:2065
 msgid "Waits N seconds on connection startup after authentication."
 msgstr "Attends N secondes après l'authentification."
 
-#: utils/misc/guc.c:1978 utils/misc/guc.c:2524
+#: utils/misc/guc.c:2066 utils/misc/guc.c:2624
 msgid "This allows attaching a debugger to the process."
 msgstr "Ceci permet d'attacher un débogueur au processus."
 
-#: utils/misc/guc.c:1987
+#: utils/misc/guc.c:2075
 msgid "Sets the default statistics target."
 msgstr "Initialise la cible par défaut des statistiques."
 
-#: utils/misc/guc.c:1988
+#: utils/misc/guc.c:2076
 msgid "This applies to table columns that have not had a column-specific target set via ALTER TABLE SET STATISTICS."
 msgstr ""
 "Ceci s'applique aux colonnes de tables qui n'ont pas de cible spécifique\n"
 "pour la colonne initialisée via ALTER TABLE SET STATISTICS."
 
-#: utils/misc/guc.c:1997
+#: utils/misc/guc.c:2085
 msgid "Sets the FROM-list size beyond which subqueries are not collapsed."
 msgstr ""
 "Initialise la taille de la liste FROM en dehors de laquelle les\n"
 "sous-requêtes ne sont pas rassemblées."
 
-#: utils/misc/guc.c:1999
+#: utils/misc/guc.c:2087
 msgid "The planner will merge subqueries into upper queries if the resulting FROM list would have no more than this many items."
 msgstr ""
 "Le planificateur fusionne les sous-requêtes dans des requêtes supérieures\n"
 "si la liste FROM résultante n'a pas plus de ce nombre d'éléments."
 
-#: utils/misc/guc.c:2010
+#: utils/misc/guc.c:2098
 msgid "Sets the FROM-list size beyond which JOIN constructs are not flattened."
 msgstr ""
 "Initialise la taille de la liste FROM en dehors de laquelle les contructions\n"
 "JOIN ne sont pas aplanies."
 
-#: utils/misc/guc.c:2012
+#: utils/misc/guc.c:2100
 msgid "The planner will flatten explicit JOIN constructs into lists of FROM items whenever a list of no more than this many items would result."
 msgstr ""
 "La planificateur applanira les constructions JOIN explicites dans des listes\n"
 "d'éléments FROM lorsqu'une liste d'au plus ce nombre d'éléments en\n"
 "résulterait."
 
-#: utils/misc/guc.c:2023
+#: utils/misc/guc.c:2111
 msgid "Sets the threshold of FROM items beyond which GEQO is used."
 msgstr "Initialise la limite des éléments FROM en dehors de laquelle GEQO est utilisé."
 
-#: utils/misc/guc.c:2033
+#: utils/misc/guc.c:2121
 msgid "GEQO: effort is used to set the default for other GEQO parameters."
 msgstr ""
 "GEQO : l'effort est utilisé pour initialiser une valeur par défaut pour les\n"
 "autres paramètres GEQO."
 
-#: utils/misc/guc.c:2043
+#: utils/misc/guc.c:2131
 msgid "GEQO: number of individuals in the population."
 msgstr "GEQO : nombre d'individus dans une population."
 
-#: utils/misc/guc.c:2044 utils/misc/guc.c:2054
+#: utils/misc/guc.c:2132 utils/misc/guc.c:2142
 msgid "Zero selects a suitable default value."
 msgstr "Zéro sélectionne une valeur par défaut convenable."
 
-#: utils/misc/guc.c:2053
+#: utils/misc/guc.c:2141
 msgid "GEQO: number of iterations of the algorithm."
 msgstr "GEQO : nombre d'itérations dans l'algorithme."
 
-#: utils/misc/guc.c:2065
+#: utils/misc/guc.c:2153
 msgid "Sets the time to wait on a lock before checking for deadlock."
 msgstr "Temps d'attente du verrou avant de vérifier les verrous bloqués."
 
-#: utils/misc/guc.c:2076
+#: utils/misc/guc.c:2164
 msgid "Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data."
 msgstr "Définit le délai maximum avant d'annuler les requêtes lorsqu'un serveur « hot standby » traite les données des journaux de transactions archivés"
 
-#: utils/misc/guc.c:2087
+#: utils/misc/guc.c:2175
 msgid "Sets the maximum delay before canceling queries when a hot standby server is processing streamed WAL data."
 msgstr ""
 "Initialise le délai maximum avant d'annuler les requêtes lorsqu'un serveur en\n"
 "hotstandby traite les données des journaux de transactions envoyés en flux."
 
-#: utils/misc/guc.c:2098
+#: utils/misc/guc.c:2186
 msgid "Sets the minimum delay for applying changes during recovery."
 msgstr "Définit la durée minimale pour appliquer des changements lors de la restauration."
 
-#: utils/misc/guc.c:2109
+#: utils/misc/guc.c:2197
 msgid "Sets the maximum interval between WAL receiver status reports to the sending server."
 msgstr "Définit l'intervalle maximum entre les rapports du statut du walreceiver au serveur émetteur."
 
-#: utils/misc/guc.c:2120
+#: utils/misc/guc.c:2208
 msgid "Sets the maximum wait time to receive data from the sending server."
 msgstr "Définit la durée maximale d'attente pour réceptionner des donnés du serveur émetteur."
 
-#: utils/misc/guc.c:2131
+#: utils/misc/guc.c:2219
 msgid "Sets the maximum number of concurrent connections."
 msgstr "Nombre maximum de connexions simultanées."
 
-#: utils/misc/guc.c:2142
+#: utils/misc/guc.c:2230
 msgid "Sets the number of connection slots reserved for superusers."
 msgstr "Nombre de connexions réservées aux super-utilisateurs."
 
-#: utils/misc/guc.c:2156
+#: utils/misc/guc.c:2244
 msgid "Sets the number of shared memory buffers used by the server."
 msgstr "Nombre de tampons en mémoire partagée utilisé par le serveur."
 
-#: utils/misc/guc.c:2167
+#: utils/misc/guc.c:2255
 msgid "Sets the maximum number of temporary buffers used by each session."
 msgstr "Nombre maximum de tampons en mémoire partagée utilisés par chaque session."
 
-#: utils/misc/guc.c:2178
+#: utils/misc/guc.c:2266
 msgid "Sets the TCP port the server listens on."
 msgstr "Port TCP sur lequel le serveur écoutera."
 
-#: utils/misc/guc.c:2188
+#: utils/misc/guc.c:2276
 msgid "Sets the access permissions of the Unix-domain socket."
 msgstr "Droits d'accès au socket domaine Unix."
 
-#: utils/misc/guc.c:2189
+#: utils/misc/guc.c:2277
 msgid "Unix-domain sockets use the usual Unix file system permission set. The parameter value is expected to be a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)"
 msgstr ""
 "Les sockets de domaine Unix utilise l'ensemble des droits habituels du système\n"
@@ -25264,211 +25880,223 @@ msgstr ""
 "mode numérique de la forme acceptée par les appels système chmod et umask\n"
 "(pour utiliser le format octal, le nombre doit commencer par un zéro)."
 
-#: utils/misc/guc.c:2203
+#: utils/misc/guc.c:2291
 msgid "Sets the file permissions for log files."
 msgstr "Initialise les droits des fichiers de trace."
 
-#: utils/misc/guc.c:2204
+#: utils/misc/guc.c:2292
 msgid "The parameter value is expected to be a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)"
 msgstr ""
 "La valeur du paramètre est attendue dans le format numérique du mode accepté\n"
 "par les appels système chmod et umask (pour utiliser le format octal\n"
 "personnalisé, le numéro doit commencer par un zéro)."
 
-#: utils/misc/guc.c:2218
+#: utils/misc/guc.c:2306
 msgid "Mode of the data directory."
 msgstr "Mode du répertoire des données du serveur."
 
-#: utils/misc/guc.c:2219
+#: utils/misc/guc.c:2307
 msgid "The parameter value is a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)"
 msgstr ""
 "La valeur du paramètre est une spécification numérique de mode dans la forme acceptée\n"
 "par les appels système chmod et umask (pour utiliser le format octal\n"
 "personnalisé, le numéro doit commencer par un 0 (zéro).)"
 
-#: utils/misc/guc.c:2232
+#: utils/misc/guc.c:2320
 msgid "Sets the maximum memory to be used for query workspaces."
 msgstr "Initialise la mémoire maximum utilisée pour les espaces de travail des requêtes."
 
-#: utils/misc/guc.c:2233
+#: utils/misc/guc.c:2321
 msgid "This much memory can be used by each internal sort operation and hash table before switching to temporary disk files."
 msgstr ""
 "Spécifie la mémoire à utiliser par les opérations de tris internes et par\n"
 "les tables de hachage avant de passer sur des fichiers temporaires sur disque."
 
-#: utils/misc/guc.c:2245
+#: utils/misc/guc.c:2333
 msgid "Sets the maximum memory to be used for maintenance operations."
 msgstr "Initialise la mémoire maximum utilisée pour les opérations de maintenance."
 
-#: utils/misc/guc.c:2246
+#: utils/misc/guc.c:2334
 msgid "This includes operations such as VACUUM and CREATE INDEX."
 msgstr "Ceci inclut les opérations comme VACUUM et CREATE INDEX."
 
-#: utils/misc/guc.c:2261
-msgid "Sets the maximum stack depth, in kilobytes."
-msgstr "Initialise la profondeur maximale de la pile, en Ko."
-
-#: utils/misc/guc.c:2272
+#: utils/misc/guc.c:2344
+#, fuzzy
+#| msgid "Sets the maximum memory to be used for maintenance operations."
+msgid "Sets the maximum memory to be used for logical decoding."
+msgstr "Initialise la mémoire maximum utilisée pour les opérations de maintenance."
+
+#: utils/misc/guc.c:2345
+msgid "This much memory can be used by each internal reorder buffer before spilling to disk."
+msgstr "Cette quantité de mémoire peut être utilisée par chaque cache de tri interne avant de passer sur des fichiers temporaires sur disque."
+
+#: utils/misc/guc.c:2361
+msgid "Sets the maximum stack depth, in kilobytes."
+msgstr "Initialise la profondeur maximale de la pile, en Ko."
+
+#: utils/misc/guc.c:2372
 msgid "Limits the total size of all temporary files used by each process."
 msgstr "Limite la taille totale de tous les fichiers temporaires utilisés par chaque processus."
 
-#: utils/misc/guc.c:2273
+#: utils/misc/guc.c:2373
 msgid "-1 means no limit."
 msgstr "-1 signifie sans limite."
 
-#: utils/misc/guc.c:2283
+#: utils/misc/guc.c:2383
 msgid "Vacuum cost for a page found in the buffer cache."
 msgstr "Coût d'un VACUUM pour une page trouvée dans le cache du tampon."
 
-#: utils/misc/guc.c:2293
+#: utils/misc/guc.c:2393
 msgid "Vacuum cost for a page not found in the buffer cache."
 msgstr "Coût d'un VACUUM pour une page introuvable dans le cache du tampon."
 
-#: utils/misc/guc.c:2303
+#: utils/misc/guc.c:2403
 msgid "Vacuum cost for a page dirtied by vacuum."
 msgstr "Coût d'un VACUUM pour une page modifiée par VACUUM."
 
-#: utils/misc/guc.c:2313
+#: utils/misc/guc.c:2413
 msgid "Vacuum cost amount available before napping."
 msgstr "Coût du VACUUM disponible avant un repos."
 
-#: utils/misc/guc.c:2323
+#: utils/misc/guc.c:2423
 msgid "Vacuum cost amount available before napping, for autovacuum."
 msgstr "Coût du VACUUM disponible avant un repos, pour autovacuum."
 
-#: utils/misc/guc.c:2333
+#: utils/misc/guc.c:2433
 msgid "Sets the maximum number of simultaneously open files for each server process."
 msgstr ""
 "Initialise le nombre maximum de fichiers ouverts simultanément pour chaque\n"
 "processus serveur."
 
-#: utils/misc/guc.c:2346
+#: utils/misc/guc.c:2446
 msgid "Sets the maximum number of simultaneously prepared transactions."
 msgstr "Initialise le nombre maximum de transactions préparées simultanément."
 
-#: utils/misc/guc.c:2357
+#: utils/misc/guc.c:2457
 msgid "Sets the minimum OID of tables for tracking locks."
 msgstr "Initialise l'OID minimum des tables pour tracer les verrous."
 
-#: utils/misc/guc.c:2358
+#: utils/misc/guc.c:2458
 msgid "Is used to avoid output on system tables."
 msgstr "Est utilisé pour éviter la sortie sur des tables systèmes."
 
-#: utils/misc/guc.c:2367
+#: utils/misc/guc.c:2467
 msgid "Sets the OID of the table with unconditionally lock tracing."
 msgstr "Configure l'OID de la table avec une trace des verrous sans condition."
 
-#: utils/misc/guc.c:2379
+#: utils/misc/guc.c:2479
 msgid "Sets the maximum allowed duration of any statement."
 msgstr "Initialise la durée maximum permise pour toute instruction."
 
-#: utils/misc/guc.c:2380 utils/misc/guc.c:2391 utils/misc/guc.c:2402
+#: utils/misc/guc.c:2480 utils/misc/guc.c:2491 utils/misc/guc.c:2502
 msgid "A value of 0 turns off the timeout."
 msgstr "Une valeur de 0 désactive le timeout."
 
-#: utils/misc/guc.c:2390
+#: utils/misc/guc.c:2490
 msgid "Sets the maximum allowed duration of any wait for a lock."
 msgstr "Initialise la durée maximum permise pour toute attente d'un verrou."
 
-#: utils/misc/guc.c:2401
+#: utils/misc/guc.c:2501
 msgid "Sets the maximum allowed duration of any idling transaction."
 msgstr "Initialise la durée maximale autorisée pour toute transaction en attente."
 
-#: utils/misc/guc.c:2412
+#: utils/misc/guc.c:2512
 msgid "Minimum age at which VACUUM should freeze a table row."
 msgstr "Âge minimum à partir duquel VACUUM devra geler une ligne de table."
 
-#: utils/misc/guc.c:2422
+#: utils/misc/guc.c:2522
 msgid "Age at which VACUUM should scan whole table to freeze tuples."
 msgstr "Âge à partir duquel VACUUM devra parcourir une table complète pour geler les lignes."
 
-#: utils/misc/guc.c:2432
+#: utils/misc/guc.c:2532
 msgid "Minimum age at which VACUUM should freeze a MultiXactId in a table row."
 msgstr "Âge minimum à partir duquel VACUUM devra geler un MultiXactId dans une ligne de table."
 
-#: utils/misc/guc.c:2442
+#: utils/misc/guc.c:2542
 msgid "Multixact age at which VACUUM should scan whole table to freeze tuples."
 msgstr ""
 "Âge Multixact à partir duquel VACUUM devra parcourir une table complète pour geler les\n"
 "lignes."
 
-#: utils/misc/guc.c:2452
+#: utils/misc/guc.c:2552
 msgid "Number of transactions by which VACUUM and HOT cleanup should be deferred, if any."
 msgstr "Nombre de transactions à partir duquel les nettoyages VACUUM et HOT doivent être déferrés."
 
-#: utils/misc/guc.c:2465
+#: utils/misc/guc.c:2565
 msgid "Sets the maximum number of locks per transaction."
 msgstr "Initialise le nombre maximum de verrous par transaction."
 
-#: utils/misc/guc.c:2466
+#: utils/misc/guc.c:2566
 msgid "The shared lock table is sized on the assumption that at most max_locks_per_transaction * max_connections distinct objects will need to be locked at any one time."
 msgstr ""
 "La table des verrous partagés est dimensionnée sur l'idée qu'au plus\n"
 "max_locks_per_transaction * max_connections objets distincts auront besoin\n"
 "d'être verrouillés à tout moment."
 
-#: utils/misc/guc.c:2477
+#: utils/misc/guc.c:2577
 msgid "Sets the maximum number of predicate locks per transaction."
 msgstr "Initialise le nombre maximum de verrous prédicats par transaction."
 
-#: utils/misc/guc.c:2478
+#: utils/misc/guc.c:2578
 msgid "The shared predicate lock table is sized on the assumption that at most max_pred_locks_per_transaction * max_connections distinct objects will need to be locked at any one time."
 msgstr ""
 "La table des verrous de prédicat partagés est dimensionnée sur l'idée qu'au plus\n"
 "max_pred_locks_per_transaction * max_connections objets distincts auront besoin\n"
 "d'être verrouillés à tout moment."
 
-#: utils/misc/guc.c:2489
+#: utils/misc/guc.c:2589
 msgid "Sets the maximum number of predicate-locked pages and tuples per relation."
 msgstr "Initialise le nombre maximum de pages et lignes verrouillées avec prédicats par transaction."
 
-#: utils/misc/guc.c:2490
+#: utils/misc/guc.c:2590
 msgid "If more than this total of pages and tuples in the same relation are locked by a connection, those locks are replaced by a relation-level lock."
 msgstr "Si plus que ce nombre de pages et lignes dans la même relation sont verrouillées par une connexion, ces verrous sont remplacés par un verrou de niveau relation."
 
-#: utils/misc/guc.c:2500
+#: utils/misc/guc.c:2600
 msgid "Sets the maximum number of predicate-locked tuples per page."
 msgstr "Initialise le nombre maximum de lignes verrouillées avec prédicat par transaction."
 
-#: utils/misc/guc.c:2501
+#: utils/misc/guc.c:2601
 msgid "If more than this number of tuples on the same page are locked by a connection, those locks are replaced by a page-level lock."
 msgstr "Si plus que ce nombre de lignes sur la même page sont verrouillées par une connexion, ces verrous sont remplacés par un verrou de niveau de page."
 
-#: utils/misc/guc.c:2511
+#: utils/misc/guc.c:2611
 msgid "Sets the maximum allowed time to complete client authentication."
 msgstr ""
 "Initialise le temps maximum en secondes pour terminer l'authentification du\n"
 "client."
 
-#: utils/misc/guc.c:2523
+#: utils/misc/guc.c:2623
 msgid "Waits N seconds on connection startup before authentication."
 msgstr "Attends N secondes au lancement de la connexion avant l'authentification."
 
-#: utils/misc/guc.c:2534
-msgid "Sets the number of WAL files held for standby servers."
+#: utils/misc/guc.c:2634
+#, fuzzy
+#| msgid "Sets the number of WAL files held for standby servers."
+msgid "Sets the size of WAL files held for standby servers."
 msgstr "Initialise le nombre de journaux de transactions conservés tenus par les seveurs en attente."
 
-#: utils/misc/guc.c:2544
+#: utils/misc/guc.c:2645
 msgid "Sets the minimum size to shrink the WAL to."
 msgstr "Initialise la taille minimale à laquelle réduire l'espace des journaux de transaction."
 
-#: utils/misc/guc.c:2556
+#: utils/misc/guc.c:2657
 msgid "Sets the WAL size that triggers a checkpoint."
 msgstr "Initialise la volumétrie de journaux de transaction qui déclenche un checkpoint."
 
-#: utils/misc/guc.c:2568
+#: utils/misc/guc.c:2669
 msgid "Sets the maximum time between automatic WAL checkpoints."
 msgstr ""
 "Initialise le temps maximum entre des points de vérification (checkpoints)\n"
 "pour les journaux de transactions."
 
-#: utils/misc/guc.c:2579
+#: utils/misc/guc.c:2680
 msgid "Enables warnings if checkpoint segments are filled more frequently than this."
 msgstr ""
 "Active des messages d'avertissement si les segments des points de\n"
 "vérifications se remplissent plus fréquemment que cette durée."
 
-#: utils/misc/guc.c:2581
+#: utils/misc/guc.c:2682
 msgid "Write a message to the server log if checkpoints caused by the filling of checkpoint segment files happens more frequently than this number of seconds. Zero turns off the warning."
 msgstr ""
 "Écrit un message dans les journaux applicatifs du serveur si les points de\n"
@@ -25476,891 +26104,954 @@ msgstr ""
 "des points de vérification qui arrivent plus fréquemment que ce nombre de\n"
 "secondes. Une valeur 0 désactive l'avertissement."
 
-#: utils/misc/guc.c:2593 utils/misc/guc.c:2750 utils/misc/guc.c:2779
+#: utils/misc/guc.c:2694 utils/misc/guc.c:2910 utils/misc/guc.c:2957
 msgid "Number of pages after which previously performed writes are flushed to disk."
 msgstr "Nombre de pages après lequel les précédentes écritures seront synchronisées sur disque."
 
-#: utils/misc/guc.c:2604
+#: utils/misc/guc.c:2705
 msgid "Sets the number of disk-page buffers in shared memory for WAL."
 msgstr ""
 "Initialise le nombre de tampons de pages disque dans la mémoire partagée\n"
 "pour les journaux de transactions."
 
-#: utils/misc/guc.c:2615
+#: utils/misc/guc.c:2716
 msgid "Time between WAL flushes performed in the WAL writer."
 msgstr "Temps entre les synchronisations des WAL sur disque effectuées par le processus d'écriture des journaux de transaction."
 
-#: utils/misc/guc.c:2626
+#: utils/misc/guc.c:2727
 msgid "Amount of WAL written out by WAL writer that triggers a flush."
 msgstr "Quantité de WAL écrits par le processus d'écriture des journaux de transaction devant déclencher une synchronisation sur disque."
 
-#: utils/misc/guc.c:2637
+#: utils/misc/guc.c:2738
+msgid "Size of new file to fsync instead of writing WAL."
+msgstr ""
+
+#: utils/misc/guc.c:2749
 msgid "Sets the maximum number of simultaneously running WAL sender processes."
 msgstr ""
 "Initialise le nombre maximum de processus d'envoi des journaux de transactions\n"
 "exécutés simultanément."
 
-#: utils/misc/guc.c:2648
+#: utils/misc/guc.c:2760
 msgid "Sets the maximum number of simultaneously defined replication slots."
 msgstr "Initialise le nombre maximum de slots de réplication définis simultanément."
 
-#: utils/misc/guc.c:2658
+#: utils/misc/guc.c:2770
+#, fuzzy
+#| msgid "Sets the maximum number of simultaneously defined replication slots."
+msgid "Sets the maximum WAL size that can be reserved by replication slots."
+msgstr "Initialise le nombre maximum de slots de réplication définis simultanément."
+
+#: utils/misc/guc.c:2771
+msgid "Replication slots will be marked as failed, and segments released for deletion or recycling, if this much space is occupied by WAL on disk."
+msgstr ""
+
+#: utils/misc/guc.c:2783
 msgid "Sets the maximum time to wait for WAL replication."
 msgstr "Initialise le temps maximum à attendre pour la réplication des WAL."
 
-#: utils/misc/guc.c:2669
+#: utils/misc/guc.c:2794
 msgid "Sets the delay in microseconds between transaction commit and flushing WAL to disk."
 msgstr ""
 "Initialise le délai en microsecondes entre l'acceptation de la transaction\n"
 "et le vidage du journal de transaction sur disque."
 
-#: utils/misc/guc.c:2681
+#: utils/misc/guc.c:2806
 msgid "Sets the minimum concurrent open transactions before performing commit_delay."
 msgstr ""
 "Initialise le nombre minimum de transactions ouvertes simultanément avant le\n"
 "commit_delay."
 
-#: utils/misc/guc.c:2692
+#: utils/misc/guc.c:2817
 msgid "Sets the number of digits displayed for floating-point values."
 msgstr "Initialise le nombre de chiffres affichés pour les valeurs à virgule flottante."
 
-#: utils/misc/guc.c:2693
+#: utils/misc/guc.c:2818
 msgid "This affects real, double precision, and geometric data types. A zero or negative parameter value is added to the standard number of digits (FLT_DIG or DBL_DIG as appropriate). Any value greater than zero selects precise output mode."
 msgstr "Ceci affecte les types de données real, double precision et géométriques. Une valeur zéro ou négative du paramètre est ajoutée au nombre standard de chiffres (FLT_DIG ou DBL_DIG comme approprié). Toute valeur plus grande que zéro sélectionne le mode de sortie précis."
 
-#: utils/misc/guc.c:2705
-msgid "Sets the minimum execution time above which statements will be logged."
+#: utils/misc/guc.c:2830
+#, fuzzy
+#| msgid "Sets the minimum execution time above which statements will be logged."
+msgid "Sets the minimum execution time above which a sample of statements will be logged. Sampling is determined by log_statement_sample_rate."
+msgstr ""
+"Initialise le temps d'exécution minimum au-dessus de lequel les instructions\n"
+"seront tracées."
+
+#: utils/misc/guc.c:2833
+msgid "Zero logs a sample of all queries. -1 turns this feature off."
+msgstr "Zéro trace un échantillon de toutes les requêtes. -1 désactive cette fonctionnalité."
+
+#: utils/misc/guc.c:2843
+#, fuzzy
+#| msgid "Sets the minimum execution time above which statements will be logged."
+msgid "Sets the minimum execution time above which all statements will be logged."
 msgstr ""
 "Initialise le temps d'exécution minimum au-dessus de lequel les instructions\n"
 "seront tracées."
 
-#: utils/misc/guc.c:2707
+#: utils/misc/guc.c:2845
 msgid "Zero prints all queries. -1 turns this feature off."
 msgstr "Zéro affiche toutes les requêtes. -1 désactive cette fonctionnalité."
 
-#: utils/misc/guc.c:2717
+#: utils/misc/guc.c:2855
 msgid "Sets the minimum execution time above which autovacuum actions will be logged."
 msgstr ""
 "Initialise le temps d'exécution minimum au-dessus duquel les actions\n"
 "autovacuum seront tracées."
 
-#: utils/misc/guc.c:2719
+#: utils/misc/guc.c:2857
 msgid "Zero prints all actions. -1 turns autovacuum logging off."
 msgstr "Zéro affiche toutes les requêtes. -1 désactive cette fonctionnalité."
 
-#: utils/misc/guc.c:2729
+#: utils/misc/guc.c:2867
+msgid "When logging statements, limit logged parameter values to first N bytes."
+msgstr ""
+
+#: utils/misc/guc.c:2868 utils/misc/guc.c:2879
+msgid "-1 to print values in full."
+msgstr "-1 pour afficher les valeurs complètement."
+
+#: utils/misc/guc.c:2878
+msgid "When reporting an error, limit logged parameter values to first N bytes."
+msgstr ""
+
+#: utils/misc/guc.c:2889
 msgid "Background writer sleep time between rounds."
 msgstr "Durée d'endormissement du processus d'écriture en tâche de fond (background writer) entre deux cycles."
 
-#: utils/misc/guc.c:2740
+#: utils/misc/guc.c:2900
 msgid "Background writer maximum number of LRU pages to flush per round."
 msgstr "Nombre maximum de pages LRU à nettoyer par le processus d'écriture en tâche de fond (background writer)"
 
-#: utils/misc/guc.c:2763
+#: utils/misc/guc.c:2923
 msgid "Number of simultaneous requests that can be handled efficiently by the disk subsystem."
 msgstr "Nombre de requêtes simultanées pouvant être gérées efficacement par le sous-système disque."
 
-#: utils/misc/guc.c:2764
+#: utils/misc/guc.c:2924
 msgid "For RAID arrays, this should be approximately the number of drive spindles in the array."
 msgstr ""
 "Pour les systèmes RAID, cela devrait être approximativement le nombre de\n"
 "têtes de lecture du système."
 
-#: utils/misc/guc.c:2792
+#: utils/misc/guc.c:2941
+msgid "A variant of effective_io_concurrency that is used for maintenance work."
+msgstr ""
+
+#: utils/misc/guc.c:2970
 msgid "Maximum number of concurrent worker processes."
 msgstr "Nombre maximum de background workers simultanés."
 
-#: utils/misc/guc.c:2804
+#: utils/misc/guc.c:2982
 msgid "Maximum number of logical replication worker processes."
 msgstr "Nombre maximum de processus workers de réplication logique."
 
-#: utils/misc/guc.c:2816
+#: utils/misc/guc.c:2994
 msgid "Maximum number of table synchronization workers per subscription."
 msgstr "Nombre maximum de workers de synchronisation par souscription."
 
-#: utils/misc/guc.c:2826
+#: utils/misc/guc.c:3004
 msgid "Automatic log file rotation will occur after N minutes."
 msgstr "La rotation automatique des journaux applicatifs s'effectuera toutes les N minutes."
 
-#: utils/misc/guc.c:2837
+#: utils/misc/guc.c:3015
 msgid "Automatic log file rotation will occur after N kilobytes."
 msgstr "La rotation automatique des journaux applicatifs s'effectuera après N kilooctets."
 
-#: utils/misc/guc.c:2848
+#: utils/misc/guc.c:3026
 msgid "Shows the maximum number of function arguments."
 msgstr "Affiche le nombre maximum d'arguments de fonction."
 
-#: utils/misc/guc.c:2859
+#: utils/misc/guc.c:3037
 msgid "Shows the maximum number of index keys."
 msgstr "Affiche le nombre maximum de clés d'index."
 
-#: utils/misc/guc.c:2870
+#: utils/misc/guc.c:3048
 msgid "Shows the maximum identifier length."
 msgstr "Affiche la longueur maximum d'un identifiant."
 
-#: utils/misc/guc.c:2881
+#: utils/misc/guc.c:3059
 msgid "Shows the size of a disk block."
 msgstr "Affiche la taille d'un bloc de disque."
 
-#: utils/misc/guc.c:2892
+#: utils/misc/guc.c:3070
 msgid "Shows the number of pages per disk file."
 msgstr "Affiche le nombre de pages par fichier."
 
-#: utils/misc/guc.c:2903
+#: utils/misc/guc.c:3081
 msgid "Shows the block size in the write ahead log."
 msgstr "Affiche la taille du bloc dans les journaux de transactions."
 
-#: utils/misc/guc.c:2914
+#: utils/misc/guc.c:3092
 msgid "Sets the time to wait before retrying to retrieve WAL after a failed attempt."
 msgstr "Initalise le temps à attendre avant de retenter de récupérer un WAL après une tentative infructueuse."
 
-#: utils/misc/guc.c:2926
+#: utils/misc/guc.c:3104
 msgid "Shows the size of write ahead log segments."
 msgstr "Affiche la taille des journaux de transactions."
 
-#: utils/misc/guc.c:2939
+#: utils/misc/guc.c:3117
 msgid "Time to sleep between autovacuum runs."
 msgstr "Durée d'endormissement entre deux exécutions d'autovacuum."
 
-#: utils/misc/guc.c:2949
+#: utils/misc/guc.c:3127
 msgid "Minimum number of tuple updates or deletes prior to vacuum."
 msgstr "Nombre minimum de lignes mises à jour ou supprimées avant le VACUUM."
 
-#: utils/misc/guc.c:2958
+#: utils/misc/guc.c:3136
+msgid "Minimum number of tuple inserts prior to vacuum, or -1 to disable insert vacuums."
+msgstr "Nombre minimum de lignes insérées avant un ANALYZE, ou -1 pour désactiver ce comportement"
+
+#: utils/misc/guc.c:3145
 msgid "Minimum number of tuple inserts, updates, or deletes prior to analyze."
 msgstr "Nombre minimum de lignes insérées, mises à jour ou supprimées avant un ANALYZE."
 
-#: utils/misc/guc.c:2968
+#: utils/misc/guc.c:3155
 msgid "Age at which to autovacuum a table to prevent transaction ID wraparound."
 msgstr "Âge à partir duquel l'autovacuum se déclenche sur une table pour empêcher un rebouclage des identifiants de transaction."
 
-#: utils/misc/guc.c:2979
+#: utils/misc/guc.c:3166
 msgid "Multixact age at which to autovacuum a table to prevent multixact wraparound."
 msgstr "Âge multixact à partir duquel l'autovacuum se déclenche sur une table pour empêcher la réinitialisation du multixact"
 
-#: utils/misc/guc.c:2989
+#: utils/misc/guc.c:3176
 msgid "Sets the maximum number of simultaneously running autovacuum worker processes."
 msgstr "Initialise le nombre maximum de processus autovacuum exécutés simultanément."
 
-#: utils/misc/guc.c:2999
+#: utils/misc/guc.c:3186
 msgid "Sets the maximum number of parallel processes per maintenance operation."
 msgstr "Initialise le nombre maximum de processus parallèles par opération de maintenance."
 
-#: utils/misc/guc.c:3009
+#: utils/misc/guc.c:3196
 msgid "Sets the maximum number of parallel processes per executor node."
 msgstr "Initialise le nombre maximum de processus parallèles par nœud d'exécution."
 
-#: utils/misc/guc.c:3020
+#: utils/misc/guc.c:3207
 msgid "Sets the maximum number of parallel workers that can be active at one time."
 msgstr "Configure le nombre maximum de processus parallélisés pouvant être actifs en même temps."
 
-#: utils/misc/guc.c:3031
+#: utils/misc/guc.c:3218
 msgid "Sets the maximum memory to be used by each autovacuum worker process."
 msgstr "Initialise la mémoire maximum utilisée par chaque processus autovacuum worker."
 
-#: utils/misc/guc.c:3042
+#: utils/misc/guc.c:3229
 msgid "Time before a snapshot is too old to read pages changed after the snapshot was taken."
 msgstr "Temps à partir duquel un snapshot est trop ancien pour lire des pages ayant changées après que le snapshot ait été effectué."
 
-#: utils/misc/guc.c:3043
+#: utils/misc/guc.c:3230
 msgid "A value of -1 disables this feature."
 msgstr "Une valeur de -1 désactive cette fonctionnalité."
 
-#: utils/misc/guc.c:3053
+#: utils/misc/guc.c:3240
 msgid "Time between issuing TCP keepalives."
 msgstr "Secondes entre l'exécution de « TCP keepalives »."
 
-#: utils/misc/guc.c:3054 utils/misc/guc.c:3065 utils/misc/guc.c:3189
+#: utils/misc/guc.c:3241 utils/misc/guc.c:3252 utils/misc/guc.c:3376
 msgid "A value of 0 uses the system default."
 msgstr "Une valeur de 0 utilise la valeur par défaut du système."
 
-#: utils/misc/guc.c:3064
+#: utils/misc/guc.c:3251
 msgid "Time between TCP keepalive retransmits."
 msgstr "Secondes entre les retransmissions de « TCP keepalive »."
 
-#: utils/misc/guc.c:3075
+#: utils/misc/guc.c:3262
 msgid "SSL renegotiation is no longer supported; this can only be 0."
 msgstr "La renégociation SSL n'est plus supportée; ce paramètre ne peut être positionné qu'à 0."
 
-#: utils/misc/guc.c:3086
+#: utils/misc/guc.c:3273
 msgid "Maximum number of TCP keepalive retransmits."
 msgstr "Nombre maximum de retransmissions de « TCP keepalive »."
 
-#: utils/misc/guc.c:3087
+#: utils/misc/guc.c:3274
 msgid "This controls the number of consecutive keepalive retransmits that can be lost before a connection is considered dead. A value of 0 uses the system default."
 msgstr ""
 "Ceci contrôle le nombre de retransmissions keepalive consécutives qui\n"
 "peuvent être perdues avant qu'une connexion ne soit considérée morte. Une\n"
 "valeur de 0 utilise la valeur par défaut du système."
 
-#: utils/misc/guc.c:3098
+#: utils/misc/guc.c:3285
 msgid "Sets the maximum allowed result for exact search by GIN."
 msgstr "Configure le nombre maximum de résultats lors d'une recherche par GIN."
 
-#: utils/misc/guc.c:3109
+#: utils/misc/guc.c:3296
 msgid "Sets the planner's assumption about the total size of the data caches."
 msgstr "Initialise le sentiment du planificateur sur la taille des caches disques."
 
-#: utils/misc/guc.c:3110
+#: utils/misc/guc.c:3297
 msgid "That is, the total size of the caches (kernel cache and shared buffers) used for PostgreSQL data files. This is measured in disk pages, which are normally 8 kB each."
 msgstr ""
 "C'est-à-dire, la portion des caches disques (noyau et PostgreSQL) qui sera utilisé pour les\n"
 "fichiers de données de PostgreSQL. C'est mesuré en pages disque, qui font\n"
 "normalement 8 Ko chaque."
 
-#: utils/misc/guc.c:3121
+#: utils/misc/guc.c:3308
 msgid "Sets the minimum amount of table data for a parallel scan."
 msgstr "Configure la quantité minimale de données de table pour un parcours parallèle."
 
-#: utils/misc/guc.c:3122
+#: utils/misc/guc.c:3309
 msgid "If the planner estimates that it will read a number of table pages too small to reach this limit, a parallel scan will not be considered."
 msgstr "Si le planificateur estime qu'il lira un nombre de blocs de table trop petit pour atteindre cette limite, un parcours parallèle ne sera pas considéré."
 
-#: utils/misc/guc.c:3132
+#: utils/misc/guc.c:3319
 msgid "Sets the minimum amount of index data for a parallel scan."
 msgstr "Configure la quantité minimale de données d'index pour un parcours parallèle."
 
-#: utils/misc/guc.c:3133
+#: utils/misc/guc.c:3320
 msgid "If the planner estimates that it will read a number of index pages too small to reach this limit, a parallel scan will not be considered."
 msgstr "Si le planificateur estime qu'il lira un nombre de blocs d'index trop petit pour atteindre cette limite, un parcours parallèle ne sera pas considéré."
 
-#: utils/misc/guc.c:3144
+#: utils/misc/guc.c:3331
 msgid "Shows the server version as an integer."
 msgstr "Affiche la version du serveur sous la forme d'un entier."
 
-#: utils/misc/guc.c:3155
+#: utils/misc/guc.c:3342
 msgid "Log the use of temporary files larger than this number of kilobytes."
 msgstr ""
 "Trace l'utilisation de fichiers temporaires plus gros que ce nombre de\n"
 "kilooctets."
 
-#: utils/misc/guc.c:3156
+#: utils/misc/guc.c:3343
 msgid "Zero logs all files. The default is -1 (turning this feature off)."
 msgstr ""
 "Zéro trace toutes les requêtes. La valeur par défaut est -1 (désactivant\n"
 "cette fonctionnalité)."
 
-#: utils/misc/guc.c:3166
+#: utils/misc/guc.c:3353
 msgid "Sets the size reserved for pg_stat_activity.query, in bytes."
 msgstr "Configure la taille réservée pour pg_stat_activity.query, en octets."
 
-#: utils/misc/guc.c:3177
+#: utils/misc/guc.c:3364
 msgid "Sets the maximum size of the pending list for GIN index."
 msgstr "Configure la taille maximale de la pending list d'un index GIN."
 
-#: utils/misc/guc.c:3188
+#: utils/misc/guc.c:3375
 msgid "TCP user timeout."
 msgstr "Délai d'attente maximal TCP utilisateur."
 
-#: utils/misc/guc.c:3208
+#: utils/misc/guc.c:3395
 msgid "Sets the planner's estimate of the cost of a sequentially fetched disk page."
 msgstr ""
 "Initialise l'estimation du planificateur pour le coût d'une page disque\n"
 "récupérée séquentiellement."
 
-#: utils/misc/guc.c:3219
+#: utils/misc/guc.c:3406
 msgid "Sets the planner's estimate of the cost of a nonsequentially fetched disk page."
 msgstr ""
 "Initialise l'estimation du plnnificateur pour le coût d'une page disque\n"
 "récupérée non séquentiellement."
 
-#: utils/misc/guc.c:3230
+#: utils/misc/guc.c:3417
 msgid "Sets the planner's estimate of the cost of processing each tuple (row)."
 msgstr ""
 "Initialise l'estimation du planificateur pour le coût d'exécution sur chaque\n"
 "ligne."
 
-#: utils/misc/guc.c:3241
+#: utils/misc/guc.c:3428
 msgid "Sets the planner's estimate of the cost of processing each index entry during an index scan."
 msgstr ""
 "Initialise l'estimation du planificateur pour le coût de traitement de\n"
 "chaque ligne indexée lors d'un parcours d'index."
 
-#: utils/misc/guc.c:3252
+#: utils/misc/guc.c:3439
 msgid "Sets the planner's estimate of the cost of processing each operator or function call."
 msgstr ""
 "Initialise l'estimation du planificateur pour le coût de traitement de\n"
 "chaque opérateur ou appel de fonction."
 
-#: utils/misc/guc.c:3263
+#: utils/misc/guc.c:3450
 msgid "Sets the planner's estimate of the cost of passing each tuple (row) from worker to master backend."
 msgstr "Initialise l'estimation du planificateur pour le coût de passage de chaque ligne d'un processus fils vers le processus maître."
 
-#: utils/misc/guc.c:3274
+#: utils/misc/guc.c:3461
 msgid "Sets the planner's estimate of the cost of starting up worker processes for parallel query."
 msgstr "Initialise l'estimation du planificateur pour le coût de démarrage des processus d'exécution de requêtes parallèles."
 
-#: utils/misc/guc.c:3286
+#: utils/misc/guc.c:3473
 msgid "Perform JIT compilation if query is more expensive."
 msgstr "Effectuer une compilation JIT si la requête est plus coûteuse."
 
-#: utils/misc/guc.c:3287
+#: utils/misc/guc.c:3474
 msgid "-1 disables JIT compilation."
 msgstr "-1 désactive la compilation JIT."
 
-#: utils/misc/guc.c:3297
+#: utils/misc/guc.c:3484
 msgid "Optimize JITed functions if query is more expensive."
 msgstr "Optimise les fonctions JITées si la requête est plus coûteuse."
 
-#: utils/misc/guc.c:3298
+#: utils/misc/guc.c:3485
 msgid "-1 disables optimization."
 msgstr "-1 désactive l'optimisation."
 
-#: utils/misc/guc.c:3308
+#: utils/misc/guc.c:3495
 msgid "Perform JIT inlining if query is more expensive."
 msgstr "Effectuer un inlining JIT si la requête est plus coûteuse."
 
-#: utils/misc/guc.c:3309
+#: utils/misc/guc.c:3496
 msgid "-1 disables inlining."
 msgstr "-1 désactive l'inlining."
 
-#: utils/misc/guc.c:3319
+#: utils/misc/guc.c:3506
 msgid "Sets the planner's estimate of the fraction of a cursor's rows that will be retrieved."
 msgstr "Initialise l'estimation du planificateur de la fraction des lignes d'un curseur à récupérer."
 
-#: utils/misc/guc.c:3331
+#: utils/misc/guc.c:3518
 msgid "GEQO: selective pressure within the population."
 msgstr "GEQO : pression sélective dans la population."
 
-#: utils/misc/guc.c:3342
+#: utils/misc/guc.c:3529
 msgid "GEQO: seed for random path selection."
 msgstr "GEQO : graine pour la sélection du chemin aléatoire."
 
-#: utils/misc/guc.c:3353
+#: utils/misc/guc.c:3540
+msgid "Multiple of work_mem to use for hash tables."
+msgstr "Multiple de work_mem à utiliser pour les tables de hachage."
+
+#: utils/misc/guc.c:3551
 msgid "Multiple of the average buffer usage to free per round."
 msgstr "Multiplede l'utilisation moyenne des tampons à libérer à chaque tour."
 
-#: utils/misc/guc.c:3363
+#: utils/misc/guc.c:3561
 msgid "Sets the seed for random-number generation."
 msgstr "Initialise la clé pour la génération de nombres aléatoires."
 
-#: utils/misc/guc.c:3374
+#: utils/misc/guc.c:3572
 msgid "Vacuum cost delay in milliseconds."
 msgstr "Délai d'un coût de VACUUM en millisecondes."
 
-#: utils/misc/guc.c:3385
+#: utils/misc/guc.c:3583
 msgid "Vacuum cost delay in milliseconds, for autovacuum."
 msgstr "Délai d'un coût de VACUUM en millisecondes, pour autovacuum."
 
-#: utils/misc/guc.c:3396
+#: utils/misc/guc.c:3594
 msgid "Number of tuple updates or deletes prior to vacuum as a fraction of reltuples."
 msgstr ""
 "Nombre de lignes modifiées ou supprimées avant d'exécuter un VACUUM\n"
 "(fraction de reltuples)."
 
-#: utils/misc/guc.c:3405
+#: utils/misc/guc.c:3604
+msgid "Number of tuple inserts prior to vacuum as a fraction of reltuples."
+msgstr "Nombre de lignes insérées avant d'effectuer un VACUUM (fraction de reltuples)."
+
+#: utils/misc/guc.c:3614
 msgid "Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples."
 msgstr ""
 "Nombre de lignes insérées, mises à jour ou supprimées avant d'analyser\n"
 "une fraction de reltuples."
 
-#: utils/misc/guc.c:3415
+#: utils/misc/guc.c:3624
 msgid "Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval."
 msgstr ""
 "Temps passé à vider les tampons lors du point de vérification, en tant que\n"
 "fraction de l'intervalle du point de vérification."
 
-#: utils/misc/guc.c:3425
+#: utils/misc/guc.c:3634
 msgid "Number of tuple inserts prior to index cleanup as a fraction of reltuples."
 msgstr ""
 "Nombre de lignes insérées avant d'effectuer un nettoyage des index\n"
 "(fraction de reltuples)."
 
-#: utils/misc/guc.c:3435
+#: utils/misc/guc.c:3644
+msgid "Fraction of statements exceeding log_min_duration_sample to be logged."
+msgstr "Fraction de requêtes dépassant log_min_duration_sample à tracer"
+
+#: utils/misc/guc.c:3645
+msgid "Use a value between 0.0 (never log) and 1.0 (always log)."
+msgstr "Utilisez une valeur entre 0,0 (pas de trace) et 1.0 (tracer tout)."
+
+#: utils/misc/guc.c:3654
 msgid "Set the fraction of transactions to log for new transactions."
 msgstr "Définit la fraction des transactions à tracer pour les nouvelles transactions."
 
-#: utils/misc/guc.c:3436
+#: utils/misc/guc.c:3655
 msgid "Logs all statements from a fraction of transactions. Use a value between 0.0 (never log) and 1.0 (log all statements for all transactions)."
 msgstr "Trace tous les ordres d'une fraction des transactions. Utiliser une valeur entre 0.0 (aucune trace) et 1.0 (trace tous les ordres de toutes les transactions)."
 
-#: utils/misc/guc.c:3456
+#: utils/misc/guc.c:3675
 msgid "Sets the shell command that will be called to archive a WAL file."
 msgstr "La commande shell qui sera appelée pour archiver un journal de transaction."
 
-#: utils/misc/guc.c:3466
-msgid "Sets the shell command that will retrieve an archived WAL file."
+#: utils/misc/guc.c:3685
+#, fuzzy
+#| msgid "Sets the shell command that will retrieve an archived WAL file."
+msgid "Sets the shell command that will be called to retrieve an archived WAL file."
 msgstr "Définit la commande shell qui sera appelée pour récupérer un fichier WAL archivé."
 
-#: utils/misc/guc.c:3476
+#: utils/misc/guc.c:3695
 msgid "Sets the shell command that will be executed at every restart point."
 msgstr "Définit la commande shell qui sera appelée à chaque point de reprise (restart point)."
 
-#: utils/misc/guc.c:3486
+#: utils/misc/guc.c:3705
 msgid "Sets the shell command that will be executed once at the end of recovery."
 msgstr "Définit la commande shell qui sera appelée une fois à la fin de la restauration."
 
-#: utils/misc/guc.c:3496
+#: utils/misc/guc.c:3715
 msgid "Specifies the timeline to recover into."
 msgstr "Définit la timeline cible de la restauration."
 
-#: utils/misc/guc.c:3506
+#: utils/misc/guc.c:3725
 msgid "Set to \"immediate\" to end recovery as soon as a consistent state is reached."
 msgstr "Positionner à « immediate » pour arrêter la restauration dès qu'un état consistent est atteint."
 
-#: utils/misc/guc.c:3515
+#: utils/misc/guc.c:3734
 msgid "Sets the transaction ID up to which recovery will proceed."
 msgstr "Définit l'identifiant de transaction jusqu'où la restauration s'effectuera."
 
-#: utils/misc/guc.c:3524
+#: utils/misc/guc.c:3743
 msgid "Sets the time stamp up to which recovery will proceed."
 msgstr "Définit le point dans le temps jusqu'où la restauration s'effectuera."
 
-#: utils/misc/guc.c:3533
+#: utils/misc/guc.c:3752
 msgid "Sets the named restore point up to which recovery will proceed."
 msgstr "Définit le point de restauration nommé jusqu'où la restauration va procéder."
 
-#: utils/misc/guc.c:3542
+#: utils/misc/guc.c:3761
 msgid "Sets the LSN of the write-ahead log location up to which recovery will proceed."
 msgstr "Définit le LSN des journaux de transactions jusqu'où la restauration s'effectuera."
 
 # trigger_file
-#: utils/misc/guc.c:3552
+#: utils/misc/guc.c:3771
 msgid "Specifies a file name whose presence ends recovery in the standby."
 msgstr "Définit un nom de fichier dont la présence termine la restauration du serveur secondaire."
 
-#: utils/misc/guc.c:3562
+#: utils/misc/guc.c:3781
 msgid "Sets the connection string to be used to connect to the sending server."
 msgstr "Définit la chaîne de connexion à utiliser pour se connecter au serveur émetteur."
 
-#: utils/misc/guc.c:3573
+#: utils/misc/guc.c:3792
 msgid "Sets the name of the replication slot to use on the sending server."
 msgstr "Définit le nom du slot de réplication à utiliser sur le serveur émetteur."
 
-#: utils/misc/guc.c:3583
+#: utils/misc/guc.c:3802
 msgid "Sets the client's character set encoding."
 msgstr "Initialise l'encodage du client."
 
-#: utils/misc/guc.c:3594
+#: utils/misc/guc.c:3813
 msgid "Controls information prefixed to each log line."
 msgstr "Contrôle l'information préfixée sur chaque ligne de trace."
 
-#: utils/misc/guc.c:3595
+#: utils/misc/guc.c:3814
 msgid "If blank, no prefix is used."
 msgstr "Si vide, aucun préfixe n'est utilisé."
 
-#: utils/misc/guc.c:3604
+#: utils/misc/guc.c:3823
 msgid "Sets the time zone to use in log messages."
 msgstr "Initialise le fuseau horaire à utiliser pour les journaux applicatifs."
 
-#: utils/misc/guc.c:3614
+#: utils/misc/guc.c:3833
 msgid "Sets the display format for date and time values."
 msgstr "Initialise le format d'affichage des valeurs date et time."
 
-#: utils/misc/guc.c:3615
+#: utils/misc/guc.c:3834
 msgid "Also controls interpretation of ambiguous date inputs."
 msgstr "Contrôle aussi l'interprétation des dates ambiguës en entrée."
 
-#: utils/misc/guc.c:3626
+#: utils/misc/guc.c:3845
 msgid "Sets the default table access method for new tables."
 msgstr "Définit la méthode d'accès par défaut pour les nouvelles tables."
 
-#: utils/misc/guc.c:3637
+#: utils/misc/guc.c:3856
 msgid "Sets the default tablespace to create tables and indexes in."
 msgstr "Initialise le tablespace par défaut pour créer les tables et index."
 
-#: utils/misc/guc.c:3638
+#: utils/misc/guc.c:3857
 msgid "An empty string selects the database's default tablespace."
 msgstr "Une chaîne vide sélectionne le tablespace par défaut de la base de données."
 
-#: utils/misc/guc.c:3648
+#: utils/misc/guc.c:3867
 msgid "Sets the tablespace(s) to use for temporary tables and sort files."
 msgstr ""
 "Initialise le(s) tablespace(s) à utiliser pour les tables temporaires et les\n"
 "fichiers de tri."
 
-#: utils/misc/guc.c:3659
+#: utils/misc/guc.c:3878
 msgid "Sets the path for dynamically loadable modules."
 msgstr "Initialise le chemin des modules chargeables dynamiquement."
 
-#: utils/misc/guc.c:3660
+#: utils/misc/guc.c:3879
 msgid "If a dynamically loadable module needs to be opened and the specified name does not have a directory component (i.e., the name does not contain a slash), the system will search this path for the specified file."
 msgstr ""
 "Si un module chargeable dynamiquement a besoin d'être ouvert et que le nom\n"
 "spécifié n'a pas une composante répertoire (c'est-à-dire que le nom ne\n"
 "contient pas un '/'), le système cherche le fichier spécifié sur ce chemin."
 
-#: utils/misc/guc.c:3673
+#: utils/misc/guc.c:3892
 msgid "Sets the location of the Kerberos server key file."
 msgstr "Initalise l'emplacement du fichier de la clé serveur pour Kerberos."
 
-#: utils/misc/guc.c:3684
+#: utils/misc/guc.c:3903
 msgid "Sets the Bonjour service name."
 msgstr "Initialise le nom du service Bonjour."
 
-#: utils/misc/guc.c:3696
+#: utils/misc/guc.c:3915
 msgid "Shows the collation order locale."
 msgstr "Affiche la locale de tri et de groupement."
 
-#: utils/misc/guc.c:3707
+#: utils/misc/guc.c:3926
 msgid "Shows the character classification and case conversion locale."
 msgstr "Affiche la classification des caractères et la locale de conversions."
 
-#: utils/misc/guc.c:3718
+#: utils/misc/guc.c:3937
 msgid "Sets the language in which messages are displayed."
 msgstr "Initialise le langage dans lequel les messages sont affichés."
 
-#: utils/misc/guc.c:3728
+#: utils/misc/guc.c:3947
 msgid "Sets the locale for formatting monetary amounts."
 msgstr "Initialise la locale pour le formattage des montants monétaires."
 
-#: utils/misc/guc.c:3738
+#: utils/misc/guc.c:3957
 msgid "Sets the locale for formatting numbers."
 msgstr "Initialise la locale pour formater les nombres."
 
-#: utils/misc/guc.c:3748
+#: utils/misc/guc.c:3967
 msgid "Sets the locale for formatting date and time values."
 msgstr "Initialise la locale pour formater les valeurs date et time."
 
-#: utils/misc/guc.c:3758
+#: utils/misc/guc.c:3977
 msgid "Lists shared libraries to preload into each backend."
 msgstr "Liste les bibliothèques partagées à précharger dans chaque processus serveur."
 
-#: utils/misc/guc.c:3769
+#: utils/misc/guc.c:3988
 msgid "Lists shared libraries to preload into server."
 msgstr "Liste les bibliothèques partagées à précharger dans le serveur."
 
-#: utils/misc/guc.c:3780
+#: utils/misc/guc.c:3999
 msgid "Lists unprivileged shared libraries to preload into each backend."
 msgstr "Liste les bibliothèques partagées non privilégiées à précharger dans chaque processus serveur."
 
-#: utils/misc/guc.c:3791
+#: utils/misc/guc.c:4010
 msgid "Sets the schema search order for names that are not schema-qualified."
 msgstr ""
 "Initialise l'ordre de recherche des schémas pour les noms qui ne précisent\n"
 "pas le schéma."
 
-#: utils/misc/guc.c:3803
+#: utils/misc/guc.c:4022
 msgid "Sets the server (database) character set encoding."
 msgstr "Initialise le codage des caractères pour le serveur (base de données)."
 
-#: utils/misc/guc.c:3815
+#: utils/misc/guc.c:4034
 msgid "Shows the server version."
 msgstr "Affiche la version du serveur."
 
-#: utils/misc/guc.c:3827
+#: utils/misc/guc.c:4046
 msgid "Sets the current role."
 msgstr "Initialise le rôle courant."
 
-#: utils/misc/guc.c:3839
+#: utils/misc/guc.c:4058
 msgid "Sets the session user name."
 msgstr "Initialise le nom de l'utilisateur de la session."
 
-#: utils/misc/guc.c:3850
+#: utils/misc/guc.c:4069
 msgid "Sets the destination for server log output."
 msgstr "Initialise la destination des journaux applicatifs du serveur."
 
-#: utils/misc/guc.c:3851
+#: utils/misc/guc.c:4070
 msgid "Valid values are combinations of \"stderr\", \"syslog\", \"csvlog\", and \"eventlog\", depending on the platform."
 msgstr ""
 "Les valeurs valides sont une combinaison de « stderr », « syslog »,\n"
 "« csvlog » et « eventlog », suivant la plateforme."
 
-#: utils/misc/guc.c:3862
+#: utils/misc/guc.c:4081
 msgid "Sets the destination directory for log files."
 msgstr "Initialise le répertoire de destination pour les journaux applicatifs."
 
-#: utils/misc/guc.c:3863
+#: utils/misc/guc.c:4082
 msgid "Can be specified as relative to the data directory or as absolute path."
 msgstr "Accepte un chemin relatif ou absolu pour le répertoire des données."
 
-#: utils/misc/guc.c:3873
+#: utils/misc/guc.c:4092
 msgid "Sets the file name pattern for log files."
 msgstr "Initialise le modèle de nom de fichiers pour les journaux applicatifs."
 
-#: utils/misc/guc.c:3884
+#: utils/misc/guc.c:4103
 msgid "Sets the program name used to identify PostgreSQL messages in syslog."
 msgstr ""
 "Initialise le nom du programme utilisé pour identifier les messages de\n"
 "PostgreSQL dans syslog."
 
-#: utils/misc/guc.c:3895
+#: utils/misc/guc.c:4114
 msgid "Sets the application name used to identify PostgreSQL messages in the event log."
 msgstr ""
 "Initialise le nom de l'application, utilisé pour identifier les messages de\n"
 "PostgreSQL dans eventlog."
 
-#: utils/misc/guc.c:3906
+#: utils/misc/guc.c:4125
 msgid "Sets the time zone for displaying and interpreting time stamps."
 msgstr "Initialise la zone horaire pour afficher et interpréter les dates/heures."
 
-#: utils/misc/guc.c:3916
+#: utils/misc/guc.c:4135
 msgid "Selects a file of time zone abbreviations."
 msgstr "Sélectionne un fichier contenant les abréviations des fuseaux horaires."
 
-#: utils/misc/guc.c:3926
+#: utils/misc/guc.c:4145
 msgid "Sets the owning group of the Unix-domain socket."
 msgstr "Initialise le groupe d'appartenance du socket domaine Unix."
 
-#: utils/misc/guc.c:3927
+#: utils/misc/guc.c:4146
 msgid "The owning user of the socket is always the user that starts the server."
 msgstr "Le propriétaire du socket est toujours l'utilisateur qui a lancé le serveur."
 
-#: utils/misc/guc.c:3937
+#: utils/misc/guc.c:4156
 msgid "Sets the directories where Unix-domain sockets will be created."
 msgstr "Initialise les répertoires où les sockets de domaine Unix seront créés."
 
-#: utils/misc/guc.c:3952
+#: utils/misc/guc.c:4171
 msgid "Sets the host name or IP address(es) to listen to."
 msgstr "Initialise le nom de l'hôte ou l'adresse IP à écouter."
 
-#: utils/misc/guc.c:3967
+#: utils/misc/guc.c:4186
 msgid "Sets the server's data directory."
 msgstr "Initialise le répertoire des données du serveur."
 
-#: utils/misc/guc.c:3978
+#: utils/misc/guc.c:4197
 msgid "Sets the server's main configuration file."
 msgstr "Voir le fichier de configuration principal du serveur."
 
-#: utils/misc/guc.c:3989
+#: utils/misc/guc.c:4208
 msgid "Sets the server's \"hba\" configuration file."
 msgstr "Initialise le fichier de configuration « hba » du serveur."
 
-#: utils/misc/guc.c:4000
+#: utils/misc/guc.c:4219
 msgid "Sets the server's \"ident\" configuration file."
 msgstr "Initialise le fichier de configuration « ident » du serveur."
 
-#: utils/misc/guc.c:4011
+#: utils/misc/guc.c:4230
 msgid "Writes the postmaster PID to the specified file."
 msgstr "Écrit le PID du postmaster PID dans le fichier spécifié."
 
-#: utils/misc/guc.c:4022
+#: utils/misc/guc.c:4241
 msgid "Name of the SSL library."
 msgstr "Nom de la librairie SSL."
 
-#: utils/misc/guc.c:4037
+#: utils/misc/guc.c:4256
 msgid "Location of the SSL server certificate file."
 msgstr "Emplacement du fichier du certificat serveur SSL."
 
-#: utils/misc/guc.c:4047
+#: utils/misc/guc.c:4266
 msgid "Location of the SSL server private key file."
 msgstr "Emplacement du fichier de la clé privée SSL du serveur."
 
-#: utils/misc/guc.c:4057
+#: utils/misc/guc.c:4276
 msgid "Location of the SSL certificate authority file."
 msgstr "Emplacement du fichier du certificat autorité SSL."
 
-#: utils/misc/guc.c:4067
+#: utils/misc/guc.c:4286
 msgid "Location of the SSL certificate revocation list file."
 msgstr "Emplacement du fichier de liste de révocation des certificats SSL."
 
-#: utils/misc/guc.c:4077
+#: utils/misc/guc.c:4296
 msgid "Writes temporary statistics files to the specified directory."
 msgstr "Écrit les fichiers statistiques temporaires dans le répertoire indiqué."
 
-#: utils/misc/guc.c:4088
+#: utils/misc/guc.c:4307
 msgid "Number of synchronous standbys and list of names of potential synchronous ones."
 msgstr "Nombre de standbys synchrones et liste des noms des synchrones potentiels."
 
-#: utils/misc/guc.c:4099
+#: utils/misc/guc.c:4318
 msgid "Sets default text search configuration."
 msgstr "Initialise la configuration par défaut de la recherche plein texte."
 
-#: utils/misc/guc.c:4109
+#: utils/misc/guc.c:4328
 msgid "Sets the list of allowed SSL ciphers."
 msgstr "Initialise la liste des chiffrements SSL autorisés."
 
-#: utils/misc/guc.c:4124
+#: utils/misc/guc.c:4343
 msgid "Sets the curve to use for ECDH."
 msgstr "Initialise la courbe à utiliser pour ECDH."
 
-#: utils/misc/guc.c:4139
+#: utils/misc/guc.c:4358
 msgid "Location of the SSL DH parameters file."
 msgstr "Emplacement du fichier des paramètres DH SSL."
 
-#: utils/misc/guc.c:4150
+#: utils/misc/guc.c:4369
 msgid "Command to obtain passphrases for SSL."
 msgstr "Commande pour obtenir la phrase de passe pour SSL."
 
-#: utils/misc/guc.c:4160
+#: utils/misc/guc.c:4380
 msgid "Sets the application name to be reported in statistics and logs."
 msgstr "Configure le nom de l'application à indiquer dans les statistiques et les journaux."
 
-#: utils/misc/guc.c:4171
+#: utils/misc/guc.c:4391
 msgid "Sets the name of the cluster, which is included in the process title."
 msgstr "Configure le nom du cluster, qui est inclus dans le titre du processus."
 
-#: utils/misc/guc.c:4182
+#: utils/misc/guc.c:4402
 msgid "Sets the WAL resource managers for which WAL consistency checks are done."
 msgstr "Configure les gestionnaires de ressource des WAL pour lesquels des vérifications de cohérence sont effectuées."
 
-#: utils/misc/guc.c:4183
+#: utils/misc/guc.c:4403
 msgid "Full-page images will be logged for all data blocks and cross-checked against the results of WAL replay."
 msgstr "Des images complètes de bloc seront tracées pour tous les blocs de données et vérifiées avec le résultat du rejeu des journaux de transactions."
 
-#: utils/misc/guc.c:4193
+#: utils/misc/guc.c:4413
 msgid "JIT provider to use."
 msgstr "Fournisseur JIT à utiliser."
 
-#: utils/misc/guc.c:4213
+#: utils/misc/guc.c:4424
+msgid "Log backtrace for errors in these functions."
+msgstr "Trace la pile pour les erreurs dans ces fonctions."
+
+#: utils/misc/guc.c:4444
 msgid "Sets whether \"\\'\" is allowed in string literals."
 msgstr "Indique si « \\' » est autorisé dans une constante de chaîne."
 
-#: utils/misc/guc.c:4223
+#: utils/misc/guc.c:4454
 msgid "Sets the output format for bytea."
 msgstr "Initialise le format de sortie pour bytea."
 
-#: utils/misc/guc.c:4233
+#: utils/misc/guc.c:4464
 msgid "Sets the message levels that are sent to the client."
 msgstr "Initialise les niveaux de message envoyés au client."
 
-#: utils/misc/guc.c:4234 utils/misc/guc.c:4299 utils/misc/guc.c:4310 utils/misc/guc.c:4386
+#: utils/misc/guc.c:4465 utils/misc/guc.c:4530 utils/misc/guc.c:4541 utils/misc/guc.c:4617
 msgid "Each level includes all the levels that follow it. The later the level, the fewer messages are sent."
 msgstr ""
 "Chaque niveau inclut les niveaux qui suivent. Plus loin sera le niveau,\n"
 "moindre sera le nombre de messages envoyés."
 
-#: utils/misc/guc.c:4244
+#: utils/misc/guc.c:4475
 msgid "Enables the planner to use constraints to optimize queries."
 msgstr "Active l'utilisation des contraintes par le planificateur pour optimiser les requêtes."
 
-#: utils/misc/guc.c:4245
+#: utils/misc/guc.c:4476
 msgid "Table scans will be skipped if their constraints guarantee that no rows match the query."
 msgstr ""
 "Les parcours de tables seront ignorés si leur contraintes garantissent\n"
 "qu'aucune ligne ne correspond à la requête."
 
-#: utils/misc/guc.c:4256
+#: utils/misc/guc.c:4487
 msgid "Sets the transaction isolation level of each new transaction."
 msgstr "Initialise le niveau d'isolation des transactions pour chaque nouvelle transaction."
 
-#: utils/misc/guc.c:4266
+#: utils/misc/guc.c:4497
 msgid "Sets the current transaction's isolation level."
 msgstr "Initialise le niveau d'isolation de la transaction courante."
 
-#: utils/misc/guc.c:4277
+#: utils/misc/guc.c:4508
 msgid "Sets the display format for interval values."
 msgstr "Initialise le format d'affichage des valeurs interval."
 
-#: utils/misc/guc.c:4288
+#: utils/misc/guc.c:4519
 msgid "Sets the verbosity of logged messages."
 msgstr "Initialise la verbosité des messages tracés."
 
-#: utils/misc/guc.c:4298
+#: utils/misc/guc.c:4529
 msgid "Sets the message levels that are logged."
 msgstr "Initialise les niveaux de messages tracés."
 
-#: utils/misc/guc.c:4309
+#: utils/misc/guc.c:4540
 msgid "Causes all statements generating error at or above this level to be logged."
 msgstr ""
 "Génère une trace pour toutes les instructions qui produisent une erreur de\n"
 "ce niveau ou de niveaux plus importants."
 
-#: utils/misc/guc.c:4320
+#: utils/misc/guc.c:4551
 msgid "Sets the type of statements logged."
 msgstr "Initialise le type d'instructions tracées."
 
-#: utils/misc/guc.c:4330
+#: utils/misc/guc.c:4561
 msgid "Sets the syslog \"facility\" to be used when syslog enabled."
 msgstr ""
 "Initialise le niveau (« facility ») de syslog à utilisé lors de l'activation\n"
 "de syslog."
 
-#: utils/misc/guc.c:4345
+#: utils/misc/guc.c:4576
 msgid "Sets the session's behavior for triggers and rewrite rules."
 msgstr ""
 "Configure le comportement des sessions pour les triggers et les règles de\n"
 "ré-écriture."
 
-#: utils/misc/guc.c:4355
+#: utils/misc/guc.c:4586
 msgid "Sets the current transaction's synchronization level."
 msgstr "Initialise le niveau d'isolation de la transaction courante."
 
-#: utils/misc/guc.c:4365
+#: utils/misc/guc.c:4596
 msgid "Allows archiving of WAL files using archive_command."
 msgstr "Autorise l'archivage des journaux de transactions en utilisant archive_command."
 
-#: utils/misc/guc.c:4375
+#: utils/misc/guc.c:4606
 msgid "Sets the action to perform upon reaching the recovery target."
 msgstr "Définit l'action à exécuter à l'arrivée à la cible de la restauration."
 
-#: utils/misc/guc.c:4385
+#: utils/misc/guc.c:4616
 msgid "Enables logging of recovery-related debugging information."
 msgstr "Active les traces sur les informations de débogage relatives à la restauration."
 
-#: utils/misc/guc.c:4401
+#: utils/misc/guc.c:4632
 msgid "Collects function-level statistics on database activity."
 msgstr "Récupère les statistiques niveau fonction sur l'activité de la base de données."
 
-#: utils/misc/guc.c:4411
+#: utils/misc/guc.c:4642
 msgid "Set the level of information written to the WAL."
 msgstr "Configure le niveau des informations écrites dans les journaux de transactions."
 
-#: utils/misc/guc.c:4421
+#: utils/misc/guc.c:4652
 msgid "Selects the dynamic shared memory implementation used."
 msgstr "Sélectionne l'implémentation de la mémoire partagée dynamique."
 
-#: utils/misc/guc.c:4431
+#: utils/misc/guc.c:4662
 msgid "Selects the shared memory implementation used for the main shared memory region."
 msgstr "Sélectionne l'implémentation de mémoire partagée utilisée pour la principale région de mémoire partagée."
 
-#: utils/misc/guc.c:4441
+#: utils/misc/guc.c:4672
 msgid "Selects the method used for forcing WAL updates to disk."
 msgstr ""
 "Sélectionne la méthode utilisée pour forcer la mise à jour des journaux de\n"
 "transactions sur le disque."
 
-#: utils/misc/guc.c:4451
+#: utils/misc/guc.c:4682
 msgid "Sets how binary values are to be encoded in XML."
 msgstr "Configure comment les valeurs binaires seront codées en XML."
 
-#: utils/misc/guc.c:4461
+#: utils/misc/guc.c:4692
 msgid "Sets whether XML data in implicit parsing and serialization operations is to be considered as documents or content fragments."
 msgstr ""
 "Configure si les données XML dans des opérations d'analyse et de\n"
 "sérialisation implicite doivent être considérées comme des documents\n"
 "ou des fragments de contenu."
 
-#: utils/misc/guc.c:4472
+#: utils/misc/guc.c:4703
 msgid "Use of huge pages on Linux or Windows."
 msgstr "Utilisation des HugePages sur Linux ou Windows."
 
-#: utils/misc/guc.c:4482
+#: utils/misc/guc.c:4713
 msgid "Forces use of parallel query facilities."
 msgstr "Force l'utilisation des fonctionnalités de requête parallèle."
 
-#: utils/misc/guc.c:4483
+#: utils/misc/guc.c:4714
 msgid "If possible, run query using a parallel worker and with parallel restrictions."
 msgstr "Si possible, exécute des requêtes utilisant des processus parallèles et avec les restrictions parallèles."
 
-#: utils/misc/guc.c:4493
-msgid "Encrypt passwords."
-msgstr "Chiffre les mots de passe."
-
-#: utils/misc/guc.c:4494
-msgid "When a password is specified in CREATE USER or ALTER USER without writing either ENCRYPTED or UNENCRYPTED, this parameter determines whether the password is to be encrypted."
-msgstr ""
-"Lorsqu'un mot de passe est spécifié dans CREATE USER ou ALTER USER sans\n"
-"indiquer ENCRYPTED ou UNENCRYPTED, ce paramètre détermine si le mot de passe\n"
-"doit être chiffré."
+#: utils/misc/guc.c:4724
+msgid "Chooses the algorithm for encrypting passwords."
+msgstr "Choisit l'algorithme pour le chiffrement des mots de passe."
 
-#: utils/misc/guc.c:4505
+#: utils/misc/guc.c:4734
 msgid "Controls the planner's selection of custom or generic plan."
 msgstr "Contrôle le choix par le planificateur du plan personnalisé ou du plan générique."
 
-#: utils/misc/guc.c:4506
+#: utils/misc/guc.c:4735
 msgid "Prepared statements can have custom and generic plans, and the planner will attempt to choose which is better.  This can be set to override the default behavior."
 msgstr "Les requêtes préparées peuvent avoir des plans particulier et générique, et le planificateur tentera de choisir le meilleur. Ceci peut être utilisé pour remplacer le comportement par défaut."
 
-#: utils/misc/guc.c:4518
+#: utils/misc/guc.c:4747
 msgid "Sets the minimum SSL/TLS protocol version to use."
 msgstr "Définit la version minimale du protocole SSL/TLS à utiliser."
 
-#: utils/misc/guc.c:4530
+#: utils/misc/guc.c:4759
 msgid "Sets the maximum SSL/TLS protocol version to use."
 msgstr "Définit la version maximum du protocole SSL/TLS à utiliser."
 
-#: utils/misc/guc.c:5353
+#: utils/misc/guc.c:5562
 #, c-format
 msgid "%s: could not access directory \"%s\": %s\n"
 msgstr "%s : n'a pas pu accéder au répertoire « %s » : %s\n"
 
-#: utils/misc/guc.c:5358
+#: utils/misc/guc.c:5567
 #, c-format
 msgid "Run initdb or pg_basebackup to initialize a PostgreSQL data directory.\n"
 msgstr "Lancer initdb ou pg_basebackup pour initialiser un répertoire de données PostgreSQL.\n"
 
-#: utils/misc/guc.c:5378
+#: utils/misc/guc.c:5587
 #, c-format
 msgid ""
 "%s does not know where to find the server configuration file.\n"
@@ -26369,12 +27060,12 @@ msgstr ""
 "%s ne sait pas où trouver le fichier de configuration du serveur.\n"
 "Vous devez soit spécifier l'option --config-file, soit spécifier l'option -D, soit initialiser la variable d'environnement PGDATA.\n"
 
-#: utils/misc/guc.c:5397
+#: utils/misc/guc.c:5606
 #, c-format
 msgid "%s: could not access the server configuration file \"%s\": %s\n"
 msgstr "%s : n'a pas pu accéder au fichier de configuration « %s » : %s\n"
 
-#: utils/misc/guc.c:5423
+#: utils/misc/guc.c:5632
 #, c-format
 msgid ""
 "%s does not know where to find the database system data.\n"
@@ -26383,7 +27074,7 @@ msgstr ""
 "%s ne sait pas où trouver les données du système de bases de données.\n"
 "Il est configurable avec « data_directory » dans « %s » ou avec l'option -D ou encore avec la variable d'environnement PGDATA.\n"
 
-#: utils/misc/guc.c:5471
+#: utils/misc/guc.c:5680
 #, c-format
 msgid ""
 "%s does not know where to find the \"hba\" configuration file.\n"
@@ -26392,7 +27083,7 @@ msgstr ""
 "%s ne sait pas où trouver le fichier de configuration « hba ».\n"
 "Il est configurable avec « hba_file » dans « %s » ou avec l'option -D ou encore avec la variable d'environnement PGDATA.\n"
 
-#: utils/misc/guc.c:5494
+#: utils/misc/guc.c:5703
 #, c-format
 msgid ""
 "%s does not know where to find the \"ident\" configuration file.\n"
@@ -26401,165 +27092,181 @@ msgstr ""
 "%s ne sait pas où trouver le fichier de configuration « hba ».\n"
 "Il est configurable avec « ident_file » dans « %s » ou avec l'option -D ou encore avec la variable d'environnement PGDATA.\n"
 
-#: utils/misc/guc.c:6336
+#: utils/misc/guc.c:6545
 msgid "Value exceeds integer range."
 msgstr "La valeur dépasse l'échelle des entiers."
 
-#: utils/misc/guc.c:6572
+#: utils/misc/guc.c:6781
 #, c-format
 msgid "%d%s%s is outside the valid range for parameter \"%s\" (%d .. %d)"
 msgstr "%d%s%s est en dehors des limites valides pour le paramètre « %s » (%d .. %d)"
 
-#: utils/misc/guc.c:6608
+#: utils/misc/guc.c:6817
 #, c-format
 msgid "%g%s%s is outside the valid range for parameter \"%s\" (%g .. %g)"
 msgstr "%g%s%s est en dehors des limites valides pour le paramètre « %s » (%g .. %g)"
 
-#: utils/misc/guc.c:6764 utils/misc/guc.c:8131
+#: utils/misc/guc.c:6973 utils/misc/guc.c:8340
 #, c-format
 msgid "cannot set parameters during a parallel operation"
 msgstr "ne peut pas configurer les paramètres lors d'une opération parallèle"
 
-#: utils/misc/guc.c:6771 utils/misc/guc.c:7523 utils/misc/guc.c:7576 utils/misc/guc.c:7627 utils/misc/guc.c:7960 utils/misc/guc.c:8727 utils/misc/guc.c:8993 utils/misc/guc.c:10631
+#: utils/misc/guc.c:6980 utils/misc/guc.c:7732 utils/misc/guc.c:7785 utils/misc/guc.c:7836 utils/misc/guc.c:8169 utils/misc/guc.c:8936 utils/misc/guc.c:9198 utils/misc/guc.c:10864
 #, c-format
 msgid "unrecognized configuration parameter \"%s\""
 msgstr "paramètre de configuration « %s » non reconnu"
 
-#: utils/misc/guc.c:6786 utils/misc/guc.c:7972
+#: utils/misc/guc.c:6995 utils/misc/guc.c:8181
 #, c-format
 msgid "parameter \"%s\" cannot be changed"
 msgstr "le paramètre « %s » ne peut pas être changé"
 
-#: utils/misc/guc.c:6819
+#: utils/misc/guc.c:7028
 #, c-format
 msgid "parameter \"%s\" cannot be changed now"
 msgstr "le paramètre « %s » ne peut pas être modifié maintenant"
 
-#: utils/misc/guc.c:6837 utils/misc/guc.c:6884 utils/misc/guc.c:10647
+#: utils/misc/guc.c:7046 utils/misc/guc.c:7093 utils/misc/guc.c:10880
 #, c-format
 msgid "permission denied to set parameter \"%s\""
 msgstr "droit refusé pour initialiser le paramètre « %s »"
 
-#: utils/misc/guc.c:6874
+#: utils/misc/guc.c:7083
 #, c-format
 msgid "parameter \"%s\" cannot be set after connection start"
 msgstr "le paramètre « %s » ne peut pas être initialisé après le lancement du serveur"
 
-#: utils/misc/guc.c:6922
+#: utils/misc/guc.c:7131
 #, c-format
 msgid "cannot set parameter \"%s\" within security-definer function"
 msgstr ""
 "ne peut pas configurer le paramètre « %s » à l'intérieur d'une fonction\n"
 "SECURITY DEFINER"
 
-#: utils/misc/guc.c:7531 utils/misc/guc.c:7581 utils/misc/guc.c:9000
+#: utils/misc/guc.c:7740 utils/misc/guc.c:7790 utils/misc/guc.c:9205
 #, c-format
 msgid "must be superuser or a member of pg_read_all_settings to examine \"%s\""
 msgstr "doit être super-utilisateur ou membre de pg_read_all_settings pour examiner « %s »"
 
-#: utils/misc/guc.c:7672
+#: utils/misc/guc.c:7881
 #, c-format
 msgid "SET %s takes only one argument"
 msgstr "SET %s prend un seul argument"
 
-#: utils/misc/guc.c:7920
+#: utils/misc/guc.c:8129
 #, c-format
 msgid "must be superuser to execute ALTER SYSTEM command"
 msgstr "doit être super-utilisateur pour exécuter la commande ALTER SYSTEM"
 
-#: utils/misc/guc.c:8005
+#: utils/misc/guc.c:8214
 #, c-format
 msgid "parameter value for ALTER SYSTEM must not contain a newline"
 msgstr "la valeur du paramètre pour ALTER SYSTEM ne doit pas contenir de caractère de retour à la ligne"
 
-#: utils/misc/guc.c:8050
+#: utils/misc/guc.c:8259
 #, c-format
 msgid "could not parse contents of file \"%s\""
 msgstr "n'a pas pu analyser le contenu du fichier « %s »"
 
-#: utils/misc/guc.c:8207
+#: utils/misc/guc.c:8416
 #, c-format
 msgid "SET LOCAL TRANSACTION SNAPSHOT is not implemented"
 msgstr "SET LOCAL TRANSACTION SNAPSHOT n'est pas implémenté"
 
-#: utils/misc/guc.c:8291
+#: utils/misc/guc.c:8500
 #, c-format
 msgid "SET requires parameter name"
 msgstr "SET requiert le nom du paramètre"
 
-#: utils/misc/guc.c:8424
+#: utils/misc/guc.c:8633
 #, c-format
 msgid "attempt to redefine parameter \"%s\""
 msgstr "tentative de redéfinition du paramètre « %s »"
 
-#: utils/misc/guc.c:10264
+#: utils/misc/guc.c:10426
+#, c-format
+msgid "while setting parameter \"%s\" to \"%s\""
+msgstr "lors de la configuration du paramètre « %s » en « %s »"
+
+#: utils/misc/guc.c:10494
 #, c-format
 msgid "parameter \"%s\" could not be set"
 msgstr "le paramètre « %s » n'a pas pu être configuré"
 
-#: utils/misc/guc.c:10351
+#: utils/misc/guc.c:10584
 #, c-format
 msgid "could not parse setting for parameter \"%s\""
 msgstr "n'a pas pu analyser la configuration du paramètre « %s »"
 
-#: utils/misc/guc.c:10709 utils/misc/guc.c:10743
+#: utils/misc/guc.c:10942 utils/misc/guc.c:10976
 #, c-format
 msgid "invalid value for parameter \"%s\": %d"
 msgstr "valeur invalide pour le paramètre « %s » : %d"
 
-#: utils/misc/guc.c:10777
+#: utils/misc/guc.c:11010
 #, c-format
 msgid "invalid value for parameter \"%s\": %g"
 msgstr "valeur invalide pour le paramètre « %s » : %g"
 
-#: utils/misc/guc.c:11047
+#: utils/misc/guc.c:11280
 #, c-format
 msgid "\"temp_buffers\" cannot be changed after any temporary tables have been accessed in the session."
 msgstr "« temp_buffers » ne peut pas être modifié après que des tables temporaires aient été utilisées dans la session."
 
-#: utils/misc/guc.c:11059
+#: utils/misc/guc.c:11292
 #, c-format
 msgid "Bonjour is not supported by this build"
 msgstr "Bonjour n'est pas supporté dans cette installation"
 
-#: utils/misc/guc.c:11072
+#: utils/misc/guc.c:11305
 #, c-format
 msgid "SSL is not supported by this build"
 msgstr "SSL n'est pas supporté dans cette installation"
 
-#: utils/misc/guc.c:11084
+#: utils/misc/guc.c:11317
 #, c-format
 msgid "Cannot enable parameter when \"log_statement_stats\" is true."
 msgstr "Ne peut pas activer le paramètre avec « log_statement_stats » à true."
 
-#: utils/misc/guc.c:11096
+#: utils/misc/guc.c:11329
 #, c-format
 msgid "Cannot enable \"log_statement_stats\" when \"log_parser_stats\", \"log_planner_stats\", or \"log_executor_stats\" is true."
 msgstr ""
 "Ne peut pas activer « log_statement_stats » lorsque « log_parser_stats »,\n"
 "« log_planner_stats » ou « log_executor_stats » est true."
 
-#: utils/misc/guc.c:11340
+#: utils/misc/guc.c:11559
 #, c-format
 msgid "effective_io_concurrency must be set to 0 on platforms that lack posix_fadvise()."
 msgstr "effective_io_concurrency doit être positionné à 0 sur les plateformes où manque posix_fadvise()"
 
-#: utils/misc/guc.c:11454
+#: utils/misc/guc.c:11572
+#, fuzzy, c-format
+#| msgid "effective_io_concurrency must be set to 0 on platforms that lack posix_fadvise()."
+msgid "maintenance_io_concurrency must be set to 0 on platforms that lack posix_fadvise()."
+msgstr "effective_io_concurrency doit être positionné à 0 sur les plateformes où manque posix_fadvise()"
+
+#: utils/misc/guc.c:11688
+#, c-format
+msgid "invalid character"
+msgstr "caractère invalide"
+
+#: utils/misc/guc.c:11748
 #, c-format
 msgid "recovery_target_timeline is not a valid number."
 msgstr "recovery_target_timeline n'est pas un nombre valide ."
 
-#: utils/misc/guc.c:11494
+#: utils/misc/guc.c:11788
 #, c-format
 msgid "multiple recovery targets specified"
 msgstr "multiples cibles de restauration spécifiées"
 
-#: utils/misc/guc.c:11495
+#: utils/misc/guc.c:11789
 #, c-format
 msgid "At most one of recovery_target, recovery_target_lsn, recovery_target_name, recovery_target_time, recovery_target_xid may be set."
 msgstr "Une seule valeur peut être spécifiée, parmi recovery_target, recovery_target_lsn, recovery_target_name, recovery_target_time, recovery_target_xid."
 
-#: utils/misc/guc.c:11503
+#: utils/misc/guc.c:11797
 #, c-format
 msgid "The only allowed value is \"immediate\"."
 msgstr "La seule valeur autorisée est « immediate »."
@@ -26574,7 +27281,7 @@ msgstr "erreur interne : type de paramètre d'exécution non reconnu\n"
 msgid "query-specified return tuple and function return type are not compatible"
 msgstr "une ligne de sortie spécifiée à la requête et un type de sortie de fonction ne sont pas compatibles"
 
-#: utils/misc/pg_controldata.c:60 utils/misc/pg_controldata.c:138 utils/misc/pg_controldata.c:242 utils/misc/pg_controldata.c:309
+#: utils/misc/pg_controldata.c:60 utils/misc/pg_controldata.c:138 utils/misc/pg_controldata.c:241 utils/misc/pg_controldata.c:306
 #, c-format
 msgid "calculated CRC checksum does not match value stored in file"
 msgstr "la somme de contrôle CRC calculée ne correspond par à la valeur enregistrée dans le fichier"
@@ -26594,89 +27301,89 @@ msgstr "la requête pourrait être affectée par une politique de sécurité au
 msgid "To disable the policy for the table's owner, use ALTER TABLE NO FORCE ROW LEVEL SECURITY."
 msgstr "Pour désactiver la politique pour le propriétaire de la table, utilisez ALTER TABLE NO FORCE ROW LEVEL SECURITY."
 
-#: utils/misc/timeout.c:388
+#: utils/misc/timeout.c:395
 #, c-format
 msgid "cannot add more timeout reasons"
 msgstr "ne peut pas ajouter plus de raisons de timeout"
 
-#: utils/misc/tzparser.c:61
+#: utils/misc/tzparser.c:60
 #, c-format
 msgid "time zone abbreviation \"%s\" is too long (maximum %d characters) in time zone file \"%s\", line %d"
 msgstr ""
 "l'abréviation « %s » du fuseau horaire est trop long (maximum %d caractères)\n"
 "dans le fichier de fuseaux horaires « %s », ligne %d"
 
-#: utils/misc/tzparser.c:73
+#: utils/misc/tzparser.c:72
 #, c-format
 msgid "time zone offset %d is out of range in time zone file \"%s\", line %d"
 msgstr ""
 "le décalage %d du fuseau horaire est en dehors des limites dans le fichier\n"
 "des fuseaux horaires « %s », ligne %d"
 
-#: utils/misc/tzparser.c:112
+#: utils/misc/tzparser.c:111
 #, c-format
 msgid "missing time zone abbreviation in time zone file \"%s\", line %d"
 msgstr "abréviation du fuseau horaire manquant dans le fichier « %s », ligne %d"
 
-#: utils/misc/tzparser.c:121
+#: utils/misc/tzparser.c:120
 #, c-format
 msgid "missing time zone offset in time zone file \"%s\", line %d"
 msgstr "décalage du fuseau horaire manquant dans le fichier « %s », ligne %d"
 
-#: utils/misc/tzparser.c:133
+#: utils/misc/tzparser.c:132
 #, c-format
 msgid "invalid number for time zone offset in time zone file \"%s\", line %d"
 msgstr ""
 "nombre invalide pour le décalage du fuseau horaire dans le fichier des\n"
 "fuseaux horaires « %s », ligne %d"
 
-#: utils/misc/tzparser.c:169
+#: utils/misc/tzparser.c:168
 #, c-format
 msgid "invalid syntax in time zone file \"%s\", line %d"
 msgstr "syntaxe invalide dans le fichier des fuseaux horaires « %s », ligne %d"
 
-#: utils/misc/tzparser.c:237
+#: utils/misc/tzparser.c:236
 #, c-format
 msgid "time zone abbreviation \"%s\" is multiply defined"
 msgstr "l'abréviation « %s » du fuseau horaire est définie plusieurs fois"
 
-#: utils/misc/tzparser.c:239
+#: utils/misc/tzparser.c:238
 #, c-format
 msgid "Entry in time zone file \"%s\", line %d, conflicts with entry in file \"%s\", line %d."
 msgstr ""
 "L'entrée dans le fichier des fuseaux horaires « %s », ligne %d, est en\n"
 "conflit avec l'entrée du fichier « %s », ligne %d."
 
-#: utils/misc/tzparser.c:301
+#: utils/misc/tzparser.c:300
 #, c-format
 msgid "invalid time zone file name \"%s\""
 msgstr "nom du fichier de fuseaux horaires invalide : « %s »"
 
-#: utils/misc/tzparser.c:314
+#: utils/misc/tzparser.c:313
 #, c-format
 msgid "time zone file recursion limit exceeded in file \"%s\""
 msgstr ""
 "limite de récursion dépassée dans le fichier « %s » (fichier des fuseaux\n"
 "horaires)"
 
-#: utils/misc/tzparser.c:353 utils/misc/tzparser.c:366
+#: utils/misc/tzparser.c:352 utils/misc/tzparser.c:365
 #, c-format
 msgid "could not read time zone file \"%s\": %m"
 msgstr "n'a pas pu lire le fichier des fuseaux horaires « %s » : %m"
 
-#: utils/misc/tzparser.c:376
+#: utils/misc/tzparser.c:375
 #, c-format
 msgid "line is too long in time zone file \"%s\", line %d"
 msgstr ""
 "une ligne est trop longue dans le fichier des fuseaux horaires « %s »,\n"
 "ligne %d"
 
-#: utils/misc/tzparser.c:399
+#: utils/misc/tzparser.c:398
 #, c-format
 msgid "@INCLUDE without file name in time zone file \"%s\", line %d"
 msgstr "@INCLUDE sans nom de fichier dans le fichier des fuseaux horaires « %s », ligne %d"
 
-#: utils/mmgr/aset.c:485 utils/mmgr/generation.c:250 utils/mmgr/slab.c:240
+#: utils/mmgr/aset.c:476 utils/mmgr/generation.c:234 utils/mmgr/slab.c:236
 #, c-format
 msgid "Failed while creating memory context \"%s\"."
 msgstr "Échec lors de la création du contexte mémoire « %s »."
@@ -26686,7 +27393,7 @@ msgstr "Échec lors de la création du contexte mémoire « %s »."
 msgid "could not attach to dynamic shared area"
 msgstr "n'a pas pu attacher le segment de mémoire partagée dynamique"
 
-#: utils/mmgr/mcxt.c:797 utils/mmgr/mcxt.c:833 utils/mmgr/mcxt.c:871 utils/mmgr/mcxt.c:909 utils/mmgr/mcxt.c:945 utils/mmgr/mcxt.c:976 utils/mmgr/mcxt.c:1012 utils/mmgr/mcxt.c:1064 utils/mmgr/mcxt.c:1099 utils/mmgr/mcxt.c:1134
+#: utils/mmgr/mcxt.c:822 utils/mmgr/mcxt.c:858 utils/mmgr/mcxt.c:896 utils/mmgr/mcxt.c:934 utils/mmgr/mcxt.c:970 utils/mmgr/mcxt.c:1001 utils/mmgr/mcxt.c:1037 utils/mmgr/mcxt.c:1089 utils/mmgr/mcxt.c:1124 utils/mmgr/mcxt.c:1159
 #, c-format
 msgid "Failed on request of size %zu in memory context \"%s\"."
 msgstr "Échec d'une requête de taille %zu dans le contexte mémoire « %s »."
@@ -26701,85 +27408,90 @@ msgstr "le curseur « %s » existe déjà"
 msgid "closing existing cursor \"%s\""
 msgstr "fermeture du curseur existant « %s »"
 
-#: utils/mmgr/portalmem.c:398
+#: utils/mmgr/portalmem.c:400
 #, c-format
 msgid "portal \"%s\" cannot be run"
 msgstr "le portail « %s » ne peut pas être exécuté de nouveau"
 
-#: utils/mmgr/portalmem.c:476
+#: utils/mmgr/portalmem.c:478
 #, c-format
 msgid "cannot drop pinned portal \"%s\""
 msgstr "ne peut pas supprimer le portail épinglé « %s »"
 
-#: utils/mmgr/portalmem.c:484
+#: utils/mmgr/portalmem.c:486
 #, c-format
 msgid "cannot drop active portal \"%s\""
 msgstr "ne peut pas supprimer le portail actif « %s »"
 
-#: utils/mmgr/portalmem.c:729
+#: utils/mmgr/portalmem.c:731
 #, c-format
 msgid "cannot PREPARE a transaction that has created a cursor WITH HOLD"
 msgstr "ne peut pas préparer une transaction qui a créé un curseur WITH HOLD"
 
-#: utils/mmgr/portalmem.c:1269
+#: utils/mmgr/portalmem.c:1270
 #, c-format
 msgid "cannot perform transaction commands inside a cursor loop that is not read-only"
 msgstr "ne peut pas effectuer de commandes de transaction dans une boucle de curseur qui n'est pas en lecture seule"
 
-#: utils/sort/logtape.c:276
+#: utils/sort/logtape.c:266 utils/sort/logtape.c:289
 #, c-format
-msgid "could not read block %ld of temporary file: %m"
-msgstr "n'a pas pu lire le bloc %ld du fichier temporaire : %m"
+msgid "could not seek to block %ld of temporary file"
+msgstr "n'a pas pu se positionner sur le bloc %ld du fichier temporaire"
 
-#: utils/sort/sharedtuplestore.c:208
+#: utils/sort/logtape.c:295
 #, c-format
-msgid "could not write to temporary file: %m"
-msgstr "n'a pas pu écrire dans le fichier temporaire : %m"
+msgid "could not read block %ld of temporary file: read only %zu of %zu bytes"
+msgstr "n'a pas pu lire le bloc %ld du fichier temporaire : a lu seulement %zu octets sur %zu"
 
-#: utils/sort/sharedtuplestore.c:437 utils/sort/sharedtuplestore.c:446 utils/sort/sharedtuplestore.c:469 utils/sort/sharedtuplestore.c:486 utils/sort/sharedtuplestore.c:503 utils/sort/sharedtuplestore.c:575 utils/sort/sharedtuplestore.c:581
+#: utils/sort/sharedtuplestore.c:430 utils/sort/sharedtuplestore.c:439 utils/sort/sharedtuplestore.c:462 utils/sort/sharedtuplestore.c:479 utils/sort/sharedtuplestore.c:496
 #, c-format
 msgid "could not read from shared tuplestore temporary file"
 msgstr "n'a pas pu lire le fichier temporaire tuplestore partagé : %m"
 
-#: utils/sort/sharedtuplestore.c:492
+#: utils/sort/sharedtuplestore.c:485
 #, c-format
 msgid "unexpected chunk in shared tuplestore temporary file"
 msgstr "tronçon non attendu dans le fichier temporaire tuplestore partagé"
 
-#: utils/sort/tuplesort.c:2967
+#: utils/sort/sharedtuplestore.c:569
+#, c-format
+msgid "could not seek to block %u in shared tuplestore temporary file"
+msgstr "n'a pas pu lire le bloc %u dans le fichier temporaire tuplestore partagé"
+
+#: utils/sort/sharedtuplestore.c:576
+#, c-format
+msgid "could not read from shared tuplestore temporary file: read only %zu of %zu bytes"
+msgstr "n'a pas pu lire le fichier temporaire tuplestore partagé : a lu seulement %zu octets sur %zu"
+
+#: utils/sort/tuplesort.c:3140
 #, c-format
 msgid "cannot have more than %d runs for an external sort"
 msgstr "ne peut pas avoir plus de %d exécutions pour un tri externe"
 
-#: utils/sort/tuplesort.c:4051
+#: utils/sort/tuplesort.c:4221
 #, c-format
 msgid "could not create unique index \"%s\""
 msgstr "n'a pas pu créer l'index unique « %s »"
 
-#: utils/sort/tuplesort.c:4053
+#: utils/sort/tuplesort.c:4223
 #, c-format
 msgid "Key %s is duplicated."
 msgstr "La clé %s est dupliquée."
 
-#: utils/sort/tuplesort.c:4054
+#: utils/sort/tuplesort.c:4224
 #, c-format
 msgid "Duplicate keys exist."
 msgstr "Des clés dupliquées existent."
 
 #: utils/sort/tuplestore.c:518 utils/sort/tuplestore.c:528 utils/sort/tuplestore.c:869 utils/sort/tuplestore.c:973 utils/sort/tuplestore.c:1037 utils/sort/tuplestore.c:1054 utils/sort/tuplestore.c:1256 utils/sort/tuplestore.c:1321 utils/sort/tuplestore.c:1330
 #, c-format
-msgid "could not seek in tuplestore temporary file: %m"
-msgstr "n'a pas pu se déplacer dans le fichier temporaire tuplestore : %m"
-
-#: utils/sort/tuplestore.c:1477 utils/sort/tuplestore.c:1550 utils/sort/tuplestore.c:1556
-#, c-format
-msgid "could not read from tuplestore temporary file: %m"
-msgstr "n'a pas pu lire le fichier temporaire tuplestore : %m"
+msgid "could not seek in tuplestore temporary file"
+msgstr "n'a pas pu se déplacer dans le fichier temporaire tuplestore"
 
-#: utils/sort/tuplestore.c:1518 utils/sort/tuplestore.c:1523 utils/sort/tuplestore.c:1529
+#: utils/sort/tuplestore.c:1477 utils/sort/tuplestore.c:1540 utils/sort/tuplestore.c:1548
 #, c-format
-msgid "could not write to tuplestore temporary file: %m"
-msgstr "n'a pas pu écrire le fichier temporaire tuplestore : %m"
+msgid "could not read from tuplestore temporary file: read only %zu of %zu bytes"
+msgstr "n'a pas pu lire le fichier temporaire tuplestore : a lu seulement %zu octets sur %zu"
 
 #: utils/time/snapmgr.c:624
 #, c-format
@@ -26826,2857 +27538,3035 @@ msgstr "une transaction sérialisable en écriture ne peut pas importer un snaps
 msgid "cannot import a snapshot from a different database"
 msgstr "ne peut pas importer un snapshot à partir d'une base de données différente"
 
-#~ msgid "cannot PREPARE a transaction that has operated on temporary namespace"
-#~ msgstr ""
-#~ "ne peut pas préparer (PREPARE) une transaction qui a travaillé sur un\n"
-#~ "schéma temporaire"
-
-#~ msgid "view must have at least one column"
-#~ msgstr "la vue doit avoir au moins une colonne"
+#~ msgid "%s: could not open file \"%s\" for reading: %s\n"
+#~ msgstr "%s : n'a pas pu ouvrir le fichier « %s » en lecture : %s\n"
 
-#~ msgid "If you're sure there are no old server processes still running, remove the shared memory block or just delete the file \"%s\"."
-#~ msgstr ""
-#~ "Si vous êtes sûr qu'aucun processus serveur n'est toujours en cours\n"
-#~ "d'exécution, supprimez le bloc de mémoire partagée\n"
-#~ "ou supprimez simplement le fichier « %s »."
+#~ msgid "%s: could not read file \"%s\": %s\n"
+#~ msgstr "%s : n'a pas pu lire le fichier « %s » : %s\n"
 
-#~ msgid "foreign key referencing partitioned table \"%s\" must not be ONLY"
-#~ msgstr "la clé étrangère référençant la table partitionnée « %s » ne doit pas être ONLY"
+#~ msgid "could not read file \"%s\": read %d of %d"
+#~ msgstr "n'a pas pu lire le fichier « %s » : a lu %d sur %d"
 
-#~ msgid "invalid number of arguments: object must be matched key value pairs"
-#~ msgstr "nombre d'arguments invalide : l'objet doit correspond aux paires clé/valeur"
+#~ msgid "%s: could not read file \"%s\": read %d of %d\n"
+#~ msgstr "%s : n'a pas pu lire le fichier « %s » : a lu %d sur %d\n"
 
 #~ msgid ""
-#~ "WARNING: Calculated CRC checksum does not match value stored in file.\n"
-#~ "Either the file is corrupt, or it has a different layout than this program\n"
-#~ "is expecting.  The results below are untrustworthy.\n"
-#~ "\n"
+#~ "WARNING: possible byte ordering mismatch\n"
+#~ "The byte ordering used to store the pg_control file might not match the one\n"
+#~ "used by this program.  In that case the results below would be incorrect, and\n"
+#~ "the PostgreSQL installation would be incompatible with this data directory.\n"
 #~ msgstr ""
-#~ "ATTENTION : Les sommes de contrôle (CRC) calculées ne correspondent pas aux\n"
-#~ "valeurs stockées dans le fichier.\n"
-#~ "Soit le fichier est corrompu, soit son organisation diffère de celle\n"
-#~ "attendue par le programme.\n"
-#~ "Les résultats ci-dessous ne sont pas dignes de confiance.\n"
-#~ "\n"
+#~ "ATTENTION : possible incohérence dans l'ordre des octets\n"
+#~ "L'ordre des octets utilisé pour enregistrer le fichier pg_control peut ne\n"
+#~ "pas correspondre à celui utilisé par ce programme. Dans ce cas, les\n"
+#~ "résultats ci-dessous sont incorrects, et l'installation PostgreSQL\n"
+#~ "incompatible avec ce répertoire des données.\n"
 
-#~ msgid "index row size %lu exceeds maximum %lu for index \"%s\""
-#~ msgstr "la taille de la ligne index, %lu, dépasse le maximum, %lu, pour l'index « %s »"
+#~ msgid "could not identify current directory: %s"
+#~ msgstr "n'a pas pu identifier le répertoire courant : %s"
 
-#~ msgid "brin operator family \"%s\" contains function %s with invalid support number %d"
-#~ msgstr ""
-#~ "la famille d'opérateur brin « %s » contient la fonction %s\n"
-#~ "avec le numéro de support %d invalide"
+#~ msgid "could not change directory to \"%s\": %s"
+#~ msgstr "n'a pas pu changer le répertoire par « %s » : %s"
 
-#~ msgid "brin operator family \"%s\" contains function %s with wrong signature for support number %d"
-#~ msgstr ""
-#~ "la famille d'opérateur brin « %s » contient la fonction %s\n"
-#~ "avec une mauvaise signature pour le numéro de support %d"
+#~ msgid "could not read symbolic link \"%s\""
+#~ msgstr "n'a pas pu lire le lien symbolique « %s »"
 
-#~ msgid "brin operator family \"%s\" contains operator %s with invalid strategy number %d"
-#~ msgstr ""
-#~ "la famille d'opérateur brin « %s » contient l'opérateur %s\n"
-#~ "avec le numéro de stratégie %d invalide"
+#~ msgid "%s: could not stat file \"%s\": %s\n"
+#~ msgstr "%s : n'a pas pu récupérer les informations sur le fichier « %s » : %s\n"
 
-#~ msgid "brin operator family \"%s\" contains invalid ORDER BY specification for operator %s"
-#~ msgstr ""
-#~ "la famille d'opérateur brin « %s » contient une spécification\n"
-#~ "ORDER BY invalide pour l'opérateur %s"
+#~ msgid "%s: could not open directory \"%s\": %s\n"
+#~ msgstr "%s : n'a pas pu ouvrir le répertoire « %s » : %s\n"
 
-#~ msgid "brin operator family \"%s\" contains operator %s with wrong signature"
-#~ msgstr "la famille d'opérateur brin « %s » contient l'opérateur %s avec une mauvaise signature"
+#~ msgid "%s: could not read directory \"%s\": %s\n"
+#~ msgstr "%s : n'a pas pu lire le répertoire « %s » : %s\n"
 
-#~ msgid "brin operator class \"%s\" is missing support function %d"
-#~ msgstr "la classe d'opérateur brin « %s » nécessite la fonction de support %d"
+#~ msgid "%s: could not open file \"%s\": %s\n"
+#~ msgstr "%s : n'a pas pu ouvrir le fichier « %s » : %s\n"
 
-#~ msgid "gist operator family \"%s\" contains support procedure %s with cross-type registration"
-#~ msgstr ""
-#~ "la famille d'opérateur gist « %s » contient la procédure de support\n"
-#~ "%s avec un enregistrement inter-type"
+#~ msgid "%s: could not fsync file \"%s\": %s\n"
+#~ msgstr "%s : n'a pas pu synchroniser sur disque le fichier « %s » : %s\n"
 
-#~ msgid "gist operator family \"%s\" contains function %s with invalid support number %d"
-#~ msgstr ""
-#~ "la famille d'opérateur gist « %s » contient la fonction %s avec\n"
-#~ "le numéro de support invalide %d"
+#~ msgid "%s: could not rename file \"%s\" to \"%s\": %s\n"
+#~ msgstr "%s : n'a pas pu renommer le fichier « %s » en « %s » : %s\n"
 
-#~ msgid "gist operator family \"%s\" contains function %s with wrong signature for support number %d"
-#~ msgstr ""
-#~ "la famille d'opérateur gist « %s » contient la fonction %s avec une mauvaise\n"
-#~ "signature pour le numéro de support %d"
+#~ msgid "could not open directory \"%s\": %s\n"
+#~ msgstr "n'a pas pu ouvrir le répertoire « %s » : %s\n"
 
-#~ msgid "gist operator family \"%s\" contains operator %s with invalid strategy number %d"
-#~ msgstr ""
-#~ "la famille d'opérateur gist « %s » contient l'opérateur %s avec le numéro\n"
-#~ "de stratégie invalide %d"
+#~ msgid "could not read directory \"%s\": %s\n"
+#~ msgstr "n'a pas pu lire le répertoire « %s » : %s\n"
 
-#~ msgid "gist operator family \"%s\" contains operator %s with wrong signature"
-#~ msgstr "la famille d'opérateur gist « %s » contient l'opérateur %s avec une mauvaise signature"
+#~ msgid "could not close directory \"%s\": %s\n"
+#~ msgstr "n'a pas pu fermer le répertoire « %s » : %s\n"
 
-#~ msgid "gist operator class \"%s\" is missing support function %d"
-#~ msgstr "la famille d'opérateur gist « %s » nécessite la fonction de support %d"
+#~ msgid "%s: WARNING: cannot create restricted tokens on this platform\n"
+#~ msgstr "%s : ATTENTION : ne peut pas créer les jetons restreints sur cette plateforme\n"
 
-#~ msgid "hash operator family \"%s\" contains support procedure %s with cross-type registration"
-#~ msgstr ""
-#~ "la famille d'opérateur hash « %s » contient la procédure de support\n"
-#~ "%s avec un enregistrement inter-type"
+#~ msgid "%s: could not open process token: error code %lu\n"
+#~ msgstr "%s : n'a pas pu ouvrir le jeton du processus : code d'erreur %lu\n"
 
-#~ msgid "hash operator family \"%s\" contains function %s with wrong signature for support number %d"
-#~ msgstr ""
-#~ "la famille d'opérateur hash « %s » contient la fonction %s avec une mauvaise\n"
-#~ "signature pour le numéro de support %d"
+#~ msgid "%s: could not allocate SIDs: error code %lu\n"
+#~ msgstr "%s : n'a pas pu allouer les SID : code d'erreur %lu\n"
 
-#~ msgid "hash operator family \"%s\" contains function %s with invalid support number %d"
-#~ msgstr ""
-#~ "la famille d'opérateur hash « %s » contient la fonction %s avec\n"
-#~ "le numéro de support invalide %d"
+#~ msgid "%s: could not create restricted token: error code %lu\n"
+#~ msgstr "%s : n'a pas pu créer le jeton restreint : code d'erreur %lu\n"
 
-#~ msgid "hash operator family \"%s\" contains operator %s with invalid strategy number %d"
-#~ msgstr ""
-#~ "la famille d'opérateur hash « %s » contient l'opérateur %s avec le numéro\n"
-#~ "de stratégie invalide %d"
+#~ msgid "%s: could not start process for command \"%s\": error code %lu\n"
+#~ msgstr "%s : n'a pas pu démarrer le processus pour la commande « %s » : code d'erreur %lu\n"
 
-#~ msgid "hash operator family \"%s\" contains invalid ORDER BY specification for operator %s"
-#~ msgstr ""
-#~ "la famille d'opérateur hash « %s » contient la spécification ORDER BY\n"
-#~ "non supportée pour l'opérateur %s"
+#~ msgid "%s: could not re-execute with restricted token: error code %lu\n"
+#~ msgstr "%s : n'a pas pu ré-exécuter le jeton restreint : code d'erreur %lu\n"
 
-#~ msgid "hash operator family \"%s\" contains operator %s with wrong signature"
-#~ msgstr "la famille d'opérateur hash « %s » contient l'opérateur %s avec une mauvaise signature"
+#~ msgid "%s: could not get exit code from subprocess: error code %lu\n"
+#~ msgstr "%s : n'a pas pu récupérer le code de statut du sous-processus : code d'erreur %lu\n"
 
-#~ msgid "hash operator family \"%s\" is missing operator(s) for types %s and %s"
+#~ msgid "could not stat file or directory \"%s\": %s\n"
 #~ msgstr ""
-#~ "la famille d'opérateur hash « %s » nécessite des opérateurs supplémentaires\n"
-#~ "pour les types %s et %s"
+#~ "n'a pas pu récupérer les informations sur le fichier ou répertoire\n"
+#~ "« %s » : %s\n"
 
-#~ msgid "hash operator class \"%s\" is missing operator(s)"
-#~ msgstr "il manque des opérateurs pour la classe d'opérateur hash « %s »"
+#~ msgid "could not remove file or directory \"%s\": %s\n"
+#~ msgstr "n'a pas pu supprimer le fichier ou répertoire « %s » : %s\n"
 
-#~ msgid "btree operator family \"%s\" contains function %s with invalid support number %d"
-#~ msgstr ""
-#~ "la famille d'opérateur btree « %s » contient la fonction %s\n"
-#~ "avec le numéro de support invalide %d"
+#~ msgid "child process was terminated by signal %s"
+#~ msgstr "le processus fils a été terminé par le signal %s"
 
-#~ msgid "btree operator family \"%s\" contains function %s with wrong signature for support number %d"
-#~ msgstr ""
-#~ "la famille d'opérateur btree « %s » contient la fonction %s\n"
-#~ "avec une mauvaise signature pour le numéro de support %d"
+#~ msgid "child process was terminated by signal %d"
+#~ msgstr "le processus fils a été terminé par le signal %d"
 
-#~ msgid "btree operator family \"%s\" contains operator %s with invalid strategy number %d"
-#~ msgstr ""
-#~ "la famille d'opérateur btree « %s » contient l'opérateur %s\n"
-#~ "avec le numéro de stratégie invalide %d"
+#~ msgid "unrecognized error %d"
+#~ msgstr "erreur %d non reconnue"
 
-#~ msgid "btree operator family \"%s\" contains invalid ORDER BY specification for operator %s"
+#~ msgid "could not open two-phase state file \"%s\": %m"
 #~ msgstr ""
-#~ "la famille d'opérateur btree « %s » contient une spécification\n"
-#~ "ORDER BY invalide pour l'opérateur %s"
-
-#~ msgid "btree operator family \"%s\" contains operator %s with wrong signature"
-#~ msgstr "la famille d'opérateur btree « %s » contient l'opérateur %s avec une mauvaise signature"
+#~ "n'a pas pu ouvrir le fichier d'état de la validation en deux phases nommé\n"
+#~ "« %s » : %m"
 
-#~ msgid "btree operator family \"%s\" is missing operator(s) for types %s and %s"
+#~ msgid "could not stat two-phase state file \"%s\": %m"
 #~ msgstr ""
-#~ "la famille d'opérateur btree « %s » nécessite des opérateurs supplémentaires\n"
-#~ "pour les types %s et %s"
-
-#~ msgid "btree operator class \"%s\" is missing operator(s)"
-#~ msgstr "il manque des opérateurs pour la classe d'opérateur btree « %s »"
-
-#~ msgid "btree operator family \"%s\" is missing cross-type operator(s)"
-#~ msgstr "il manque des opérateurs inter-type pour la famille d'opérateur btree « %s »"
+#~ "n'a pas pu récupérer des informations sur le fichier d'état de la validation\n"
+#~ "en deux phases nommé « %s » : %m"
 
-#~ msgid "spgist operator family \"%s\" contains support procedure %s with cross-type registration"
+#~ msgid "could not read two-phase state file \"%s\": %m"
 #~ msgstr ""
-#~ "la famille d'opérateur spgist « %s » contient la procédure de support\n"
-#~ "%s avec un enregistrement inter-type"
+#~ "n'a pas pu lire le fichier d'état de la validation en deux phases nommé\n"
+#~ "« %s » : %m"
 
-#~ msgid "spgist operator family \"%s\" contains function %s with invalid support number %d"
+#~ msgid "could not remove two-phase state file \"%s\": %m"
 #~ msgstr ""
-#~ "la famille d'opérateur spgist « %s » contient la fonction %s\n"
-#~ "avec le numéro de support %d invalide"
+#~ "n'a pas pu supprimer le fichier d'état de la validation en deux phases\n"
+#~ "« %s » : %m"
 
-#~ msgid "spgist operator family \"%s\" contains function %s with wrong signature for support number %d"
+#~ msgid "could not recreate two-phase state file \"%s\": %m"
 #~ msgstr ""
-#~ "la famille d'opérateur spgist « %s » contient la fonction %s\n"
-#~ "avec une mauvaise signature pour le numéro de support %d"
+#~ "n'a pas pu re-créer le fichier d'état de la validation en deux phases nommé\n"
+#~ "« %s » : %m"
 
-#~ msgid "spgist operator family \"%s\" contains operator %s with invalid strategy number %d"
-#~ msgstr ""
-#~ "la famille d'opérateur spgist « %s » contient l'opérateur %s\n"
-#~ "avec le numéro de stratégie invalide %d"
+#~ msgid "could not write two-phase state file: %m"
+#~ msgstr "n'a pas pu écrire dans le fichier d'état de la validation en deux phases : %m"
 
-#~ msgid "spgist operator family \"%s\" contains invalid ORDER BY specification for operator %s"
+#~ msgid "could not fsync two-phase state file: %m"
 #~ msgstr ""
-#~ "la famille d'opérateur spgist « %s » contient une spécification\n"
-#~ "ORDER BY invalide pour l'opérateur %s"
+#~ "n'a pas pu synchroniser sur disque (fsync) le fichier d'état de la\n"
+#~ "validation en deux phases : %m"
 
-#~ msgid "spgist operator family \"%s\" contains operator %s with wrong signature"
-#~ msgstr "la famille d'opérateur spgist « %s » contient l'opérateur %s avec une mauvaise signature"
+#~ msgid "could not close two-phase state file: %m"
+#~ msgstr "n'a pas pu fermer le fichier d'état de la validation en deux phases : %m"
 
-#~ msgid "spgist operator family \"%s\" is missing operator(s) for types %s and %s"
+#~ msgid "cannot PREPARE a transaction that has operated on temporary tables"
 #~ msgstr ""
-#~ "la famille d'opérateur spgist « %s » nécessite des opérateurs supplémentaires\n"
-#~ "pour les types %s et %s"
-
-#~ msgid "spgist operator class \"%s\" is missing operator(s)"
-#~ msgstr "il manque des opérateurs pour la classe d'opérateur spgist « %s »"
+#~ "ne peut pas préparer (PREPARE) une transaction qui a travaillé sur des\n"
+#~ "tables temporaires"
 
-#~ msgid "Expected a transaction log switchpoint location."
-#~ msgstr "Attendait un emplacement de bascule dans le journal de transactions."
+#~ msgid "could not seek in log file %s to offset %u: %m"
+#~ msgstr "n'a pas pu se déplacer dans le fichier de transactions « %s » au décalage %u : %m"
 
-#~ msgid "could not open transaction log file \"%s\": %m"
-#~ msgstr "n'a pas pu ouvrir le journal des transactions « %s » : %m"
+#~ msgid "not enough data in file \"%s\""
+#~ msgstr "données insuffisantes dans le fichier « %s »"
 
-#~ msgid "could not remove old transaction log file \"%s\": %m"
-#~ msgstr "n'a pas pu supprimer l'ancien journal de transaction « %s » : %m"
+#~ msgid "could not open write-ahead log file \"%s\": %m"
+#~ msgstr "n'a pas pu écrire dans le journal de transactions « %s » : %m"
 
-#~ msgid "removing transaction log backup history file \"%s\""
-#~ msgstr "suppression du fichier historique des journaux de transaction « %s »"
+#~ msgid "could not close log file %s: %m"
+#~ msgstr "n'a pas pu fermer le fichier de transactions « %s » : %m"
 
-#~ msgid "The database cluster was initialized without HAVE_INT64_TIMESTAMP but the server was compiled with HAVE_INT64_TIMESTAMP."
-#~ msgstr "Le cluster de bases de données a été initialisé sans HAVE_INT64_TIMESTAMPalors que le serveur a été compilé avec."
+#~ msgid "could not rename old write-ahead log file \"%s\": %m"
+#~ msgstr "n'a pas pu renommer l'ancien journal de transactions « %s » : %m"
 
-#~ msgid "The database cluster was initialized with HAVE_INT64_TIMESTAMP but the server was compiled without HAVE_INT64_TIMESTAMP."
-#~ msgstr ""
-#~ "Le cluster de bases de données a été initialisé avec HAVE_INT64_TIMESTAMP\n"
-#~ "alors que le serveur a été compilé sans."
+#~ msgid "could not create control file \"%s\": %m"
+#~ msgstr "n'a pas pu créer le fichier de contrôle « %s » : %m"
 
-#~ msgid "invalid privilege type USAGE for table"
-#~ msgstr "droit USAGE invalide pour la table"
+#~ msgid "could not write to control file: %m"
+#~ msgstr "n'a pas pu écrire le fichier de contrôle : %m"
 
-#~ msgid "column \"%s\" has type \"unknown\""
-#~ msgstr "la colonne « %s » est de type « unknown »"
+#~ msgid "could not fsync control file: %m"
+#~ msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier de contrôle : %m"
 
-#~ msgid "Proceeding with relation creation anyway."
-#~ msgstr "Poursuit malgré tout la création de la relation."
+#~ msgid "could not close control file: %m"
+#~ msgstr "n'a pas pu fermer le fichier de contrôle : %m"
 
-#~ msgid "default expression must not return a set"
-#~ msgstr "l'expression par défaut ne doit pas renvoyer un ensemble"
+#~ msgid "could not open control file \"%s\": %m"
+#~ msgstr "n'a pas pu ouvrir le fichier de contrôle « %s » : %m"
 
-#~ msgid "access method name cannot be qualified"
-#~ msgstr "le nom de la méthode d'accès ne peut pas être qualifiée"
+#~ msgid "could not read from control file: %m"
+#~ msgstr "n'a pas pu lire le fichier de contrôle : %m"
 
-#~ msgid "database name cannot be qualified"
-#~ msgstr "le nom de la base de donnée ne peut être qualifié"
+#~ msgid "could not read from control file: read %d bytes, expected %d"
+#~ msgstr "n'a pas pu lire le fichier de contrôle : lu %d octets, %d attendus"
 
-#~ msgid "extension name cannot be qualified"
-#~ msgstr "le nom de l'extension ne peut pas être qualifié"
+#~ msgid "could not open recovery command file \"%s\": %m"
+#~ msgstr "n'a pas pu ouvrir le fichier de restauration « %s » : %m"
 
-#~ msgid "tablespace name cannot be qualified"
-#~ msgstr "le nom du tablespace ne peut pas être qualifié"
+#~ msgid "invalid value for recovery parameter \"%s\": \"%s\""
+#~ msgstr "valeur invalide pour le paramètre de restauration « %s » : « %s »"
 
-#~ msgid "role name cannot be qualified"
-#~ msgstr "le nom du rôle ne peut pas être qualifié"
+#~ msgid "Valid values are \"pause\", \"promote\", and \"shutdown\"."
+#~ msgstr "Les valeurs valides sont « pause », « promote » et « shutdown »."
 
-#~ msgid "schema name cannot be qualified"
-#~ msgstr "le nom du schéma ne peut pas être qualifié"
+#~ msgid "recovery_target_xid is not a valid number: \"%s\""
+#~ msgstr "recovery_target_xid n'est pas un nombre valide : « %s »"
 
-#~ msgid "language name cannot be qualified"
-#~ msgstr "le nom du langage ne peut pas être qualifié"
+#~ msgid "recovery_target_time is not a valid timestamp: \"%s\""
+#~ msgstr "recovery_target_timeline n'est pas un horodatage valide : « %s »"
 
-#~ msgid "foreign-data wrapper name cannot be qualified"
-#~ msgstr "le nom du wrapper de données distantes ne peut pas être qualifié"
+#~ msgid "parameter \"%s\" requires a temporal value"
+#~ msgstr "le paramètre « %s » requiert une valeur temporelle"
 
-#~ msgid "server name cannot be qualified"
-#~ msgstr "le nom du serveur ne peut pas être qualifié"
+#~ msgid "unrecognized recovery parameter \"%s\""
+#~ msgstr "paramètre de restauration « %s » non reconnu"
 
-#~ msgid "event trigger name cannot be qualified"
-#~ msgstr "le nom du trigger sur événement ne peut pas être qualifié"
+#~ msgid "If you are not restoring from a backup, try removing the file \"%s/backup_label\"."
+#~ msgstr ""
+#~ "Si vous n'avez pas pu restaurer une sauvegarde, essayez de supprimer le\n"
+#~ "fichier « %s/backup_label »."
 
-#~ msgid "hash indexes are not WAL-logged and their use is discouraged"
-#~ msgstr "les index hash ne sont pas journalisés, leur utilisation est donc déconseillée"
+#~ msgid "could not fsync log segment %s: %m"
+#~ msgstr "n'a pas pu synchroniser sur disque (fsync) le segment du journal des transactions %s : %m"
 
-#~ msgid "changing return type of function %s from \"opaque\" to \"language_handler\""
-#~ msgstr ""
-#~ "changement du type du code retour de la fonction %s d'« opaque » à\n"
-#~ "« language_handler »"
+#~ msgid "could not fsync log file %s: %m"
+#~ msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier de transactions « %s » : %m"
 
-#~ msgid "changing return type of function %s from \"opaque\" to \"trigger\""
-#~ msgstr "changement du type de retour de la fonction %s de « opaque » vers « trigger »"
+#~ msgid "could not fdatasync log file %s: %m"
+#~ msgstr "n'a pas pu synchroniser sur disque (fdatasync) le journal de transactions %s : %m"
 
-#~ msgid "functions and operators can take at most one set argument"
-#~ msgstr "les fonctions et opérateurs peuvent prendre au plus un argument d'ensemble"
+#~ msgid "pg_walfile_name_offset() cannot be executed during recovery."
+#~ msgstr "pg_walfile_name_offset() ne peut pas être exécuté lors de la restauration."
 
-#~ msgid "IS DISTINCT FROM does not support set arguments"
-#~ msgstr "IS DISTINCT FROM ne supporte pas les arguments d'ensemble"
+#~ msgid "pg_walfile_name() cannot be executed during recovery."
+#~ msgstr "pg_walfile_name() ne peut pas être exécuté lors de la restauration."
 
-#~ msgid "op ANY/ALL (array) does not support set arguments"
+#~ msgid "shared tables cannot be toasted after initdb"
 #~ msgstr ""
-#~ "l'opérateur ANY/ALL (pour les types array) ne supporte pas les arguments\n"
-#~ "d'ensemble"
+#~ "les tables partagées ne peuvent pas avoir une table TOAST après la commande\n"
+#~ "initdb"
 
-#~ msgid "NULLIF does not support set arguments"
-#~ msgstr "NULLIF ne supporte pas les arguments d'ensemble"
+#~ msgid "table \"%s\" does not have OIDs"
+#~ msgstr "la table « %s » n'a pas d'OID"
 
-#~ msgid "hostssl requires SSL to be turned on"
-#~ msgstr "hostssl requiert que SSL soit activé"
+#~ msgid "missing data for OID column"
+#~ msgstr "données manquantes pour la colonne OID"
 
-#~ msgid "could not create %s socket: %m"
-#~ msgstr "n'a pas pu créer le socket %s : %m"
+#~ msgid "null OID in COPY data"
+#~ msgstr "OID NULL dans les données du COPY"
 
-#~ msgid "could not bind %s socket: %m"
-#~ msgstr "n'a pas pu se lier à la socket %s : %m"
+#~ msgid "invalid OID in COPY data"
+#~ msgstr "OID invalide dans les données du COPY"
 
-#~ msgid "WHERE CURRENT OF is not supported on a view with no underlying relation"
-#~ msgstr "WHERE CURRENT OF n'est pas supporté pour une vue sans table sous-jacente"
+#~ msgid "server does not exist, skipping"
+#~ msgstr "le serveur n'existe pas, poursuite du traitement"
 
-#~ msgid "WHERE CURRENT OF is not supported on a view with more than one underlying relation"
-#~ msgstr "WHERE CURRENT OF n'est pas supporté pour une vue avec plus d'une table sous-jacente"
+#~ msgid "\"%s\" is not a table or a view"
+#~ msgstr "« %s » n'est pas une table ou une vue"
 
-#~ msgid "WHERE CURRENT OF is not supported on a view with grouping or aggregation"
-#~ msgstr "WHERE CURRENT OF n'est pas supporté pour une vue avec regroupement ou agrégat"
+#~ msgid "connect = false and create_slot = true are mutually exclusive options"
+#~ msgstr "connect = false et create_slot = true sont des options mutuellement exclusives"
 
-#~ msgid "DEFAULT can only appear in a VALUES list within INSERT"
-#~ msgstr "DEFAULT peut seulement apparaître dans la liste VALUES comprise dans un INSERT"
+#~ msgid "connect = false and copy_data = true are mutually exclusive options"
+#~ msgstr "connect = false et copy_data = true sont des options mutuellement exclusives"
 
-#~ msgid "argument of %s must be type boolean, not type %s"
-#~ msgstr "l'argument de %s doit être de type booléen, et non du type %s"
+#~ msgid "slot_name = NONE and enabled = true are mutually exclusive options"
+#~ msgstr "slot_name = NONE et enabled = true sont des options mutuellement exclusives"
 
-#~ msgid "argument declared \"anyrange\" is not consistent with argument declared \"anyelement\""
-#~ msgstr ""
-#~ "l'argument déclaré « anyrange » n'est pas cohérent avec l'argument déclaré\n"
-#~ "« anyelement »"
+#~ msgid "slot_name = NONE and create_slot = true are mutually exclusive options"
+#~ msgstr "slot_name = NONE et create_slot = true sont des options mutuellement exclusives"
 
-#~ msgid "index expression cannot return a set"
-#~ msgstr "l'expression de l'index ne peut pas renvoyer un ensemble"
+#~ msgid "subscription with slot_name = NONE must also set create_slot = false"
+#~ msgstr "la souscription avec slot_name = NONE doit aussi être configurée avec create_slot = false"
 
-#~ msgid "transform expression must not return a set"
-#~ msgstr "l'expression de transformation ne doit pas renvoyer un ensemble"
+#~ msgid "cannot create table with OIDs as partition of table without OIDs"
+#~ msgstr "ne peut pas créer une table avec OID comme partition d'une table sans OID"
 
-#~ msgid "autovacuum: found orphan temp table \"%s\".\"%s\" in database \"%s\""
-#~ msgstr ""
-#~ "autovacuum : a trouvé la table temporaire orpheline « %s.%s » dans la base de\n"
-#~ "données « %s »"
+#~ msgid "child table \"%s\" has a conflicting \"%s\" column"
+#~ msgstr "la table fille « %s » a une colonne conflictuelle, « %s »"
 
-#~ msgid "transaction log switch forced (archive_timeout=%d)"
-#~ msgstr "changement forcé du journal de transaction (archive_timeout=%d)"
+#~ msgid "cannot add constraint to only the partitioned table when partitions exist"
+#~ msgstr "ne peut pas ajouter la contrainte à la seule table partitionnée quand plusieurs partitions existent"
 
-#~ msgid "archived transaction log file \"%s\""
-#~ msgstr "journal des transactions archivé « %s »"
+#~ msgid "cannot drop column named in partition key"
+#~ msgstr "ne peut pas supprimer une colonne nommée dans une clé de partitionnement"
 
-#~ msgid "syntax error: unexpected character \"%s\""
-#~ msgstr "erreur de syntaxe : caractère « %s » inattendu"
+#~ msgid "cannot reference partitioned table \"%s\""
+#~ msgstr "ne peut pas référencer la table partitionnée « %s »"
 
-#~ msgid "invalid socket: %s"
-#~ msgstr "socket invalide : %s"
+#~ msgid "cannot alter type of column named in partition key"
+#~ msgstr "ne peut pas modifier le type d'une colonne nommée dans une clé de partitionnement"
 
-#~ msgid "select() failed: %m"
-#~ msgstr "échec de select() : %m"
+#~ msgid "cannot alter type of column referenced in partition key expression"
+#~ msgstr "ne peut pas utiliser le type d'une colonne référencée dans l'expression d'une clé de partitionnement"
 
-#~ msgid "Transaction ID %u finished; no more running transactions."
-#~ msgstr "Identifiant de transaction %u terminé ; plus de transactions en cours."
+#~ msgid "table \"%s\" without OIDs cannot inherit from table \"%s\" with OIDs"
+#~ msgstr "la table « %s » qui n'a pas d'OID ne peut pas hériter de la table « %s » qui en a"
 
-#~ msgid "%u transaction needs to finish."
-#~ msgid_plural "%u transactions need to finish."
-#~ msgstr[0] "La transaction %u doit se terminer."
-#~ msgstr[1] "Les transactions %u doivent se terminer."
+#~ msgid "data type %s has no default hash operator class"
+#~ msgstr "le type de données %s n'a pas de classe d'opérateurs hash par défaut"
 
-#~ msgid "rule \"%s\" does not exist"
-#~ msgstr "la règle « %s » n'existe pas"
+#~ msgid "data type %s has no default btree operator class"
+#~ msgstr "le type de données %s n'a pas de classe d'opérateurs btree par défaut"
 
-#~ msgid "there are multiple rules named \"%s\""
-#~ msgstr "il existe de nombreuses règles nommées « %s »"
+#~ msgid "cannot attach table \"%s\" without OIDs as partition of table \"%s\" with OIDs"
+#~ msgstr "ne peut pas attacher la table « %s » sans OID comme partition de la table « %s » avec OID"
 
-#~ msgid "Specify a relation name as well as a rule name."
-#~ msgstr "Spécifier un nom de relation ainsi qu'un nom de règle."
+#~ msgid "cannot attach table \"%s\" with OIDs as partition of table \"%s\" without OIDs"
+#~ msgstr "ne peut pas attacher la table « %s » avec OID comme partition de la table « %s » sans OID"
 
-#~ msgid "not enough shared memory for elements of data structure \"%s\" (%zu bytes requested)"
-#~ msgstr ""
-#~ "pas assez de mémoire partagée pour les éléments de la structure de données\n"
-#~ "« %s » (%zu octets demandés)"
+#~ msgid "relation \"%s\" page %u is uninitialized --- fixing"
+#~ msgstr "relation « %s » : la page %u n'est pas initialisée --- correction en cours"
 
-#~ msgid "invalid input syntax for type boolean: \"%s\""
-#~ msgstr "syntaxe en entrée invalide pour le type booléen : « %s »"
+#~ msgid "logical replication target relation \"%s.%s\" is not a table"
+#~ msgstr "la relation cible de la réplication logique « %s.%s » n'est pas une table"
 
-#~ msgid "invalid input syntax for type money: \"%s\""
-#~ msgstr "syntaxe en entrée invalide pour le type money : « %s »"
+#~ msgid "tuple to be deleted was already moved to another partition due to concurrent update"
+#~ msgstr "la ligne à supprimer était déjà déplacée vers une autre partition du fait d'une mise à jour concurrente"
 
-#~ msgid "invalid input syntax for type bytea"
-#~ msgstr "syntaxe en entrée invalide pour le type bytea"
+#~ msgid "tuple to be updated was already moved to another partition due to concurrent update"
+#~ msgstr "la ligne à mettre à jour était déjà déplacée vers une autre partition du fait d'une mise à jour concurrente, nouvelle tentative"
 
-#~ msgid "invalid input syntax for type real: \"%s\""
-#~ msgstr "syntaxe en entrée invalide pour le type real : « %s »"
+#~ msgid "DROP ASSERTION is not yet implemented"
+#~ msgstr "DROP ASSERTION n'est pas encore implémenté"
 
-#~ msgid "\"TZ\"/\"tz\"/\"OF\" format patterns are not supported in to_date"
-#~ msgstr "les motifs de format « TZ »/« tz »/« OF » ne sont pas supportés dans to_date"
+#~ msgid "The cast requires a non-immutable conversion."
+#~ msgstr "Cette conversion requiert une conversion non immutable."
 
-#~ msgid "value \"%s\" is out of range for type bigint"
-#~ msgstr "la valeur « %s » est en dehors des limites du type bigint"
+#~ msgid "Try putting the literal value in single quotes."
+#~ msgstr "Placer la valeur littérale en guillemets simples."
 
-#~ msgid "could not determine data type for argument 1"
-#~ msgstr "n'a pas pu déterminer le type de données pour l'argument 1"
+#~ msgid "archive command was terminated by signal %d"
+#~ msgstr "la commande d'archivage a été terminée par le signal %d"
 
-#~ msgid "could not determine data type for argument 2"
-#~ msgstr "n'a pas pu déterminer le type de données pour l'argument 2"
+#~ msgid "pg_ident.conf was not reloaded"
+#~ msgstr "pg_ident.conf n'a pas été rechargé"
 
-#~ msgid "argument %d: could not determine data type"
-#~ msgstr "argument %d : n'a pas pu déterminer le type de données"
+#~ msgid "%s (PID %d) was terminated by signal %d"
+#~ msgstr "%s (PID %d) a été arrêté par le signal %d"
 
-#~ msgid "invalid input syntax for type macaddr: \"%s\""
-#~ msgstr "syntaxe en entrée invalide pour le type macaddr : « %s »"
+#~ msgid "could not stat control file \"%s\": %m"
+#~ msgstr "n'a pas pu récupérer des informations sur le fichier de contrôle « %s » : %m"
 
-#~ msgid "invalid input syntax for type tinterval: \"%s\""
-#~ msgstr "syntaxe en entrée invalide pour le type tinterval : « %s »"
+#~ msgid "replication identifier %d is already active for PID %d"
+#~ msgstr "l'identificateur de réplication %d est déjà actif pour le PID %d"
 
-#~ msgid "invalid input syntax for type numeric: \"%s\""
-#~ msgstr "syntaxe en entrée invalide pour le type numeric : « %s »"
+#~ msgid "could not read file \"%s\", read %d of %d: %m"
+#~ msgstr "n'a pas pu lire le fichier « %s », lu %d sur %d : %m"
 
-#~ msgid "invalid input syntax for type double precision: \"%s\""
-#~ msgstr "syntaxe en entrée invalide pour le type double precision : « %s »"
+#~ msgid "could not read file \"%s\", read %d of %u: %m"
+#~ msgstr "n'a pas pu lire le fichier « %s », a lu %d sur %u : %m"
 
-#~ msgid "value \"%s\" is out of range for type integer"
-#~ msgstr "la valeur « %s » est en dehors des limites du type integer"
+#~ msgid "CREATE_REPLICATION_SLOT ... EXPORT_SNAPSHOT must not be called inside a transaction"
+#~ msgstr "CREATE_REPLICATION_SLOT ... EXPORT_SNAPSHOT ne doit pas être appelé dans une sous-transaction"
 
-#~ msgid "value \"%s\" is out of range for type smallint"
-#~ msgstr "la valeur « %s » est en dehors des limites du type smallint"
+#~ msgid "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT must be called inside a transaction"
+#~ msgstr "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT doit être appelé dans une transaction"
 
-#~ msgid "invalid input syntax for type oid: \"%s\""
-#~ msgstr "syntaxe invalide en entrée pour le type oid : « %s »"
+#~ msgid "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT must be called before any query"
+#~ msgstr "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT  doit être appelé avant toute requête"
 
-#~ msgid "invalid input syntax for type pg_lsn: \"%s\""
-#~ msgstr "syntaxe en entrée invalide pour le type pg_lsn : « %s »"
+#~ msgid "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT must not be called in a subtransaction"
+#~ msgstr "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT ne doit pas être appelé dans une sous-transaction"
 
-#~ msgid "cannot accept a value of type any"
-#~ msgstr "ne peut pas accepter une valeur de type any"
+#~ msgid "invalid zero-length item array in MVDependencies"
+#~ msgstr "tableau d'éléments de longueur zéro invalide dans MVDependencies"
 
-#~ msgid "cannot accept a value of type anyarray"
-#~ msgstr "ne peut pas accepter une valeur de type anyarray"
+#~ msgid "invalid ndistinct magic %08x (expected %08x)"
+#~ msgstr "nombre magique ndistinct invalide %08x (attendu %08x)"
 
-#~ msgid "cannot accept a value of type anyenum"
-#~ msgstr "ne peut pas accepter une valeur de type anyenum"
+#~ msgid "invalid ndistinct type %d (expected %d)"
+#~ msgstr "type ndistinct invalide %d (%d attendu)"
 
-#~ msgid "cannot accept a value of type anyrange"
-#~ msgstr "ne peut pas accepter une valeur de type anyrange"
+#~ msgid "invalid zero-length item array in MVNDistinct"
+#~ msgstr "tableau d'élément de longueur zéro invalide dans MVNDistinct"
 
-#~ msgid "cannot accept a value of type trigger"
-#~ msgstr "ne peut pas accepter une valeur de type trigger"
+#~ msgid "invalid MVNDistinct size %zd (expected at least %zd)"
+#~ msgstr "taille MVNDistinct %zd invalide (attendue au moins %zd)"
 
-#~ msgid "cannot display a value of type trigger"
-#~ msgstr "ne peut pas afficher une valeur de type trigger"
+#~ msgid "could not rmdir directory \"%s\": %m"
+#~ msgstr "n'a pas pu supprimer le répertoire « %s » : %m"
 
-#~ msgid "cannot accept a value of type event_trigger"
-#~ msgstr "ne peut pas accepter une valeur de type event_trigger"
+#~ msgid "dynamic shared memory is disabled"
+#~ msgstr "la mémoire partagée dynamique est désactivée"
 
-#~ msgid "cannot display a value of type event_trigger"
-#~ msgstr "ne peut pas afficher une valeur de type event_trigger"
+#~ msgid "Set dynamic_shared_memory_type to a value other than \"none\"."
+#~ msgstr "Configurez dynamic_shared_memory_type à une valeur autre que « none »."
 
-#~ msgid "cannot accept a value of type language_handler"
-#~ msgstr "ne peut pas accepter une valeur de type language_handler"
+#~ msgid "epoll_ctl() failed: %m"
+#~ msgstr "échec de epoll_ctl() : %m"
 
-#~ msgid "cannot display a value of type language_handler"
-#~ msgstr "ne peut pas afficher une valeur de type language_handler"
+#~ msgid "epoll_wait() failed: %m"
+#~ msgstr "échec de epoll_wait() : %m"
 
-#~ msgid "cannot accept a value of type fdw_handler"
-#~ msgstr "ne peut pas accepter une valeur de type fdw_handler"
+#~ msgid "poll() failed: %m"
+#~ msgstr "échec de poll() : %m"
 
-#~ msgid "cannot display a value of type fdw_handler"
-#~ msgstr "ne peut pas afficher une valeur de type fdw_handler"
+#~ msgid "corrupted item pointer: offset = %u, length = %u"
+#~ msgstr "pointeur d'élément corrompu : décalage = %u, longueur = %u"
 
-#~ msgid "cannot accept a value of type index_am_handler"
-#~ msgstr "ne peut pas accepter une valeur de type index_am_handler"
+#~ msgid "could not seek to block %u in file \"%s\": %m"
+#~ msgstr "n'a pas pu trouver le bloc %u dans le fichier « %s » : %m"
 
-#~ msgid "cannot display a value of type index_am_handler"
-#~ msgstr "ne peut pas afficher une valeur de type index_am_handler"
+#~ msgid "date/time value \"current\" is no longer supported"
+#~ msgstr "la valeur « current » pour la date et heure n'est plus supportée"
 
-#~ msgid "cannot accept a value of type tsm_handler"
-#~ msgstr "ne peut pas accepter une valeur de type tsm_handler"
+#~ msgid "cannot convert reserved abstime value to date"
+#~ msgstr "ne peut pas convertir la valeur réservée abstime en date"
 
-#~ msgid "cannot display a value of type tsm_handler"
-#~ msgstr "ne peut pas afficher une valeur de type tsm_handler"
+#~ msgid "abstime out of range for date"
+#~ msgstr "abstime en dehors des limites pour une date"
 
-#~ msgid "cannot accept a value of type internal"
-#~ msgstr "ne peut pas accepter une valeur de type internal"
+#~ msgid "could not determine which collation to use for upper() function"
+#~ msgstr "n'a pas pu déterminer le collationnement à utiliser pour la fonction upper()"
 
-#~ msgid "cannot display a value of type internal"
-#~ msgstr "ne peut pas afficher une valeur de type internal"
+#~ msgid "could not determine which collation to use for initcap() function"
+#~ msgstr "n'a pas pu déterminer le collationnement à utiliser pour la fonction initcap()"
 
-#~ msgid "cannot accept a value of type opaque"
-#~ msgstr "ne peut pas accepter une valeur de type opaque"
+#~ msgid "cannot create bounding box for empty polygon"
+#~ msgstr "ne peut pas créer une boîte entourée pour un polygône vide"
 
-#~ msgid "cannot display a value of type opaque"
-#~ msgstr "ne peut pas afficher une valeur de type opaque"
+#~ msgid "cannot convert empty polygon to circle"
+#~ msgstr "ne peut pas convertir un polygône vide en cercle"
 
-#~ msgid "cannot accept a value of type anyelement"
-#~ msgstr "ne peut pas accepter une valeur de type anyelement"
+#~ msgid "invalid input syntax for integer: \"%s\""
+#~ msgstr "syntaxe en entrée invalide pour l'entier : « %s »"
 
-#~ msgid "cannot display a value of type anyelement"
-#~ msgstr "ne peut pas afficher une valeur de type anyelement"
+#~ msgid "The arguments of jsonb_build_object() must consist of alternating keys and values."
+#~ msgstr "Les arguments de jsonb_build_object() doivent consister en des clés et valeurs alternées"
 
-#~ msgid "cannot accept a value of type anynonarray"
-#~ msgstr "ne peut pas accepter une valeur de type anynonarray"
+#~ msgid "Consider using pg_logfile_rotate(), which is part of core, instead."
+#~ msgstr "Considérer l'utilisation de pg_logfile_rotate(), qui est présent par défaut, à la place."
 
-#~ msgid "cannot display a value of type anynonarray"
-#~ msgstr "ne peut pas afficher une valeur de type anynonarray"
+#~ msgid "invalid time zone name: \"%s\""
+#~ msgstr "nom du fuseau horaire invalide : « %s »"
 
-#~ msgid "invalid input syntax for type tid: \"%s\""
-#~ msgstr "syntaxe en entrée invalide pour le type tid : « %s »"
+#~ msgid "cannot convert abstime \"invalid\" to timestamp"
+#~ msgstr "ne peut pas convertir un abstime « invalid » en timestamp"
 
-#~ msgid "invalid input syntax for type txid_snapshot: \"%s\""
-#~ msgstr "syntaxe en entrée invalide pour le type txid_snapshot : « %s »"
+#~ msgid "invalid status in external \"tinterval\" value"
+#~ msgstr "statut invalide dans la valeur externe « tinterval »"
 
-#~ msgid "invalid input syntax for uuid: \"%s\""
-#~ msgstr "syntaxe invalide en entrée pour l'uuid : « %s »"
+#~ msgid "cannot convert reltime \"invalid\" to interval"
+#~ msgstr "ne peut pas convertir reltime « invalid » en interval"
 
-#~ msgid "function %u has too many arguments (%d, maximum is %d)"
-#~ msgstr "la fonction %u a trop d'arguments (%d, le maximum étant %d)"
+#~ msgid "ucnv_toUChars failed: %s"
+#~ msgstr "échec de ucnv_toUChars : %s"
 
-#~ msgid "Causes subtables to be included by default in various commands."
-#~ msgstr ""
-#~ "Fait que les sous-tables soient incluses par défaut dans les différentes\n"
-#~ "commandes."
+#~ msgid "ucnv_fromUChars failed: %s"
+#~ msgstr "échec de ucnv_fromUChars : %s"
 
-#~ msgid "could not create two-phase state file \"%s\": %m"
-#~ msgstr ""
-#~ "n'a pas pu créer le fichier de statut de la validation en deux phases nommé\n"
-#~ "« %s » : %m"
+#~ msgid "invalid regexp option: \"%c\""
+#~ msgstr "option invalide de l'expression rationnelle : « %c »"
 
-#~ msgid "could not seek in two-phase state file: %m"
-#~ msgstr ""
-#~ "n'a pas pu se déplacer dans le fichier de statut de la validation en deux\n"
-#~ "phases : %m"
+#~ msgid "regexp_split_to_table does not support the global option"
+#~ msgstr "regexp_split_to_table ne supporte pas l'option globale"
 
-#~ msgid "two-phase state file for transaction %u is corrupt"
-#~ msgstr ""
-#~ "le fichier d'état de la validation en deux phases est corrompu pour la\n"
-#~ "transaction %u"
+#~ msgid "regexp_split_to_array does not support the global option"
+#~ msgstr "regexp_split_to_array ne supporte pas l'option globale"
 
-#~ msgid "could not fsync two-phase state file \"%s\": %m"
-#~ msgstr ""
-#~ "n'a pas pu synchroniser sur disque (fsync) le fichier d'état de la\n"
-#~ "validation en deux phases nommé « %s » : %m"
+#~ msgid "date/time value \"%s\" is no longer supported"
+#~ msgstr "la valeur date/time « %s » n'est plus supportée"
 
-#~ msgid "could not close two-phase state file \"%s\": %m"
-#~ msgstr ""
-#~ "n'a pas pu fermer le fichier d'état de la validation en deux phases nommé\n"
-#~ "« %s » : %m"
+#~ msgid "invalid input syntax for numeric time zone: \"%s\""
+#~ msgstr "syntaxe en entrée invalide pour le fuseau horaire numérique : « %s »"
 
-#~ msgid "could not link file \"%s\" to \"%s\" (initialization of log file): %m"
-#~ msgstr "n'a pas pu lier le fichier « %s » à « %s » (initialisation du journal de transactions) : %m"
+#~ msgid "could not open relation mapping file \"%s\": %m"
+#~ msgstr "n'a pas pu ouvrir le fichier de correspondance des relations « %s » : %m"
 
-#~ msgid "could not rename file \"%s\" to \"%s\" (initialization of log file): %m"
-#~ msgstr "n'a pas pu renommer le fichier « %s » en « %s » (initialisation du journal de transactions) : %m"
+#~ msgid "could not read relation mapping file \"%s\": %m"
+#~ msgstr "n'a pas pu lire le fichier de correspondance des relations « %s » : %m"
 
-#~ msgid "ignoring \"%s\" file because no \"%s\" file exists"
-#~ msgstr "ignore le fichier « %s » parce que le fichier « %s » n'existe pas"
+#~ msgid "could not write to relation mapping file \"%s\": %m"
+#~ msgstr "n'a pas pu écrire le fichier de correspondance des relations « %s » : %m"
 
-#~ msgid "must be superuser or replication role to run a backup"
-#~ msgstr "doit être super-utilisateur ou avoir l'attribut de réplication pour exécuter une sauvegarde"
+#~ msgid "could not fsync relation mapping file \"%s\": %m"
+#~ msgstr "n'a pas pu synchroniser (fsync) le fichier de correspondance des relations « %s » : %m"
 
-#~ msgid "must be superuser to switch transaction log files"
-#~ msgstr "doit être super-utilisateur pour changer de journal de transactions"
+#~ msgid "could not close relation mapping file \"%s\": %m"
+#~ msgstr "n'a pas pu fermer le fichier de correspondance des relations « %s » : %m"
 
-#~ msgid "must be superuser to create a restore point"
-#~ msgstr "doit être super-utilisateur pour créer un point de restauration"
+#~ msgid "Create new tables with OIDs by default."
+#~ msgstr "Crée des nouvelles tables avec des OID par défaut."
 
-#~ msgid "must be superuser to control recovery"
-#~ msgstr "doit être super-utilisateur pour contrôler la restauration"
+#~ msgid "parameter \"%s\" requires a numeric value"
+#~ msgstr "le paramètre « %s » requiert une valeur numérique"
 
-#~ msgid "invalid record length at %X/%X"
-#~ msgstr "longueur invalide de l'enregistrement à %X/%X"
+#~ msgid "could not open BufFile \"%s\""
+#~ msgstr "n'a pas pu ouvrir le BufFile « %s »"
 
-#~ msgid "%s is already in schema \"%s\""
-#~ msgstr "%s existe déjà dans le schéma « %s »"
+#~ msgid "%s cannot be executed from a function or multi-command string"
+#~ msgstr ""
+#~ "%s ne peut pas être exécuté à partir d'une fonction ou d'une chaîne\n"
+#~ "contenant plusieurs commandes"
 
-#~ msgid "function \"%s\" must return type \"event_trigger\""
-#~ msgstr "la fonction « %s » doit renvoyer le type « event_trigger »"
+#~ msgid "no such savepoint"
+#~ msgstr "aucun point de sauvegarde"
 
-#~ msgid "function %s must return type \"fdw_handler\""
-#~ msgstr "la fonction %s doit renvoyer le type « fdw_handler »"
+#~ msgid "could not open write-ahead log directory \"%s\": %m"
+#~ msgstr "n'a pas pu ouvrir le répertoire des journaux de transactions « %s » : %m"
 
-#~ msgid "could not reposition held cursor"
-#~ msgstr "n'a pas pu repositionner le curseur détenu"
+#~ msgid "The database cluster was initialized with XLOG_SEG_SIZE %d, but the server was compiled with XLOG_SEG_SIZE %d."
+#~ msgstr ""
+#~ "Le cluster de bases de données a été initialisé avec un XLOG_SEG_SIZE à %d\n"
+#~ "alors que le serveur a été compilé avec un XLOG_SEG_SIZE à %d."
 
-#~ msgid "function %s must return type \"language_handler\""
-#~ msgstr "la fonction %s doit renvoyer le type « language_handler »"
+#~ msgid "using previous checkpoint record at %X/%X"
+#~ msgstr "utilisation du précédent enregistrement d'un point de vérification à %X/%X"
 
-#~ msgid "function %s must return type \"trigger\""
-#~ msgstr "la fonction %s doit renvoyer le type « trigger »"
+#~ msgid "invalid secondary checkpoint link in control file"
+#~ msgstr "lien du point de vérification secondaire invalide dans le fichier de contrôle"
 
-#~ msgid "changing return type of function %s from \"opaque\" to \"cstring\""
-#~ msgstr "changement du type de retour de la fonction %s d'« opaque » vers « cstring »"
+#~ msgid "invalid secondary checkpoint record"
+#~ msgstr "enregistrement du point de vérification secondaire invalide"
 
-#~ msgid "type output function %s must return type \"cstring\""
-#~ msgstr "le type de sortie de la fonction %s doit être « cstring »"
+#~ msgid "invalid resource manager ID in secondary checkpoint record"
+#~ msgstr "identifiant du gestionnaire de ressource invalide dans l'enregistrement secondaire du point de vérification"
 
-#~ msgid "type send function %s must return type \"bytea\""
-#~ msgstr "la fonction send du type %s doit renvoyer le type « bytea »"
+#~ msgid "invalid xl_info in secondary checkpoint record"
+#~ msgstr "xl_info invalide  dans l'enregistrement du point de vérification secondaire"
 
-#~ msgid "typmod_in function %s must return type \"integer\""
-#~ msgstr "la fonction typmod_in %s doit renvoyer le type « entier »"
+#~ msgid "invalid length of secondary checkpoint record"
+#~ msgstr "longueur invalide de l'enregistrement secondaire du point de vérification"
 
-#~ msgid "Permissions should be u=rw (0600) or less."
-#~ msgstr "Les droits devraient être u=rwx (0600) ou inférieures."
+#~ msgid "WAL file is from different database system: incorrect XLOG_SEG_SIZE in page header"
+#~ msgstr "le fichier WAL provient d'un système différent : XLOG_SEG_SIZE invalide dans l'en-tête de page"
 
-#~ msgid "function %s must return type \"tsm_handler\""
-#~ msgstr "la fonction %s doit renvoyer le type « tsm_handler »"
+#~ msgid " in schema %s"
+#~ msgstr " dans le schéma %s"
 
-#~ msgid "must be superuser to reset statistics counters"
-#~ msgstr "doit être super-utilisateur pour réinitialiser les compteurs statistiques"
+#~ msgid "%s in publication %s"
+#~ msgstr "%s dans la publication %s"
 
-#~ msgid "socket not open"
-#~ msgstr "socket non ouvert"
+#~ msgid "table \"%s\" has multiple constraints named \"%s\""
+#~ msgstr "la table « %s » a de nombreuses contraintes nommées « %s »"
 
-#~ msgid "multibyte flag character is not allowed"
-#~ msgstr "un caractère drapeau multi-octet n'est pas autorisé"
+#~ msgid "domain %s has multiple constraints named \"%s\""
+#~ msgstr "le domaine %s a plusieurs contraintes nommées « %s »"
 
-#~ msgid "could not format \"path\" value"
-#~ msgstr "n'a pas pu formater la valeur « path »"
+#~ msgid "\"%s\" is already an attribute of type %s"
+#~ msgstr "« %s » est déjà un attribut du type %s"
 
-#~ msgid "invalid input syntax for type box: \"%s\""
-#~ msgstr "syntaxe en entrée invalide pour le type box : « %s »"
+#~ msgid "function \"%s\" is an aggregate function"
+#~ msgstr "la fonction « %s » est une fonction d'agrégat"
 
-#~ msgid "invalid input syntax for type line: \"%s\""
-#~ msgstr "syntaxe en entrée invalide pour le type line: « %s »"
+#~ msgid "function \"%s\" is not an aggregate function"
+#~ msgstr "la fonction « %s » n'est pas une fonction d'agrégat"
 
-#~ msgid "invalid input syntax for type path: \"%s\""
-#~ msgstr "syntaxe en entrée invalide pour le type path : « %s »"
+#~ msgid "function \"%s\" is not a window function"
+#~ msgstr "la fonction « %s » n'est pas une fonction window"
 
-#~ msgid "invalid input syntax for type point: \"%s\""
-#~ msgstr "syntaxe en entrée invalide pour le type point : « %s »"
+#~ msgid "must be superuser to COPY to or from a file"
+#~ msgstr "doit être super-utilisateur pour utiliser COPY à partir ou vers un fichier"
 
-#~ msgid "invalid input syntax for type lseg: \"%s\""
-#~ msgstr "syntaxe en entrée invalide pour le type lseg : « %s »"
+#~ msgid "cannot copy to foreign table \"%s\""
+#~ msgstr "ne peut pas copier vers la table distante « %s »"
 
-#~ msgid "invalid input syntax for type polygon: \"%s\""
-#~ msgstr "syntaxe en entrée invalide pour le type polygon : « %s »"
+#~ msgid "cannot route inserted tuples to a foreign table"
+#~ msgstr "ne peut pas envoyer les lignes insérées dans une table distante"
 
-#~ msgid "invalid input syntax for type circle: \"%s\""
-#~ msgstr "syntaxe en entrée invalide pour le type circle : « %s »"
+#~ msgid "unrecognized function attribute \"%s\" ignored"
+#~ msgstr "l'attribut « %s » non reconnu de la fonction a été ignoré"
 
-#~ msgid "could not format \"circle\" value"
-#~ msgstr "n'a pas pu formater la valeur « circle »"
+#~ msgid "cast function must not be an aggregate function"
+#~ msgstr "la fonction de conversion ne doit pas être une fonction d'agrégat"
 
-#~ msgid "must be superuser to signal the postmaster"
-#~ msgstr "doit être super-utilisateur pour envoyer un signal au postmaster"
+#~ msgid "transform function must not be an aggregate function"
+#~ msgstr "la fonction de transformation ne doit pas être une fonction d'agrégat"
 
-#~ msgid "argument for function \"exp\" too big"
-#~ msgstr "l'argument de la fonction « exp » est trop gros"
+#~ msgid "invalid procedure number %d, must be between 1 and %d"
+#~ msgstr "numéro de procédure %d invalide, doit être compris entre 1 et %d"
 
-#~ msgid "WAL writer sleep time between WAL flushes."
+#~ msgid "procedure number %d for (%s,%s) appears more than once"
+#~ msgstr "le numéro de procédure %d pour (%s, %s) apparaît plus d'une fois"
+
+#~ msgid "operator procedure must be specified"
+#~ msgstr "la procédure de l'opérateur doit être spécifiée"
+
+#~ msgid "column \"%s\" appears more than once in partition key"
+#~ msgstr "la colonne « %s » apparaît plus d'une fois dans la clé de partitionnement"
+
+#~ msgid "Close open transactions soon to avoid wraparound problems."
 #~ msgstr ""
-#~ "Temps d'endormissement du processus d'écriture pendant le vidage des\n"
-#~ "journaux de transactions en millisecondes."
+#~ "Fermez les transactions ouvertes rapidement pour éviter des problèmes de\n"
+#~ "réinitialisation."
 
-#~ msgid "JSON does not support infinite date values."
-#~ msgstr "JSON ne supporte pas les valeurs infinies de date."
+#~ msgid "combine function for aggregate %u must be declared as STRICT"
+#~ msgstr "la fonction d'unification pour l'aggrégat %u doit être déclarée comme STRICT"
 
-#~ msgid "JSON does not support infinite timestamp values."
-#~ msgstr "JSON ne supporte pas les valeurs infinies de timestamp."
+#~ msgid "RANGE PRECEDING is only supported with UNBOUNDED"
+#~ msgstr "RANGE PRECEDING est seulement supporté avec UNBOUNDED"
 
-#~ msgid "cannot override frame clause of window \"%s\""
-#~ msgstr "ne peut pas surcharger la frame clause du window « %s »"
+#~ msgid "RANGE FOLLOWING is only supported with UNBOUNDED"
+#~ msgstr "RANGE FOLLOWING est seulement supporté avec UNBOUNDED"
 
-#~ msgid "window functions cannot use named arguments"
-#~ msgstr "les fonctions window ne peuvent pas renvoyer des arguments nommés"
+#~ msgid "client requires SCRAM channel binding, but it is not supported"
+#~ msgstr "le client requiert le lien de canal SCRAM mais ceci n'est pas supporté"
 
-#~ msgid "invalid list syntax for \"unix_socket_directories\""
-#~ msgstr "syntaxe de liste invalide pour le paramètre « unix_socket_directories »"
+#~ msgid "must be superuser to use server-side lo_import()"
+#~ msgstr "doit être super-utilisateur pour utiliser lo_import() du côté serveur"
 
-#~ msgid "Valid values are '[]', '[)', '(]', and '()'."
-#~ msgstr "Les valeurs valides sont « [] », « [) », « (] » et « () »."
+#~ msgid "Anyone can use the client-side lo_import() provided by libpq."
+#~ msgstr "Tout le monde peut utiliser lo_import(), fourni par libpq, du côté client."
 
-#~ msgid "poll() failed in statistics collector: %m"
-#~ msgstr "échec du poll() dans le récupérateur de statistiques : %m"
+#~ msgid "must be superuser to use server-side lo_export()"
+#~ msgstr "doit être super-utilisateur pour utiliser lo_export() du côté serveur"
 
-#~ msgid "select() failed in logger process: %m"
-#~ msgstr "échec de select() dans le processus des journaux applicatifs : %m"
+#~ msgid "Anyone can use the client-side lo_export() provided by libpq."
+#~ msgstr "Tout le monde peut utiliser lo_export(), fournie par libpq, du côté client."
 
-#~ msgid "%s: could not open log file \"%s/%s\": %s\n"
-#~ msgstr "%s : n'a pas pu ouvrir le journal applicatif « %s/%s » : %s\n"
+#~ msgid "ON CONFLICT clause is not supported with partitioned tables"
+#~ msgstr "la clause ON CONFLICT n'est pas supporté avec les tables partitionnées"
 
-#~ msgid "%s: could not fork background process: %s\n"
-#~ msgstr "%s : n'a pas pu créer un processus fils : %s\n"
+#~ msgid "foreign key constraints are not supported on partitioned tables"
+#~ msgstr "les clés étrangères ne sont pas supportées sur les tables partitionnées"
 
-#~ msgid "%s: could not dissociate from controlling TTY: %s\n"
-#~ msgstr "%s : n'a pas pu se dissocier du TTY contrôlant : %s\n"
+#~ msgid "could not open archive status directory \"%s\": %m"
+#~ msgstr "n'a pas pu accéder au répertoire du statut des archives « %s » : %m"
 
-#~ msgid "Runs the server silently."
-#~ msgstr "Lance le serveur de manière silencieuse."
+#~ msgid "%s: max_wal_senders must be less than max_connections\n"
+#~ msgstr "%s : max_wal_senders doit être inférieur à max_connections\n"
 
-#~ msgid "If this parameter is set, the server will automatically run in the background and any controlling terminals are dissociated."
+#~ msgid "data directory \"%s\" has group or world access"
 #~ msgstr ""
-#~ "Si ce paramètre est initialisé, le serveur sera exécuté automatiquement en\n"
-#~ "tâche de fond et les terminaux de contrôles seront dés-associés."
+#~ "le répertoire des données « %s » est accessible par le groupe et/ou par les\n"
+#~ "autres"
 
-#~ msgid "WAL sender sleep time between WAL replications."
-#~ msgstr ""
-#~ "Temps d'endormissement du processus d'envoi des journaux de transactions entre\n"
-#~ "les réplications des journaux de transactions."
+#~ msgid "worker process"
+#~ msgstr "processus de travail"
 
-#~ msgid "Sets the list of known custom variable classes."
-#~ msgstr "Initialise la liste des classes variables personnalisées connues."
+#~ msgid "built-in type %u not found"
+#~ msgstr "type interne %u non trouvé"
 
-#~ msgid "foreign key constraint \"%s\" of relation \"%s\" does not exist"
-#~ msgstr "la clé étrangère « %s » de la relation « %s » n'existe pas"
+#~ msgid "This can be caused by having a publisher with a higher PostgreSQL major version than the subscriber."
+#~ msgstr "Ceci peut avoir pour cause un publieur ayant une version majeure de PostgreSQL supérieure à l'abonné"
 
-#~ msgid "removing built-in function \"%s\""
-#~ msgstr "suppression de la fonction interne « %s »"
+#~ msgid "data type \"%s.%s\" required for logical replication does not exist"
+#~ msgstr "le type de données « %s/%s » requis par la réplication logique n'existe pas"
 
-#~ msgid "permission denied to drop foreign-data wrapper \"%s\""
-#~ msgstr "droit refusé pour supprimer le wrapper de données distantes « %s »"
+#~ msgid "logical replication could not find row for delete in replication target relation \"%s\""
+#~ msgstr "la réplication logique n'a pas pu trouver la ligne à supprimer dans la relation cible de réplication %s"
 
-#~ msgid "Must be superuser to drop a foreign-data wrapper."
-#~ msgstr "Doit être super-utilisateur pour supprimer un wrapper de données distantes."
+#~ msgid "memory for serializable conflict tracking is nearly exhausted"
+#~ msgstr "la mémoire pour tracer les conflits sérialisables est pratiquement pleine"
 
-#~ msgid "must be superuser to drop text search parsers"
+#~ msgid "There might be an idle transaction or a forgotten prepared transaction causing this."
 #~ msgstr ""
-#~ "doit être super-utilisateur pour supprimer des analyseurs de recherche plein\n"
-#~ "texte"
-
-#~ msgid "must be superuser to drop text search templates"
-#~ msgstr "doit être super-utilisateur pour supprimer des modèles de recherche plein texte"
+#~ "Il pourait y avoir une transaction en attente ou une transaction préparée\n"
+#~ "oubliée causant cela."
 
-#~ msgid "recovery is still in progress, can't accept WAL streaming connections"
-#~ msgstr "la restauration est en cours, ne peut pas accepter les connexions de flux WAL"
+#~ msgid "could not open tablespace directory \"%s\": %m"
+#~ msgstr "n'a pas pu ouvrir le répertoire du tablespace « %s » : %m"
 
-#~ msgid "standby connections not allowed because wal_level=minimal"
-#~ msgstr "connexions standby non autorisées car wal_level=minimal"
+#~ msgid "must be superuser to get file information"
+#~ msgstr "doit être super-utilisateur pour obtenir des informations sur le fichier"
 
-#~ msgid "could not open directory \"pg_tblspc\": %m"
-#~ msgstr "n'a pas pu ouvrir le répertoire « pg_tblspc » : %m"
+#~ msgid "must be superuser to get directory listings"
+#~ msgstr "doit être super-utilisateur pour obtenir le contenu du répertoire"
 
-#~ msgid "could not access root certificate file \"%s\": %m"
-#~ msgstr "n'a pas pu accéder au fichier du certificat racine « %s » : %m"
+#~ msgid "Sets the maximum number of tuples to be sorted using replacement selection."
+#~ msgstr "Configure le nombre maximum de lignes à trier en utilisant la sélection de remplacement."
 
-#~ msgid "SSL certificate revocation list file \"%s\" not found, skipping: %s"
-#~ msgstr "liste de révocation des certificats SSL « %s » introuvable, continue : %s"
+#~ msgid "When more tuples than this are present, quicksort will be used."
+#~ msgstr "Quand plus de lignes que ça sont présentes, quicksort sera utilisé."
 
-#~ msgid "Certificates will not be checked against revocation list."
-#~ msgstr "Les certificats ne seront pas vérifiés avec la liste de révocation."
+#~ msgid "cannot create range partition with empty range"
+#~ msgstr "ne peut pas créer une partition par intervalle avec un intervalle vide"
 
-#~ msgid "missing or erroneous pg_hba.conf file"
-#~ msgstr "fichier pg_hba.conf manquant ou erroné"
+#~ msgid "could not get keyword values for locale \"%s\": %s"
+#~ msgstr "n'a pas pu obtenir les valeurs des mots clés pour la locale « %s » : %s"
 
-#~ msgid "See server log for details."
-#~ msgstr "Voir les journaux applicatifs du serveur pour plus de détails."
+#~ msgid "invalid publish list"
+#~ msgstr "liste de publication invalide"
 
-#~ msgid "Make sure the root.crt file is present and readable."
-#~ msgstr "Assurez-vous que le certificat racine (root.crt) est présent et lisible"
+#~ msgid "column \"%s\" referenced in statistics does not exist"
+#~ msgstr "la colonne « %s » référencée dans les statistiques n'existe pas"
 
-#~ msgid "  --help          show this help, then exit\n"
-#~ msgstr "  --help             affiche cette aide, puis quitte\n"
+#~ msgid "added subscription for table %s.%s"
+#~ msgstr "souscription ajoutée pour la table %s.%s"
 
-#~ msgid "  --version       output version information, then exit\n"
-#~ msgstr "  --version          affiche la version, puis quitte\n"
+#~ msgid "removed subscription for table %s.%s"
+#~ msgstr "a supprimé une souscription pour la table %s.%s"
 
-#~ msgid "CREATE TABLE AS cannot specify INTO"
-#~ msgstr "CREATE TABLE AS ne peut pas spécifier INTO"
+#~ msgid "User \"%s\" has an empty password."
+#~ msgstr "L'utilisateur « %s » a un mot de passe vide."
 
-#~ msgid "column name list not allowed in CREATE TABLE / AS EXECUTE"
-#~ msgstr "la liste de noms de colonnes n'est pas autorisée dans CREATE TABLE / AS EXECUTE"
+#~ msgid "not connected to database"
+#~ msgstr "non connecté à une base de données"
 
-#~ msgid "INSERT ... SELECT cannot specify INTO"
-#~ msgstr "INSERT ... SELECT ne peut pas avoir INTO"
+#~ msgid "invalid input syntax for %s: \"%s\""
+#~ msgstr "syntaxe en entrée invalide pour le type %s : « %s »"
 
-#~ msgid "DECLARE CURSOR cannot specify INTO"
-#~ msgstr "DECLARE CURSOR ne peut pas spécifier INTO"
+#~ msgid "transaction ID "
+#~ msgstr "ID de transaction "
 
-#~ msgid "subquery in FROM cannot have SELECT INTO"
-#~ msgstr "la sous-requête du FROM ne peut pas avoir de SELECT INTO"
+#~ msgid "in progress"
+#~ msgstr "en cours"
 
-#~ msgid "subquery cannot have SELECT INTO"
-#~ msgstr "la sous-requête ne peut pas avoir de SELECT INTO"
+#~ msgid "committed"
+#~ msgstr "validé"
 
-#~ msgid "subquery in WITH cannot have SELECT INTO"
-#~ msgstr "la sous-requête du WITH ne peut pas avoir de SELECT INTO"
+#~ msgid "aborted"
+#~ msgstr "annulé"
 
-#~ msgid "tablespace %u is not empty"
-#~ msgstr "le tablespace %u n'est pas vide"
+#~ msgid "Lower bound of dimension array must be one."
+#~ msgstr "La limite inférieure du tableau doit valoir un."
 
-#~ msgid "consistent state delayed because recovery snapshot incomplete"
-#~ msgstr "état de cohérence pas encore atteint à cause d'un snapshot de restauration incomplet"
+#~ msgid "huge TLB pages not supported on this platform"
+#~ msgstr "Huge Pages TLB non supporté sur cette plateforme."
 
-#~ msgid "SSPI error %x"
-#~ msgstr "erreur SSPI : %x"
+#~ msgid "Only superusers can use untrusted languages."
+#~ msgstr ""
+#~ "Seuls les super-utilisateurs peuvent utiliser des langages qui ne sont pas\n"
+#~ "de confiance."
 
-#~ msgid "%s (%x)"
-#~ msgstr "%s (%x)"
+#~ msgid "function returning set of rows cannot return null value"
+#~ msgstr ""
+#~ "la fonction renvoyant un ensemble de lignes ne peut pas renvoyer une valeur\n"
+#~ "NULL"
 
-#~ msgid "resetting unlogged relations: cleanup %d init %d"
-#~ msgstr "réinitialisation des relations non tracées : nettoyage %d initialisation %d"
+#~ msgid "system columns cannot be used in an ON CONFLICT clause"
+#~ msgstr "les colonnes systèmes ne peuvent pas être utilisées dans une clause ON CONFLICT"
 
-#~ msgid "ALTER TYPE USING is only supported on plain tables"
-#~ msgstr "ALTER TYPE USING est seulement supportés sur les tables standards"
+#~ msgid "role \"%s\" is reserved"
+#~ msgstr "le rôle « %s » est réservé"
 
-#~ msgid "index \"%s\" is not a b-tree"
-#~ msgstr "l'index « %s » n'est pas un btree"
+#~ msgid "time zone abbreviation \"%s\" is not used in time zone \"%s\""
+#~ msgstr "l'abréviation « %s » du fuseau horaire n'est pas utilisée dans le fuseau horaire « %s »"
 
-#~ msgid "unable to read symbolic link %s: %m"
-#~ msgstr "incapable de lire le lien symbolique %s : %m"
+#~ msgid "invalid length in external \"numeric\" value"
+#~ msgstr "longueur invalide dans la valeur externe « numeric »"
 
-#~ msgid "unable to open directory pg_tblspc: %m"
-#~ msgstr "impossible d'ouvrir le répertoire p_tblspc : %m"
+#~ msgid "too few arguments for format"
+#~ msgstr "trop peu d'arguments pour le format"
 
-#~ msgid "Write-Ahead Log / Streaming Replication"
-#~ msgstr "Write-Ahead Log / Réplication en flux"
+#~ msgid "mapped win32 error code %lu to %d"
+#~ msgstr "correspondance du code d'erreur win32 %lu en %d"
 
-#~ msgid "syntax error in recovery command file: %s"
-#~ msgstr "erreur de syntaxe dans le fichier de restauration : %s"
+#~ msgid "unrecognized win32 error code: %lu"
+#~ msgstr "code d'erreur win32 non reconnu : %lu"
 
-#~ msgid "Lines should have the format parameter = 'value'."
-#~ msgstr "Les lignes devraient avoir le format paramètre = 'valeur'"
+#~ msgid "invalid value for recovery parameter \"recovery_target\""
+#~ msgstr "valeur invalide pour le paramètre de restauration « recovery_target »"
 
-#~ msgid "index %u/%u/%u needs VACUUM FULL or REINDEX to finish crash recovery"
-#~ msgstr ""
-#~ "l'index  %u/%u/%u a besoin d'un VACUUM FULL ou d'un REINDEX pour terminer la\n"
-#~ "récupération suite à un arrêt brutal"
+#~ msgid "redo record is at %X/%X; shutdown %s"
+#~ msgstr "l'enregistrement à ré-exécuter se trouve à %X/%X ; arrêt %s"
 
-#~ msgid "Incomplete insertion detected during crash replay."
-#~ msgstr ""
-#~ "Insertion incomplète détectée lors de la ré-exécution des requêtes suite à\n"
-#~ "l'arrêt brutal."
+#~ msgid "next transaction ID: %u/%u; next OID: %u"
+#~ msgstr "prochain identifiant de transaction : %u/%u ; prochain OID : %u"
 
-#~ msgid "index \"%s\" needs VACUUM or REINDEX to finish crash recovery"
-#~ msgstr ""
-#~ "l'index  « %s » a besoin d'un VACUUM ou d'un REINDEX pour terminer la\n"
-#~ "récupération suite à un arrêt brutal"
+#~ msgid "next MultiXactId: %u; next MultiXactOffset: %u"
+#~ msgstr "prochain MultiXactId : %u ; prochain MultiXactOffset : %u"
 
-#~ msgid "index \"%s\" needs VACUUM FULL or REINDEX to finish crash recovery"
+#~ msgid "oldest unfrozen transaction ID: %u, in database %u"
 #~ msgstr ""
-#~ "l'index  « %s » a besoin d'un VACUUM FULL ou d'un REINDEX pour terminer la\n"
-#~ "récupération suite à un arrêt brutal"
+#~ "identifiant de transaction non gelé le plus ancien : %u, dans la base de\n"
+#~ "données %u"
 
-#~ msgid "EnumValuesCreate() can only set a single OID"
-#~ msgstr "EnumValuesCreate() peut seulement initialiser un seul OID"
+#~ msgid "invalid xlog switch record at %X/%X"
+#~ msgstr "enregistrement de basculement du journal de transaction invalide à %X/%X"
 
-#~ msgid "clustering \"%s.%s\""
-#~ msgstr "exécution de CLUSTER sur « %s.%s »"
+#~ msgid "record with zero length at %X/%X"
+#~ msgstr "enregistrement de longueur nulle à %X/%X"
 
-#~ msgid "cannot cluster on index \"%s\" because access method does not handle null values"
-#~ msgstr ""
-#~ "ne peut pas créer un cluster sur l'index « %s » car la méthode d'accès de\n"
-#~ "l'index ne gère pas les valeurs NULL"
+#~ msgid "invalid backup block size in record at %X/%X"
+#~ msgstr "taille du bloc de sauvegarde invalide dans l'enregistrement à %X/%X"
 
-#~ msgid "You might be able to work around this by marking column \"%s\" NOT NULL, or use ALTER TABLE ... SET WITHOUT CLUSTER to remove the cluster specification from the table."
-#~ msgstr ""
-#~ "Vous pourriez contourner ceci en marquant la colonne « %s » avec la\n"
-#~ "contrainte NOT NULL ou en utilisant ALTER TABLE ... SET WITHOUT CLUSTER pour\n"
-#~ "supprimer la spécification CLUSTER de la table."
+#~ msgid "incorrect hole size in record at %X/%X"
+#~ msgstr "taille du trou incorrect à l'enregistrement %X/%X"
 
-#~ msgid "You might be able to work around this by marking column \"%s\" NOT NULL."
-#~ msgstr "Vous pouvez contourner ceci en marquant la colonne « %s » comme NOT NULL."
+#~ msgid "incorrect total length in record at %X/%X"
+#~ msgstr "longueur totale incorrecte à l'enregistrement %X/%X"
 
-#~ msgid "cannot cluster on expressional index \"%s\" because its index access method does not handle null values"
+#~ msgid "WAL file is from different database system: WAL file database system identifier is %s, pg_control database system identifier is %s."
 #~ msgstr ""
-#~ "ne peut pas exécuter CLUSTER sur l'index à expression « %s » car sa méthode\n"
-#~ "d'accès ne gère pas les valeurs NULL"
-
-#~ msgid "\"%s\" is not a table, view, or composite type"
-#~ msgstr "« %s » n'est pas une table, une vue ou un type composite"
+#~ "L'identifiant du journal de transactions du système de base de données est %s,\n"
+#~ "l'identifiant pg_control du système de base de données dans pg_control est %s."
 
-#~ msgid "must be superuser to comment on procedural language"
+#~ msgid "WAL file is from different database system: Incorrect XLOG_SEG_SIZE in page header."
 #~ msgstr ""
-#~ "doit être super-utilisateur pour ajouter un commentaire sur un langage de\n"
-#~ "procédures"
+#~ "le journal de transactions provient d'un système de bases de données différent :\n"
+#~ "XLOG_SEG_SIZE incorrect dans l'en-tête de page."
 
-#~ msgid "must be superuser to comment on text search parser"
+#~ msgid "WAL file is from different database system: Incorrect XLOG_BLCKSZ in page header."
 #~ msgstr ""
-#~ "doit être super-utilisateur pour ajouter un commentaire sur l'analyseur de\n"
-#~ "recherche plein texte"
+#~ "le journal de transactions provient d'un système de bases de données différent :\n"
+#~ "XLOG_BLCKSZ incorrect dans l'en-tête de page."
 
-#~ msgid "must be superuser to comment on text search template"
-#~ msgstr ""
-#~ "doit être super-utilisateur pour ajouter un commentaire sur un modèle de\n"
-#~ "recherche plein texte"
+#~ msgid "=> is deprecated as an operator name"
+#~ msgstr "=> est un nom d'opérateur obsolète"
 
-#~ msgid "function \"%s\" is already in schema \"%s\""
-#~ msgstr "la fonction « %s » existe déjà dans le schéma « %s »"
+#~ msgid "This name may be disallowed altogether in future versions of PostgreSQL."
+#~ msgstr "Ce nom pourrait être interdit dans les prochaines versions de PostgreSQL."
 
-#~ msgid "cannot reference temporary table from permanent table constraint"
+#~ msgid "\"%s\" is not a table, materialized view, composite type, or foreign table"
+#~ msgstr "« %s » n'est ni une table, ni une vue matérialisée, ni un type composite, ni une table distante"
+
+#~ msgid "Specify a USING expression to perform the conversion."
+#~ msgstr "Donnez une expression USING pour réaliser la conversion."
+
+#~ msgid ""
+#~ "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n"
+#~ "pages: %d removed, %d remain\n"
+#~ "tuples: %.0f removed, %.0f remain, %.0f are dead but not yet removable\n"
+#~ "buffer usage: %d hits, %d misses, %d dirtied\n"
+#~ "avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n"
+#~ "system usage: %s"
 #~ msgstr ""
-#~ "ne peut pas référencer une table temporaire à partir d'une contrainte de\n"
-#~ "table permanente"
+#~ "VACUUM automatique de la table « %s.%s.%s » : parcours d'index : %d\n"
+#~ "pages : %d supprimées, %d restantes\n"
+#~ "lignes : %.0f supprimées, %.0f restantes, %.0f sont mortes mais non supprimables\n"
+#~ "utilisation des tampons : %d lus dans le cache, %d lus hors du cache, %d modifiés\n"
+#~ "taux moyen de lecture : %.3f Mo/s, taux moyen d'écriture : %.3f Mo/s\n"
+#~ "utilisation système : %s"
 
-#~ msgid "cannot reference permanent table from temporary table constraint"
+#~ msgid ""
+#~ "%.0f dead row versions cannot be removed yet.\n"
+#~ "There were %.0f unused item pointers.\n"
+#~ "%u pages are entirely empty.\n"
+#~ "%s."
 #~ msgstr ""
-#~ "ne peut pas référencer une table permanente à partir de la contrainte de\n"
-#~ "table temporaire"
+#~ "%.0f versions de lignes mortes ne peuvent pas encore être supprimées.\n"
+#~ "Il y avait %.0f pointeurs d'éléments inutilisés.\n"
+#~ "%u pages sont entièrement vides.\n"
+#~ "%s."
 
-#~ msgid "composite type must have at least one attribute"
-#~ msgstr "le type composite doit avoir au moins un attribut"
+#~ msgid "interval precision specified twice"
+#~ msgstr "précision d'intervalle spécifiée deux fois"
 
-#~ msgid "database \"%s\" not found"
-#~ msgstr "base de données « %s » non trouvée"
+#~ msgid "received password packet"
+#~ msgstr "paquet du mot de passe reçu"
 
-#~ msgid "invalid list syntax for parameter \"datestyle\""
-#~ msgstr "syntaxe de liste invalide pour le paramètre « datestyle »"
+#~ msgid "SSL failure during renegotiation start"
+#~ msgstr "échec SSL au début de la re-négotiation"
 
-#~ msgid "unrecognized \"datestyle\" key word: \"%s\""
-#~ msgstr "mot clé « datestyle » non reconnu : « %s »"
+#~ msgid "SSL handshake failure on renegotiation, retrying"
+#~ msgstr "échec du handshake SSL lors de la renégotiation, nouvelle tentative"
 
-#~ msgid "invalid interval value for time zone: month not allowed"
-#~ msgstr "valeur d'intervalle invalide pour le fuseau horaire : les mois ne sont pas autorisés"
+#~ msgid "could not complete SSL handshake on renegotiation, too many failures"
+#~ msgstr "n'a pas pu terminer la poignée de main de renégotiation, trop d'échecs"
 
-#~ msgid "invalid interval value for time zone: day not allowed"
-#~ msgstr "valeur d'intervalle invalide pour le fuseau horaire : jour non autorisé"
+#~ msgid "SSL failed to renegotiate connection before limit expired"
+#~ msgstr "SSL a échoué à renégotier la connexion avant l'expiration du délai"
 
-#~ msgid "argument to pg_get_expr() must come from system catalogs"
-#~ msgstr "l'argument de pg_get_expr() doit provenir des catalogues systèmes"
+#~ msgid "could not set socket to blocking mode: %m"
+#~ msgstr "n'a pas pu activer le mode bloquant pour la socket : %m"
 
-#~ msgid "could not enable credential reception: %m"
-#~ msgstr "n'a pas pu activer la réception de lettres de créance : %m"
+#~ msgid "%s: setsysinfo failed: %s\n"
+#~ msgstr "%s : setsysinfo a échoué : %s\n"
 
-#~ msgid "could not get effective UID from peer credentials: %m"
-#~ msgstr "n'a pas pu obtenir l'UID réel à partir des pièces d'identité de l'autre : %m"
+#~ msgid "  -A 1|0             enable/disable run-time assert checking\n"
+#~ msgstr ""
+#~ "  -A 1|0             active/désactive la vérification des limites (assert) à\n"
+#~ "                     l'exécution\n"
 
-#~ msgid "Ident authentication is not supported on local connections on this platform"
-#~ msgstr "l'authentification Ident n'est pas supportée sur les connexions locales sur cette plateforme"
+#~ msgid "subquery must return a column"
+#~ msgstr "la sous-requête doit renvoyer une colonne"
 
-#~ msgid "could not create log file \"%s\": %m"
-#~ msgstr "n'a pas pu créer le journal applicatif « %s » : %m"
+#~ msgid "Consider increasing the configuration parameter \"checkpoint_segments\"."
+#~ msgstr "Considèrez l'augmentation du paramètre « checkpoint_segments »."
 
-#~ msgid "could not open new log file \"%s\": %m"
-#~ msgstr "n'a pas pu ouvrir le nouveau journal applicatif « %s » : %m"
+#~ msgid "WAL archival (archive_mode=on) requires wal_level \"archive\", \"hot_standby\", or \"logical\""
+#~ msgstr ""
+#~ "l'archivage des journaux de transactions (archive_mode=on) nécessite que\n"
+#~ "le paramètre wal_level soit initialisé avec « archive », « hot_standby » ou « logical »"
 
-#~ msgid "Sets immediate fsync at commit."
-#~ msgstr "Configure un fsync immédiat lors du commit."
+#~ msgid "invalid value for parameter \"replication\""
+#~ msgstr "valeur invalide pour le paramètre « replication »"
 
-#~ msgid "invalid list syntax for parameter \"log_destination\""
-#~ msgstr "syntaxe de liste invalide pour le paramètre « log_destination »"
+#~ msgid "postmaster became multithreaded"
+#~ msgstr "le postmaster est devenu multithreadé"
 
-#~ msgid "unrecognized \"log_destination\" key word: \"%s\""
-#~ msgstr "mot clé « log_destination » non reconnu : « %s »"
+#~ msgid "archive member \"%s\" too large for tar format"
+#~ msgstr "membre « %s » de l'archive trop volumineux pour le format tar"
 
-#~ msgid "cannot drop \"%s\" because it is being used by active queries in this session"
-#~ msgstr ""
-#~ "ne peut pas supprimer « %s » car cet objet est en cours d'utilisation par\n"
-#~ "des requêtes actives dans cette session"
+#~ msgid "could not determine input data types"
+#~ msgstr "n'a pas pu déterminer les types de données en entrée"
 
-#~ msgid "parameter \"recovery_target_inclusive\" requires a Boolean value"
-#~ msgstr "le paramètre « recovery_target_inclusive » requiert une valeur booléenne"
+#~ msgid "neither input type is an array"
+#~ msgstr "aucun type de données n'est un tableau"
 
-#~ msgid "parameter \"standby_mode\" requires a Boolean value"
-#~ msgstr "le paramètre « standby_mode » requiert une valeur booléenne"
+#~ msgid "unexpected \"=\""
+#~ msgstr "« = » inattendu"
 
-#~ msgid "Not safe to send CSV data\n"
-#~ msgstr "Envoi non sûr des données CSV\n"
+#~ msgid "invalid symbol"
+#~ msgstr "symbole invalide"
 
-#~ msgid "recovery restart point at %X/%X with latest known log time %s"
+#~ msgid "must be superuser or have the same role to cancel queries running in other server processes"
 #~ msgstr ""
-#~ "point de relancement de la restauration sur %X/%X avec %s comme dernière\n"
-#~ "date connue du journal"
+#~ "doit être super-utilisateur ou avoir le même rôle pour annuler des requêtes\n"
+#~ "exécutées dans les autres processus serveur"
 
-#~ msgid "restartpoint_command = '%s'"
-#~ msgstr "restartpoint_command = '%s'"
+#~ msgid "must be superuser or have the same role to terminate other server processes"
+#~ msgstr ""
+#~ "doit être super-utilisateur ou avoir le même rôle pour fermer les connexions\n"
+#~ "exécutées dans les autres processus serveur"
 
-#~ msgid "usermap \"%s\""
-#~ msgstr "correspondance utilisateur « %s »"
+#~ msgid "cannot accept a value of type pg_node_tree"
+#~ msgstr "ne peut pas accepter une valeur de type pg_node_tree"
 
-#~ msgid "WAL archiving is not active"
-#~ msgstr "l'archivage des journaux de transactions n'est pas actif"
+#~ msgid "Turns on various assertion checks."
+#~ msgstr "Active les différentes vérifications des assertions."
 
-#~ msgid "archive_mode must be enabled at server start."
-#~ msgstr "archive_mode doit être activé au lancement du serveur."
+#~ msgid "This is a debugging aid."
+#~ msgstr "C'est une aide de débogage."
 
-#~ msgid "archive_command must be defined before online backups can be made safely."
-#~ msgstr ""
-#~ "archive_command doit être défini avant que les sauvegardes à chaud puissent\n"
-#~ "s'effectuer correctement."
+#~ msgid "This parameter doesn't do anything."
+#~ msgstr "Ce paramètre ne fait rien."
 
-#~ msgid "During recovery, allows connections and queries.  During normal running, causes additional info to be written to WAL to enable hot standby mode on WAL standby nodes."
+#~ msgid "It's just here so that we won't choke on SET AUTOCOMMIT TO ON from 7.3-vintage clients."
 #~ msgstr ""
-#~ "Lors de la restauration, autorise les connexions et les requêtes. Lors d'une\n"
-#~ "exécution normale, fait que des informations supplémentaires sont écrites dans\n"
-#~ "les journaux de transactions pour activer le mode Hot Standby sur les nœuds\n"
-#~ "en attente."
-
-#~ msgid "unlogged operation performed, data may be missing"
-#~ msgstr "opération réalisée non tracée, les données pourraient manquer"
+#~ "C'est ici uniquement pour ne pas avoir de problèmes avec le SET AUTOCOMMIT\n"
+#~ "TO ON des clients 7.3."
 
-#~ msgid "not enough shared memory for walsender"
-#~ msgstr "pas assez de mémoire partagée pour le processus d'envoi des journaux de transactions"
+#~ msgid "Sets the maximum distance in log segments between automatic WAL checkpoints."
+#~ msgstr ""
+#~ "Initialise la distance maximale dans les journaux de transaction entre chaque\n"
+#~ "point de vérification (checkpoints) des journaux."
 
-#~ msgid "not enough shared memory for walreceiver"
+#~ msgid "Set the amount of traffic to send and receive before renegotiating the encryption keys."
 #~ msgstr ""
-#~ "pas assez de mémoire partagée pour le processus de réception des journaux de\n"
-#~ "transactions"
+#~ "Configure la quantité de trafic à envoyer et recevoir avant la renégotiation\n"
+#~ "des clés d'enchiffrement."
 
-#~ msgid "connection limit exceeded for non-superusers"
-#~ msgstr "limite de connexions dépassée pour les utilisateurs standards"
+#~ msgid "assertion checking is not supported by this build"
+#~ msgstr "la vérification de l'assertion n'a pas été intégrée lors de la compilation"
 
-#~ msgid "not enough shared memory for background writer"
-#~ msgstr "pas assez de mémoire partagée pour le processus d'écriture en tâche de fond"
+#~ msgid "%s \"%s\": return code %d"
+#~ msgstr "%s « %s » : code de retour %d"
 
-#, fuzzy
-#~ msgid "couldn't put socket to non-blocking mode: %m"
-#~ msgstr "n'a pas pu activer le mode non-bloquant pour la socket : %s\n"
+#~ msgid "could not parse transaction log location \"%s\""
+#~ msgstr "n'a pas pu analyser l'emplacement du journal des transactions « %s »"
 
-#, fuzzy
-#~ msgid "couldn't put socket to blocking mode: %m"
-#~ msgstr "n'a pas pu activer le mode bloquant pour la socket : %s\n"
+#~ msgid "invalid input syntax for transaction log location: \"%s\""
+#~ msgstr "syntaxe invalide en entrée pour l'emplacement du journal de transactions : « %s »"
 
-#~ msgid "WAL file SYSID is %s, pg_control SYSID is %s"
-#~ msgstr "le SYSID du journal de transactions WAL est %s, celui de pg_control est %s"
+#~ msgid "trigger \"%s\" for table \"%s\" does not exist, skipping"
+#~ msgstr "le trigger « %s » pour la table « %s » n'existe pas, poursuite du traitement"
 
-#, fuzzy
-#~ msgid "sorry, too many standbys already"
-#~ msgstr "désolé, trop de clients sont déjà connectés"
+#~ msgid "Kerberos 5 authentication failed for user \"%s\""
+#~ msgstr "authentification Kerberos 5 échouée pour l'utilisateur « %s »"
 
-#, fuzzy
-#~ msgid "invalid WAL message received from primary"
-#~ msgstr "format du message invalide"
+#~ msgid "Kerberos initialization returned error %d"
+#~ msgstr "l'initialisation de Kerberos a retourné l'erreur %d"
 
-#~ msgid "PID %d is among the slowest backends."
-#~ msgstr "Le PID %d est parmi les processus serveur les plus lents."
+#~ msgid "Kerberos keytab resolving returned error %d"
+#~ msgstr "la résolution keytab de Kerberos a renvoyé l'erreur %d"
 
-#~ msgid "transaction is read-only"
-#~ msgstr "la transaction est en lecture seule"
+#~ msgid "Kerberos sname_to_principal(\"%s\", \"%s\") returned error %d"
+#~ msgstr "sname_to_principal(« %s », « %s ») de Kerberos a renvoyé l'erreur %d"
 
-#~ msgid "binary value is out of range for type bigint"
-#~ msgstr "la valeur binaire est en dehors des limites du type bigint"
+#~ msgid "Kerberos recvauth returned error %d"
+#~ msgstr "recvauth de Kerberos a renvoyé l'erreur %d"
 
-#~ msgid "redo starts at %X/%X, consistency will be reached at %X/%X"
-#~ msgstr "la restauration comme à %X/%X, la cohérence sera atteinte à %X/%X"
+#~ msgid "Kerberos unparse_name returned error %d"
+#~ msgstr "unparse_name de Kerberos a renvoyé l'erreur %d"
 
-#~ msgid "This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by \"client_encoding\"."
-#~ msgstr ""
-#~ "Cette erreur peut aussi survenir si la séquence d'octets ne correspond pas\n"
-#~ "au jeu de caractères attendu par le serveur, le jeu étant contrôlé par\n"
-#~ "« client_encoding »."
+#~ msgid "local user with ID %d does not exist"
+#~ msgstr "l'utilisateur local dont l'identifiant est %d n'existe pas"
 
-#~ msgid "Sets the language used in DO statement if LANGUAGE is not specified."
+#~ msgid "SSL renegotiation failure"
+#~ msgstr "échec lors de la re-négotiation SSL"
+
+#~ msgid "krb5 authentication is not supported on local sockets"
 #~ msgstr ""
-#~ "Configure le langage utilisé dans une instruction DO si la clause LANGUAGE n'est\n"
-#~ "pas spécifiée."
+#~ "l'authentification krb5 n'est pas supportée sur les connexions locales par\n"
+#~ "socket"
 
-#~ msgid "shared index \"%s\" can only be reindexed in stand-alone mode"
-#~ msgstr "un index partagé « %s » peut seulement être réindexé en mode autonome"
+#~ msgid "%s: invalid effective UID: %d\n"
+#~ msgstr "%s : UID effectif invalide : %d\n"
 
-#~ msgid "shared table \"%s\" can only be reindexed in stand-alone mode"
-#~ msgstr "la table partagée « %s » peut seulement être réindexé en mode autonome"
+#~ msgid "%s: could not determine user name (GetUserName failed)\n"
+#~ msgstr "%s : n'a pas pu déterminer le nom de l'utilisateur (GetUserName a échoué)\n"
 
-#~ msgid "cannot truncate system relation \"%s\""
-#~ msgstr "ne peut pas tronquer la relation système « %s »"
+#~ msgid "Expected 1 tuple with 3 fields, got %d tuples with %d fields."
+#~ msgstr "Attendait 1 ligne avec 3 champs, a obtenu %d lignes avec %d champs."
 
-#~ msgid "number of distinct values %g is too low"
-#~ msgstr "le nombre de valeurs distinctes %g est trop basse"
+#~ msgid "Security-barrier views are not automatically updatable."
+#~ msgstr "Les vues avec barrière de sécurité ne sont pas automatiquement disponibles en écriture."
 
-#~ msgid "directory \"%s\" is not empty"
-#~ msgstr "le répertoire « %s » n'est pas vide"
+#~ msgid "Views that return the same column more than once are not automatically updatable."
+#~ msgstr "Les vues qui renvoient la même colonne plus d'une fois ne sont pas automatiquement disponibles en écriture."
 
-#~ msgid "relation \"%s\" TID %u/%u: XMIN_COMMITTED not set for transaction %u --- cannot shrink relation"
-#~ msgstr ""
-#~ "relation « %s », TID %u/%u : XMIN_COMMITTED non configuré pour la\n"
-#~ "transaction %u --- n'a pas pu diminuer la taille de la relation"
+#~ msgid "wrong affix file format for flag"
+#~ msgstr "mauvais format de fichier affixe pour le drapeau"
 
-#~ msgid "relation \"%s\" TID %u/%u: dead HOT-updated tuple --- cannot shrink relation"
-#~ msgstr ""
-#~ "relation « %s », TID %u/%u : ligne morte mise à jour par HOT --- n'a pas pu\n"
-#~ "diminuer la taille de la relation"
+#~ msgid "missing assignment operator"
+#~ msgstr "opérateur d'affectation manquant"
 
-#~ msgid "relation \"%s\" TID %u/%u: InsertTransactionInProgress %u --- cannot shrink relation"
-#~ msgstr ""
-#~ "relation « %s », TID %u/%u : InsertTransactionInProgress %u --- n'a pas pu\n"
-#~ "diminuer la taille de la relation"
+#~ msgid "cannot call json_object_keys on an array"
+#~ msgstr "ne peut pas appeler json_object_keys sur un tableau"
 
-#~ msgid "relation \"%s\" TID %u/%u: DeleteTransactionInProgress %u --- cannot shrink relation"
-#~ msgstr ""
-#~ "relation « %s », TID %u/%u : DeleteTransactionInProgress %u --- n'a pas pu\n"
-#~ "diminuer la taille de la relation"
+#~ msgid "cannot call function with null path elements"
+#~ msgstr "ne peut pas appeler une fonction avec des éléments chemins NULL"
 
-#~ msgid ""
-#~ "%.0f dead row versions cannot be removed yet.\n"
-#~ "Nonremovable row versions range from %lu to %lu bytes long.\n"
-#~ "There were %.0f unused item pointers.\n"
-#~ "Total free space (including removable row versions) is %.0f bytes.\n"
-#~ "%u pages are or will become empty, including %u at the end of the table.\n"
-#~ "%u pages containing %.0f free bytes are potential move destinations.\n"
-#~ "%s."
-#~ msgstr ""
-#~ "%.0f versions de lignes mortes ne peuvent pas encore être supprimées.\n"
-#~ "Les versions non supprimables de ligne vont de %lu to %lu octets.\n"
-#~ "Il existait %.0f pointeurs d'éléments inutilisés.\n"
-#~ "L'espace libre total (incluant les versions supprimables de ligne) est de\n"
-#~ "%.0f octets.\n"
-#~ "%u pages sont ou deviendront vides, ceci incluant %u pages en fin de la\n"
-#~ "table.\n"
-#~ "%u pages contenant %.0f octets libres sont des destinations de déplacement\n"
-#~ "disponibles.\n"
-#~ "%s."
+#~ msgid "cannot extract array element from a non-array"
+#~ msgstr "ne peut pas extraire un élément du tableau à partir d'un objet qui n'est pas un tableau"
 
-#~ msgid "\"%s\": moved %u row versions, truncated %u to %u pages"
-#~ msgstr "« %s » : %u versions de ligne déplacées, %u pages tronquées sur %u"
+#~ msgid "cannot extract field from a non-object"
+#~ msgstr "ne peut pas extraire le chemin à partir d'un non-objet"
 
-#~ msgid ""
-#~ "%u index pages have been deleted, %u are currently reusable.\n"
-#~ "%s."
-#~ msgstr ""
-#~ "%u pages d'index ont été supprimées, %u sont actuellement réutilisables.\n"
-#~ "%s."
+#~ msgid "cannot call json_array_elements on a non-array"
+#~ msgstr "ne peut pas appeler json_array_elements sur un objet qui n'est pas un tableau"
 
-#~ msgid "index \"%s\" contains %.0f row versions, but table contains %.0f row versions"
-#~ msgstr ""
-#~ "l'index « %s » contient %.0f versions de ligne, mais la table contient %.0f\n"
-#~ "versions de ligne"
+#~ msgid "cannot call json_array_elements on a scalar"
+#~ msgstr "ne peut pas appeler json_array_elements sur un scalaire"
 
-#~ msgid "Rebuild the index with REINDEX."
-#~ msgstr "Reconstruisez l'index avec REINDEX."
+#~ msgid "first argument of json_populate_record must be a row type"
+#~ msgstr "le premier argument de json_populate_record doit être un type ROW"
 
-#~ msgid "frame start at CURRENT ROW is not implemented"
-#~ msgstr "début du frame à CURRENT ROW n'est pas implémenté"
+#~ msgid "first argument of json_populate_recordset must be a row type"
+#~ msgstr "le premier argument de json_populate_recordset doit être un type ROW"
 
-#~ msgid "database system is in consistent recovery mode"
-#~ msgstr "le système de bases de données est dans un mode de restauration cohérent"
+#~ msgid "cannot call json_populate_recordset on an object"
+#~ msgstr "ne peut pas appeler json_populate_recordset sur un objet"
 
-#~ msgid "DISTINCT is supported only for single-argument aggregates"
-#~ msgstr "DISTINCT est seulement supporté pour les agrégats à un seul argument"
+#~ msgid "cannot call json_populate_recordset with nested objects"
+#~ msgstr "ne peut pas appeler json_populate_recordset sur des objets imbriqués"
 
-#~ msgid "index row size %lu exceeds btree maximum, %lu"
-#~ msgstr "la taille de la ligne index %lu dépasse le maximum de btree, %lu"
+#~ msgid "must call json_populate_recordset on an array of objects"
+#~ msgstr "doit appeler json_populate_recordset sur un tableau d'objets"
 
-#~ msgid "Table contains duplicated values."
-#~ msgstr "La table contient des valeurs dupliquées."
+#~ msgid "cannot call json_populate_recordset with nested arrays"
+#~ msgstr "ne peut pas appeler json_populate_recordset avec des tableaux imbriqués"
 
-#~ msgid "Automatically adds missing table references to FROM clauses."
-#~ msgstr ""
-#~ "Ajoute automatiquement les références à la table manquant dans les clauses\n"
-#~ "FROM."
+#~ msgid "cannot call json_populate_recordset on a scalar"
+#~ msgstr "ne peut pas appeler json_populate_recordset sur un scalaire"
 
-#~ msgid "Sets the regular expression \"flavor\"."
-#~ msgstr "Initialise l'expression rationnelle « flavor »."
+#~ msgid "cannot call json_populate_recordset on a nested object"
+#~ msgstr "ne peut pas appeler json_populate_recordset sur un objet imbriqué"
 
-#~ msgid "attempted change of parameter \"%s\" ignored"
-#~ msgstr "tentative de modification du paramètre « %s » ignoré"
+#~ msgid "No description available."
+#~ msgstr "Aucune description disponible."
 
-#~ msgid "This parameter cannot be changed after server start."
-#~ msgstr "Ce paramètre ne peut pas être modifié après le lancement du serveur"
+#~ msgid "Sets the name of the Kerberos service."
+#~ msgstr "Initialise le nom du service Kerberos."
 
-#~ msgid "invalid database name \"%s\""
-#~ msgstr "nom de base de données « %s » invalide"
+#~ msgid "time zone offset %d is not a multiple of 900 sec (15 min) in time zone file \"%s\", line %d"
+#~ msgstr ""
+#~ "le décalage %d du fuseau horaire n'est pas un multiples de 900 secondes\n"
+#~ "(15 minutes) dans le fichier des fuseaux horaires « %s », ligne %d"
 
-#~ msgid "invalid role name \"%s\""
-#~ msgstr "nom de rôle « %s » invalide"
+#~ msgid "Perhaps out of disk space?"
+#~ msgstr "Peut-être manquez-vous de place disque ?"
 
-#~ msgid "invalid role password \"%s\""
-#~ msgstr "mot de passe « %s » de l'utilisateur invalide"
+#~ msgid "could not change directory to \"%s\""
+#~ msgstr "n'a pas pu accéder au répertoire « %s »"
 
-#~ msgid "cannot specify CSV in BINARY mode"
-#~ msgstr "ne peut pas spécifier CSV en mode binaire (BINARY)"
+#~ msgid "unlogged GiST indexes are not supported"
+#~ msgstr "les index GiST non tracés ne sont pas supportés"
 
-#~ msgid "cannot set session authorization within security-definer function"
-#~ msgstr "ne peut pas exécuter SESSION AUTHORIZATION sur la fonction SECURITY DEFINER"
+#~ msgid "could not open file \"%s\" (log file %u, segment %u): %m"
+#~ msgstr "n'a pas pu ouvrir le fichier « %s » (journal de transactions %u, segment %u) : %m"
 
-#~ msgid "SELECT FOR UPDATE/SHARE is not supported within a query with multiple result relations"
+#~ msgid "there is no contrecord flag in log file %u, segment %u, offset %u"
 #~ msgstr ""
-#~ "SELECT FOR UPDATE/SHARE n'est pas supporté dans une requête avec plusieurs\n"
-#~ "relations"
-
-#~ msgid "could not remove relation %s: %m"
-#~ msgstr "n'a pas pu supprimer la relation %s : %m"
+#~ "il n'y a pas de drapeaux « contrecord » dans le journal de transactions %u,\n"
+#~ "segment %u, décalage %u"
 
-#~ msgid "could not remove segment %u of relation %s: %m"
-#~ msgstr "n'a pas pu supprimer le segment %u de la relation %s : %m"
+#~ msgid "invalid contrecord length %u in log file %u, segment %u, offset %u"
+#~ msgstr ""
+#~ "longueur invalide du « contrecord » %u dans le journal de tranasctions %u,\n"
+#~ "segment %u, décalage %u"
 
-#~ msgid "could not seek to block %u of relation %s: %m"
-#~ msgstr "n'a pas pu se positionner sur le bloc %u de la relation %s : %m"
+#~ msgid "Incorrect XLOG_SEG_SIZE in page header."
+#~ msgstr "XLOG_SEG_SIZE incorrecte dans l'en-tête de page."
 
-#~ msgid "could not extend relation %s: %m"
-#~ msgstr "n'a pas pu étendre la relation %s : %m"
+#~ msgid "Incorrect XLOG_BLCKSZ in page header."
+#~ msgstr "XLOG_BLCKSZ incorrect dans l'en-tête de page."
 
-#~ msgid "could not open relation %s: %m"
-#~ msgstr "n'a pas pu ouvrir la relation %s : %m"
+#~ msgid "xrecoff \"%X\" is out of valid range, 0..%X"
+#~ msgstr "xrecoff « %X » en dehors des limites valides, 0..%X"
 
-#~ msgid "could not read block %u of relation %s: %m"
-#~ msgstr "n'a pas pu lire le bloc %u de la relation %s : %m"
+#~ msgid "uncataloged table %s"
+#~ msgstr "table %s sans catalogue"
 
-#~ msgid "could not write block %u of relation %s: %m"
-#~ msgstr "n'a pas pu écrire le bloc %u de la relation %s : %m"
+#~ msgid "cannot use window function in default expression"
+#~ msgstr "ne peut pas utiliser une fonction window dans une expression par défaut"
 
-#~ msgid "could not open segment %u of relation %s: %m"
-#~ msgstr "n'a pas pu ouvrir le segment %u de la relation %s : %m"
+#~ msgid "cannot use window function in check constraint"
+#~ msgstr "ne peut pas utiliser une fonction window dans une contrainte de vérification"
 
-#~ msgid "could not fsync segment %u of relation %s: %m"
+#~ msgid "A function returning ANYRANGE must have at least one ANYRANGE argument."
 #~ msgstr ""
-#~ "n'a pas pu synchroniser sur disque (fsync) le segment %u de la relation\n"
-#~ "%s : %m"
+#~ "Une fonction renvoyant ANYRANGE doit avoir au moins un argument du type\n"
+#~ "ANYRANGE."
 
-#~ msgid "could not fsync segment %u of relation %s but retrying: %m"
-#~ msgstr ""
-#~ "n'a pas pu synchroniser sur disque (fsync) le segment %u de la relation\n"
-#~ "%s, nouvelle tentative : %m"
+#~ msgid "%s already exists in schema \"%s\""
+#~ msgstr "%s existe déjà dans le schéma « %s »"
 
-#~ msgid "could not seek to end of segment %u of relation %s: %m"
-#~ msgstr "n'a pas pu se déplacer à la fin du segment %u de la relation %s : %m"
+#~ msgid "CREATE TABLE AS specifies too many column names"
+#~ msgstr "CREATE TABLE AS spécifie trop de noms de colonnes"
 
-#~ msgid "unsupported PAM conversation %d/%s"
-#~ msgstr "conversation PAM %d/%s non supportée"
+#~ msgid "cannot use subquery in parameter default value"
+#~ msgstr "ne peut pas utiliser une sous-requête dans une valeur par défaut d'un paramètre"
 
-#~ msgid "SELECT FOR UPDATE/SHARE is not allowed in subqueries"
-#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas autorisé dans les sous-requêtes"
+#~ msgid "cannot use aggregate function in parameter default value"
+#~ msgstr ""
+#~ "ne peut pas utiliser une fonction d'agrégat dans la valeur par défaut d'un\n"
+#~ "paramètre"
 
-#~ msgid "adding missing FROM-clause entry for table \"%s\""
-#~ msgstr "ajout d'une entrée manquante dans FROM (table « %s »)"
+#~ msgid "cannot use window function in parameter default value"
+#~ msgstr "ne peut pas utiliser la fonction window dans la valeur par défaut d'un paramètre"
 
-#~ msgid "OLD used in query that is not in a rule"
-#~ msgstr "OLD utilisé dans une requête qui n'est pas une règle"
+#~ msgid "Use ALTER AGGREGATE to rename aggregate functions."
+#~ msgstr "Utiliser ALTER AGGREGATE pour renommer les fonctions d'agrégat."
 
-#~ msgid "NEW used in query that is not in a rule"
-#~ msgstr "NEW utilisé dans une requête qui ne fait pas partie d'une règle"
+#~ msgid "Use ALTER AGGREGATE to change owner of aggregate functions."
+#~ msgstr "Utiliser ALTER AGGREGATE pour changer le propriétaire des fonctions d'agrégat."
 
-#~ msgid "hurrying in-progress restartpoint"
-#~ msgstr "accélération du restartpoint en cours"
+#~ msgid "function \"%s\" already exists in schema \"%s\""
+#~ msgstr "la fonction « %s » existe déjà dans le schéma « %s »"
 
-#~ msgid "multiple DELETE events specified"
-#~ msgstr "multiples événements DELETE spécifiés"
+#~ msgid "cannot use aggregate in index predicate"
+#~ msgstr "ne peut pas utiliser un agrégat dans un prédicat d'index"
 
-#~ msgid "multiple TRUNCATE events specified"
-#~ msgstr "multiples événements TRUNCATE spécifiés"
+#~ msgid "cannot use window function in EXECUTE parameter"
+#~ msgstr "ne peut pas utiliser une fonction window dans le paramètre EXECUTE"
 
-#~ msgid "could not create XPath object"
-#~ msgstr "n'a pas pu créer l'objet XPath"
+#~ msgid "constraints on foreign tables are not supported"
+#~ msgstr "les contraintes sur les tables distantes ne sont pas supportées"
 
-#, fuzzy
-#~ msgid "wrong number of array_subscripts"
-#~ msgstr "mauvais nombre d'indices du tableau"
+#~ msgid "default values on foreign tables are not supported"
+#~ msgstr "les valeurs par défaut ne sont pas supportées sur les tables distantes"
 
-#~ msgid "fillfactor=%d is out of range (should be between %d and 100)"
-#~ msgstr "le facteur de remplissage (%d) est en dehors des limites (il devrait être entre %d et 100)"
+#~ msgid "cannot use window function in transform expression"
+#~ msgstr "ne peut pas utiliser la fonction window dans l'expression de la transformation"
 
-#~ msgid "GIN index does not support search with void query"
-#~ msgstr "les index GIN ne supportent pas la recherche avec des requêtes vides"
+#~ msgid "Use ALTER FOREIGN TABLE instead."
+#~ msgstr "Utilisez ALTER FOREIGN TABLE à la place."
 
-#~ msgid "invalid LC_CTYPE setting"
-#~ msgstr "paramètre LC_CTYPE invalide"
+#~ msgid "cannot use window function in trigger WHEN condition"
+#~ msgstr "ne peut pas utiliser la fonction window dans la condition WHEN d'un trigger"
 
-#~ msgid "The database cluster was initialized with LOCALE_NAME_BUFLEN %d, but the server was compiled with LOCALE_NAME_BUFLEN %d."
+#~ msgid "must be superuser to rename text search parsers"
 #~ msgstr ""
-#~ "Le cluster de bases de données a été initialisé avec un LOCALE_NAME_BUFLEN\n"
-#~ "à %d alors que le serveur a été compilé avec un LOCALE_NAME_BUFLEN à %d."
+#~ "doit être super-utilisateur pour renommer les analyseurs de recherche plein\n"
+#~ "texte"
 
-#~ msgid "It looks like you need to initdb or install locale support."
-#~ msgstr ""
-#~ "Il semble que vous avez besoin d'exécuter initdb ou d'installer le support\n"
-#~ "des locales."
+#~ msgid "must be superuser to rename text search templates"
+#~ msgstr "doit être super-utilisateur pour renommer les modèles de recherche plein texte"
 
-#~ msgid "log_restartpoints = %s"
-#~ msgstr "log_restartpoints = %s"
+#~ msgid "automatic vacuum of table \"%s.%s.%s\": cannot (re)acquire exclusive lock for truncate scan"
+#~ msgstr "vacuum automatique de la table « %s.%s.%s » : ne peut pas acquérir le verrou exclusif pour la tronquer"
 
-#~ msgid "syntax error: cannot back up"
-#~ msgstr "erreur de syntaxe : n'a pas pu revenir"
+#~ msgid "You need an unconditional ON INSERT DO INSTEAD rule or an INSTEAD OF INSERT trigger."
+#~ msgstr "Vous avez besoin d'une règle ON INSERT DO INSTEAD sans condition ou d'un trigger INSTEAD OF INSERT."
 
-#~ msgid "syntax error; also virtual memory exhausted"
-#~ msgstr "erreur de syntaxe ; de plus, mémoire virtuelle saturée"
+#~ msgid "You need an unconditional ON UPDATE DO INSTEAD rule or an INSTEAD OF UPDATE trigger."
+#~ msgstr "Vous avez besoin d'une règle non conditionnelle ON UPDATE DO INSTEAD ou d'un trigger INSTEAD OF UPDATE."
 
-#~ msgid "parser stack overflow"
-#~ msgstr "saturation de la pile de l'analyseur"
+#~ msgid "You need an unconditional ON DELETE DO INSTEAD rule or an INSTEAD OF DELETE trigger."
+#~ msgstr "Vous avez besoin d'une règle inconditionnelle ON DELETE DO INSTEAD ou d'un trigger INSTEAD OF DELETE."
 
-#~ msgid "failed to drop all objects depending on %s"
-#~ msgstr "échec lors de la suppression de tous les objets dépendant de %s"
+#~ msgid "LDAP search failed for filter \"%s\" on server \"%s\": user is not unique (%ld matches)"
+#~ msgstr ""
+#~ "échec de la recherche LDAP pour le filtre « %s » sur le serveur « %s » :\n"
+#~ "utilisateur non unique (%ld correspondances)"
 
-#~ msgid "there are objects dependent on %s"
-#~ msgstr "des objets dépendent de %s"
+#~ msgid "VALUES must not contain table references"
+#~ msgstr "VALUES ne doit pas contenir de références de table"
 
-#~ msgid "multiple constraints named \"%s\" were dropped"
-#~ msgstr "les contraintes multiples nommées « %s » ont été supprimées"
+#~ msgid "VALUES must not contain OLD or NEW references"
+#~ msgstr "VALUES ne doit pas contenir des références à OLD et NEW"
 
-#~ msgid "constraint definition for check constraint \"%s\" does not match"
-#~ msgstr ""
-#~ "la définition de la contrainte « %s » pour la contrainte de vérification ne\n"
-#~ "correspond pas"
+#~ msgid "Use SELECT ... UNION ALL ... instead."
+#~ msgstr "Utilisez à la place SELECT ... UNION ALL ..."
 
-#~ msgid "relation \"%s.%s\" contains more than \"max_fsm_pages\" pages with useful free space"
-#~ msgstr ""
-#~ "la relation « %s.%s » contient plus de « max_fsm_pages » pages d'espace\n"
-#~ "libre utile"
+#~ msgid "cannot use aggregate function in VALUES"
+#~ msgstr "ne peut pas utiliser la fonction d'agrégat dans un VALUES"
 
-#~ msgid "Consider using VACUUM FULL on this relation or increasing the configuration parameter \"max_fsm_pages\"."
-#~ msgstr ""
-#~ "Pensez à compacter cette relation en utilisant VACUUM FULL ou à augmenter le\n"
-#~ "paramètre de configuration « max_fsm_pages »."
+#~ msgid "cannot use window function in VALUES"
+#~ msgstr "ne peut pas utiliser la fonction window dans un VALUES"
 
-#~ msgid "cannot change number of columns in view"
-#~ msgstr "ne peut pas modifier le nombre de colonnes dans la vue"
+#~ msgid "cannot use aggregate function in UPDATE"
+#~ msgstr "ne peut pas utiliser une fonction d'agrégat dans un UPDATE"
 
-#~ msgid "unexpected Kerberos user name received from client (received \"%s\", expected \"%s\")"
-#~ msgstr ""
-#~ "nom d'utilisateur Kerberos inattendu reçu à partir du client (reçu « %s »,\n"
-#~ "attendu « %s »)"
+#~ msgid "cannot use window function in UPDATE"
+#~ msgstr "ne peut pas utiliser une fonction window dans un UPDATE"
 
-#~ msgid "Kerberos 5 not implemented on this server"
-#~ msgstr "Kerberos 5 non implémenté sur ce serveur"
+#~ msgid "cannot use aggregate function in RETURNING"
+#~ msgstr "ne peut pas utiliser une fonction d'agrégat dans RETURNING"
 
-#~ msgid "GSSAPI not implemented on this server"
-#~ msgstr "GSSAPI non implémenté sur ce serveur"
+#~ msgid "cannot use window function in RETURNING"
+#~ msgstr "ne peut pas utiliser une fonction window dans RETURNING"
 
-#~ msgid "could not get security token from context"
-#~ msgstr "n'a pas pu récupérer le jeton de sécurité à partir du contexte"
+#~ msgid "RETURNING cannot contain references to other relations"
+#~ msgstr "RETURNING ne doit pas contenir de références à d'autres relations"
 
-#~ msgid "unsafe permissions on private key file \"%s\""
-#~ msgstr "droits non sûrs sur le fichier de la clé privée « %s »"
+#~ msgid "SELECT FOR UPDATE/SHARE is not allowed with GROUP BY clause"
+#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas autorisé avec la clause GROUP BY"
 
-#~ msgid "File must be owned by the database user and must have no permissions for \"group\" or \"other\"."
-#~ msgstr ""
-#~ "Le fichier doit appartenir au propriétaire de la base de données et ne doit\n"
-#~ "pas avoir de droits pour un groupe ou pour les autres."
+#~ msgid "SELECT FOR UPDATE/SHARE is not allowed with HAVING clause"
+#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas autorisé avec la clause HAVING"
 
-#~ msgid "cannot use authentication method \"crypt\" because password is MD5-encrypted"
-#~ msgstr ""
-#~ "n'a pas pu utiliser la méthode d'authentification « crypt » car le mot de\n"
-#~ "passe est chiffré avec MD5"
+#~ msgid "SELECT FOR UPDATE/SHARE is not allowed with aggregate functions"
+#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas autorisé avec les fonctions d'agrégats"
 
-#~ msgid "invalid entry in file \"%s\" at line %d, token \"%s\""
-#~ msgstr "entrée invalide dans le fichier « %s » à la ligne %d, jeton « %s »"
+#~ msgid "SELECT FOR UPDATE/SHARE is not allowed with window functions"
+#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas autorisé avec les fonctions window"
 
-#~ msgid "missing field in file \"%s\" at end of line %d"
-#~ msgstr "champ manquant dans le fichier « %s » à la fin de la ligne %d"
+#~ msgid "SELECT FOR UPDATE/SHARE cannot be used with foreign table \"%s\""
+#~ msgstr "SELECT FOR UPDATE/SHARE ne peut pas être utilisé avec une table distante « %s »"
 
-#~ msgid "cannot use Ident authentication without usermap field"
-#~ msgstr "n'a pas pu utiliser l'authentication Ident sans le champ usermap"
+#~ msgid "aggregates not allowed in WHERE clause"
+#~ msgstr "agrégats non autorisés dans une clause WHERE"
 
-#~ msgid "Ident protocol identifies remote user as \"%s\""
-#~ msgstr "le protocole Ident identifie l'utilisateur distant comme « %s »"
+#~ msgid "window functions not allowed in GROUP BY clause"
+#~ msgstr "fonctions window non autorisées dans une clause GROUP BY"
 
-#~ msgid "SELECT FOR UPDATE/SHARE is not supported for inheritance queries"
-#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas supporté pour les requêtes d'héritage"
+#~ msgid "JOIN/ON clause refers to \"%s\", which is not part of JOIN"
+#~ msgstr "la clause JOIN/ON se réfère à « %s », qui ne fait pas partie du JOIN"
 
-#~ msgid "missing FROM-clause entry in subquery for table \"%s\""
-#~ msgstr "entrée manquante de la clause FROM dans la sous-requête de la table « %s »"
+#~ msgid "subquery in FROM cannot refer to other relations of same query level"
+#~ msgstr ""
+#~ "la sous-requête du FROM ne peut pas faire référence à d'autres relations\n"
+#~ "dans le même niveau de la requête"
 
-#~ msgid "adding missing FROM-clause entry in subquery for table \"%s\""
-#~ msgstr "entrée manquante de la clause FROM dans la sous-requête pour la table « %s »"
+#~ msgid "function expression in FROM cannot refer to other relations of same query level"
+#~ msgstr ""
+#~ "l'expression de la fonction du FROM ne peut pas faire référence à d'autres\n"
+#~ "relations sur le même niveau de la requête"
 
-#~ msgid "%s: the number of buffers (-B) must be at least twice the number of allowed connections (-N) and at least 16\n"
+#~ msgid "cannot use window function in function expression in FROM"
 #~ msgstr ""
-#~ "%s : le nombre de tampons (-B) doit être au moins deux fois le nombre de\n"
-#~ "connexions disponibles (-N) et au moins 16\n"
+#~ "ne peut pas utiliser la fonction window dans l'expression de la fonction\n"
+#~ "du FROM"
 
-#~ msgid "could not set statistics collector timer: %m"
-#~ msgstr "n'a pas pu configurer le timer du récupérateur de statistiques : %m"
+#~ msgid "argument of %s must not contain aggregate functions"
+#~ msgstr "l'argument de %s ne doit pas contenir de fonctions d'agrégats"
 
-#~ msgid "insufficient shared memory for free space map"
-#~ msgstr "mémoire partagée insuffisante pour la structure FSM"
+#~ msgid "argument of %s must not contain window functions"
+#~ msgstr "l'argument de %s ne doit pas contenir des fonctions window"
 
-#~ msgid "max_fsm_pages must exceed max_fsm_relations * %d"
-#~ msgstr "max_fsm_pages doit excéder max_fsm_relations * %d"
+#~ msgid "arguments of row IN must all be row expressions"
+#~ msgstr "les arguments de la ligne IN doivent tous être des expressions de ligne"
 
-#~ msgid "free space map contains %d pages in %d relations"
-#~ msgstr "la structure FSM contient %d pages dans %d relations"
+#~ msgid "cannot use aggregate function in rule WHERE condition"
+#~ msgstr "ne peut pas utiliser la fonction d'agrégat dans la condition d'une règle WHERE"
+
+#~ msgid "cannot use window function in rule WHERE condition"
+#~ msgstr "ne peut pas utiliser la fonction window dans la condition d'une règle WHERE"
 
 #~ msgid ""
-#~ "A total of %.0f page slots are in use (including overhead).\n"
-#~ "%.0f page slots are required to track all free space.\n"
-#~ "Current limits are:  %d page slots, %d relations, using %.0f kB."
+#~ "This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter.  You can either reduce the request size or reconfigure the kernel with larger SHMMAX.  To reduce the request size (currently %lu bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.\n"
+#~ "If the request size is already small, it's possible that it is less than your kernel's SHMMIN parameter, in which case raising the request size or reconfiguring SHMMIN is called for.\n"
+#~ "The PostgreSQL documentation contains more information about shared memory configuration."
 #~ msgstr ""
-#~ "Un total de %.0f emplacements de pages est utilisé (ceci incluant la\n"
-#~ "surcharge).\n"
-#~ "%.0f emplacements de pages sont requis pour tracer tout l'espace libre.\n"
-#~ "Les limites actuelles sont : %d emplacements de pages, %d relations,\n"
-#~ "utilisant %.0f Ko."
-
-#~ msgid "max_fsm_relations(%d) equals the number of relations checked"
-#~ msgstr "max_fsm_relations(%d) équivaut au nombre de relations tracées"
+#~ "Cette erreur signifie habituellement que la demande de PostgreSQL pour un\n"
+#~ "segment de mémoire partagée a dépassé le paramètre SHMMAX de votre noyau.\n"
+#~ "Vous pouvez soit réduire la taille de la requête soit reconfigurer le noyau\n"
+#~ "avec un SHMMAX plus important. Pour réduire la taille de la requête\n"
+#~ "(actuellement %lu octets), réduisez l'utilisation de la mémoire partagée par PostgreSQL,par exemple en réduisant shared_buffers ou max_connections\n"
+#~ "Si la taille de la requête est déjà petite, il est possible qu'elle soit\n"
+#~ "moindre que le paramètre SHMMIN de votre noyau, auquel cas, augmentez la\n"
+#~ "taille de la requête ou reconfigurez SHMMIN.\n"
+#~ "La documentation de PostgreSQL contient plus d'informations sur la\n"
+#~ "configuration de la mémoire partagée."
 
-#~ msgid "You have at least %d relations.  Consider increasing the configuration parameter \"max_fsm_relations\"."
+#~ msgid "terminating all walsender processes to force cascaded standby(s) to update timeline and reconnect"
 #~ msgstr ""
-#~ "Vous avez au moins %d relations.Considèrez l'augmentation du paramètre de\n"
-#~ "configuration « max_fsm_relations »."
+#~ "arrêt de tous les processus walsender pour forcer les serveurs standby en\n"
+#~ "cascade à mettre à jour la timeline et à se reconnecter"
 
-#~ msgid "number of page slots needed (%.0f) exceeds max_fsm_pages (%d)"
-#~ msgstr "le nombre d'emplacements de pages nécessaires (%.0f) dépasse max_fsm_pages (%d)"
+#~ msgid "shutdown requested, aborting active base backup"
+#~ msgstr "arrêt demandé, annulation de la sauvegarde active de base"
 
-#~ msgid "Consider increasing the configuration parameter \"max_fsm_pages\" to a value over %.0f."
+#~ msgid "streaming replication successfully connected to primary"
+#~ msgstr "réplication de flux connecté avec succès au serveur principal"
+
+#~ msgid "invalid standby handshake message type %d"
+#~ msgstr "type %d du message de handshake du serveur en attente invalide"
+
+#~ msgid "terminating walsender process to force cascaded standby to update timeline and reconnect"
 #~ msgstr ""
-#~ "Considérez l'augmentation du paramètre de configuration « max_fsm_pages »\n"
-#~ "à une valeur supérieure à %.0f."
+#~ "arrêt du processus walreceiver pour forcer le serveur standby en cascade à\n"
+#~ "mettre à jour la timeline et à se reconnecter"
 
-#~ msgid "string is too long for tsvector"
-#~ msgstr "la chaîne est trop longue pour un tsvector"
+#~ msgid "invalid standby query string: %s"
+#~ msgstr "chaîne de requête invalide sur le serveur en attente : %s"
 
-#~ msgid "Prints the parse tree to the server log."
-#~ msgstr "Affiche l'arbre d'analyse dans les journaux applicatifs du serveur."
+#~ msgid "large object %u was not opened for writing"
+#~ msgstr "le « Large Object » %u n'a pas été ouvert en écriture"
 
-#~ msgid "Prints the parse tree after rewriting to server log."
-#~ msgstr "Affiche l'arbre d'analyse après ré-écriture dans les journaux applicatifs du serveur."
+#~ msgid "large object %u was already dropped"
+#~ msgstr "le « Large Object » %u a déjà été supprimé"
 
-#~ msgid "Prints the execution plan to server log."
-#~ msgstr "Affiche le plan d'exécution dans les journaux applicatifs du serveur."
+#~ msgid "Not enough memory for reassigning the prepared transaction's locks."
+#~ msgstr "Pas assez de mémoire pour réaffecter les verrous des transactions préparées."
 
-#~ msgid "Uses the indented output format for EXPLAIN VERBOSE."
-#~ msgstr "Utilise le format de sortie indenté pour EXPLAIN VERBOSE."
+#~ msgid "\"interval\" time zone \"%s\" not valid"
+#~ msgstr "le fuseau horaire « %s » n'est pas valide pour le type « interval »"
 
-#~ msgid "Sets the maximum number of tables and indexes for which free space is tracked."
-#~ msgstr ""
-#~ "Initialise le nombre maximum de tables et index pour lesquels l'espace libre\n"
-#~ "est tracé."
+#~ msgid "inconsistent use of year %04d and \"BC\""
+#~ msgstr "utilisation non cohérente de l'année %04d et de « BC »"
 
-#~ msgid "Valid values are ON, OFF, and SAFE_ENCODING."
-#~ msgstr "Les valeurs valides sont ON, OFF et SAFE_ENCODING."
+#~ msgid "No rows were found in \"%s\"."
+#~ msgstr "Aucune ligne trouvée dans « %s »."
 
-#~ msgid "Valid values are DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, INFO, NOTICE, WARNING, ERROR, LOG, FATAL, and PANIC. Each level includes all the levels that follow it."
-#~ msgstr ""
-#~ "Les valeurs valides sont DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, INFO,\n"
-#~ "NOTICE, WARNING, ERROR, LOG, FATAL et PANIC. Chaque niveau incut tous les\n"
-#~ "niveaux qui le suit."
+#~ msgid "argument number is out of range"
+#~ msgstr "le nombre en argument est en dehors des limites"
 
-#~ msgid "All SQL statements that cause an error of the specified level or a higher level are logged."
-#~ msgstr ""
-#~ "Toutes les instructions SQL causant une erreur du niveau spécifié ou d'un\n"
-#~ "niveau supérieur sont tracées."
+#~ msgid "index \"%s\" is not ready"
+#~ msgstr "l'index « %s » n'est pas prêt"
 
-#~ msgid "Each SQL transaction has an isolation level, which can be either \"read uncommitted\", \"read committed\", \"repeatable read\", or \"serializable\"."
-#~ msgstr ""
-#~ "Chaque transaction SQL a un niveau d'isolation qui peut être soit « read\n"
-#~ "uncommitted », soit « read committed », soit « repeatable read », soit\n"
-#~ "« serializable »."
+#~ msgid "could not remove database directory \"%s\""
+#~ msgstr "n'a pas pu supprimer le répertoire de bases de données « %s »"
 
-#~ msgid "Each session can be either \"origin\", \"replica\", or \"local\"."
-#~ msgstr "Chaque session peut valoir soit « origin » soit « replica » soit « local »."
+#~ msgid "unexpected end of line at line %d of thesaurus file \"%s\""
+#~ msgstr "fin de ligne inattendue à la ligne %d du thésaurus « %s »"
 
-#~ msgid "Sets realm to match Kerberos and GSSAPI users against."
-#~ msgstr ""
-#~ "Indique le royaume pour l'authentification des utilisateurs via Kerberos et\n"
-#~ "GSSAPI."
+#~ msgid "unexpected end of line or lexeme at line %d of thesaurus file \"%s\""
+#~ msgstr "fin de ligne ou de lexeme inattendu sur la ligne %d du thesaurus « %s »"
 
-#~ msgid "Sets the hostname of the Kerberos server."
-#~ msgstr "Initalise le nom d'hôte du serveur Kerberos."
+#~ msgid "unexpected delimiter at line %d of thesaurus file \"%s\""
+#~ msgstr "délimiteur inattendu sur la ligne %d du thesaurus « %s »"
 
-#~ msgid "This can be set to advanced, extended, or basic."
+#~ msgid "@@ operator does not support lexeme weight restrictions in GIN index searches"
 #~ msgstr ""
-#~ "Ceci peut être initialisé avec advanced (avancé), extended (étendu) ou\n"
-#~ "basic (basique)."
+#~ "l'opérateur @@ ne supporte pas les restrictions de poids de lexeme dans les\n"
+#~ "recherches par index GIN"
 
-#~ msgid "Valid values are LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7."
+#~ msgid "query requires full scan, which is not supported by GIN indexes"
 #~ msgstr ""
-#~ "Les valeurs valides sont LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5,\n"
-#~ "LOCAL6, LOCAL7."
-
-#~ msgid "Valid values are DOCUMENT and CONTENT."
-#~ msgstr "Les valeurs valides sont DOCUMENT et CONTENT."
+#~ "la requête nécessite un parcours complet, ce qui n'est pas supporté par les\n"
+#~ "index GIN"
 
-#~ msgid "not unique \"S\""
-#~ msgstr "« S » non unique"
+#~ msgid "cannot calculate week number without year information"
+#~ msgstr "ne peut pas calculer le numéro de la semaine sans informations sur l'année"
 
-#~ msgid "\"TZ\"/\"tz\" not supported"
-#~ msgstr "« TZ »/« tz » non supporté"
+#~ msgid "UTF-16 to UTF-8 translation failed: %lu"
+#~ msgstr "échec de la conversion d'UTF16 vers UTF8 : %lu"
 
-#~ msgid "January"
-#~ msgstr "Janvier"
+#~ msgid "AM/PM hour must be between 1 and 12"
+#~ msgstr "l'heure AM/PM doit être compris entre 1 et 12"
 
-#~ msgid "February"
-#~ msgstr "Février"
+#~ msgid "Sat"
+#~ msgstr "Sam"
 
-#~ msgid "March"
-#~ msgstr "Mars"
+#~ msgid "Fri"
+#~ msgstr "Ven"
 
-#~ msgid "April"
-#~ msgstr "Avril"
+#~ msgid "Thu"
+#~ msgstr "Jeu"
 
-#~ msgid "May"
-#~ msgstr "Mai"
+#~ msgid "Wed"
+#~ msgstr "Mer"
 
-#~ msgid "June"
-#~ msgstr "Juin"
+#~ msgid "Tue"
+#~ msgstr "Mar"
 
-#~ msgid "July"
-#~ msgstr "Juillet"
+#~ msgid "Mon"
+#~ msgstr "Lun"
 
-#~ msgid "August"
-#~ msgstr "Août"
+#~ msgid "Sun"
+#~ msgstr "Dim"
 
-#~ msgid "September"
-#~ msgstr "Septembre"
+#~ msgid "Saturday"
+#~ msgstr "Samedi"
 
-#~ msgid "October"
-#~ msgstr "Octobre"
+#~ msgid "Friday"
+#~ msgstr "Vendredi"
 
-#~ msgid "November"
-#~ msgstr "Novembre"
+#~ msgid "Thursday"
+#~ msgstr "Jeudi"
 
-#~ msgid "December"
-#~ msgstr "Décembre"
+#~ msgid "Wednesday"
+#~ msgstr "Mercredi"
 
-#~ msgid "Jan"
-#~ msgstr "Jan"
+#~ msgid "Tuesday"
+#~ msgstr "Mardi"
 
-#~ msgid "Feb"
-#~ msgstr "Fév"
+#~ msgid "Monday"
+#~ msgstr "Lundi"
 
-#~ msgid "Mar"
-#~ msgstr "Mar"
+#~ msgid "Sunday"
+#~ msgstr "Dimanche"
 
-#~ msgid "Apr"
-#~ msgstr "Avr"
+#~ msgid "Dec"
+#~ msgstr "Déc"
 
-#~ msgid "S:May"
-#~ msgstr "S:Mai"
+#~ msgid "Nov"
+#~ msgstr "Nov"
 
-#~ msgid "Jun"
-#~ msgstr "Juin"
+#~ msgid "Oct"
+#~ msgstr "Oct"
 
-#~ msgid "Jul"
-#~ msgstr "Juil"
+#~ msgid "Sep"
+#~ msgstr "Sep"
 
 #~ msgid "Aug"
 #~ msgstr "Aoû"
 
-#~ msgid "Sep"
-#~ msgstr "Sep"
+#~ msgid "Jul"
+#~ msgstr "Juil"
 
-#~ msgid "Oct"
-#~ msgstr "Oct"
+#~ msgid "Jun"
+#~ msgstr "Juin"
 
-#~ msgid "Nov"
-#~ msgstr "Nov"
+#~ msgid "S:May"
+#~ msgstr "S:Mai"
 
-#~ msgid "Dec"
-#~ msgstr "Déc"
+#~ msgid "Apr"
+#~ msgstr "Avr"
 
-#~ msgid "Sunday"
-#~ msgstr "Dimanche"
+#~ msgid "Mar"
+#~ msgstr "Mar"
 
-#~ msgid "Monday"
-#~ msgstr "Lundi"
+#~ msgid "Feb"
+#~ msgstr "Fév"
 
-#~ msgid "Tuesday"
-#~ msgstr "Mardi"
+#~ msgid "Jan"
+#~ msgstr "Jan"
 
-#~ msgid "Wednesday"
-#~ msgstr "Mercredi"
+#~ msgid "December"
+#~ msgstr "Décembre"
 
-#~ msgid "Thursday"
-#~ msgstr "Jeudi"
+#~ msgid "November"
+#~ msgstr "Novembre"
 
-#~ msgid "Friday"
-#~ msgstr "Vendredi"
+#~ msgid "October"
+#~ msgstr "Octobre"
 
-#~ msgid "Saturday"
-#~ msgstr "Samedi"
+#~ msgid "September"
+#~ msgstr "Septembre"
 
-#~ msgid "Sun"
-#~ msgstr "Dim"
+#~ msgid "August"
+#~ msgstr "Août"
 
-#~ msgid "Mon"
-#~ msgstr "Lun"
+#~ msgid "July"
+#~ msgstr "Juillet"
 
-#~ msgid "Tue"
-#~ msgstr "Mar"
+#~ msgid "June"
+#~ msgstr "Juin"
 
-#~ msgid "Wed"
-#~ msgstr "Mer"
+#~ msgid "May"
+#~ msgstr "Mai"
 
-#~ msgid "Thu"
-#~ msgstr "Jeu"
+#~ msgid "April"
+#~ msgstr "Avril"
 
-#~ msgid "Fri"
-#~ msgstr "Ven"
+#~ msgid "March"
+#~ msgstr "Mars"
 
-#~ msgid "Sat"
-#~ msgstr "Sam"
+#~ msgid "February"
+#~ msgstr "Février"
 
-#~ msgid "AM/PM hour must be between 1 and 12"
-#~ msgstr "l'heure AM/PM doit être compris entre 1 et 12"
+#~ msgid "January"
+#~ msgstr "Janvier"
 
-#~ msgid "UTF-16 to UTF-8 translation failed: %lu"
-#~ msgstr "échec de la conversion d'UTF16 vers UTF8 : %lu"
+#~ msgid "\"TZ\"/\"tz\" not supported"
+#~ msgstr "« TZ »/« tz » non supporté"
 
-#~ msgid "cannot calculate week number without year information"
-#~ msgstr "ne peut pas calculer le numéro de la semaine sans informations sur l'année"
+#~ msgid "not unique \"S\""
+#~ msgstr "« S » non unique"
 
-#~ msgid "query requires full scan, which is not supported by GIN indexes"
-#~ msgstr ""
-#~ "la requête nécessite un parcours complet, ce qui n'est pas supporté par les\n"
-#~ "index GIN"
+#~ msgid "Valid values are DOCUMENT and CONTENT."
+#~ msgstr "Les valeurs valides sont DOCUMENT et CONTENT."
 
-#~ msgid "@@ operator does not support lexeme weight restrictions in GIN index searches"
+#~ msgid "Valid values are LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7."
 #~ msgstr ""
-#~ "l'opérateur @@ ne supporte pas les restrictions de poids de lexeme dans les\n"
-#~ "recherches par index GIN"
+#~ "Les valeurs valides sont LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5,\n"
+#~ "LOCAL6, LOCAL7."
 
-#~ msgid "unexpected delimiter at line %d of thesaurus file \"%s\""
-#~ msgstr "délimiteur inattendu sur la ligne %d du thesaurus « %s »"
+#~ msgid "This can be set to advanced, extended, or basic."
+#~ msgstr ""
+#~ "Ceci peut être initialisé avec advanced (avancé), extended (étendu) ou\n"
+#~ "basic (basique)."
 
-#~ msgid "unexpected end of line or lexeme at line %d of thesaurus file \"%s\""
-#~ msgstr "fin de ligne ou de lexeme inattendu sur la ligne %d du thesaurus « %s »"
+#~ msgid "Sets the hostname of the Kerberos server."
+#~ msgstr "Initalise le nom d'hôte du serveur Kerberos."
 
-#~ msgid "unexpected end of line at line %d of thesaurus file \"%s\""
-#~ msgstr "fin de ligne inattendue à la ligne %d du thésaurus « %s »"
+#~ msgid "Sets realm to match Kerberos and GSSAPI users against."
+#~ msgstr ""
+#~ "Indique le royaume pour l'authentification des utilisateurs via Kerberos et\n"
+#~ "GSSAPI."
 
-#~ msgid "could not remove database directory \"%s\""
-#~ msgstr "n'a pas pu supprimer le répertoire de bases de données « %s »"
+#~ msgid "Each session can be either \"origin\", \"replica\", or \"local\"."
+#~ msgstr "Chaque session peut valoir soit « origin » soit « replica » soit « local »."
 
-#~ msgid "index \"%s\" is not ready"
-#~ msgstr "l'index « %s » n'est pas prêt"
+#~ msgid "Each SQL transaction has an isolation level, which can be either \"read uncommitted\", \"read committed\", \"repeatable read\", or \"serializable\"."
+#~ msgstr ""
+#~ "Chaque transaction SQL a un niveau d'isolation qui peut être soit « read\n"
+#~ "uncommitted », soit « read committed », soit « repeatable read », soit\n"
+#~ "« serializable »."
 
-#~ msgid "argument number is out of range"
-#~ msgstr "le nombre en argument est en dehors des limites"
+#~ msgid "All SQL statements that cause an error of the specified level or a higher level are logged."
+#~ msgstr ""
+#~ "Toutes les instructions SQL causant une erreur du niveau spécifié ou d'un\n"
+#~ "niveau supérieur sont tracées."
 
-#~ msgid "No rows were found in \"%s\"."
-#~ msgstr "Aucune ligne trouvée dans « %s »."
+#~ msgid "Valid values are DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, INFO, NOTICE, WARNING, ERROR, LOG, FATAL, and PANIC. Each level includes all the levels that follow it."
+#~ msgstr ""
+#~ "Les valeurs valides sont DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, INFO,\n"
+#~ "NOTICE, WARNING, ERROR, LOG, FATAL et PANIC. Chaque niveau incut tous les\n"
+#~ "niveaux qui le suit."
 
-#~ msgid "inconsistent use of year %04d and \"BC\""
-#~ msgstr "utilisation non cohérente de l'année %04d et de « BC »"
+#~ msgid "Valid values are ON, OFF, and SAFE_ENCODING."
+#~ msgstr "Les valeurs valides sont ON, OFF et SAFE_ENCODING."
 
-#~ msgid "\"interval\" time zone \"%s\" not valid"
-#~ msgstr "le fuseau horaire « %s » n'est pas valide pour le type « interval »"
+#~ msgid "Sets the maximum number of tables and indexes for which free space is tracked."
+#~ msgstr ""
+#~ "Initialise le nombre maximum de tables et index pour lesquels l'espace libre\n"
+#~ "est tracé."
 
-#~ msgid "Not enough memory for reassigning the prepared transaction's locks."
-#~ msgstr "Pas assez de mémoire pour réaffecter les verrous des transactions préparées."
+#~ msgid "Uses the indented output format for EXPLAIN VERBOSE."
+#~ msgstr "Utilise le format de sortie indenté pour EXPLAIN VERBOSE."
 
-#~ msgid "large object %u was already dropped"
-#~ msgstr "le « Large Object » %u a déjà été supprimé"
+#~ msgid "Prints the execution plan to server log."
+#~ msgstr "Affiche le plan d'exécution dans les journaux applicatifs du serveur."
 
-#~ msgid "large object %u was not opened for writing"
-#~ msgstr "le « Large Object » %u n'a pas été ouvert en écriture"
+#~ msgid "Prints the parse tree after rewriting to server log."
+#~ msgstr "Affiche l'arbre d'analyse après ré-écriture dans les journaux applicatifs du serveur."
 
-#~ msgid "invalid standby query string: %s"
-#~ msgstr "chaîne de requête invalide sur le serveur en attente : %s"
+#~ msgid "Prints the parse tree to the server log."
+#~ msgstr "Affiche l'arbre d'analyse dans les journaux applicatifs du serveur."
 
-#~ msgid "terminating walsender process to force cascaded standby to update timeline and reconnect"
+#~ msgid "Consider increasing the configuration parameter \"max_fsm_pages\" to a value over %.0f."
 #~ msgstr ""
-#~ "arrêt du processus walreceiver pour forcer le serveur standby en cascade à\n"
-#~ "mettre à jour la timeline et à se reconnecter"
-
-#~ msgid "invalid standby handshake message type %d"
-#~ msgstr "type %d du message de handshake du serveur en attente invalide"
-
-#~ msgid "streaming replication successfully connected to primary"
-#~ msgstr "réplication de flux connecté avec succès au serveur principal"
+#~ "Considérez l'augmentation du paramètre de configuration « max_fsm_pages »\n"
+#~ "à une valeur supérieure à %.0f."
 
-#~ msgid "shutdown requested, aborting active base backup"
-#~ msgstr "arrêt demandé, annulation de la sauvegarde active de base"
+#~ msgid "number of page slots needed (%.0f) exceeds max_fsm_pages (%d)"
+#~ msgstr "le nombre d'emplacements de pages nécessaires (%.0f) dépasse max_fsm_pages (%d)"
 
-#~ msgid "terminating all walsender processes to force cascaded standby(s) to update timeline and reconnect"
+#~ msgid "You have at least %d relations.  Consider increasing the configuration parameter \"max_fsm_relations\"."
 #~ msgstr ""
-#~ "arrêt de tous les processus walsender pour forcer les serveurs standby en\n"
-#~ "cascade à mettre à jour la timeline et à se reconnecter"
+#~ "Vous avez au moins %d relations.Considèrez l'augmentation du paramètre de\n"
+#~ "configuration « max_fsm_relations »."
+
+#~ msgid "max_fsm_relations(%d) equals the number of relations checked"
+#~ msgstr "max_fsm_relations(%d) équivaut au nombre de relations tracées"
 
 #~ msgid ""
-#~ "This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter.  You can either reduce the request size or reconfigure the kernel with larger SHMMAX.  To reduce the request size (currently %lu bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.\n"
-#~ "If the request size is already small, it's possible that it is less than your kernel's SHMMIN parameter, in which case raising the request size or reconfiguring SHMMIN is called for.\n"
-#~ "The PostgreSQL documentation contains more information about shared memory configuration."
+#~ "A total of %.0f page slots are in use (including overhead).\n"
+#~ "%.0f page slots are required to track all free space.\n"
+#~ "Current limits are:  %d page slots, %d relations, using %.0f kB."
 #~ msgstr ""
-#~ "Cette erreur signifie habituellement que la demande de PostgreSQL pour un\n"
-#~ "segment de mémoire partagée a dépassé le paramètre SHMMAX de votre noyau.\n"
-#~ "Vous pouvez soit réduire la taille de la requête soit reconfigurer le noyau\n"
-#~ "avec un SHMMAX plus important. Pour réduire la taille de la requête\n"
-#~ "(actuellement %lu octets), réduisez l'utilisation de la mémoire partagée par PostgreSQL,par exemple en réduisant shared_buffers ou max_connections\n"
-#~ "Si la taille de la requête est déjà petite, il est possible qu'elle soit\n"
-#~ "moindre que le paramètre SHMMIN de votre noyau, auquel cas, augmentez la\n"
-#~ "taille de la requête ou reconfigurez SHMMIN.\n"
-#~ "La documentation de PostgreSQL contient plus d'informations sur la\n"
-#~ "configuration de la mémoire partagée."
-
-#~ msgid "cannot use window function in rule WHERE condition"
-#~ msgstr "ne peut pas utiliser la fonction window dans la condition d'une règle WHERE"
+#~ "Un total de %.0f emplacements de pages est utilisé (ceci incluant la\n"
+#~ "surcharge).\n"
+#~ "%.0f emplacements de pages sont requis pour tracer tout l'espace libre.\n"
+#~ "Les limites actuelles sont : %d emplacements de pages, %d relations,\n"
+#~ "utilisant %.0f Ko."
 
-#~ msgid "cannot use aggregate function in rule WHERE condition"
-#~ msgstr "ne peut pas utiliser la fonction d'agrégat dans la condition d'une règle WHERE"
+#~ msgid "free space map contains %d pages in %d relations"
+#~ msgstr "la structure FSM contient %d pages dans %d relations"
 
-#~ msgid "arguments of row IN must all be row expressions"
-#~ msgstr "les arguments de la ligne IN doivent tous être des expressions de ligne"
+#~ msgid "max_fsm_pages must exceed max_fsm_relations * %d"
+#~ msgstr "max_fsm_pages doit excéder max_fsm_relations * %d"
 
-#~ msgid "argument of %s must not contain window functions"
-#~ msgstr "l'argument de %s ne doit pas contenir des fonctions window"
+#~ msgid "insufficient shared memory for free space map"
+#~ msgstr "mémoire partagée insuffisante pour la structure FSM"
 
-#~ msgid "argument of %s must not contain aggregate functions"
-#~ msgstr "l'argument de %s ne doit pas contenir de fonctions d'agrégats"
+#~ msgid "could not set statistics collector timer: %m"
+#~ msgstr "n'a pas pu configurer le timer du récupérateur de statistiques : %m"
 
-#~ msgid "cannot use window function in function expression in FROM"
+#~ msgid "%s: the number of buffers (-B) must be at least twice the number of allowed connections (-N) and at least 16\n"
 #~ msgstr ""
-#~ "ne peut pas utiliser la fonction window dans l'expression de la fonction\n"
-#~ "du FROM"
-
-#~ msgid "function expression in FROM cannot refer to other relations of same query level"
-#~ msgstr ""
-#~ "l'expression de la fonction du FROM ne peut pas faire référence à d'autres\n"
-#~ "relations sur le même niveau de la requête"
+#~ "%s : le nombre de tampons (-B) doit être au moins deux fois le nombre de\n"
+#~ "connexions disponibles (-N) et au moins 16\n"
 
-#~ msgid "subquery in FROM cannot refer to other relations of same query level"
-#~ msgstr ""
-#~ "la sous-requête du FROM ne peut pas faire référence à d'autres relations\n"
-#~ "dans le même niveau de la requête"
+#~ msgid "adding missing FROM-clause entry in subquery for table \"%s\""
+#~ msgstr "entrée manquante de la clause FROM dans la sous-requête pour la table « %s »"
 
-#~ msgid "JOIN/ON clause refers to \"%s\", which is not part of JOIN"
-#~ msgstr "la clause JOIN/ON se réfère à « %s », qui ne fait pas partie du JOIN"
+#~ msgid "missing FROM-clause entry in subquery for table \"%s\""
+#~ msgstr "entrée manquante de la clause FROM dans la sous-requête de la table « %s »"
 
-#~ msgid "window functions not allowed in GROUP BY clause"
-#~ msgstr "fonctions window non autorisées dans une clause GROUP BY"
+#~ msgid "SELECT FOR UPDATE/SHARE is not supported for inheritance queries"
+#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas supporté pour les requêtes d'héritage"
 
-#~ msgid "aggregates not allowed in WHERE clause"
-#~ msgstr "agrégats non autorisés dans une clause WHERE"
+#~ msgid "Ident protocol identifies remote user as \"%s\""
+#~ msgstr "le protocole Ident identifie l'utilisateur distant comme « %s »"
 
-#~ msgid "SELECT FOR UPDATE/SHARE cannot be used with foreign table \"%s\""
-#~ msgstr "SELECT FOR UPDATE/SHARE ne peut pas être utilisé avec une table distante « %s »"
+#~ msgid "cannot use Ident authentication without usermap field"
+#~ msgstr "n'a pas pu utiliser l'authentication Ident sans le champ usermap"
 
-#~ msgid "SELECT FOR UPDATE/SHARE is not allowed with window functions"
-#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas autorisé avec les fonctions window"
+#~ msgid "missing field in file \"%s\" at end of line %d"
+#~ msgstr "champ manquant dans le fichier « %s » à la fin de la ligne %d"
 
-#~ msgid "SELECT FOR UPDATE/SHARE is not allowed with aggregate functions"
-#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas autorisé avec les fonctions d'agrégats"
+#~ msgid "invalid entry in file \"%s\" at line %d, token \"%s\""
+#~ msgstr "entrée invalide dans le fichier « %s » à la ligne %d, jeton « %s »"
 
-#~ msgid "SELECT FOR UPDATE/SHARE is not allowed with HAVING clause"
-#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas autorisé avec la clause HAVING"
+#~ msgid "cannot use authentication method \"crypt\" because password is MD5-encrypted"
+#~ msgstr ""
+#~ "n'a pas pu utiliser la méthode d'authentification « crypt » car le mot de\n"
+#~ "passe est chiffré avec MD5"
 
-#~ msgid "SELECT FOR UPDATE/SHARE is not allowed with GROUP BY clause"
-#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas autorisé avec la clause GROUP BY"
+#~ msgid "File must be owned by the database user and must have no permissions for \"group\" or \"other\"."
+#~ msgstr ""
+#~ "Le fichier doit appartenir au propriétaire de la base de données et ne doit\n"
+#~ "pas avoir de droits pour un groupe ou pour les autres."
 
-#~ msgid "RETURNING cannot contain references to other relations"
-#~ msgstr "RETURNING ne doit pas contenir de références à d'autres relations"
+#~ msgid "unsafe permissions on private key file \"%s\""
+#~ msgstr "droits non sûrs sur le fichier de la clé privée « %s »"
 
-#~ msgid "cannot use window function in RETURNING"
-#~ msgstr "ne peut pas utiliser une fonction window dans RETURNING"
+#~ msgid "could not get security token from context"
+#~ msgstr "n'a pas pu récupérer le jeton de sécurité à partir du contexte"
 
-#~ msgid "cannot use aggregate function in RETURNING"
-#~ msgstr "ne peut pas utiliser une fonction d'agrégat dans RETURNING"
+#~ msgid "GSSAPI not implemented on this server"
+#~ msgstr "GSSAPI non implémenté sur ce serveur"
 
-#~ msgid "cannot use window function in UPDATE"
-#~ msgstr "ne peut pas utiliser une fonction window dans un UPDATE"
+#~ msgid "Kerberos 5 not implemented on this server"
+#~ msgstr "Kerberos 5 non implémenté sur ce serveur"
 
-#~ msgid "cannot use aggregate function in UPDATE"
-#~ msgstr "ne peut pas utiliser une fonction d'agrégat dans un UPDATE"
+#~ msgid "unexpected Kerberos user name received from client (received \"%s\", expected \"%s\")"
+#~ msgstr ""
+#~ "nom d'utilisateur Kerberos inattendu reçu à partir du client (reçu « %s »,\n"
+#~ "attendu « %s »)"
 
-#~ msgid "cannot use window function in VALUES"
-#~ msgstr "ne peut pas utiliser la fonction window dans un VALUES"
+#~ msgid "cannot change number of columns in view"
+#~ msgstr "ne peut pas modifier le nombre de colonnes dans la vue"
 
-#~ msgid "cannot use aggregate function in VALUES"
-#~ msgstr "ne peut pas utiliser la fonction d'agrégat dans un VALUES"
+#~ msgid "Consider using VACUUM FULL on this relation or increasing the configuration parameter \"max_fsm_pages\"."
+#~ msgstr ""
+#~ "Pensez à compacter cette relation en utilisant VACUUM FULL ou à augmenter le\n"
+#~ "paramètre de configuration « max_fsm_pages »."
 
-#~ msgid "Use SELECT ... UNION ALL ... instead."
-#~ msgstr "Utilisez à la place SELECT ... UNION ALL ..."
+#~ msgid "relation \"%s.%s\" contains more than \"max_fsm_pages\" pages with useful free space"
+#~ msgstr ""
+#~ "la relation « %s.%s » contient plus de « max_fsm_pages » pages d'espace\n"
+#~ "libre utile"
 
-#~ msgid "VALUES must not contain OLD or NEW references"
-#~ msgstr "VALUES ne doit pas contenir des références à OLD et NEW"
+#~ msgid "constraint definition for check constraint \"%s\" does not match"
+#~ msgstr ""
+#~ "la définition de la contrainte « %s » pour la contrainte de vérification ne\n"
+#~ "correspond pas"
 
-#~ msgid "VALUES must not contain table references"
-#~ msgstr "VALUES ne doit pas contenir de références de table"
+#~ msgid "multiple constraints named \"%s\" were dropped"
+#~ msgstr "les contraintes multiples nommées « %s » ont été supprimées"
 
-#~ msgid "LDAP search failed for filter \"%s\" on server \"%s\": user is not unique (%ld matches)"
-#~ msgstr ""
-#~ "échec de la recherche LDAP pour le filtre « %s » sur le serveur « %s » :\n"
-#~ "utilisateur non unique (%ld correspondances)"
+#~ msgid "there are objects dependent on %s"
+#~ msgstr "des objets dépendent de %s"
 
-#~ msgid "You need an unconditional ON DELETE DO INSTEAD rule or an INSTEAD OF DELETE trigger."
-#~ msgstr "Vous avez besoin d'une règle inconditionnelle ON DELETE DO INSTEAD ou d'un trigger INSTEAD OF DELETE."
+#~ msgid "failed to drop all objects depending on %s"
+#~ msgstr "échec lors de la suppression de tous les objets dépendant de %s"
 
-#~ msgid "You need an unconditional ON UPDATE DO INSTEAD rule or an INSTEAD OF UPDATE trigger."
-#~ msgstr "Vous avez besoin d'une règle non conditionnelle ON UPDATE DO INSTEAD ou d'un trigger INSTEAD OF UPDATE."
+#~ msgid "parser stack overflow"
+#~ msgstr "saturation de la pile de l'analyseur"
 
-#~ msgid "You need an unconditional ON INSERT DO INSTEAD rule or an INSTEAD OF INSERT trigger."
-#~ msgstr "Vous avez besoin d'une règle ON INSERT DO INSTEAD sans condition ou d'un trigger INSTEAD OF INSERT."
+#~ msgid "syntax error; also virtual memory exhausted"
+#~ msgstr "erreur de syntaxe ; de plus, mémoire virtuelle saturée"
 
-#~ msgid "automatic vacuum of table \"%s.%s.%s\": cannot (re)acquire exclusive lock for truncate scan"
-#~ msgstr "vacuum automatique de la table « %s.%s.%s » : ne peut pas acquérir le verrou exclusif pour la tronquer"
+#~ msgid "syntax error: cannot back up"
+#~ msgstr "erreur de syntaxe : n'a pas pu revenir"
 
-#~ msgid "must be superuser to rename text search templates"
-#~ msgstr "doit être super-utilisateur pour renommer les modèles de recherche plein texte"
+#~ msgid "log_restartpoints = %s"
+#~ msgstr "log_restartpoints = %s"
 
-#~ msgid "must be superuser to rename text search parsers"
+#~ msgid "It looks like you need to initdb or install locale support."
 #~ msgstr ""
-#~ "doit être super-utilisateur pour renommer les analyseurs de recherche plein\n"
-#~ "texte"
+#~ "Il semble que vous avez besoin d'exécuter initdb ou d'installer le support\n"
+#~ "des locales."
 
-#~ msgid "cannot use window function in trigger WHEN condition"
-#~ msgstr "ne peut pas utiliser la fonction window dans la condition WHEN d'un trigger"
+#~ msgid "The database cluster was initialized with LOCALE_NAME_BUFLEN %d, but the server was compiled with LOCALE_NAME_BUFLEN %d."
+#~ msgstr ""
+#~ "Le cluster de bases de données a été initialisé avec un LOCALE_NAME_BUFLEN\n"
+#~ "à %d alors que le serveur a été compilé avec un LOCALE_NAME_BUFLEN à %d."
 
-#~ msgid "Use ALTER FOREIGN TABLE instead."
-#~ msgstr "Utilisez ALTER FOREIGN TABLE à la place."
+#~ msgid "invalid LC_CTYPE setting"
+#~ msgstr "paramètre LC_CTYPE invalide"
 
-#~ msgid "cannot use window function in transform expression"
-#~ msgstr "ne peut pas utiliser la fonction window dans l'expression de la transformation"
+#~ msgid "GIN index does not support search with void query"
+#~ msgstr "les index GIN ne supportent pas la recherche avec des requêtes vides"
 
-#~ msgid "default values on foreign tables are not supported"
-#~ msgstr "les valeurs par défaut ne sont pas supportées sur les tables distantes"
+#~ msgid "fillfactor=%d is out of range (should be between %d and 100)"
+#~ msgstr "le facteur de remplissage (%d) est en dehors des limites (il devrait être entre %d et 100)"
 
-#~ msgid "constraints on foreign tables are not supported"
-#~ msgstr "les contraintes sur les tables distantes ne sont pas supportées"
+#, fuzzy
+#~ msgid "wrong number of array_subscripts"
+#~ msgstr "mauvais nombre d'indices du tableau"
 
-#~ msgid "cannot use window function in EXECUTE parameter"
-#~ msgstr "ne peut pas utiliser une fonction window dans le paramètre EXECUTE"
+#~ msgid "could not create XPath object"
+#~ msgstr "n'a pas pu créer l'objet XPath"
 
-#~ msgid "cannot use aggregate in index predicate"
-#~ msgstr "ne peut pas utiliser un agrégat dans un prédicat d'index"
+#~ msgid "multiple TRUNCATE events specified"
+#~ msgstr "multiples événements TRUNCATE spécifiés"
 
-#~ msgid "function \"%s\" already exists in schema \"%s\""
-#~ msgstr "la fonction « %s » existe déjà dans le schéma « %s »"
+#~ msgid "multiple DELETE events specified"
+#~ msgstr "multiples événements DELETE spécifiés"
 
-#~ msgid "Use ALTER AGGREGATE to change owner of aggregate functions."
-#~ msgstr "Utiliser ALTER AGGREGATE pour changer le propriétaire des fonctions d'agrégat."
+#~ msgid "hurrying in-progress restartpoint"
+#~ msgstr "accélération du restartpoint en cours"
 
-#~ msgid "Use ALTER AGGREGATE to rename aggregate functions."
-#~ msgstr "Utiliser ALTER AGGREGATE pour renommer les fonctions d'agrégat."
+#~ msgid "NEW used in query that is not in a rule"
+#~ msgstr "NEW utilisé dans une requête qui ne fait pas partie d'une règle"
 
-#~ msgid "cannot use window function in parameter default value"
-#~ msgstr "ne peut pas utiliser la fonction window dans la valeur par défaut d'un paramètre"
+#~ msgid "OLD used in query that is not in a rule"
+#~ msgstr "OLD utilisé dans une requête qui n'est pas une règle"
 
-#~ msgid "cannot use aggregate function in parameter default value"
-#~ msgstr ""
-#~ "ne peut pas utiliser une fonction d'agrégat dans la valeur par défaut d'un\n"
-#~ "paramètre"
+#~ msgid "adding missing FROM-clause entry for table \"%s\""
+#~ msgstr "ajout d'une entrée manquante dans FROM (table « %s »)"
 
-#~ msgid "cannot use subquery in parameter default value"
-#~ msgstr "ne peut pas utiliser une sous-requête dans une valeur par défaut d'un paramètre"
+#~ msgid "SELECT FOR UPDATE/SHARE is not allowed in subqueries"
+#~ msgstr "SELECT FOR UPDATE/SHARE n'est pas autorisé dans les sous-requêtes"
 
-#~ msgid "CREATE TABLE AS specifies too many column names"
-#~ msgstr "CREATE TABLE AS spécifie trop de noms de colonnes"
+#~ msgid "unsupported PAM conversation %d/%s"
+#~ msgstr "conversation PAM %d/%s non supportée"
 
-#~ msgid "%s already exists in schema \"%s\""
-#~ msgstr "%s existe déjà dans le schéma « %s »"
+#~ msgid "could not seek to end of segment %u of relation %s: %m"
+#~ msgstr "n'a pas pu se déplacer à la fin du segment %u de la relation %s : %m"
 
-#~ msgid "A function returning ANYRANGE must have at least one ANYRANGE argument."
+#~ msgid "could not fsync segment %u of relation %s but retrying: %m"
 #~ msgstr ""
-#~ "Une fonction renvoyant ANYRANGE doit avoir au moins un argument du type\n"
-#~ "ANYRANGE."
+#~ "n'a pas pu synchroniser sur disque (fsync) le segment %u de la relation\n"
+#~ "%s, nouvelle tentative : %m"
 
-#~ msgid "cannot use window function in check constraint"
-#~ msgstr "ne peut pas utiliser une fonction window dans une contrainte de vérification"
+#~ msgid "could not fsync segment %u of relation %s: %m"
+#~ msgstr ""
+#~ "n'a pas pu synchroniser sur disque (fsync) le segment %u de la relation\n"
+#~ "%s : %m"
 
-#~ msgid "cannot use window function in default expression"
-#~ msgstr "ne peut pas utiliser une fonction window dans une expression par défaut"
+#~ msgid "could not open segment %u of relation %s: %m"
+#~ msgstr "n'a pas pu ouvrir le segment %u de la relation %s : %m"
 
-#~ msgid "uncataloged table %s"
-#~ msgstr "table %s sans catalogue"
+#~ msgid "could not write block %u of relation %s: %m"
+#~ msgstr "n'a pas pu écrire le bloc %u de la relation %s : %m"
 
-#~ msgid "xrecoff \"%X\" is out of valid range, 0..%X"
-#~ msgstr "xrecoff « %X » en dehors des limites valides, 0..%X"
+#~ msgid "could not read block %u of relation %s: %m"
+#~ msgstr "n'a pas pu lire le bloc %u de la relation %s : %m"
 
-#~ msgid "Incorrect XLOG_BLCKSZ in page header."
-#~ msgstr "XLOG_BLCKSZ incorrect dans l'en-tête de page."
+#~ msgid "could not open relation %s: %m"
+#~ msgstr "n'a pas pu ouvrir la relation %s : %m"
 
-#~ msgid "Incorrect XLOG_SEG_SIZE in page header."
-#~ msgstr "XLOG_SEG_SIZE incorrecte dans l'en-tête de page."
+#~ msgid "could not extend relation %s: %m"
+#~ msgstr "n'a pas pu étendre la relation %s : %m"
 
-#~ msgid "invalid contrecord length %u in log file %u, segment %u, offset %u"
-#~ msgstr ""
-#~ "longueur invalide du « contrecord » %u dans le journal de tranasctions %u,\n"
-#~ "segment %u, décalage %u"
+#~ msgid "could not seek to block %u of relation %s: %m"
+#~ msgstr "n'a pas pu se positionner sur le bloc %u de la relation %s : %m"
 
-#~ msgid "there is no contrecord flag in log file %u, segment %u, offset %u"
-#~ msgstr ""
-#~ "il n'y a pas de drapeaux « contrecord » dans le journal de transactions %u,\n"
-#~ "segment %u, décalage %u"
+#~ msgid "could not remove segment %u of relation %s: %m"
+#~ msgstr "n'a pas pu supprimer le segment %u de la relation %s : %m"
 
-#~ msgid "could not open file \"%s\" (log file %u, segment %u): %m"
-#~ msgstr "n'a pas pu ouvrir le fichier « %s » (journal de transactions %u, segment %u) : %m"
+#~ msgid "could not remove relation %s: %m"
+#~ msgstr "n'a pas pu supprimer la relation %s : %m"
 
-#~ msgid "unlogged GiST indexes are not supported"
-#~ msgstr "les index GiST non tracés ne sont pas supportés"
+#~ msgid "SELECT FOR UPDATE/SHARE is not supported within a query with multiple result relations"
+#~ msgstr ""
+#~ "SELECT FOR UPDATE/SHARE n'est pas supporté dans une requête avec plusieurs\n"
+#~ "relations"
 
-#~ msgid "could not change directory to \"%s\""
-#~ msgstr "n'a pas pu accéder au répertoire « %s »"
+#~ msgid "cannot set session authorization within security-definer function"
+#~ msgstr "ne peut pas exécuter SESSION AUTHORIZATION sur la fonction SECURITY DEFINER"
 
-#~ msgid "Perhaps out of disk space?"
-#~ msgstr "Peut-être manquez-vous de place disque ?"
+#~ msgid "cannot specify CSV in BINARY mode"
+#~ msgstr "ne peut pas spécifier CSV en mode binaire (BINARY)"
 
-#~ msgid "time zone offset %d is not a multiple of 900 sec (15 min) in time zone file \"%s\", line %d"
+#~ msgid "invalid role password \"%s\""
+#~ msgstr "mot de passe « %s » de l'utilisateur invalide"
+
+#~ msgid "invalid role name \"%s\""
+#~ msgstr "nom de rôle « %s » invalide"
+
+#~ msgid "invalid database name \"%s\""
+#~ msgstr "nom de base de données « %s » invalide"
+
+#~ msgid "This parameter cannot be changed after server start."
+#~ msgstr "Ce paramètre ne peut pas être modifié après le lancement du serveur"
+
+#~ msgid "attempted change of parameter \"%s\" ignored"
+#~ msgstr "tentative de modification du paramètre « %s » ignoré"
+
+#~ msgid "Sets the regular expression \"flavor\"."
+#~ msgstr "Initialise l'expression rationnelle « flavor »."
+
+#~ msgid "Automatically adds missing table references to FROM clauses."
 #~ msgstr ""
-#~ "le décalage %d du fuseau horaire n'est pas un multiples de 900 secondes\n"
-#~ "(15 minutes) dans le fichier des fuseaux horaires « %s », ligne %d"
+#~ "Ajoute automatiquement les références à la table manquant dans les clauses\n"
+#~ "FROM."
 
-#~ msgid "Sets the name of the Kerberos service."
-#~ msgstr "Initialise le nom du service Kerberos."
+#~ msgid "Table contains duplicated values."
+#~ msgstr "La table contient des valeurs dupliquées."
 
-#~ msgid "No description available."
-#~ msgstr "Aucune description disponible."
+#~ msgid "index row size %lu exceeds btree maximum, %lu"
+#~ msgstr "la taille de la ligne index %lu dépasse le maximum de btree, %lu"
 
-#~ msgid "cannot call json_populate_recordset on a nested object"
-#~ msgstr "ne peut pas appeler json_populate_recordset sur un objet imbriqué"
+#~ msgid "DISTINCT is supported only for single-argument aggregates"
+#~ msgstr "DISTINCT est seulement supporté pour les agrégats à un seul argument"
 
-#~ msgid "cannot call json_populate_recordset on a scalar"
-#~ msgstr "ne peut pas appeler json_populate_recordset sur un scalaire"
+#~ msgid "database system is in consistent recovery mode"
+#~ msgstr "le système de bases de données est dans un mode de restauration cohérent"
 
-#~ msgid "cannot call json_populate_recordset with nested arrays"
-#~ msgstr "ne peut pas appeler json_populate_recordset avec des tableaux imbriqués"
+#~ msgid "frame start at CURRENT ROW is not implemented"
+#~ msgstr "début du frame à CURRENT ROW n'est pas implémenté"
 
-#~ msgid "must call json_populate_recordset on an array of objects"
-#~ msgstr "doit appeler json_populate_recordset sur un tableau d'objets"
+#~ msgid "Rebuild the index with REINDEX."
+#~ msgstr "Reconstruisez l'index avec REINDEX."
 
-#~ msgid "cannot call json_populate_recordset with nested objects"
-#~ msgstr "ne peut pas appeler json_populate_recordset sur des objets imbriqués"
+#~ msgid "index \"%s\" contains %.0f row versions, but table contains %.0f row versions"
+#~ msgstr ""
+#~ "l'index « %s » contient %.0f versions de ligne, mais la table contient %.0f\n"
+#~ "versions de ligne"
 
-#~ msgid "cannot call json_populate_recordset on an object"
-#~ msgstr "ne peut pas appeler json_populate_recordset sur un objet"
+#~ msgid ""
+#~ "%u index pages have been deleted, %u are currently reusable.\n"
+#~ "%s."
+#~ msgstr ""
+#~ "%u pages d'index ont été supprimées, %u sont actuellement réutilisables.\n"
+#~ "%s."
 
-#~ msgid "first argument of json_populate_recordset must be a row type"
-#~ msgstr "le premier argument de json_populate_recordset doit être un type ROW"
+#~ msgid "\"%s\": moved %u row versions, truncated %u to %u pages"
+#~ msgstr "« %s » : %u versions de ligne déplacées, %u pages tronquées sur %u"
 
-#~ msgid "first argument of json_populate_record must be a row type"
-#~ msgstr "le premier argument de json_populate_record doit être un type ROW"
+#~ msgid ""
+#~ "%.0f dead row versions cannot be removed yet.\n"
+#~ "Nonremovable row versions range from %lu to %lu bytes long.\n"
+#~ "There were %.0f unused item pointers.\n"
+#~ "Total free space (including removable row versions) is %.0f bytes.\n"
+#~ "%u pages are or will become empty, including %u at the end of the table.\n"
+#~ "%u pages containing %.0f free bytes are potential move destinations.\n"
+#~ "%s."
+#~ msgstr ""
+#~ "%.0f versions de lignes mortes ne peuvent pas encore être supprimées.\n"
+#~ "Les versions non supprimables de ligne vont de %lu to %lu octets.\n"
+#~ "Il existait %.0f pointeurs d'éléments inutilisés.\n"
+#~ "L'espace libre total (incluant les versions supprimables de ligne) est de\n"
+#~ "%.0f octets.\n"
+#~ "%u pages sont ou deviendront vides, ceci incluant %u pages en fin de la\n"
+#~ "table.\n"
+#~ "%u pages contenant %.0f octets libres sont des destinations de déplacement\n"
+#~ "disponibles.\n"
+#~ "%s."
 
-#~ msgid "cannot call json_array_elements on a scalar"
-#~ msgstr "ne peut pas appeler json_array_elements sur un scalaire"
+#~ msgid "relation \"%s\" TID %u/%u: DeleteTransactionInProgress %u --- cannot shrink relation"
+#~ msgstr ""
+#~ "relation « %s », TID %u/%u : DeleteTransactionInProgress %u --- n'a pas pu\n"
+#~ "diminuer la taille de la relation"
 
-#~ msgid "cannot call json_array_elements on a non-array"
-#~ msgstr "ne peut pas appeler json_array_elements sur un objet qui n'est pas un tableau"
+#~ msgid "relation \"%s\" TID %u/%u: InsertTransactionInProgress %u --- cannot shrink relation"
+#~ msgstr ""
+#~ "relation « %s », TID %u/%u : InsertTransactionInProgress %u --- n'a pas pu\n"
+#~ "diminuer la taille de la relation"
 
-#~ msgid "cannot extract field from a non-object"
-#~ msgstr "ne peut pas extraire le chemin à partir d'un non-objet"
+#~ msgid "relation \"%s\" TID %u/%u: dead HOT-updated tuple --- cannot shrink relation"
+#~ msgstr ""
+#~ "relation « %s », TID %u/%u : ligne morte mise à jour par HOT --- n'a pas pu\n"
+#~ "diminuer la taille de la relation"
 
-#~ msgid "cannot extract array element from a non-array"
-#~ msgstr "ne peut pas extraire un élément du tableau à partir d'un objet qui n'est pas un tableau"
+#~ msgid "relation \"%s\" TID %u/%u: XMIN_COMMITTED not set for transaction %u --- cannot shrink relation"
+#~ msgstr ""
+#~ "relation « %s », TID %u/%u : XMIN_COMMITTED non configuré pour la\n"
+#~ "transaction %u --- n'a pas pu diminuer la taille de la relation"
 
-#~ msgid "cannot call function with null path elements"
-#~ msgstr "ne peut pas appeler une fonction avec des éléments chemins NULL"
+#~ msgid "directory \"%s\" is not empty"
+#~ msgstr "le répertoire « %s » n'est pas vide"
 
-#~ msgid "cannot call json_object_keys on an array"
-#~ msgstr "ne peut pas appeler json_object_keys sur un tableau"
+#~ msgid "number of distinct values %g is too low"
+#~ msgstr "le nombre de valeurs distinctes %g est trop basse"
 
-#~ msgid "missing assignment operator"
-#~ msgstr "opérateur d'affectation manquant"
+#~ msgid "cannot truncate system relation \"%s\""
+#~ msgstr "ne peut pas tronquer la relation système « %s »"
 
-#~ msgid "wrong affix file format for flag"
-#~ msgstr "mauvais format de fichier affixe pour le drapeau"
+#~ msgid "shared table \"%s\" can only be reindexed in stand-alone mode"
+#~ msgstr "la table partagée « %s » peut seulement être réindexé en mode autonome"
 
-#~ msgid "Views that return the same column more than once are not automatically updatable."
-#~ msgstr "Les vues qui renvoient la même colonne plus d'une fois ne sont pas automatiquement disponibles en écriture."
+#~ msgid "shared index \"%s\" can only be reindexed in stand-alone mode"
+#~ msgstr "un index partagé « %s » peut seulement être réindexé en mode autonome"
 
-#~ msgid "Security-barrier views are not automatically updatable."
-#~ msgstr "Les vues avec barrière de sécurité ne sont pas automatiquement disponibles en écriture."
+#~ msgid "Sets the language used in DO statement if LANGUAGE is not specified."
+#~ msgstr ""
+#~ "Configure le langage utilisé dans une instruction DO si la clause LANGUAGE n'est\n"
+#~ "pas spécifiée."
 
-#~ msgid "Expected 1 tuple with 3 fields, got %d tuples with %d fields."
-#~ msgstr "Attendait 1 ligne avec 3 champs, a obtenu %d lignes avec %d champs."
+#~ msgid "This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by \"client_encoding\"."
+#~ msgstr ""
+#~ "Cette erreur peut aussi survenir si la séquence d'octets ne correspond pas\n"
+#~ "au jeu de caractères attendu par le serveur, le jeu étant contrôlé par\n"
+#~ "« client_encoding »."
+
+#~ msgid "redo starts at %X/%X, consistency will be reached at %X/%X"
+#~ msgstr "la restauration comme à %X/%X, la cohérence sera atteinte à %X/%X"
+
+#~ msgid "binary value is out of range for type bigint"
+#~ msgstr "la valeur binaire est en dehors des limites du type bigint"
+
+#~ msgid "transaction is read-only"
+#~ msgstr "la transaction est en lecture seule"
+
+#~ msgid "PID %d is among the slowest backends."
+#~ msgstr "Le PID %d est parmi les processus serveur les plus lents."
+
+#, fuzzy
+#~ msgid "invalid WAL message received from primary"
+#~ msgstr "format du message invalide"
+
+#, fuzzy
+#~ msgid "sorry, too many standbys already"
+#~ msgstr "désolé, trop de clients sont déjà connectés"
+
+#~ msgid "WAL file SYSID is %s, pg_control SYSID is %s"
+#~ msgstr "le SYSID du journal de transactions WAL est %s, celui de pg_control est %s"
+
+#, fuzzy
+#~ msgid "couldn't put socket to blocking mode: %m"
+#~ msgstr "n'a pas pu activer le mode bloquant pour la socket : %s\n"
+
+#, fuzzy
+#~ msgid "couldn't put socket to non-blocking mode: %m"
+#~ msgstr "n'a pas pu activer le mode non-bloquant pour la socket : %s\n"
+
+#~ msgid "not enough shared memory for background writer"
+#~ msgstr "pas assez de mémoire partagée pour le processus d'écriture en tâche de fond"
+
+#~ msgid "connection limit exceeded for non-superusers"
+#~ msgstr "limite de connexions dépassée pour les utilisateurs standards"
+
+#~ msgid "not enough shared memory for walreceiver"
+#~ msgstr ""
+#~ "pas assez de mémoire partagée pour le processus de réception des journaux de\n"
+#~ "transactions"
+
+#~ msgid "not enough shared memory for walsender"
+#~ msgstr "pas assez de mémoire partagée pour le processus d'envoi des journaux de transactions"
+
+#~ msgid "unlogged operation performed, data may be missing"
+#~ msgstr "opération réalisée non tracée, les données pourraient manquer"
+
+#~ msgid "During recovery, allows connections and queries.  During normal running, causes additional info to be written to WAL to enable hot standby mode on WAL standby nodes."
+#~ msgstr ""
+#~ "Lors de la restauration, autorise les connexions et les requêtes. Lors d'une\n"
+#~ "exécution normale, fait que des informations supplémentaires sont écrites dans\n"
+#~ "les journaux de transactions pour activer le mode Hot Standby sur les nœuds\n"
+#~ "en attente."
+
+#~ msgid "archive_command must be defined before online backups can be made safely."
+#~ msgstr ""
+#~ "archive_command doit être défini avant que les sauvegardes à chaud puissent\n"
+#~ "s'effectuer correctement."
+
+#~ msgid "archive_mode must be enabled at server start."
+#~ msgstr "archive_mode doit être activé au lancement du serveur."
+
+#~ msgid "WAL archiving is not active"
+#~ msgstr "l'archivage des journaux de transactions n'est pas actif"
+
+#~ msgid "usermap \"%s\""
+#~ msgstr "correspondance utilisateur « %s »"
+
+#~ msgid "restartpoint_command = '%s'"
+#~ msgstr "restartpoint_command = '%s'"
+
+#~ msgid "recovery restart point at %X/%X with latest known log time %s"
+#~ msgstr ""
+#~ "point de relancement de la restauration sur %X/%X avec %s comme dernière\n"
+#~ "date connue du journal"
+
+#~ msgid "Not safe to send CSV data\n"
+#~ msgstr "Envoi non sûr des données CSV\n"
+
+#~ msgid "parameter \"standby_mode\" requires a Boolean value"
+#~ msgstr "le paramètre « standby_mode » requiert une valeur booléenne"
+
+#~ msgid "parameter \"recovery_target_inclusive\" requires a Boolean value"
+#~ msgstr "le paramètre « recovery_target_inclusive » requiert une valeur booléenne"
+
+#~ msgid "cannot drop \"%s\" because it is being used by active queries in this session"
+#~ msgstr ""
+#~ "ne peut pas supprimer « %s » car cet objet est en cours d'utilisation par\n"
+#~ "des requêtes actives dans cette session"
+
+#~ msgid "unrecognized \"log_destination\" key word: \"%s\""
+#~ msgstr "mot clé « log_destination » non reconnu : « %s »"
+
+#~ msgid "invalid list syntax for parameter \"log_destination\""
+#~ msgstr "syntaxe de liste invalide pour le paramètre « log_destination »"
+
+#~ msgid "Sets immediate fsync at commit."
+#~ msgstr "Configure un fsync immédiat lors du commit."
+
+#~ msgid "could not open new log file \"%s\": %m"
+#~ msgstr "n'a pas pu ouvrir le nouveau journal applicatif « %s » : %m"
+
+#~ msgid "could not create log file \"%s\": %m"
+#~ msgstr "n'a pas pu créer le journal applicatif « %s » : %m"
+
+#~ msgid "Ident authentication is not supported on local connections on this platform"
+#~ msgstr "l'authentification Ident n'est pas supportée sur les connexions locales sur cette plateforme"
+
+#~ msgid "could not get effective UID from peer credentials: %m"
+#~ msgstr "n'a pas pu obtenir l'UID réel à partir des pièces d'identité de l'autre : %m"
+
+#~ msgid "could not enable credential reception: %m"
+#~ msgstr "n'a pas pu activer la réception de lettres de créance : %m"
+
+#~ msgid "argument to pg_get_expr() must come from system catalogs"
+#~ msgstr "l'argument de pg_get_expr() doit provenir des catalogues systèmes"
+
+#~ msgid "invalid interval value for time zone: day not allowed"
+#~ msgstr "valeur d'intervalle invalide pour le fuseau horaire : jour non autorisé"
+
+#~ msgid "invalid interval value for time zone: month not allowed"
+#~ msgstr "valeur d'intervalle invalide pour le fuseau horaire : les mois ne sont pas autorisés"
+
+#~ msgid "unrecognized \"datestyle\" key word: \"%s\""
+#~ msgstr "mot clé « datestyle » non reconnu : « %s »"
+
+#~ msgid "invalid list syntax for parameter \"datestyle\""
+#~ msgstr "syntaxe de liste invalide pour le paramètre « datestyle »"
 
-#~ msgid "%s: could not determine user name (GetUserName failed)\n"
-#~ msgstr "%s : n'a pas pu déterminer le nom de l'utilisateur (GetUserName a échoué)\n"
+#~ msgid "database \"%s\" not found"
+#~ msgstr "base de données « %s » non trouvée"
 
-#~ msgid "%s: invalid effective UID: %d\n"
-#~ msgstr "%s : UID effectif invalide : %d\n"
+#~ msgid "composite type must have at least one attribute"
+#~ msgstr "le type composite doit avoir au moins un attribut"
 
-#~ msgid "krb5 authentication is not supported on local sockets"
+#~ msgid "cannot reference permanent table from temporary table constraint"
 #~ msgstr ""
-#~ "l'authentification krb5 n'est pas supportée sur les connexions locales par\n"
-#~ "socket"
+#~ "ne peut pas référencer une table permanente à partir de la contrainte de\n"
+#~ "table temporaire"
 
-#~ msgid "SSL renegotiation failure"
-#~ msgstr "échec lors de la re-négotiation SSL"
+#~ msgid "cannot reference temporary table from permanent table constraint"
+#~ msgstr ""
+#~ "ne peut pas référencer une table temporaire à partir d'une contrainte de\n"
+#~ "table permanente"
 
-#~ msgid "local user with ID %d does not exist"
-#~ msgstr "l'utilisateur local dont l'identifiant est %d n'existe pas"
+#~ msgid "function \"%s\" is already in schema \"%s\""
+#~ msgstr "la fonction « %s » existe déjà dans le schéma « %s »"
 
-#~ msgid "Kerberos unparse_name returned error %d"
-#~ msgstr "unparse_name de Kerberos a renvoyé l'erreur %d"
+#~ msgid "must be superuser to comment on text search template"
+#~ msgstr ""
+#~ "doit être super-utilisateur pour ajouter un commentaire sur un modèle de\n"
+#~ "recherche plein texte"
 
-#~ msgid "Kerberos recvauth returned error %d"
-#~ msgstr "recvauth de Kerberos a renvoyé l'erreur %d"
+#~ msgid "must be superuser to comment on text search parser"
+#~ msgstr ""
+#~ "doit être super-utilisateur pour ajouter un commentaire sur l'analyseur de\n"
+#~ "recherche plein texte"
 
-#~ msgid "Kerberos sname_to_principal(\"%s\", \"%s\") returned error %d"
-#~ msgstr "sname_to_principal(« %s », « %s ») de Kerberos a renvoyé l'erreur %d"
+#~ msgid "must be superuser to comment on procedural language"
+#~ msgstr ""
+#~ "doit être super-utilisateur pour ajouter un commentaire sur un langage de\n"
+#~ "procédures"
 
-#~ msgid "Kerberos keytab resolving returned error %d"
-#~ msgstr "la résolution keytab de Kerberos a renvoyé l'erreur %d"
+#~ msgid "\"%s\" is not a table, view, or composite type"
+#~ msgstr "« %s » n'est pas une table, une vue ou un type composite"
 
-#~ msgid "Kerberos initialization returned error %d"
-#~ msgstr "l'initialisation de Kerberos a retourné l'erreur %d"
+#~ msgid "cannot cluster on expressional index \"%s\" because its index access method does not handle null values"
+#~ msgstr ""
+#~ "ne peut pas exécuter CLUSTER sur l'index à expression « %s » car sa méthode\n"
+#~ "d'accès ne gère pas les valeurs NULL"
 
-#~ msgid "Kerberos 5 authentication failed for user \"%s\""
-#~ msgstr "authentification Kerberos 5 échouée pour l'utilisateur « %s »"
+#~ msgid "You might be able to work around this by marking column \"%s\" NOT NULL."
+#~ msgstr "Vous pouvez contourner ceci en marquant la colonne « %s » comme NOT NULL."
 
-#~ msgid "trigger \"%s\" for table \"%s\" does not exist, skipping"
-#~ msgstr "le trigger « %s » pour la table « %s » n'existe pas, poursuite du traitement"
+#~ msgid "You might be able to work around this by marking column \"%s\" NOT NULL, or use ALTER TABLE ... SET WITHOUT CLUSTER to remove the cluster specification from the table."
+#~ msgstr ""
+#~ "Vous pourriez contourner ceci en marquant la colonne « %s » avec la\n"
+#~ "contrainte NOT NULL ou en utilisant ALTER TABLE ... SET WITHOUT CLUSTER pour\n"
+#~ "supprimer la spécification CLUSTER de la table."
 
-#~ msgid "invalid input syntax for transaction log location: \"%s\""
-#~ msgstr "syntaxe invalide en entrée pour l'emplacement du journal de transactions : « %s »"
+#~ msgid "cannot cluster on index \"%s\" because access method does not handle null values"
+#~ msgstr ""
+#~ "ne peut pas créer un cluster sur l'index « %s » car la méthode d'accès de\n"
+#~ "l'index ne gère pas les valeurs NULL"
 
-#~ msgid "could not parse transaction log location \"%s\""
-#~ msgstr "n'a pas pu analyser l'emplacement du journal des transactions « %s »"
+#~ msgid "clustering \"%s.%s\""
+#~ msgstr "exécution de CLUSTER sur « %s.%s »"
 
-#~ msgid "%s \"%s\": return code %d"
-#~ msgstr "%s « %s » : code de retour %d"
+#~ msgid "EnumValuesCreate() can only set a single OID"
+#~ msgstr "EnumValuesCreate() peut seulement initialiser un seul OID"
 
-#~ msgid "assertion checking is not supported by this build"
-#~ msgstr "la vérification de l'assertion n'a pas été intégrée lors de la compilation"
+#~ msgid "index \"%s\" needs VACUUM FULL or REINDEX to finish crash recovery"
+#~ msgstr ""
+#~ "l'index  « %s » a besoin d'un VACUUM FULL ou d'un REINDEX pour terminer la\n"
+#~ "récupération suite à un arrêt brutal"
 
-#~ msgid "Set the amount of traffic to send and receive before renegotiating the encryption keys."
+#~ msgid "index \"%s\" needs VACUUM or REINDEX to finish crash recovery"
 #~ msgstr ""
-#~ "Configure la quantité de trafic à envoyer et recevoir avant la renégotiation\n"
-#~ "des clés d'enchiffrement."
+#~ "l'index  « %s » a besoin d'un VACUUM ou d'un REINDEX pour terminer la\n"
+#~ "récupération suite à un arrêt brutal"
 
-#~ msgid "Sets the maximum distance in log segments between automatic WAL checkpoints."
+#~ msgid "Incomplete insertion detected during crash replay."
 #~ msgstr ""
-#~ "Initialise la distance maximale dans les journaux de transaction entre chaque\n"
-#~ "point de vérification (checkpoints) des journaux."
+#~ "Insertion incomplète détectée lors de la ré-exécution des requêtes suite à\n"
+#~ "l'arrêt brutal."
 
-#~ msgid "It's just here so that we won't choke on SET AUTOCOMMIT TO ON from 7.3-vintage clients."
+#~ msgid "index %u/%u/%u needs VACUUM FULL or REINDEX to finish crash recovery"
 #~ msgstr ""
-#~ "C'est ici uniquement pour ne pas avoir de problèmes avec le SET AUTOCOMMIT\n"
-#~ "TO ON des clients 7.3."
+#~ "l'index  %u/%u/%u a besoin d'un VACUUM FULL ou d'un REINDEX pour terminer la\n"
+#~ "récupération suite à un arrêt brutal"
 
-#~ msgid "This parameter doesn't do anything."
-#~ msgstr "Ce paramètre ne fait rien."
+#~ msgid "Lines should have the format parameter = 'value'."
+#~ msgstr "Les lignes devraient avoir le format paramètre = 'valeur'"
 
-#~ msgid "This is a debugging aid."
-#~ msgstr "C'est une aide de débogage."
+#~ msgid "syntax error in recovery command file: %s"
+#~ msgstr "erreur de syntaxe dans le fichier de restauration : %s"
 
-#~ msgid "Turns on various assertion checks."
-#~ msgstr "Active les différentes vérifications des assertions."
+#~ msgid "Write-Ahead Log / Streaming Replication"
+#~ msgstr "Write-Ahead Log / Réplication en flux"
 
-#~ msgid "cannot accept a value of type pg_node_tree"
-#~ msgstr "ne peut pas accepter une valeur de type pg_node_tree"
+#~ msgid "unable to open directory pg_tblspc: %m"
+#~ msgstr "impossible d'ouvrir le répertoire p_tblspc : %m"
 
-#~ msgid "must be superuser or have the same role to terminate other server processes"
-#~ msgstr ""
-#~ "doit être super-utilisateur ou avoir le même rôle pour fermer les connexions\n"
-#~ "exécutées dans les autres processus serveur"
+#~ msgid "unable to read symbolic link %s: %m"
+#~ msgstr "incapable de lire le lien symbolique %s : %m"
 
-#~ msgid "must be superuser or have the same role to cancel queries running in other server processes"
-#~ msgstr ""
-#~ "doit être super-utilisateur ou avoir le même rôle pour annuler des requêtes\n"
-#~ "exécutées dans les autres processus serveur"
+#~ msgid "index \"%s\" is not a b-tree"
+#~ msgstr "l'index « %s » n'est pas un btree"
 
-#~ msgid "invalid symbol"
-#~ msgstr "symbole invalide"
+#~ msgid "ALTER TYPE USING is only supported on plain tables"
+#~ msgstr "ALTER TYPE USING est seulement supportés sur les tables standards"
 
-#~ msgid "unexpected \"=\""
-#~ msgstr "« = » inattendu"
+#~ msgid "resetting unlogged relations: cleanup %d init %d"
+#~ msgstr "réinitialisation des relations non tracées : nettoyage %d initialisation %d"
 
-#~ msgid "neither input type is an array"
-#~ msgstr "aucun type de données n'est un tableau"
+#~ msgid "%s (%x)"
+#~ msgstr "%s (%x)"
 
-#~ msgid "could not determine input data types"
-#~ msgstr "n'a pas pu déterminer les types de données en entrée"
+#~ msgid "SSPI error %x"
+#~ msgstr "erreur SSPI : %x"
 
-#~ msgid "archive member \"%s\" too large for tar format"
-#~ msgstr "membre « %s » de l'archive trop volumineux pour le format tar"
+#~ msgid "consistent state delayed because recovery snapshot incomplete"
+#~ msgstr "état de cohérence pas encore atteint à cause d'un snapshot de restauration incomplet"
 
-#~ msgid "postmaster became multithreaded"
-#~ msgstr "le postmaster est devenu multithreadé"
+#~ msgid "tablespace %u is not empty"
+#~ msgstr "le tablespace %u n'est pas vide"
 
-#~ msgid "invalid value for parameter \"replication\""
-#~ msgstr "valeur invalide pour le paramètre « replication »"
+#~ msgid "subquery in WITH cannot have SELECT INTO"
+#~ msgstr "la sous-requête du WITH ne peut pas avoir de SELECT INTO"
 
-#~ msgid "WAL archival (archive_mode=on) requires wal_level \"archive\", \"hot_standby\", or \"logical\""
-#~ msgstr ""
-#~ "l'archivage des journaux de transactions (archive_mode=on) nécessite que\n"
-#~ "le paramètre wal_level soit initialisé avec « archive », « hot_standby » ou « logical »"
+#~ msgid "subquery cannot have SELECT INTO"
+#~ msgstr "la sous-requête ne peut pas avoir de SELECT INTO"
 
-#~ msgid "Consider increasing the configuration parameter \"checkpoint_segments\"."
-#~ msgstr "Considèrez l'augmentation du paramètre « checkpoint_segments »."
+#~ msgid "subquery in FROM cannot have SELECT INTO"
+#~ msgstr "la sous-requête du FROM ne peut pas avoir de SELECT INTO"
 
-#~ msgid "subquery must return a column"
-#~ msgstr "la sous-requête doit renvoyer une colonne"
+#~ msgid "DECLARE CURSOR cannot specify INTO"
+#~ msgstr "DECLARE CURSOR ne peut pas spécifier INTO"
 
-#~ msgid "  -A 1|0             enable/disable run-time assert checking\n"
-#~ msgstr ""
-#~ "  -A 1|0             active/désactive la vérification des limites (assert) à\n"
-#~ "                     l'exécution\n"
+#~ msgid "INSERT ... SELECT cannot specify INTO"
+#~ msgstr "INSERT ... SELECT ne peut pas avoir INTO"
 
-#~ msgid "%s: setsysinfo failed: %s\n"
-#~ msgstr "%s : setsysinfo a échoué : %s\n"
+#~ msgid "column name list not allowed in CREATE TABLE / AS EXECUTE"
+#~ msgstr "la liste de noms de colonnes n'est pas autorisée dans CREATE TABLE / AS EXECUTE"
 
-#~ msgid "could not set socket to blocking mode: %m"
-#~ msgstr "n'a pas pu activer le mode bloquant pour la socket : %m"
+#~ msgid "CREATE TABLE AS cannot specify INTO"
+#~ msgstr "CREATE TABLE AS ne peut pas spécifier INTO"
 
-#~ msgid "SSL failed to renegotiate connection before limit expired"
-#~ msgstr "SSL a échoué à renégotier la connexion avant l'expiration du délai"
+#~ msgid "  --version       output version information, then exit\n"
+#~ msgstr "  --version          affiche la version, puis quitte\n"
 
-#~ msgid "could not complete SSL handshake on renegotiation, too many failures"
-#~ msgstr "n'a pas pu terminer la poignée de main de renégotiation, trop d'échecs"
+#~ msgid "  --help          show this help, then exit\n"
+#~ msgstr "  --help             affiche cette aide, puis quitte\n"
 
-#~ msgid "SSL handshake failure on renegotiation, retrying"
-#~ msgstr "échec du handshake SSL lors de la renégotiation, nouvelle tentative"
+#~ msgid "Make sure the root.crt file is present and readable."
+#~ msgstr "Assurez-vous que le certificat racine (root.crt) est présent et lisible"
 
-#~ msgid "SSL failure during renegotiation start"
-#~ msgstr "échec SSL au début de la re-négotiation"
+#~ msgid "See server log for details."
+#~ msgstr "Voir les journaux applicatifs du serveur pour plus de détails."
 
-#~ msgid "received password packet"
-#~ msgstr "paquet du mot de passe reçu"
+#~ msgid "missing or erroneous pg_hba.conf file"
+#~ msgstr "fichier pg_hba.conf manquant ou erroné"
 
-#~ msgid "interval precision specified twice"
-#~ msgstr "précision d'intervalle spécifiée deux fois"
+#~ msgid "Certificates will not be checked against revocation list."
+#~ msgstr "Les certificats ne seront pas vérifiés avec la liste de révocation."
 
-#~ msgid ""
-#~ "%.0f dead row versions cannot be removed yet.\n"
-#~ "There were %.0f unused item pointers.\n"
-#~ "%u pages are entirely empty.\n"
-#~ "%s."
-#~ msgstr ""
-#~ "%.0f versions de lignes mortes ne peuvent pas encore être supprimées.\n"
-#~ "Il y avait %.0f pointeurs d'éléments inutilisés.\n"
-#~ "%u pages sont entièrement vides.\n"
-#~ "%s."
+#~ msgid "SSL certificate revocation list file \"%s\" not found, skipping: %s"
+#~ msgstr "liste de révocation des certificats SSL « %s » introuvable, continue : %s"
 
-#~ msgid ""
-#~ "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n"
-#~ "pages: %d removed, %d remain\n"
-#~ "tuples: %.0f removed, %.0f remain, %.0f are dead but not yet removable\n"
-#~ "buffer usage: %d hits, %d misses, %d dirtied\n"
-#~ "avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n"
-#~ "system usage: %s"
+#~ msgid "could not access root certificate file \"%s\": %m"
+#~ msgstr "n'a pas pu accéder au fichier du certificat racine « %s » : %m"
+
+#~ msgid "could not open directory \"pg_tblspc\": %m"
+#~ msgstr "n'a pas pu ouvrir le répertoire « pg_tblspc » : %m"
+
+#~ msgid "standby connections not allowed because wal_level=minimal"
+#~ msgstr "connexions standby non autorisées car wal_level=minimal"
+
+#~ msgid "recovery is still in progress, can't accept WAL streaming connections"
+#~ msgstr "la restauration est en cours, ne peut pas accepter les connexions de flux WAL"
+
+#~ msgid "must be superuser to drop text search templates"
+#~ msgstr "doit être super-utilisateur pour supprimer des modèles de recherche plein texte"
+
+#~ msgid "must be superuser to drop text search parsers"
 #~ msgstr ""
-#~ "VACUUM automatique de la table « %s.%s.%s » : parcours d'index : %d\n"
-#~ "pages : %d supprimées, %d restantes\n"
-#~ "lignes : %.0f supprimées, %.0f restantes, %.0f sont mortes mais non supprimables\n"
-#~ "utilisation des tampons : %d lus dans le cache, %d lus hors du cache, %d modifiés\n"
-#~ "taux moyen de lecture : %.3f Mo/s, taux moyen d'écriture : %.3f Mo/s\n"
-#~ "utilisation système : %s"
+#~ "doit être super-utilisateur pour supprimer des analyseurs de recherche plein\n"
+#~ "texte"
+
+#~ msgid "Must be superuser to drop a foreign-data wrapper."
+#~ msgstr "Doit être super-utilisateur pour supprimer un wrapper de données distantes."
 
-#~ msgid "Specify a USING expression to perform the conversion."
-#~ msgstr "Donnez une expression USING pour réaliser la conversion."
+#~ msgid "permission denied to drop foreign-data wrapper \"%s\""
+#~ msgstr "droit refusé pour supprimer le wrapper de données distantes « %s »"
 
-#~ msgid "\"%s\" is not a table, materialized view, composite type, or foreign table"
-#~ msgstr "« %s » n'est ni une table, ni une vue matérialisée, ni un type composite, ni une table distante"
+#~ msgid "removing built-in function \"%s\""
+#~ msgstr "suppression de la fonction interne « %s »"
 
-#~ msgid "This name may be disallowed altogether in future versions of PostgreSQL."
-#~ msgstr "Ce nom pourrait être interdit dans les prochaines versions de PostgreSQL."
+#~ msgid "foreign key constraint \"%s\" of relation \"%s\" does not exist"
+#~ msgstr "la clé étrangère « %s » de la relation « %s » n'existe pas"
 
-#~ msgid "=> is deprecated as an operator name"
-#~ msgstr "=> est un nom d'opérateur obsolète"
+#~ msgid "Sets the list of known custom variable classes."
+#~ msgstr "Initialise la liste des classes variables personnalisées connues."
 
-#~ msgid "WAL file is from different database system: Incorrect XLOG_BLCKSZ in page header."
+#~ msgid "WAL sender sleep time between WAL replications."
 #~ msgstr ""
-#~ "le journal de transactions provient d'un système de bases de données différent :\n"
-#~ "XLOG_BLCKSZ incorrect dans l'en-tête de page."
+#~ "Temps d'endormissement du processus d'envoi des journaux de transactions entre\n"
+#~ "les réplications des journaux de transactions."
 
-#~ msgid "WAL file is from different database system: Incorrect XLOG_SEG_SIZE in page header."
+#~ msgid "If this parameter is set, the server will automatically run in the background and any controlling terminals are dissociated."
 #~ msgstr ""
-#~ "le journal de transactions provient d'un système de bases de données différent :\n"
-#~ "XLOG_SEG_SIZE incorrect dans l'en-tête de page."
+#~ "Si ce paramètre est initialisé, le serveur sera exécuté automatiquement en\n"
+#~ "tâche de fond et les terminaux de contrôles seront dés-associés."
 
-#~ msgid "WAL file is from different database system: WAL file database system identifier is %s, pg_control database system identifier is %s."
-#~ msgstr ""
-#~ "L'identifiant du journal de transactions du système de base de données est %s,\n"
-#~ "l'identifiant pg_control du système de base de données dans pg_control est %s."
+#~ msgid "Runs the server silently."
+#~ msgstr "Lance le serveur de manière silencieuse."
 
-#~ msgid "incorrect total length in record at %X/%X"
-#~ msgstr "longueur totale incorrecte à l'enregistrement %X/%X"
+#~ msgid "%s: could not dissociate from controlling TTY: %s\n"
+#~ msgstr "%s : n'a pas pu se dissocier du TTY contrôlant : %s\n"
 
-#~ msgid "incorrect hole size in record at %X/%X"
-#~ msgstr "taille du trou incorrect à l'enregistrement %X/%X"
+#~ msgid "%s: could not fork background process: %s\n"
+#~ msgstr "%s : n'a pas pu créer un processus fils : %s\n"
 
-#~ msgid "invalid backup block size in record at %X/%X"
-#~ msgstr "taille du bloc de sauvegarde invalide dans l'enregistrement à %X/%X"
+#~ msgid "%s: could not open log file \"%s/%s\": %s\n"
+#~ msgstr "%s : n'a pas pu ouvrir le journal applicatif « %s/%s » : %s\n"
 
-#~ msgid "record with zero length at %X/%X"
-#~ msgstr "enregistrement de longueur nulle à %X/%X"
+#~ msgid "select() failed in logger process: %m"
+#~ msgstr "échec de select() dans le processus des journaux applicatifs : %m"
 
-#~ msgid "invalid xlog switch record at %X/%X"
-#~ msgstr "enregistrement de basculement du journal de transaction invalide à %X/%X"
+#~ msgid "poll() failed in statistics collector: %m"
+#~ msgstr "échec du poll() dans le récupérateur de statistiques : %m"
 
-#~ msgid "oldest unfrozen transaction ID: %u, in database %u"
+#~ msgid "Valid values are '[]', '[)', '(]', and '()'."
+#~ msgstr "Les valeurs valides sont « [] », « [) », « (] » et « () »."
+
+#~ msgid "invalid list syntax for \"unix_socket_directories\""
+#~ msgstr "syntaxe de liste invalide pour le paramètre « unix_socket_directories »"
+
+#~ msgid "window functions cannot use named arguments"
+#~ msgstr "les fonctions window ne peuvent pas renvoyer des arguments nommés"
+
+#~ msgid "cannot override frame clause of window \"%s\""
+#~ msgstr "ne peut pas surcharger la frame clause du window « %s »"
+
+#~ msgid "JSON does not support infinite timestamp values."
+#~ msgstr "JSON ne supporte pas les valeurs infinies de timestamp."
+
+#~ msgid "JSON does not support infinite date values."
+#~ msgstr "JSON ne supporte pas les valeurs infinies de date."
+
+#~ msgid "WAL writer sleep time between WAL flushes."
 #~ msgstr ""
-#~ "identifiant de transaction non gelé le plus ancien : %u, dans la base de\n"
-#~ "données %u"
+#~ "Temps d'endormissement du processus d'écriture pendant le vidage des\n"
+#~ "journaux de transactions en millisecondes."
 
-#~ msgid "next MultiXactId: %u; next MultiXactOffset: %u"
-#~ msgstr "prochain MultiXactId : %u ; prochain MultiXactOffset : %u"
+#~ msgid "argument for function \"exp\" too big"
+#~ msgstr "l'argument de la fonction « exp » est trop gros"
 
-#~ msgid "next transaction ID: %u/%u; next OID: %u"
-#~ msgstr "prochain identifiant de transaction : %u/%u ; prochain OID : %u"
+#~ msgid "must be superuser to signal the postmaster"
+#~ msgstr "doit être super-utilisateur pour envoyer un signal au postmaster"
 
-#~ msgid "redo record is at %X/%X; shutdown %s"
-#~ msgstr "l'enregistrement à ré-exécuter se trouve à %X/%X ; arrêt %s"
+#~ msgid "could not format \"circle\" value"
+#~ msgstr "n'a pas pu formater la valeur « circle »"
 
-#~ msgid "invalid value for recovery parameter \"recovery_target\""
-#~ msgstr "valeur invalide pour le paramètre de restauration « recovery_target »"
+#~ msgid "invalid input syntax for type circle: \"%s\""
+#~ msgstr "syntaxe en entrée invalide pour le type circle : « %s »"
 
-#~ msgid "unrecognized win32 error code: %lu"
-#~ msgstr "code d'erreur win32 non reconnu : %lu"
+#~ msgid "invalid input syntax for type polygon: \"%s\""
+#~ msgstr "syntaxe en entrée invalide pour le type polygon : « %s »"
 
-#~ msgid "mapped win32 error code %lu to %d"
-#~ msgstr "correspondance du code d'erreur win32 %lu en %d"
+#~ msgid "invalid input syntax for type lseg: \"%s\""
+#~ msgstr "syntaxe en entrée invalide pour le type lseg : « %s »"
 
-#~ msgid "too few arguments for format"
-#~ msgstr "trop peu d'arguments pour le format"
+#~ msgid "invalid input syntax for type point: \"%s\""
+#~ msgstr "syntaxe en entrée invalide pour le type point : « %s »"
 
-#~ msgid "invalid length in external \"numeric\" value"
-#~ msgstr "longueur invalide dans la valeur externe « numeric »"
+#~ msgid "invalid input syntax for type path: \"%s\""
+#~ msgstr "syntaxe en entrée invalide pour le type path : « %s »"
 
-#~ msgid "time zone abbreviation \"%s\" is not used in time zone \"%s\""
-#~ msgstr "l'abréviation « %s » du fuseau horaire n'est pas utilisée dans le fuseau horaire « %s »"
+#~ msgid "invalid input syntax for type line: \"%s\""
+#~ msgstr "syntaxe en entrée invalide pour le type line: « %s »"
 
-#~ msgid "role \"%s\" is reserved"
-#~ msgstr "le rôle « %s » est réservé"
+#~ msgid "invalid input syntax for type box: \"%s\""
+#~ msgstr "syntaxe en entrée invalide pour le type box : « %s »"
 
-#~ msgid "system columns cannot be used in an ON CONFLICT clause"
-#~ msgstr "les colonnes systèmes ne peuvent pas être utilisées dans une clause ON CONFLICT"
+#~ msgid "could not format \"path\" value"
+#~ msgstr "n'a pas pu formater la valeur « path »"
 
-#~ msgid "function returning set of rows cannot return null value"
-#~ msgstr ""
-#~ "la fonction renvoyant un ensemble de lignes ne peut pas renvoyer une valeur\n"
-#~ "NULL"
+#~ msgid "multibyte flag character is not allowed"
+#~ msgstr "un caractère drapeau multi-octet n'est pas autorisé"
 
-#~ msgid "Only superusers can use untrusted languages."
-#~ msgstr ""
-#~ "Seuls les super-utilisateurs peuvent utiliser des langages qui ne sont pas\n"
-#~ "de confiance."
+#~ msgid "socket not open"
+#~ msgstr "socket non ouvert"
 
-#~ msgid "huge TLB pages not supported on this platform"
-#~ msgstr "Huge Pages TLB non supporté sur cette plateforme."
+#~ msgid "must be superuser to reset statistics counters"
+#~ msgstr "doit être super-utilisateur pour réinitialiser les compteurs statistiques"
 
-#~ msgid "Lower bound of dimension array must be one."
-#~ msgstr "La limite inférieure du tableau doit valoir un."
+#~ msgid "function %s must return type \"tsm_handler\""
+#~ msgstr "la fonction %s doit renvoyer le type « tsm_handler »"
 
-#~ msgid "aborted"
-#~ msgstr "annulé"
+#~ msgid "Permissions should be u=rw (0600) or less."
+#~ msgstr "Les droits devraient être u=rwx (0600) ou inférieures."
 
-#~ msgid "committed"
-#~ msgstr "validé"
+#~ msgid "typmod_in function %s must return type \"integer\""
+#~ msgstr "la fonction typmod_in %s doit renvoyer le type « entier »"
 
-#~ msgid "in progress"
-#~ msgstr "en cours"
+#~ msgid "type send function %s must return type \"bytea\""
+#~ msgstr "la fonction send du type %s doit renvoyer le type « bytea »"
 
-#~ msgid "transaction ID "
-#~ msgstr "ID de transaction "
+#~ msgid "type output function %s must return type \"cstring\""
+#~ msgstr "le type de sortie de la fonction %s doit être « cstring »"
 
-#~ msgid "invalid input syntax for %s: \"%s\""
-#~ msgstr "syntaxe en entrée invalide pour le type %s : « %s »"
+#~ msgid "changing return type of function %s from \"opaque\" to \"cstring\""
+#~ msgstr "changement du type de retour de la fonction %s d'« opaque » vers « cstring »"
 
-#~ msgid "not connected to database"
-#~ msgstr "non connecté à une base de données"
+#~ msgid "function %s must return type \"trigger\""
+#~ msgstr "la fonction %s doit renvoyer le type « trigger »"
 
-#~ msgid "User \"%s\" has an empty password."
-#~ msgstr "L'utilisateur « %s » a un mot de passe vide."
+#~ msgid "function %s must return type \"language_handler\""
+#~ msgstr "la fonction %s doit renvoyer le type « language_handler »"
 
-#~ msgid "removed subscription for table %s.%s"
-#~ msgstr "a supprimé une souscription pour la table %s.%s"
+#~ msgid "could not reposition held cursor"
+#~ msgstr "n'a pas pu repositionner le curseur détenu"
 
-#~ msgid "added subscription for table %s.%s"
-#~ msgstr "souscription ajoutée pour la table %s.%s"
+#~ msgid "function %s must return type \"fdw_handler\""
+#~ msgstr "la fonction %s doit renvoyer le type « fdw_handler »"
 
-#~ msgid "column \"%s\" referenced in statistics does not exist"
-#~ msgstr "la colonne « %s » référencée dans les statistiques n'existe pas"
+#~ msgid "function \"%s\" must return type \"event_trigger\""
+#~ msgstr "la fonction « %s » doit renvoyer le type « event_trigger »"
 
-#~ msgid "invalid publish list"
-#~ msgstr "liste de publication invalide"
+#~ msgid "%s is already in schema \"%s\""
+#~ msgstr "%s existe déjà dans le schéma « %s »"
 
-#~ msgid "could not get keyword values for locale \"%s\": %s"
-#~ msgstr "n'a pas pu obtenir les valeurs des mots clés pour la locale « %s » : %s"
+#~ msgid "invalid record length at %X/%X"
+#~ msgstr "longueur invalide de l'enregistrement à %X/%X"
 
-#~ msgid "cannot create range partition with empty range"
-#~ msgstr "ne peut pas créer une partition par intervalle avec un intervalle vide"
+#~ msgid "must be superuser to control recovery"
+#~ msgstr "doit être super-utilisateur pour contrôler la restauration"
 
-#~ msgid "When more tuples than this are present, quicksort will be used."
-#~ msgstr "Quand plus de lignes que ça sont présentes, quicksort sera utilisé."
+#~ msgid "must be superuser to create a restore point"
+#~ msgstr "doit être super-utilisateur pour créer un point de restauration"
 
-#~ msgid "Sets the maximum number of tuples to be sorted using replacement selection."
-#~ msgstr "Configure le nombre maximum de lignes à trier en utilisant la sélection de remplacement."
+#~ msgid "must be superuser to switch transaction log files"
+#~ msgstr "doit être super-utilisateur pour changer de journal de transactions"
 
-#~ msgid "must be superuser to get directory listings"
-#~ msgstr "doit être super-utilisateur pour obtenir le contenu du répertoire"
+#~ msgid "must be superuser or replication role to run a backup"
+#~ msgstr "doit être super-utilisateur ou avoir l'attribut de réplication pour exécuter une sauvegarde"
 
-#~ msgid "must be superuser to get file information"
-#~ msgstr "doit être super-utilisateur pour obtenir des informations sur le fichier"
+#~ msgid "ignoring \"%s\" file because no \"%s\" file exists"
+#~ msgstr "ignore le fichier « %s » parce que le fichier « %s » n'existe pas"
 
-#~ msgid "could not open tablespace directory \"%s\": %m"
-#~ msgstr "n'a pas pu ouvrir le répertoire du tablespace « %s » : %m"
+#~ msgid "could not rename file \"%s\" to \"%s\" (initialization of log file): %m"
+#~ msgstr "n'a pas pu renommer le fichier « %s » en « %s » (initialisation du journal de transactions) : %m"
 
-#~ msgid "There might be an idle transaction or a forgotten prepared transaction causing this."
-#~ msgstr ""
-#~ "Il pourait y avoir une transaction en attente ou une transaction préparée\n"
-#~ "oubliée causant cela."
+#~ msgid "could not link file \"%s\" to \"%s\" (initialization of log file): %m"
+#~ msgstr "n'a pas pu lier le fichier « %s » à « %s » (initialisation du journal de transactions) : %m"
 
-#~ msgid "memory for serializable conflict tracking is nearly exhausted"
-#~ msgstr "la mémoire pour tracer les conflits sérialisables est pratiquement pleine"
+#~ msgid "could not close two-phase state file \"%s\": %m"
+#~ msgstr ""
+#~ "n'a pas pu fermer le fichier d'état de la validation en deux phases nommé\n"
+#~ "« %s » : %m"
 
-#~ msgid "logical replication could not find row for delete in replication target relation \"%s\""
-#~ msgstr "la réplication logique n'a pas pu trouver la ligne à supprimer dans la relation cible de réplication %s"
+#~ msgid "could not fsync two-phase state file \"%s\": %m"
+#~ msgstr ""
+#~ "n'a pas pu synchroniser sur disque (fsync) le fichier d'état de la\n"
+#~ "validation en deux phases nommé « %s » : %m"
 
-#~ msgid "data type \"%s.%s\" required for logical replication does not exist"
-#~ msgstr "le type de données « %s/%s » requis par la réplication logique n'existe pas"
+#~ msgid "two-phase state file for transaction %u is corrupt"
+#~ msgstr ""
+#~ "le fichier d'état de la validation en deux phases est corrompu pour la\n"
+#~ "transaction %u"
 
-#~ msgid "This can be caused by having a publisher with a higher PostgreSQL major version than the subscriber."
-#~ msgstr "Ceci peut avoir pour cause un publieur ayant une version majeure de PostgreSQL supérieure à l'abonné"
+#~ msgid "could not seek in two-phase state file: %m"
+#~ msgstr ""
+#~ "n'a pas pu se déplacer dans le fichier de statut de la validation en deux\n"
+#~ "phases : %m"
 
-#~ msgid "built-in type %u not found"
-#~ msgstr "type interne %u non trouvé"
+#~ msgid "could not create two-phase state file \"%s\": %m"
+#~ msgstr ""
+#~ "n'a pas pu créer le fichier de statut de la validation en deux phases nommé\n"
+#~ "« %s » : %m"
 
-#~ msgid "worker process"
-#~ msgstr "processus de travail"
+#~ msgid "Causes subtables to be included by default in various commands."
+#~ msgstr ""
+#~ "Fait que les sous-tables soient incluses par défaut dans les différentes\n"
+#~ "commandes."
 
-#~ msgid "data directory \"%s\" has group or world access"
-#~ msgstr ""
-#~ "le répertoire des données « %s » est accessible par le groupe et/ou par les\n"
-#~ "autres"
+#~ msgid "function %u has too many arguments (%d, maximum is %d)"
+#~ msgstr "la fonction %u a trop d'arguments (%d, le maximum étant %d)"
 
-#~ msgid "%s: max_wal_senders must be less than max_connections\n"
-#~ msgstr "%s : max_wal_senders doit être inférieur à max_connections\n"
+#~ msgid "invalid input syntax for uuid: \"%s\""
+#~ msgstr "syntaxe invalide en entrée pour l'uuid : « %s »"
 
-#~ msgid "could not open archive status directory \"%s\": %m"
-#~ msgstr "n'a pas pu accéder au répertoire du statut des archives « %s » : %m"
+#~ msgid "invalid input syntax for type txid_snapshot: \"%s\""
+#~ msgstr "syntaxe en entrée invalide pour le type txid_snapshot : « %s »"
 
-#~ msgid "foreign key constraints are not supported on partitioned tables"
-#~ msgstr "les clés étrangères ne sont pas supportées sur les tables partitionnées"
+#~ msgid "invalid input syntax for type tid: \"%s\""
+#~ msgstr "syntaxe en entrée invalide pour le type tid : « %s »"
 
-#~ msgid "ON CONFLICT clause is not supported with partitioned tables"
-#~ msgstr "la clause ON CONFLICT n'est pas supporté avec les tables partitionnées"
+#~ msgid "cannot display a value of type anynonarray"
+#~ msgstr "ne peut pas afficher une valeur de type anynonarray"
 
-#~ msgid "Anyone can use the client-side lo_export() provided by libpq."
-#~ msgstr "Tout le monde peut utiliser lo_export(), fournie par libpq, du côté client."
+#~ msgid "cannot accept a value of type anynonarray"
+#~ msgstr "ne peut pas accepter une valeur de type anynonarray"
 
-#~ msgid "must be superuser to use server-side lo_export()"
-#~ msgstr "doit être super-utilisateur pour utiliser lo_export() du côté serveur"
+#~ msgid "cannot display a value of type anyelement"
+#~ msgstr "ne peut pas afficher une valeur de type anyelement"
 
-#~ msgid "Anyone can use the client-side lo_import() provided by libpq."
-#~ msgstr "Tout le monde peut utiliser lo_import(), fourni par libpq, du côté client."
+#~ msgid "cannot accept a value of type anyelement"
+#~ msgstr "ne peut pas accepter une valeur de type anyelement"
 
-#~ msgid "must be superuser to use server-side lo_import()"
-#~ msgstr "doit être super-utilisateur pour utiliser lo_import() du côté serveur"
+#~ msgid "cannot display a value of type opaque"
+#~ msgstr "ne peut pas afficher une valeur de type opaque"
 
-#~ msgid "client requires SCRAM channel binding, but it is not supported"
-#~ msgstr "le client requiert le lien de canal SCRAM mais ceci n'est pas supporté"
+#~ msgid "cannot accept a value of type opaque"
+#~ msgstr "ne peut pas accepter une valeur de type opaque"
 
-#~ msgid "RANGE FOLLOWING is only supported with UNBOUNDED"
-#~ msgstr "RANGE FOLLOWING est seulement supporté avec UNBOUNDED"
+#~ msgid "cannot display a value of type internal"
+#~ msgstr "ne peut pas afficher une valeur de type internal"
 
-#~ msgid "RANGE PRECEDING is only supported with UNBOUNDED"
-#~ msgstr "RANGE PRECEDING est seulement supporté avec UNBOUNDED"
+#~ msgid "cannot accept a value of type internal"
+#~ msgstr "ne peut pas accepter une valeur de type internal"
 
-#~ msgid "combine function for aggregate %u must be declared as STRICT"
-#~ msgstr "la fonction d'unification pour l'aggrégat %u doit être déclarée comme STRICT"
+#~ msgid "cannot display a value of type tsm_handler"
+#~ msgstr "ne peut pas afficher une valeur de type tsm_handler"
 
-#~ msgid "Close open transactions soon to avoid wraparound problems."
-#~ msgstr ""
-#~ "Fermez les transactions ouvertes rapidement pour éviter des problèmes de\n"
-#~ "réinitialisation."
+#~ msgid "cannot accept a value of type tsm_handler"
+#~ msgstr "ne peut pas accepter une valeur de type tsm_handler"
 
-#~ msgid "column \"%s\" appears more than once in partition key"
-#~ msgstr "la colonne « %s » apparaît plus d'une fois dans la clé de partitionnement"
+#~ msgid "cannot display a value of type index_am_handler"
+#~ msgstr "ne peut pas afficher une valeur de type index_am_handler"
 
-#~ msgid "operator procedure must be specified"
-#~ msgstr "la procédure de l'opérateur doit être spécifiée"
+#~ msgid "cannot accept a value of type index_am_handler"
+#~ msgstr "ne peut pas accepter une valeur de type index_am_handler"
 
-#~ msgid "procedure number %d for (%s,%s) appears more than once"
-#~ msgstr "le numéro de procédure %d pour (%s, %s) apparaît plus d'une fois"
+#~ msgid "cannot display a value of type fdw_handler"
+#~ msgstr "ne peut pas afficher une valeur de type fdw_handler"
 
-#~ msgid "invalid procedure number %d, must be between 1 and %d"
-#~ msgstr "numéro de procédure %d invalide, doit être compris entre 1 et %d"
+#~ msgid "cannot accept a value of type fdw_handler"
+#~ msgstr "ne peut pas accepter une valeur de type fdw_handler"
 
-#~ msgid "transform function must not be an aggregate function"
-#~ msgstr "la fonction de transformation ne doit pas être une fonction d'agrégat"
+#~ msgid "cannot display a value of type language_handler"
+#~ msgstr "ne peut pas afficher une valeur de type language_handler"
 
-#~ msgid "cast function must not be an aggregate function"
-#~ msgstr "la fonction de conversion ne doit pas être une fonction d'agrégat"
+#~ msgid "cannot accept a value of type language_handler"
+#~ msgstr "ne peut pas accepter une valeur de type language_handler"
 
-#~ msgid "unrecognized function attribute \"%s\" ignored"
-#~ msgstr "l'attribut « %s » non reconnu de la fonction a été ignoré"
+#~ msgid "cannot display a value of type event_trigger"
+#~ msgstr "ne peut pas afficher une valeur de type event_trigger"
 
-#~ msgid "cannot route inserted tuples to a foreign table"
-#~ msgstr "ne peut pas envoyer les lignes insérées dans une table distante"
+#~ msgid "cannot accept a value of type event_trigger"
+#~ msgstr "ne peut pas accepter une valeur de type event_trigger"
 
-#~ msgid "cannot copy to foreign table \"%s\""
-#~ msgstr "ne peut pas copier vers la table distante « %s »"
+#~ msgid "cannot display a value of type trigger"
+#~ msgstr "ne peut pas afficher une valeur de type trigger"
 
-#~ msgid "must be superuser to COPY to or from a file"
-#~ msgstr "doit être super-utilisateur pour utiliser COPY à partir ou vers un fichier"
+#~ msgid "cannot accept a value of type trigger"
+#~ msgstr "ne peut pas accepter une valeur de type trigger"
 
-#~ msgid "function \"%s\" is not a window function"
-#~ msgstr "la fonction « %s » n'est pas une fonction window"
+#~ msgid "cannot accept a value of type anyrange"
+#~ msgstr "ne peut pas accepter une valeur de type anyrange"
 
-#~ msgid "function \"%s\" is not an aggregate function"
-#~ msgstr "la fonction « %s » n'est pas une fonction d'agrégat"
+#~ msgid "cannot accept a value of type anyenum"
+#~ msgstr "ne peut pas accepter une valeur de type anyenum"
 
-#~ msgid "function \"%s\" is an aggregate function"
-#~ msgstr "la fonction « %s » est une fonction d'agrégat"
+#~ msgid "cannot accept a value of type anyarray"
+#~ msgstr "ne peut pas accepter une valeur de type anyarray"
 
-#~ msgid "\"%s\" is already an attribute of type %s"
-#~ msgstr "« %s » est déjà un attribut du type %s"
+#~ msgid "cannot accept a value of type any"
+#~ msgstr "ne peut pas accepter une valeur de type any"
 
-#~ msgid "domain %s has multiple constraints named \"%s\""
-#~ msgstr "le domaine %s a plusieurs contraintes nommées « %s »"
+#~ msgid "invalid input syntax for type pg_lsn: \"%s\""
+#~ msgstr "syntaxe en entrée invalide pour le type pg_lsn : « %s »"
 
-#~ msgid "table \"%s\" has multiple constraints named \"%s\""
-#~ msgstr "la table « %s » a de nombreuses contraintes nommées « %s »"
+#~ msgid "invalid input syntax for type oid: \"%s\""
+#~ msgstr "syntaxe invalide en entrée pour le type oid : « %s »"
 
-#~ msgid "%s in publication %s"
-#~ msgstr "%s dans la publication %s"
+#~ msgid "value \"%s\" is out of range for type smallint"
+#~ msgstr "la valeur « %s » est en dehors des limites du type smallint"
 
-#~ msgid " in schema %s"
-#~ msgstr " dans le schéma %s"
+#~ msgid "value \"%s\" is out of range for type integer"
+#~ msgstr "la valeur « %s » est en dehors des limites du type integer"
 
-#~ msgid "WAL file is from different database system: incorrect XLOG_SEG_SIZE in page header"
-#~ msgstr "le fichier WAL provient d'un système différent : XLOG_SEG_SIZE invalide dans l'en-tête de page"
+#~ msgid "invalid input syntax for type double precision: \"%s\""
+#~ msgstr "syntaxe en entrée invalide pour le type double precision : « %s »"
 
-#~ msgid "invalid length of secondary checkpoint record"
-#~ msgstr "longueur invalide de l'enregistrement secondaire du point de vérification"
+#~ msgid "invalid input syntax for type numeric: \"%s\""
+#~ msgstr "syntaxe en entrée invalide pour le type numeric : « %s »"
 
-#~ msgid "invalid xl_info in secondary checkpoint record"
-#~ msgstr "xl_info invalide  dans l'enregistrement du point de vérification secondaire"
+#~ msgid "invalid input syntax for type tinterval: \"%s\""
+#~ msgstr "syntaxe en entrée invalide pour le type tinterval : « %s »"
 
-#~ msgid "invalid resource manager ID in secondary checkpoint record"
-#~ msgstr "identifiant du gestionnaire de ressource invalide dans l'enregistrement secondaire du point de vérification"
+#~ msgid "invalid input syntax for type macaddr: \"%s\""
+#~ msgstr "syntaxe en entrée invalide pour le type macaddr : « %s »"
 
-#~ msgid "invalid secondary checkpoint record"
-#~ msgstr "enregistrement du point de vérification secondaire invalide"
+#~ msgid "argument %d: could not determine data type"
+#~ msgstr "argument %d : n'a pas pu déterminer le type de données"
 
-#~ msgid "invalid secondary checkpoint link in control file"
-#~ msgstr "lien du point de vérification secondaire invalide dans le fichier de contrôle"
+#~ msgid "could not determine data type for argument 2"
+#~ msgstr "n'a pas pu déterminer le type de données pour l'argument 2"
 
-#~ msgid "using previous checkpoint record at %X/%X"
-#~ msgstr "utilisation du précédent enregistrement d'un point de vérification à %X/%X"
+#~ msgid "could not determine data type for argument 1"
+#~ msgstr "n'a pas pu déterminer le type de données pour l'argument 1"
 
-#~ msgid "The database cluster was initialized with XLOG_SEG_SIZE %d, but the server was compiled with XLOG_SEG_SIZE %d."
-#~ msgstr ""
-#~ "Le cluster de bases de données a été initialisé avec un XLOG_SEG_SIZE à %d\n"
-#~ "alors que le serveur a été compilé avec un XLOG_SEG_SIZE à %d."
+#~ msgid "value \"%s\" is out of range for type bigint"
+#~ msgstr "la valeur « %s » est en dehors des limites du type bigint"
 
-#~ msgid "could not open write-ahead log directory \"%s\": %m"
-#~ msgstr "n'a pas pu ouvrir le répertoire des journaux de transactions « %s » : %m"
+#~ msgid "\"TZ\"/\"tz\"/\"OF\" format patterns are not supported in to_date"
+#~ msgstr "les motifs de format « TZ »/« tz »/« OF » ne sont pas supportés dans to_date"
 
-#~ msgid "no such savepoint"
-#~ msgstr "aucun point de sauvegarde"
+#~ msgid "invalid input syntax for type real: \"%s\""
+#~ msgstr "syntaxe en entrée invalide pour le type real : « %s »"
 
-#~ msgid "%s cannot be executed from a function or multi-command string"
-#~ msgstr ""
-#~ "%s ne peut pas être exécuté à partir d'une fonction ou d'une chaîne\n"
-#~ "contenant plusieurs commandes"
+#~ msgid "invalid input syntax for type bytea"
+#~ msgstr "syntaxe en entrée invalide pour le type bytea"
 
-#~ msgid "could not open BufFile \"%s\""
-#~ msgstr "n'a pas pu ouvrir le BufFile « %s »"
+#~ msgid "invalid input syntax for type money: \"%s\""
+#~ msgstr "syntaxe en entrée invalide pour le type money : « %s »"
 
-#~ msgid "parameter \"%s\" requires a numeric value"
-#~ msgstr "le paramètre « %s » requiert une valeur numérique"
+#~ msgid "invalid input syntax for type boolean: \"%s\""
+#~ msgstr "syntaxe en entrée invalide pour le type booléen : « %s »"
 
-#~ msgid "Create new tables with OIDs by default."
-#~ msgstr "Crée des nouvelles tables avec des OID par défaut."
+#~ msgid "not enough shared memory for elements of data structure \"%s\" (%zu bytes requested)"
+#~ msgstr ""
+#~ "pas assez de mémoire partagée pour les éléments de la structure de données\n"
+#~ "« %s » (%zu octets demandés)"
 
-#~ msgid "could not close relation mapping file \"%s\": %m"
-#~ msgstr "n'a pas pu fermer le fichier de correspondance des relations « %s » : %m"
+#~ msgid "Specify a relation name as well as a rule name."
+#~ msgstr "Spécifier un nom de relation ainsi qu'un nom de règle."
 
-#~ msgid "could not fsync relation mapping file \"%s\": %m"
-#~ msgstr "n'a pas pu synchroniser (fsync) le fichier de correspondance des relations « %s » : %m"
+#~ msgid "there are multiple rules named \"%s\""
+#~ msgstr "il existe de nombreuses règles nommées « %s »"
 
-#~ msgid "could not write to relation mapping file \"%s\": %m"
-#~ msgstr "n'a pas pu écrire le fichier de correspondance des relations « %s » : %m"
+#~ msgid "rule \"%s\" does not exist"
+#~ msgstr "la règle « %s » n'existe pas"
 
-#~ msgid "could not read relation mapping file \"%s\": %m"
-#~ msgstr "n'a pas pu lire le fichier de correspondance des relations « %s » : %m"
+#~ msgid "%u transaction needs to finish."
+#~ msgid_plural "%u transactions need to finish."
+#~ msgstr[0] "La transaction %u doit se terminer."
+#~ msgstr[1] "Les transactions %u doivent se terminer."
 
-#~ msgid "could not open relation mapping file \"%s\": %m"
-#~ msgstr "n'a pas pu ouvrir le fichier de correspondance des relations « %s » : %m"
+#~ msgid "Transaction ID %u finished; no more running transactions."
+#~ msgstr "Identifiant de transaction %u terminé ; plus de transactions en cours."
 
-#~ msgid "invalid input syntax for numeric time zone: \"%s\""
-#~ msgstr "syntaxe en entrée invalide pour le fuseau horaire numérique : « %s »"
+#~ msgid "select() failed: %m"
+#~ msgstr "échec de select() : %m"
 
-#~ msgid "date/time value \"%s\" is no longer supported"
-#~ msgstr "la valeur date/time « %s » n'est plus supportée"
+#~ msgid "invalid socket: %s"
+#~ msgstr "socket invalide : %s"
 
-#~ msgid "regexp_split_to_array does not support the global option"
-#~ msgstr "regexp_split_to_array ne supporte pas l'option globale"
+#~ msgid "syntax error: unexpected character \"%s\""
+#~ msgstr "erreur de syntaxe : caractère « %s » inattendu"
 
-#~ msgid "regexp_split_to_table does not support the global option"
-#~ msgstr "regexp_split_to_table ne supporte pas l'option globale"
+#~ msgid "archived transaction log file \"%s\""
+#~ msgstr "journal des transactions archivé « %s »"
 
-#~ msgid "invalid regexp option: \"%c\""
-#~ msgstr "option invalide de l'expression rationnelle : « %c »"
+#~ msgid "transaction log switch forced (archive_timeout=%d)"
+#~ msgstr "changement forcé du journal de transaction (archive_timeout=%d)"
 
-#~ msgid "ucnv_fromUChars failed: %s"
-#~ msgstr "échec de ucnv_fromUChars : %s"
+#~ msgid "autovacuum: found orphan temp table \"%s\".\"%s\" in database \"%s\""
+#~ msgstr ""
+#~ "autovacuum : a trouvé la table temporaire orpheline « %s.%s » dans la base de\n"
+#~ "données « %s »"
 
-#~ msgid "ucnv_toUChars failed: %s"
-#~ msgstr "échec de ucnv_toUChars : %s"
+#~ msgid "transform expression must not return a set"
+#~ msgstr "l'expression de transformation ne doit pas renvoyer un ensemble"
 
-#~ msgid "cannot convert reltime \"invalid\" to interval"
-#~ msgstr "ne peut pas convertir reltime « invalid » en interval"
+#~ msgid "index expression cannot return a set"
+#~ msgstr "l'expression de l'index ne peut pas renvoyer un ensemble"
 
-#~ msgid "invalid status in external \"tinterval\" value"
-#~ msgstr "statut invalide dans la valeur externe « tinterval »"
+#~ msgid "argument declared \"anyrange\" is not consistent with argument declared \"anyelement\""
+#~ msgstr ""
+#~ "l'argument déclaré « anyrange » n'est pas cohérent avec l'argument déclaré\n"
+#~ "« anyelement »"
 
-#~ msgid "cannot convert abstime \"invalid\" to timestamp"
-#~ msgstr "ne peut pas convertir un abstime « invalid » en timestamp"
+#~ msgid "argument of %s must be type boolean, not type %s"
+#~ msgstr "l'argument de %s doit être de type booléen, et non du type %s"
 
-#~ msgid "invalid time zone name: \"%s\""
-#~ msgstr "nom du fuseau horaire invalide : « %s »"
+#~ msgid "DEFAULT can only appear in a VALUES list within INSERT"
+#~ msgstr "DEFAULT peut seulement apparaître dans la liste VALUES comprise dans un INSERT"
 
-#~ msgid "Consider using pg_logfile_rotate(), which is part of core, instead."
-#~ msgstr "Considérer l'utilisation de pg_logfile_rotate(), qui est présent par défaut, à la place."
+#~ msgid "WHERE CURRENT OF is not supported on a view with grouping or aggregation"
+#~ msgstr "WHERE CURRENT OF n'est pas supporté pour une vue avec regroupement ou agrégat"
 
-#~ msgid "The arguments of jsonb_build_object() must consist of alternating keys and values."
-#~ msgstr "Les arguments de jsonb_build_object() doivent consister en des clés et valeurs alternées"
+#~ msgid "WHERE CURRENT OF is not supported on a view with more than one underlying relation"
+#~ msgstr "WHERE CURRENT OF n'est pas supporté pour une vue avec plus d'une table sous-jacente"
 
-#~ msgid "invalid input syntax for integer: \"%s\""
-#~ msgstr "syntaxe en entrée invalide pour l'entier : « %s »"
+#~ msgid "WHERE CURRENT OF is not supported on a view with no underlying relation"
+#~ msgstr "WHERE CURRENT OF n'est pas supporté pour une vue sans table sous-jacente"
 
-#~ msgid "cannot convert empty polygon to circle"
-#~ msgstr "ne peut pas convertir un polygône vide en cercle"
+#~ msgid "could not bind %s socket: %m"
+#~ msgstr "n'a pas pu se lier à la socket %s : %m"
 
-#~ msgid "cannot create bounding box for empty polygon"
-#~ msgstr "ne peut pas créer une boîte entourée pour un polygône vide"
+#~ msgid "could not create %s socket: %m"
+#~ msgstr "n'a pas pu créer le socket %s : %m"
 
-#~ msgid "could not determine which collation to use for initcap() function"
-#~ msgstr "n'a pas pu déterminer le collationnement à utiliser pour la fonction initcap()"
+#~ msgid "hostssl requires SSL to be turned on"
+#~ msgstr "hostssl requiert que SSL soit activé"
 
-#~ msgid "could not determine which collation to use for upper() function"
-#~ msgstr "n'a pas pu déterminer le collationnement à utiliser pour la fonction upper()"
+#~ msgid "NULLIF does not support set arguments"
+#~ msgstr "NULLIF ne supporte pas les arguments d'ensemble"
 
-#~ msgid "value out of range: underflow"
-#~ msgstr "valeur en dehors des limites : trop petit"
+#~ msgid "op ANY/ALL (array) does not support set arguments"
+#~ msgstr ""
+#~ "l'opérateur ANY/ALL (pour les types array) ne supporte pas les arguments\n"
+#~ "d'ensemble"
 
-#~ msgid "abstime out of range for date"
-#~ msgstr "abstime en dehors des limites pour une date"
+#~ msgid "IS DISTINCT FROM does not support set arguments"
+#~ msgstr "IS DISTINCT FROM ne supporte pas les arguments d'ensemble"
 
-#~ msgid "cannot convert reserved abstime value to date"
-#~ msgstr "ne peut pas convertir la valeur réservée abstime en date"
+#~ msgid "functions and operators can take at most one set argument"
+#~ msgstr "les fonctions et opérateurs peuvent prendre au plus un argument d'ensemble"
 
-#~ msgid "date/time value \"current\" is no longer supported"
-#~ msgstr "la valeur « current » pour la date et heure n'est plus supportée"
+#~ msgid "changing return type of function %s from \"opaque\" to \"trigger\""
+#~ msgstr "changement du type de retour de la fonction %s de « opaque » vers « trigger »"
 
-#~ msgid "could not seek to block %u in file \"%s\": %m"
-#~ msgstr "n'a pas pu trouver le bloc %u dans le fichier « %s » : %m"
+#~ msgid "changing return type of function %s from \"opaque\" to \"language_handler\""
+#~ msgstr ""
+#~ "changement du type du code retour de la fonction %s d'« opaque » à\n"
+#~ "« language_handler »"
 
-#~ msgid "corrupted item pointer: offset = %u, length = %u"
-#~ msgstr "pointeur d'élément corrompu : décalage = %u, longueur = %u"
+#~ msgid "hash indexes are not WAL-logged and their use is discouraged"
+#~ msgstr "les index hash ne sont pas journalisés, leur utilisation est donc déconseillée"
 
-#~ msgid "poll() failed: %m"
-#~ msgstr "échec de poll() : %m"
+#~ msgid "event trigger name cannot be qualified"
+#~ msgstr "le nom du trigger sur événement ne peut pas être qualifié"
 
-#~ msgid "epoll_wait() failed: %m"
-#~ msgstr "échec de epoll_wait() : %m"
+#~ msgid "server name cannot be qualified"
+#~ msgstr "le nom du serveur ne peut pas être qualifié"
 
-#~ msgid "epoll_ctl() failed: %m"
-#~ msgstr "échec de epoll_ctl() : %m"
+#~ msgid "foreign-data wrapper name cannot be qualified"
+#~ msgstr "le nom du wrapper de données distantes ne peut pas être qualifié"
 
-#~ msgid "Set dynamic_shared_memory_type to a value other than \"none\"."
-#~ msgstr "Configurez dynamic_shared_memory_type à une valeur autre que « none »."
+#~ msgid "language name cannot be qualified"
+#~ msgstr "le nom du langage ne peut pas être qualifié"
 
-#~ msgid "dynamic shared memory is disabled"
-#~ msgstr "la mémoire partagée dynamique est désactivée"
+#~ msgid "schema name cannot be qualified"
+#~ msgstr "le nom du schéma ne peut pas être qualifié"
 
-#~ msgid "could not rmdir directory \"%s\": %m"
-#~ msgstr "n'a pas pu supprimer le répertoire « %s » : %m"
+#~ msgid "role name cannot be qualified"
+#~ msgstr "le nom du rôle ne peut pas être qualifié"
 
-#~ msgid "invalid MVNDistinct size %zd (expected at least %zd)"
-#~ msgstr "taille MVNDistinct %zd invalide (attendue au moins %zd)"
+#~ msgid "tablespace name cannot be qualified"
+#~ msgstr "le nom du tablespace ne peut pas être qualifié"
 
-#~ msgid "invalid zero-length item array in MVNDistinct"
-#~ msgstr "tableau d'élément de longueur zéro invalide dans MVNDistinct"
+#~ msgid "extension name cannot be qualified"
+#~ msgstr "le nom de l'extension ne peut pas être qualifié"
 
-#~ msgid "invalid ndistinct type %d (expected %d)"
-#~ msgstr "type ndistinct invalide %d (%d attendu)"
+#~ msgid "database name cannot be qualified"
+#~ msgstr "le nom de la base de donnée ne peut être qualifié"
 
-#~ msgid "invalid ndistinct magic %08x (expected %08x)"
-#~ msgstr "nombre magique ndistinct invalide %08x (attendu %08x)"
+#~ msgid "access method name cannot be qualified"
+#~ msgstr "le nom de la méthode d'accès ne peut pas être qualifiée"
 
-#~ msgid "invalid zero-length item array in MVDependencies"
-#~ msgstr "tableau d'éléments de longueur zéro invalide dans MVDependencies"
+#~ msgid "default expression must not return a set"
+#~ msgstr "l'expression par défaut ne doit pas renvoyer un ensemble"
 
-#~ msgid "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT must not be called in a subtransaction"
-#~ msgstr "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT ne doit pas être appelé dans une sous-transaction"
+#~ msgid "Proceeding with relation creation anyway."
+#~ msgstr "Poursuit malgré tout la création de la relation."
 
-#~ msgid "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT must be called before any query"
-#~ msgstr "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT  doit être appelé avant toute requête"
+#~ msgid "column \"%s\" has type \"unknown\""
+#~ msgstr "la colonne « %s » est de type « unknown »"
 
-#~ msgid "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT must be called inside a transaction"
-#~ msgstr "CREATE_REPLICATION_SLOT ... USE_SNAPSHOT doit être appelé dans une transaction"
+#~ msgid "invalid privilege type USAGE for table"
+#~ msgstr "droit USAGE invalide pour la table"
 
-#~ msgid "CREATE_REPLICATION_SLOT ... EXPORT_SNAPSHOT must not be called inside a transaction"
-#~ msgstr "CREATE_REPLICATION_SLOT ... EXPORT_SNAPSHOT ne doit pas être appelé dans une sous-transaction"
+#~ msgid "The database cluster was initialized with HAVE_INT64_TIMESTAMP but the server was compiled without HAVE_INT64_TIMESTAMP."
+#~ msgstr ""
+#~ "Le cluster de bases de données a été initialisé avec HAVE_INT64_TIMESTAMP\n"
+#~ "alors que le serveur a été compilé sans."
 
-#~ msgid "could not read file \"%s\", read %d of %u: %m"
-#~ msgstr "n'a pas pu lire le fichier « %s », a lu %d sur %u : %m"
+#~ msgid "The database cluster was initialized without HAVE_INT64_TIMESTAMP but the server was compiled with HAVE_INT64_TIMESTAMP."
+#~ msgstr "Le cluster de bases de données a été initialisé sans HAVE_INT64_TIMESTAMPalors que le serveur a été compilé avec."
 
-#~ msgid "could not read file \"%s\", read %d of %d: %m"
-#~ msgstr "n'a pas pu lire le fichier « %s », lu %d sur %d : %m"
+#~ msgid "removing transaction log backup history file \"%s\""
+#~ msgstr "suppression du fichier historique des journaux de transaction « %s »"
 
-#~ msgid "replication identifier %d is already active for PID %d"
-#~ msgstr "l'identificateur de réplication %d est déjà actif pour le PID %d"
+#~ msgid "could not remove old transaction log file \"%s\": %m"
+#~ msgstr "n'a pas pu supprimer l'ancien journal de transaction « %s » : %m"
 
-#~ msgid "could not stat control file \"%s\": %m"
-#~ msgstr "n'a pas pu récupérer des informations sur le fichier de contrôle « %s » : %m"
+#~ msgid "could not open transaction log file \"%s\": %m"
+#~ msgstr "n'a pas pu ouvrir le journal des transactions « %s » : %m"
 
-#~ msgid "%s (PID %d) was terminated by signal %d"
-#~ msgstr "%s (PID %d) a été arrêté par le signal %d"
+#~ msgid "Expected a transaction log switchpoint location."
+#~ msgstr "Attendait un emplacement de bascule dans le journal de transactions."
 
-#~ msgid "pg_ident.conf was not reloaded"
-#~ msgstr "pg_ident.conf n'a pas été rechargé"
+#~ msgid "spgist operator class \"%s\" is missing operator(s)"
+#~ msgstr "il manque des opérateurs pour la classe d'opérateur spgist « %s »"
 
-#~ msgid "archive command was terminated by signal %d"
-#~ msgstr "la commande d'archivage a été terminée par le signal %d"
+#~ msgid "spgist operator family \"%s\" is missing operator(s) for types %s and %s"
+#~ msgstr ""
+#~ "la famille d'opérateur spgist « %s » nécessite des opérateurs supplémentaires\n"
+#~ "pour les types %s et %s"
 
-#~ msgid "Try putting the literal value in single quotes."
-#~ msgstr "Placer la valeur littérale en guillemets simples."
+#~ msgid "spgist operator family \"%s\" contains operator %s with wrong signature"
+#~ msgstr "la famille d'opérateur spgist « %s » contient l'opérateur %s avec une mauvaise signature"
 
-#~ msgid "The cast requires a non-immutable conversion."
-#~ msgstr "Cette conversion requiert une conversion non immutable."
+#~ msgid "spgist operator family \"%s\" contains invalid ORDER BY specification for operator %s"
+#~ msgstr ""
+#~ "la famille d'opérateur spgist « %s » contient une spécification\n"
+#~ "ORDER BY invalide pour l'opérateur %s"
 
-#~ msgid "DROP ASSERTION is not yet implemented"
-#~ msgstr "DROP ASSERTION n'est pas encore implémenté"
+#~ msgid "spgist operator family \"%s\" contains operator %s with invalid strategy number %d"
+#~ msgstr ""
+#~ "la famille d'opérateur spgist « %s » contient l'opérateur %s\n"
+#~ "avec le numéro de stratégie invalide %d"
 
-#~ msgid "tuple to be updated was already moved to another partition due to concurrent update"
-#~ msgstr "la ligne à mettre à jour était déjà déplacée vers une autre partition du fait d'une mise à jour concurrente, nouvelle tentative"
+#~ msgid "spgist operator family \"%s\" contains function %s with wrong signature for support number %d"
+#~ msgstr ""
+#~ "la famille d'opérateur spgist « %s » contient la fonction %s\n"
+#~ "avec une mauvaise signature pour le numéro de support %d"
 
-#~ msgid "tuple to be deleted was already moved to another partition due to concurrent update"
-#~ msgstr "la ligne à supprimer était déjà déplacée vers une autre partition du fait d'une mise à jour concurrente"
+#~ msgid "spgist operator family \"%s\" contains function %s with invalid support number %d"
+#~ msgstr ""
+#~ "la famille d'opérateur spgist « %s » contient la fonction %s\n"
+#~ "avec le numéro de support %d invalide"
 
-#~ msgid "logical replication target relation \"%s.%s\" is not a table"
-#~ msgstr "la relation cible de la réplication logique « %s.%s » n'est pas une table"
+#~ msgid "spgist operator family \"%s\" contains support procedure %s with cross-type registration"
+#~ msgstr ""
+#~ "la famille d'opérateur spgist « %s » contient la procédure de support\n"
+#~ "%s avec un enregistrement inter-type"
 
-#~ msgid "relation \"%s\" page %u is uninitialized --- fixing"
-#~ msgstr "relation « %s » : la page %u n'est pas initialisée --- correction en cours"
+#~ msgid "btree operator family \"%s\" is missing cross-type operator(s)"
+#~ msgstr "il manque des opérateurs inter-type pour la famille d'opérateur btree « %s »"
 
-#~ msgid "cannot attach table \"%s\" with OIDs as partition of table \"%s\" without OIDs"
-#~ msgstr "ne peut pas attacher la table « %s » avec OID comme partition de la table « %s » sans OID"
+#~ msgid "btree operator class \"%s\" is missing operator(s)"
+#~ msgstr "il manque des opérateurs pour la classe d'opérateur btree « %s »"
 
-#~ msgid "cannot attach table \"%s\" without OIDs as partition of table \"%s\" with OIDs"
-#~ msgstr "ne peut pas attacher la table « %s » sans OID comme partition de la table « %s » avec OID"
+#~ msgid "btree operator family \"%s\" is missing operator(s) for types %s and %s"
+#~ msgstr ""
+#~ "la famille d'opérateur btree « %s » nécessite des opérateurs supplémentaires\n"
+#~ "pour les types %s et %s"
 
-#~ msgid "data type %s has no default btree operator class"
-#~ msgstr "le type de données %s n'a pas de classe d'opérateurs btree par défaut"
+#~ msgid "btree operator family \"%s\" contains operator %s with wrong signature"
+#~ msgstr "la famille d'opérateur btree « %s » contient l'opérateur %s avec une mauvaise signature"
 
-#~ msgid "data type %s has no default hash operator class"
-#~ msgstr "le type de données %s n'a pas de classe d'opérateurs hash par défaut"
+#~ msgid "btree operator family \"%s\" contains invalid ORDER BY specification for operator %s"
+#~ msgstr ""
+#~ "la famille d'opérateur btree « %s » contient une spécification\n"
+#~ "ORDER BY invalide pour l'opérateur %s"
 
-#~ msgid "table \"%s\" without OIDs cannot inherit from table \"%s\" with OIDs"
-#~ msgstr "la table « %s » qui n'a pas d'OID ne peut pas hériter de la table « %s » qui en a"
+#~ msgid "btree operator family \"%s\" contains operator %s with invalid strategy number %d"
+#~ msgstr ""
+#~ "la famille d'opérateur btree « %s » contient l'opérateur %s\n"
+#~ "avec le numéro de stratégie invalide %d"
 
-#~ msgid "cannot alter type of column referenced in partition key expression"
-#~ msgstr "ne peut pas utiliser le type d'une colonne référencée dans l'expression d'une clé de partitionnement"
+#~ msgid "btree operator family \"%s\" contains function %s with wrong signature for support number %d"
+#~ msgstr ""
+#~ "la famille d'opérateur btree « %s » contient la fonction %s\n"
+#~ "avec une mauvaise signature pour le numéro de support %d"
 
-#~ msgid "cannot alter type of column named in partition key"
-#~ msgstr "ne peut pas modifier le type d'une colonne nommée dans une clé de partitionnement"
+#~ msgid "btree operator family \"%s\" contains function %s with invalid support number %d"
+#~ msgstr ""
+#~ "la famille d'opérateur btree « %s » contient la fonction %s\n"
+#~ "avec le numéro de support invalide %d"
 
-#~ msgid "cannot reference partitioned table \"%s\""
-#~ msgstr "ne peut pas référencer la table partitionnée « %s »"
+#~ msgid "hash operator class \"%s\" is missing operator(s)"
+#~ msgstr "il manque des opérateurs pour la classe d'opérateur hash « %s »"
 
-#~ msgid "cannot drop column named in partition key"
-#~ msgstr "ne peut pas supprimer une colonne nommée dans une clé de partitionnement"
+#~ msgid "hash operator family \"%s\" is missing operator(s) for types %s and %s"
+#~ msgstr ""
+#~ "la famille d'opérateur hash « %s » nécessite des opérateurs supplémentaires\n"
+#~ "pour les types %s et %s"
 
-#~ msgid "cannot add constraint to only the partitioned table when partitions exist"
-#~ msgstr "ne peut pas ajouter la contrainte à la seule table partitionnée quand plusieurs partitions existent"
+#~ msgid "hash operator family \"%s\" contains operator %s with wrong signature"
+#~ msgstr "la famille d'opérateur hash « %s » contient l'opérateur %s avec une mauvaise signature"
 
-#~ msgid "child table \"%s\" has a conflicting \"%s\" column"
-#~ msgstr "la table fille « %s » a une colonne conflictuelle, « %s »"
+#~ msgid "hash operator family \"%s\" contains invalid ORDER BY specification for operator %s"
+#~ msgstr ""
+#~ "la famille d'opérateur hash « %s » contient la spécification ORDER BY\n"
+#~ "non supportée pour l'opérateur %s"
 
-#~ msgid "cannot create table with OIDs as partition of table without OIDs"
-#~ msgstr "ne peut pas créer une table avec OID comme partition d'une table sans OID"
+#~ msgid "hash operator family \"%s\" contains operator %s with invalid strategy number %d"
+#~ msgstr ""
+#~ "la famille d'opérateur hash « %s » contient l'opérateur %s avec le numéro\n"
+#~ "de stratégie invalide %d"
 
-#~ msgid "subscription with slot_name = NONE must also set create_slot = false"
-#~ msgstr "la souscription avec slot_name = NONE doit aussi être configurée avec create_slot = false"
+#~ msgid "hash operator family \"%s\" contains function %s with invalid support number %d"
+#~ msgstr ""
+#~ "la famille d'opérateur hash « %s » contient la fonction %s avec\n"
+#~ "le numéro de support invalide %d"
 
-#~ msgid "slot_name = NONE and create_slot = true are mutually exclusive options"
-#~ msgstr "slot_name = NONE et create_slot = true sont des options mutuellement exclusives"
+#~ msgid "hash operator family \"%s\" contains function %s with wrong signature for support number %d"
+#~ msgstr ""
+#~ "la famille d'opérateur hash « %s » contient la fonction %s avec une mauvaise\n"
+#~ "signature pour le numéro de support %d"
 
-#~ msgid "slot_name = NONE and enabled = true are mutually exclusive options"
-#~ msgstr "slot_name = NONE et enabled = true sont des options mutuellement exclusives"
+#~ msgid "hash operator family \"%s\" contains support procedure %s with cross-type registration"
+#~ msgstr ""
+#~ "la famille d'opérateur hash « %s » contient la procédure de support\n"
+#~ "%s avec un enregistrement inter-type"
 
-#~ msgid "connect = false and copy_data = true are mutually exclusive options"
-#~ msgstr "connect = false et copy_data = true sont des options mutuellement exclusives"
+#~ msgid "gist operator family \"%s\" contains operator %s with wrong signature"
+#~ msgstr "la famille d'opérateur gist « %s » contient l'opérateur %s avec une mauvaise signature"
 
-#~ msgid "connect = false and create_slot = true are mutually exclusive options"
-#~ msgstr "connect = false et create_slot = true sont des options mutuellement exclusives"
+#~ msgid "gist operator family \"%s\" contains operator %s with invalid strategy number %d"
+#~ msgstr ""
+#~ "la famille d'opérateur gist « %s » contient l'opérateur %s avec le numéro\n"
+#~ "de stratégie invalide %d"
 
-#~ msgid "\"%s\" is not a table or a view"
-#~ msgstr "« %s » n'est pas une table ou une vue"
+#~ msgid "gist operator family \"%s\" contains function %s with wrong signature for support number %d"
+#~ msgstr ""
+#~ "la famille d'opérateur gist « %s » contient la fonction %s avec une mauvaise\n"
+#~ "signature pour le numéro de support %d"
 
-#~ msgid "server does not exist, skipping"
-#~ msgstr "le serveur n'existe pas, poursuite du traitement"
+#~ msgid "gist operator family \"%s\" contains function %s with invalid support number %d"
+#~ msgstr ""
+#~ "la famille d'opérateur gist « %s » contient la fonction %s avec\n"
+#~ "le numéro de support invalide %d"
 
-#~ msgid "invalid OID in COPY data"
-#~ msgstr "OID invalide dans les données du COPY"
+#~ msgid "gist operator family \"%s\" contains support procedure %s with cross-type registration"
+#~ msgstr ""
+#~ "la famille d'opérateur gist « %s » contient la procédure de support\n"
+#~ "%s avec un enregistrement inter-type"
 
-#~ msgid "null OID in COPY data"
-#~ msgstr "OID NULL dans les données du COPY"
+#~ msgid "brin operator family \"%s\" contains operator %s with wrong signature"
+#~ msgstr "la famille d'opérateur brin « %s » contient l'opérateur %s avec une mauvaise signature"
 
-#~ msgid "missing data for OID column"
-#~ msgstr "données manquantes pour la colonne OID"
+#~ msgid "brin operator family \"%s\" contains invalid ORDER BY specification for operator %s"
+#~ msgstr ""
+#~ "la famille d'opérateur brin « %s » contient une spécification\n"
+#~ "ORDER BY invalide pour l'opérateur %s"
 
-#~ msgid "table \"%s\" does not have OIDs"
-#~ msgstr "la table « %s » n'a pas d'OID"
+#~ msgid "brin operator family \"%s\" contains operator %s with invalid strategy number %d"
+#~ msgstr ""
+#~ "la famille d'opérateur brin « %s » contient l'opérateur %s\n"
+#~ "avec le numéro de stratégie %d invalide"
 
-#~ msgid "shared tables cannot be toasted after initdb"
+#~ msgid "brin operator family \"%s\" contains function %s with wrong signature for support number %d"
 #~ msgstr ""
-#~ "les tables partagées ne peuvent pas avoir une table TOAST après la commande\n"
-#~ "initdb"
+#~ "la famille d'opérateur brin « %s » contient la fonction %s\n"
+#~ "avec une mauvaise signature pour le numéro de support %d"
 
-#~ msgid "pg_walfile_name() cannot be executed during recovery."
-#~ msgstr "pg_walfile_name() ne peut pas être exécuté lors de la restauration."
+#~ msgid "brin operator family \"%s\" contains function %s with invalid support number %d"
+#~ msgstr ""
+#~ "la famille d'opérateur brin « %s » contient la fonction %s\n"
+#~ "avec le numéro de support %d invalide"
 
-#~ msgid "pg_walfile_name_offset() cannot be executed during recovery."
-#~ msgstr "pg_walfile_name_offset() ne peut pas être exécuté lors de la restauration."
+#~ msgid "index row size %lu exceeds maximum %lu for index \"%s\""
+#~ msgstr "la taille de la ligne index, %lu, dépasse le maximum, %lu, pour l'index « %s »"
 
-#~ msgid "could not fdatasync log file %s: %m"
-#~ msgstr "n'a pas pu synchroniser sur disque (fdatasync) le journal de transactions %s : %m"
+#~ msgid ""
+#~ "WARNING: Calculated CRC checksum does not match value stored in file.\n"
+#~ "Either the file is corrupt, or it has a different layout than this program\n"
+#~ "is expecting.  The results below are untrustworthy.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "ATTENTION : Les sommes de contrôle (CRC) calculées ne correspondent pas aux\n"
+#~ "valeurs stockées dans le fichier.\n"
+#~ "Soit le fichier est corrompu, soit son organisation diffère de celle\n"
+#~ "attendue par le programme.\n"
+#~ "Les résultats ci-dessous ne sont pas dignes de confiance.\n"
+#~ "\n"
 
-#~ msgid "could not fsync log file %s: %m"
-#~ msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier de transactions « %s » : %m"
+#~ msgid "invalid number of arguments: object must be matched key value pairs"
+#~ msgstr "nombre d'arguments invalide : l'objet doit correspond aux paires clé/valeur"
 
-#~ msgid "could not fsync log segment %s: %m"
-#~ msgstr "n'a pas pu synchroniser sur disque (fsync) le segment du journal des transactions %s : %m"
+#~ msgid "foreign key referencing partitioned table \"%s\" must not be ONLY"
+#~ msgstr "la clé étrangère référençant la table partitionnée « %s » ne doit pas être ONLY"
 
-#~ msgid "If you are not restoring from a backup, try removing the file \"%s/backup_label\"."
+#~ msgid "If you're sure there are no old server processes still running, remove the shared memory block or just delete the file \"%s\"."
 #~ msgstr ""
-#~ "Si vous n'avez pas pu restaurer une sauvegarde, essayez de supprimer le\n"
-#~ "fichier « %s/backup_label »."
+#~ "Si vous êtes sûr qu'aucun processus serveur n'est toujours en cours\n"
+#~ "d'exécution, supprimez le bloc de mémoire partagée\n"
+#~ "ou supprimez simplement le fichier « %s »."
 
-#~ msgid "unrecognized recovery parameter \"%s\""
-#~ msgstr "paramètre de restauration « %s » non reconnu"
+#~ msgid "view must have at least one column"
+#~ msgstr "la vue doit avoir au moins une colonne"
 
-#~ msgid "parameter \"%s\" requires a temporal value"
-#~ msgstr "le paramètre « %s » requiert une valeur temporelle"
+#~ msgid "cannot PREPARE a transaction that has operated on temporary namespace"
+#~ msgstr ""
+#~ "ne peut pas préparer (PREPARE) une transaction qui a travaillé sur un\n"
+#~ "schéma temporaire"
 
-#~ msgid "recovery_target_time is not a valid timestamp: \"%s\""
-#~ msgstr "recovery_target_timeline n'est pas un horodatage valide : « %s »"
+#~ msgid "could not write to tuplestore temporary file: %m"
+#~ msgstr "n'a pas pu écrire le fichier temporaire tuplestore : %m"
 
-#~ msgid "recovery_target_xid is not a valid number: \"%s\""
-#~ msgstr "recovery_target_xid n'est pas un nombre valide : « %s »"
+#~ msgid "could not write to temporary file: %m"
+#~ msgstr "n'a pas pu écrire dans le fichier temporaire : %m"
 
-#~ msgid "Valid values are \"pause\", \"promote\", and \"shutdown\"."
-#~ msgstr "Les valeurs valides sont « pause », « promote » et « shutdown »."
+#~ msgid "When a password is specified in CREATE USER or ALTER USER without writing either ENCRYPTED or UNENCRYPTED, this parameter determines whether the password is to be encrypted."
+#~ msgstr ""
+#~ "Lorsqu'un mot de passe est spécifié dans CREATE USER ou ALTER USER sans\n"
+#~ "indiquer ENCRYPTED ou UNENCRYPTED, ce paramètre détermine si le mot de passe\n"
+#~ "doit être chiffré."
 
-#~ msgid "invalid value for recovery parameter \"%s\": \"%s\""
-#~ msgstr "valeur invalide pour le paramètre de restauration « %s » : « %s »"
+#~ msgid "Encrypt passwords."
+#~ msgstr "Chiffre les mots de passe."
 
-#~ msgid "could not open recovery command file \"%s\": %m"
-#~ msgstr "n'a pas pu ouvrir le fichier de restauration « %s » : %m"
+#~ msgid "encoding name too long"
+#~ msgstr "nom d'encodage trop long"
 
-#~ msgid "could not read from control file: read %d bytes, expected %d"
-#~ msgstr "n'a pas pu lire le fichier de contrôle : lu %d octets, %d attendus"
+#~ msgid "Server has FLOAT4PASSBYVAL = %s, library has %s."
+#~ msgstr "Le serveur a FLOAT4PASSBYVAL = %s, la bibliothèque a %s."
 
-#~ msgid "could not read from control file: %m"
-#~ msgstr "n'a pas pu lire le fichier de contrôle : %m"
+#~ msgid "cannot output a value of type %s"
+#~ msgstr "ne peut pas afficher une valeur de type %s"
 
-#~ msgid "could not open control file \"%s\": %m"
-#~ msgstr "n'a pas pu ouvrir le fichier de contrôle « %s » : %m"
+#~ msgid "cannot use advisory locks during a parallel operation"
+#~ msgstr "ne peut pas utiliser les verrous informatifs lors d'une opération parallèle"
 
-#~ msgid "could not close control file: %m"
-#~ msgstr "n'a pas pu fermer le fichier de contrôle : %m"
+#~ 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\n"
+#~ "valeurs de point de code au-dessus de 007F quand l'encodage serveur n'est\n"
+#~ "pas UTF8"
 
-#~ msgid "could not fsync control file: %m"
-#~ msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier de contrôle : %m"
+#~ msgid "could not read from log segment %s, offset %u, length %zu: %m"
+#~ msgstr "n'a pas pu lire le segment %s du journal de transactions, décalage %u, longueur %zu : %m"
 
-#~ msgid "could not write to control file: %m"
-#~ msgstr "n'a pas pu écrire le fichier de contrôle : %m"
+#~ msgid "cannot advance replication slot that has not previously reserved WAL"
+#~ msgstr "impossible d'avancer un slot de réplication qui n'a pas auparavant réservé de WAL"
 
-#~ msgid "could not create control file \"%s\": %m"
-#~ msgstr "n'a pas pu créer le fichier de contrôle « %s » : %m"
+#~ msgid "replication origin %d is already active for PID %d"
+#~ msgstr "l'origine de réplication %d est déjà active pour le PID %d"
 
-#~ msgid "could not rename old write-ahead log file \"%s\": %m"
-#~ msgstr "n'a pas pu renommer l'ancien journal de transactions « %s » : %m"
+#~ msgid "Please report this to <pgsql-bugs@lists.postgresql.org>."
+#~ msgstr "Veuillez rapporter ceci à <pgsql-bugs@lists.postgresql.org>."
 
-#~ msgid "could not close log file %s: %m"
-#~ msgstr "n'a pas pu fermer le fichier de transactions « %s » : %m"
+#~ msgid "could not create signal dispatch thread: error code %lu\n"
+#~ msgstr "n'a pas pu créer le thread de répartition des signaux : code d'erreur %lu\n"
 
-#~ msgid "could not open write-ahead log file \"%s\": %m"
-#~ msgstr "n'a pas pu écrire dans le journal de transactions « %s » : %m"
+#~ 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 "not enough data in file \"%s\""
-#~ msgstr "données insuffisantes dans le fichier « %s »"
+#~ 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 seek in log file %s to offset %u: %m"
-#~ msgstr "n'a pas pu se déplacer dans le fichier de transactions « %s » au décalage %u : %m"
+#~ msgid "SSL certificate revocation list file \"%s\" ignored"
+#~ msgstr "liste de révocation des certificats SSL « %s » ignorée"
 
-#~ msgid "cannot PREPARE a transaction that has operated on temporary tables"
+#~ msgid "could not load wldap32.dll"
+#~ msgstr "n'a pas pu charger wldap32.dll"
+
+#~ msgid "Unicode escape values cannot be used for code point values above 007F when the server encoding is not UTF8."
 #~ msgstr ""
-#~ "ne peut pas préparer (PREPARE) une transaction qui a travaillé sur des\n"
-#~ "tables temporaires"
+#~ "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."
 
-#~ msgid "could not close two-phase state file: %m"
-#~ msgstr "n'a pas pu fermer le fichier d'état de la validation en deux phases : %m"
+#~ 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 fsync two-phase state file: %m"
+#~ msgid "could not determine actual result type for function declared to return type %s"
 #~ msgstr ""
-#~ "n'a pas pu synchroniser sur disque (fsync) le fichier d'état de la\n"
-#~ "validation en deux phases : %m"
+#~ "n'a pas pu déterminer le type du résultat actuel pour la fonction déclarant\n"
+#~ "renvoyer le type %s"
 
-#~ msgid "could not write two-phase state file: %m"
-#~ msgstr "n'a pas pu écrire dans le fichier d'état de la validation en deux phases : %m"
+#~ msgid "\"%s.%s\" is a partitioned table."
+#~ msgstr "« %s.%s » est une table partitionnée."
 
-#~ msgid "could not recreate two-phase state file \"%s\": %m"
-#~ msgstr ""
-#~ "n'a pas pu re-créer le fichier d'état de la validation en deux phases nommé\n"
-#~ "« %s » : %m"
+#~ msgid "invalid value for \"check_option\" option"
+#~ msgstr "valeur invalide pour l'option « check_option »"
 
-#~ msgid "could not remove two-phase state file \"%s\": %m"
-#~ msgstr ""
-#~ "n'a pas pu supprimer le fichier d'état de la validation en deux phases\n"
-#~ "« %s » : %m"
+#~ 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 "could not read two-phase state file \"%s\": %m"
-#~ msgstr ""
-#~ "n'a pas pu lire le fichier d'état de la validation en deux phases nommé\n"
-#~ "« %s » : %m"
+#~ 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 "could not stat two-phase state file \"%s\": %m"
-#~ msgstr ""
-#~ "n'a pas pu récupérer des informations sur le fichier d'état de la validation\n"
-#~ "en deux phases nommé « %s » : %m"
+#~ msgid "converting trigger group into constraint \"%s\" %s"
+#~ msgstr "conversion du groupe de trigger en une contrainte « %s » %s"
 
-#~ msgid "could not open two-phase state file \"%s\": %m"
-#~ msgstr ""
-#~ "n'a pas pu ouvrir le fichier d'état de la validation en deux phases nommé\n"
-#~ "« %s » : %m"
+#~ msgid "ignoring incomplete trigger group for constraint \"%s\" %s"
+#~ msgstr "ignore le groupe de trigger incomplet pour la contrainte « %s » %s"
 
-#~ msgid "unrecognized error %d"
-#~ msgstr "erreur %d non reconnue"
+#~ msgid "Found referencing table's trigger."
+#~ msgstr "Trigger de la table référencée trouvé."
 
-#~ msgid "child process was terminated by signal %d"
-#~ msgstr "le processus fils a été terminé par le signal %d"
+#~ msgid "Found referenced table's DELETE trigger."
+#~ msgstr "Trigger DELETE de la table référencée trouvé."
 
-#~ msgid "child process was terminated by signal %s"
-#~ msgstr "le processus fils a été terminé par le signal %s"
+#~ msgid "Found referenced table's UPDATE trigger."
+#~ msgstr "Trigger UPDATE de la table référencée trouvé."
 
-#~ msgid "could not remove file or directory \"%s\": %s\n"
-#~ msgstr "n'a pas pu supprimer le fichier ou répertoire « %s » : %s\n"
+#~ 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 "could not stat file or directory \"%s\": %s\n"
-#~ msgstr ""
-#~ "n'a pas pu récupérer les informations sur le fichier ou répertoire\n"
-#~ "« %s » : %s\n"
+#~ msgid "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"
 
-#~ msgid "%s: could not get exit code from subprocess: error code %lu\n"
-#~ msgstr "%s : n'a pas pu récupérer le code de statut du sous-processus : code d'erreur %lu\n"
+#~ msgid "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 "%s: could not re-execute with restricted token: error code %lu\n"
-#~ msgstr "%s : n'a pas pu ré-exécuter le jeton restreint : code d'erreur %lu\n"
+#~ msgid "column \"%s\" contains null values"
+#~ msgstr "la colonne « %s » contient des valeurs NULL"
 
-#~ msgid "%s: could not start process for command \"%s\": error code %lu\n"
-#~ msgstr "%s : n'a pas pu démarrer le processus pour la commande « %s » : code d'erreur %lu\n"
+#~ msgid "changing return type of function %s from %s to %s"
+#~ msgstr "changement du type de retour de la fonction %s de %s vers %s"
 
-#~ msgid "%s: could not create restricted token: error code %lu\n"
-#~ msgstr "%s : n'a pas pu créer le jeton restreint : code d'erreur %lu\n"
+#~ msgid "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."
 
-#~ msgid "%s: could not allocate SIDs: error code %lu\n"
-#~ msgstr "%s : n'a pas pu allouer les SID : code d'erreur %lu\n"
+#~ msgid "unsupported language \"%s\""
+#~ msgstr "langage non supporté « %s »"
 
-#~ msgid "%s: could not open process token: error code %lu\n"
-#~ msgstr "%s : n'a pas pu ouvrir le jeton du processus : code d'erreur %lu\n"
+#~ msgid "must be superuser to create procedural language \"%s\""
+#~ msgstr "doit être super-utilisateur pour créer le langage de procédures « %s »"
 
-#~ msgid "%s: WARNING: cannot create restricted tokens on this platform\n"
-#~ msgstr "%s : ATTENTION : ne peut pas créer les jetons restreints sur cette plateforme\n"
+#~ msgid "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"
 
-#~ msgid "could not close directory \"%s\": %s\n"
-#~ msgstr "n'a pas pu fermer le répertoire « %s » : %s\n"
+#~ 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 »"
 
-#~ msgid "could not read directory \"%s\": %s\n"
-#~ msgstr "n'a pas pu lire le répertoire « %s » : %s\n"
+#~ msgid "EXPLAIN option BUFFERS requires ANALYZE"
+#~ msgstr "l'option BUFFERS d'EXPLAIN nécessite ANALYZE"
 
-#~ msgid "could not open directory \"%s\": %s\n"
-#~ msgstr "n'a pas pu ouvrir le répertoire « %s » : %s\n"
+#~ msgid "You can add the table partitions individually."
+#~ msgstr "Vous pouvez ajouter les partitions de table individuellement."
 
-#~ msgid "%s: could not rename file \"%s\" to \"%s\": %s\n"
-#~ msgstr "%s : n'a pas pu renommer le fichier « %s » en « %s » : %s\n"
+#~ msgid "Adding partitioned tables to publications is not supported."
+#~ msgstr "Ajouter des tables partitionnées à des publications n'est pas supporté."
 
-#~ msgid "%s: could not fsync file \"%s\": %s\n"
-#~ msgstr "%s : n'a pas pu synchroniser sur disque le fichier « %s » : %s\n"
+#~ 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 »."
 
-#~ msgid "%s: could not open file \"%s\": %s\n"
-#~ msgstr "%s : n'a pas pu ouvrir le fichier « %s » : %s\n"
+#~ 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."
 
-#~ msgid "%s: could not read directory \"%s\": %s\n"
-#~ msgstr "%s : n'a pas pu lire le répertoire « %s » : %s\n"
+#~ 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 »."
 
-#~ msgid "%s: could not open directory \"%s\": %s\n"
-#~ msgstr "%s : n'a pas pu ouvrir le répertoire « %s » : %s\n"
+#~ 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."
 
-#~ msgid "%s: could not stat file \"%s\": %s\n"
-#~ msgstr "%s : n'a pas pu récupérer les informations sur le fichier « %s » : %s\n"
+#~ msgid "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."
 
-#~ msgid "could not read symbolic link \"%s\""
-#~ msgstr "n'a pas pu lire le lien symbolique « %s »"
+#~ 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"
 
-#~ msgid "could not change directory to \"%s\": %s"
-#~ msgstr "n'a pas pu changer le répertoire par « %s » : %s"
+#~ 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"
 
-#~ msgid "could not identify current directory: %s"
-#~ msgstr "n'a pas pu identifier le répertoire courant : %s"
+#~ 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 ""
-#~ "WARNING: possible byte ordering mismatch\n"
-#~ "The byte ordering used to store the pg_control file might not match the one\n"
-#~ "used by this program.  In that case the results below would be incorrect, and\n"
-#~ "the PostgreSQL installation would be incompatible with this data directory.\n"
+#~ msgid "The database cluster was initialized with USE_FLOAT4_BYVAL but the server was compiled without USE_FLOAT4_BYVAL."
 #~ msgstr ""
-#~ "ATTENTION : possible incohérence dans l'ordre des octets\n"
-#~ "L'ordre des octets utilisé pour enregistrer le fichier pg_control peut ne\n"
-#~ "pas correspondre à celui utilisé par ce programme. Dans ce cas, les\n"
-#~ "résultats ci-dessous sont incorrects, et l'installation PostgreSQL\n"
-#~ "incompatible avec ce répertoire des données.\n"
+#~ "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."
 
-#~ msgid "%s: could not read file \"%s\": read %d of %d\n"
-#~ msgstr "%s : n'a pas pu lire le fichier « %s » : a lu %d sur %d\n"
+#~ msgid "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."
 
-#~ msgid "could not read file \"%s\": read %d of %d"
-#~ msgstr "n'a pas pu lire le fichier « %s » : a lu %d sur %d"
+#~ 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\""
 
-#~ msgid "%s: could not read file \"%s\": %s\n"
-#~ msgstr "%s : n'a pas pu lire le fichier « %s » : %s\n"
+#~ msgid "could not write block %ld of temporary file: %m"
+#~ msgstr "n'a pas pu écrire le bloc %ld du fichier temporaire : %m"
 
-#~ msgid "%s: could not open file \"%s\" for reading: %s\n"
-#~ msgstr "%s : n'a pas pu ouvrir le fichier « %s » en lecture : %s\n"
+#~ msgid "invalid value for \"buffering\" option"
+#~ msgstr "valeur invalide pour l'option « buffering »"
+
+#~ msgid "leftover placeholder tuple detected in BRIN index \"%s\", deleting"
+#~ msgstr "reste d'espace de ligne réservé dans l'index BRIN « %s », suppression"
+
+#~ msgid "cannot create restricted tokens on this platform"
+#~ msgstr "ne peut pas créer les jetons restreints sur cette plateforme"