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

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

## Introduction

<div class="slide-content">

  * Développement depuis juin 2023
  * 3 versions beta, 1 version RC
  * Version finale : 26 septembre 2024
  * Actuellement en 17.2
  * Des centaines de contributeurs

</div>

<div class="notes">

Le développement de la version 17 a suivi l'organisation habituelle : un
démarrage en juin 2023, des _Commit Fests_ tous les deux mois jusqu'en mars
2024, un _feature freeze_, 3 versions beta, une version RC, et enfin la GA.

La version finale est parue le 26 septembre 2024. Plusieurs versions correctives
sont sorties depuis.

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

</div>

-----

# Utilisation

---

## Fonction `JSON_TABLE()`

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/267 -->
!include include/263-json-table-function.md

---

## Fonction de conversions entre types JSON

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/298 -->
!include include/298-ws17-add-jsonpath-methods-to-convert-json-values-to-other-json-data-types.md

---

## Fonctions `JSON()`, `JSON_SCALAR()` et `JSON_SERIALIZE()`

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/296 -->
!include include/296-add-sql-json-constructor-functions-json-json_scalar-and-json_serialize.md

---

## Fonctions `JSON_EXISTS()`, `JSON_QUERY()` et `JSON_VALUE()`

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/297 -->
!include include/297-add-sql-json-query-functions-json_exists-json_query-and-json_value.md

---

## Nouvelles possibilités de COPY

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/277 -->
!include include/277-new-copy-features.md

---

## `INSERT`, colonne `IDENTITY` et partitionnement

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/262 -->
!include include/262-partitioned-tables-identity-columns.md

---

## Modification de l'expression d'une colonne générée

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/258 -->
!include include/258-change-a-columns-generation-expression.md

---

## Génération de nombres aléatoires

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/270 -->
!include include/270-random-function.md

---

## Type `interval` et valeur `infinity`

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/294 -->
!include include/294-ws17-allow-the-interval-data-type-to-support-infinity-values.md

---

## Contraintes d'exclusion sur les tables partitionnées

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/293 -->
!include include/293-ws17-allow-exclusion-constraints-on-partitioned-tables.md

---

# Administration

---

## Nouveau fournisseur de collation

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/282 -->
!include include/282-create-builtin-collation-provider.md

---

## Nouveau rôle pg_maintain et droit MAINTAIN

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/281 -->
!include include/281-role-pg_maintain-droit-maintain.md

---

## Résumés des WAL

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/268 -->
!include include/268-allow-wal-summarization.md

---

## Options --index et --jobs sur reindexdb

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/269 -->
!include include/269-ws17-allow-reindexdb-index-to-process-indexes-from-different-tables-in-parallel.md 

---

## Option --all avec vacuumdb et reindexdb

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/265 -->
!include include/265-ws17-allow-reindexdb-and-vacuumdb-to-process-objects-in-all-databases-matching-a-pattern.md

---

## Support des _triggers_ sur REINDEX

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/287 -->
!include include/287-trigger-sur-reindex.md

---

## Support des _triggers_ sur connexions

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/259 -->
!include include/259-trigger-sur-connexion.md 

---

## Nouveau paramètre allow_alter_system

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/303 -->
!include include/303-ws17-add-system-variable-allow_alter_system-to-disallow-alter-system.md

---

## Support des variables personnalisées par `ALTER SYSTEM`

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/275 -->
!include include/275-allow-alter-system-to-set-unrecognized-custom-server-variables.md

---

## Nouveau timeout pour les transactions longues

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/304 -->
!include include/304-add-server-variable-transaction_timeout-to-restrict-the-duration-of-transactions.md

---

## Nouvelle fonctionnalité pour amcheck

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/305 -->
!include include/305-allow-amcheck-to-check-for-unique-constraint-violations.md

---

## Éviction de blocs du cache avec pg_buffercache

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/306 -->
!include include/306-add-pg_buffercache-function-pg_buffercache_evict-to-allow-shared-buffer-eviction.md

---

## Paramètre huge_pages_status

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

---

# Sauvegardes

---

## Sauvegardes incrémentales

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/266 -->
!include include/266-incremental-backup.md

---

## Option ``--filter`` pour `pg_dump`, `pg_dumpall` et `pg_restore`

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

---

## Autres nouvelles options `pg_dump`/`pg_restore`

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/260 -->
<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/279 -->
!include include/260_279-autres-options-dumprestore.md

---

# Réplication

---

## Failover des slots de réplication logique

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/308 -->
!include include/308-failover-slots.md

---

## Nouvelles colonnes pour pg_replication_slots

!include include/307-pg_replication_slots.md

---

## Nouveaux messages des _walsenders_

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/300 -->
!include include/300-ws17-add-log-message-to-report-walsender-acquisition-and-release-of-replication-slots.md

---

## Outil pg_createsubscriber

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/309 -->
!include include/309-ws17-add-application-pg_createsubscriber-to-create-a-logical-replica-from-a-physical-standby.md

---

# Supervision

---

## Nouvelle vue pg_stat_checkpointer

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

---

## Nouvelles colonnes pour pg_stat_progress_vacuum

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/280 -->
!include include/280-allow-vacuum-to-report-the-progress-of-index-processing.md

---

## Nouvelles traces d'une recovery

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/299 -->
!include include/299-add-log-messages-related-to-wal-recovery-from-backup.md

---

## Nouvelles traces des connexions `trust`

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/271 -->
!include include/271-add-log_connections-log-line-for-trust-connections.md

---

## Nouvelle vue `pg_wait_events`

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/272 -->
!include include/272-add-system-view-pg_wait_events-that-reports-wait-event-types.md

---

# Performance

---

## Regroupement des I/O

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/289 -->
!include include/289-allow-the-grouping-of-file-system-reads-with-the-new-system-variable-io_combine_limit.md

---

## Suppression de la limite mémoire de VACUUM

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/302 -->
!include include/302-ws17-vacuum-is-no-longer-silently-limited-to-one-gigabyte-of-memory-when-maintenance_work_mem.md

---

## Nouvelles options pour `EXPLAIN`

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

---

## MergeAppend pour UNION sans ALL

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/289 -->
!include include/315-mergeappend-for-union.md

---

## Optimisations des CTE

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/311 -->
!include include/311-ameliorations-cte.md

---

## Optimisations des clauses IN

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/289 -->
!include include/314-ameliorations-clause-in.md

---

## Meilleure gestion des contraintes NOT NULL

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/289 -->
!include include/312-ameliorations-not-null.md

---

# Fonctionnement interne

---

## Nouvelle fonctions unicode

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/292 -->
!include include/292-ws17-add-unicode-informational-functions-jeff-davis.md

---

## AT LOCAL

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/291 -->
!include include/291-ws17-allow-the-session-time-zone-to-be-specified-by-as-local.md

---

## Fonction pg_column_toast_chunk_id()

<!-- https://gitlab.dalibo.info/formation/workshops/-/issues/290 -->
!include include/290-ws17-add-function-pg_column_toast_chunk_id-to-return-a-value-s-toast-identifier.md

---

# Régressions

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

---

# Peut-être pour la prochaine fois ?

!include include/pas_dans_PG17.md

---

# Questions

---

!include include/questions.md
