---
subtitle : 'Workshop 18'
title : 'Nouveautés de PostgreSQL 18'
keywords:
- postgres
- postgresql
- features
- news
- 18
- workshop
linkcolor:

licence : PostgreSQL
author: Dalibo & Contributors
revision: 18
url : https://dalibo.com/formations
---

# Introduction

<div class="slide-content">

  * Développement depuis juin 2024
  * Version finale : Septembre 2025
  * Actuellement en v 18.3
  * Des centaines de contributeurs

</div>

<div class="notes">

Le développement de la version 18 a suivi l'organisation habituelle : un
démarrage en juin 2024, des _Commit Fests_ tous les deux mois jusqu'en mars
2025, un _feature freeze_, 3 versions bêta, 1 version RC, et enfin la GA.

La version finale est parue le 25 septembre 2025. Plusieurs versions correctives
sont sorties depuis. Au moment où ceci est écrit,
nous en sommes à la version 18.3.

Son développement est assuré par des centaines de contributeurs répartis partout
dans le monde.

</div>

-----

# Utilisation

---

## Gestion des UUID v7

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/343 -->
!include include/343-ws18-add-uuid-version-7-generation-function-uuidv7.md

---

## Colonnes générées virtuelles : présentation

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/349 -->
!include include/349-ws-18-allow-generated-columns-to-be-virtual-and-make-them-the-default.md

---

## Colonnes générées virtuelles : limites

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/349 -->
!include include/349b-virtualcolumns_limitations.md

---

## Comparaison entre colonnes générées stockées et virtuelles

!include include/349c-comparaisons_stored_virtual.md

---

## Clé temporelles

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/349 -->
!include include/temporal_keys.md

---

## Ajout des pseudo tables OLD/NEW pour RETURNING

!include include/add_oldnew_support_to_returning_in_dml_queries.md

---

## Améliorations de COPY

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/334 -->
!include include/341-ameliorations_copy.md

---

## psql - Requêtes préparées nommées

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/324 -->
!include include/324-nouveautees-de-psql.md

---

## psql - Mode pipeline

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/324 -->
!include include/324-nouveautees-de-psql-pipeline.md

---

## psql - Autres améliorations

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/324 -->
!include include/324-nouveautees-de-psql-autre.md

---

# Administration

## Nouvelle méthode d'authentification oAuth

!include include/oauth.md

---

## Activation par défaut des sommes de contrôle

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/325 -->
!include include/325-nouveautees-de-initdb.md

---

## Nouveau rôle pg_signal_autovacuum_worker

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/334 -->
!include include/342-pgsignalautovacuumworker.md

---

## Changement sur les paramètres de traces

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/338 -->
!include include/338-ws18-chgttraces.md

---

## Améliorations sur l'autovacuum

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/350-->
!include include/350-autovacuum.md

---

## Améliorations sur les outils - 1

!include include/XXX-tools-1.md

---

## Améliorations sur les outils - 2

!include include/XXX-tools-2.md

---

## Évolutions de pg_dump/pg_dumpall/pg_restore


<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/330 -->
!include include/330-ws18-pg_dump.md

---

## Gestion des statistiques par pg_dump/pg_dumpall/pg_restore


<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/330 -->
!include include/330-ws18-pg_dump_stats.md

---

## pg_upgrade

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/333 -->
!include include/333-pg_upgrade.md

---

## Nouveau paramètre extension_control_path

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/337 -->
!include include/337-extension_control_path.md

---

# Réplication

---

## Invalidation des slots de réplication basée sur le temps d'inactivité

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/344-->
!include include/344-allow-inactive-replication-slots-to-be-automatically-invalidated-using-server-variable.md

---

## Réplication logique - Publication des colonnes générées stockées

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/346 -->
!include include/346-ws18-allow-the-values-of-generated-columns-to-be-logically-replicated.md

---

## Réplication logique - Limiter le nombre de souscriptions

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/345 -->
!include include/345-add-server-variable-max_active_replication_origins-to-control-the-maximum-active-replication.md

---

## Réplication logique - Conflits de réplication

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/347-->
!include include/347-ws18-log-conflicts-while-applying-logical-replication-changes.md

---

<!--

## Add builtin collation provider PG_UNICODE_FAST

---

## Add functions to modify per-relation and per-column optimizer statistics

---

-->

# Performances

---

## AsyncIO

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/335-->
!include include/335-ws18-async-io.md

---

## AsyncIO - Nouveaux paramètres

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/335-->
!include include/335-ws18-async-io_2.md

---

## AsyncIO - Nouvelles vues et wait events

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/335-->
!include include/335-ws18-async-io_3.md

---

## Création parallélisée des index GIN

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/352-->
!include include/352-allow-gin-indexes-to-be-created-in-parallel.md

---

## Amélioration du mécanisme fast-path locking

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/327-->
!include include/327-fast-path-locking.md

---

## Améliorations sur la commande EXPLAIN

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/351 -->
!include include/351-explain.md

---

# Optimiseur

---

## Skip scan pour index B-Tree

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/336-->
!include include/341-allow-skip-scans-of-btree-indexes.md

---

## Suppression automatique de jointures inutiles

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/353-->
!include include/353-v18-automatically-remove-some-unnecessary-table-self-joins.md

---

## Conversion de clauses OR en tableau

!include include/355-v18-allow-transforming-or-clauses-to-arrays-for-faster-index-processing.md

---

<!--

## Allow the keys of SELECT DISTINCT to be internally reordered to avoid sorting
## Ignore GROUP BY columns that are functionally dependent on other columns
## Allow merge joins to use incremental sorts
## Improve the efficiency of planning queries accessing many partitions
## Improve cost estimates of partition queries
## Improve handling of disabled optimizer features
## Allow non-btree unique indexes to be used as partition keys and in materialized views
## Improve the performance and reduce memory usage of hash joins and GROUP BY

---

-->

# Supervision

---

## Vues de supervision

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/334 -->
!include include/339-chgtvuessupervision.md

---

## Informations sur le VACUUM et l'ANALYZE

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/334 -->
!include include/340-nouvellesinfos_vacuum_analyze.md

---

## Statistiques sur les I/O par backend

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/356 -->
!include include/356-add-per-backend-i-o-statistics-reporting.md

---

## pg_stat_statements

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/382 -->
!include include/382-v18-pg_stat_statements.md

---

<!--

## Additional Modules

### Add extension pg_logicalinspect to inspect logical snapshots
### Add extension pg_overexplain which adds debug details to EXPLAIN output
### Add functions pg_buffercache_evict_relation() and pg_buffercache_evict_all() to evict unpinned shared buffers
### Allow extensions to install custom EXPLAIN options
### Allow extensions to use the server's cumulative statistics API

---

-->


<!-- pas de régressions en fait 
# Régressions

!include include/regressions.md

-->

<!-- FIXME : pas le temps 
---

# Peut-être pour la prochaine fois ?

-->

---

# Questions

!include include/questions.md
