#805

Découper les logs par année pour pouvoir supprimer les anciens blocs

La table logs accumule 500 M de lignes par an — les index gonflent, le vacuum ralentit et supprimer une année entière ligne par ligne prend une éternité. La solution est le partitionnement par année de création : chaque bloc vit dans sa propre table physique, et une année obsolète peut être supprimée en bloc en quelques millisecondes. Construisez une table logs avec id (type BIGSERIAL), ts (timestamp avec fuseau horaire, obligatoire) et payload (texte), partitionnée par plage sur ts. Créez deux partitions — logs_2024 pour les dates du 1er janvier 2024 jusqu'au 1er janvier 2025 (borne supérieure exclue) et logs_2025 pour l'année suivante selon le même principe. Une insertion arrive automatiquement dans la bonne partition en fonction de la date.

Exemple de sortie attendue

Voici à quoi ressemble une réponse correcte — son nombre de lignes lui est propre, il n'a pas à correspondre aux tables du schéma.

relname
logs_2024
logs_2025

Le résultat de votre requête apparaîtra ici

Aucun schéma de départ

Cet exercice démarre sans aucune table — vous les créerez via CREATE TABLE.