~/sebl[og] - Mot-clé - postgresql2024-01-19T15:14:04+01:00Sébastien Lardièreurn:md5:c7b8f0e5a458b34ac93c462ee9594aceDotclearPostgreSQL Hebdo #110urn:md5:d17193ca18c08cbd2825e17e9d2616162024-01-19T14:28:00+01:002024-01-19T16:14:04+01:00Sébastien LardièrePostgreSQLftsjdbcpostgresql <p><img src="http://sebastien.lardiere.net/blog/public/logo_walking_elephant_2.jpg" alt="logo_walking_elephant_2.jpg, oct. 2023" class="media-center" title="Walking Elephant, oct. 2023" /></p>
<p>Lu ces dernières semaines :</p>
<ul>
<li><a href="https://adamj.eu/tech/2024/01/03/postgresql-full-text-search-websearch/">PostgreSQL: Full text search with the “websearch” syntax</a> : la recherche plein-texte de PostgreSQL est un outil pleinement fonctionnel et il est possible de l'intégrer dans une application web ;</li>
<li><a href="https://www.crunchydata.com/blog/postgres-toast-the-greatest-thing-since-sliced-bread">Postgres TOAST: The Greatest Thing Since Sliced Bread?</a> : les détails du stockage de données de type text ;</li>
<li><a href="https://github.com/jnidzwetzki/pg-lock-tracer">Lock tracing tools for PostgreSQL</a> : des outils pour tracer différents types de verrous dans PostgreSQL ;</li>
<li><a href="https://ryanguill.com/postgresql/sql/2024/01/08/postgresql-wishlist.html">My PostgreSQL wishlist</a> : Noël est passé, c'est donc trop tard pour cette année ! Néanmoins, on y trouve de quoi réflechir sur les fonctionnalités manquantes à PostgreSQL ;</li>
<li><a href="https://www.cybertec-postgresql.com/en/parallel-query-postgresql-problems-jdbc-dbeaver/">PostgreSQL parallel query problems in JDBC and DBeaver</a> : des subtilités du pilote JDBC ;</li>
<li><a href="https://www.thenile.dev/blog/transaction-isolation-postgres">Transaction Isolation in Postgres, explained</a> : retour sur les niveaux d'isolations des transactions ;</li>
<li><a href="https://explainextended.com/2023/12/31/happy-new-year-15/">Happy New Year: GPT in 500 lines of SQL</a> : Faire du LLM en SQL.</li>
</ul>PostgreSQL Hebdo #109urn:md5:3d21ae6b0f15b454e701b7c9a9faed7a2023-12-22T13:52:00+01:002024-01-03T09:36:04+01:00Sébastien LardièrePostgreSQLlinuxpostgresql <p><img src="http://sebastien.lardiere.net/blog/public/logo_walking_elephant_2.jpg" alt="logo_walking_elephant_2.jpg, oct. 2023" class="media-center" title="Walking Elephant, oct. 2023" /></p>
<p>Lu ces dernières semaines :</p>
<ul>
<li><a href="https://karenjex.blogspot.com/2023/12/trying-to-be-barbie-in-kens-mojo-dojo.html">Trying to be Barbie in Ken's Mojo Dojo Casa House</a> : À lire ! cette transcription d'une conférence doit vous permettre de prendre conscience de la réalité de nos métiers !</li>
<li><a href="https://www.phoronix.com/news/Linux-Sched-Postgres-SPR">New Scheduler Optimization Can Help Out PostgreSQL & More On Sapphire Rapids</a> : des améliorations dans le noyau Linux qui peuvent concerner PostgreSQL (mais pas seulement) ;</li>
<li><a href="https://drewdevault.com/2021/08/05/In-praise-of-Postgres.html">In praise of PostgreSQL</a>: PostgreSQL est vu, à juste titre, comme une contribution majeure du logiciel libre ;</li>
<li><a href="https://www.infoworld.com/article/3711272/9-reasons-sql-has-got-to-go.html">9 reasons SQL has got to go</a> et la réponse <a href="https://www.linkedin.com/pulse/sql-has-died-again-david-rolfe-5jvpe/">SQL has died (again)</a> : En réalité, le langage SQL et les SGBDR ont survécu à toutes les technologies censés les enterrer : le problème central reste le modèle de données et son exploitation, et ces « vieilles » technologies ont justement été créées pour cela ;</li>
<li><a href="https://github.com/EnterpriseDB/pg_failover_slots">pg_failover_slots</a> : comment fiabiliser la réplication logique en synchronisant l'état du « slot » ;</li>
<li><a href="https://discuss.systems/@andy_pavlo/111602495241147105" title="https://discuss.systems/@andy_pavlo/111602495241147105">https://discuss.systems/@andy_pavlo...</a> : optimisation du fonctionnement de pgbouncer avec un kernel Linux ;</li>
<li>Extracting SQL from WAL? <a href="https://rjuju.github.io/postgresql/2023/12/06/extract-sql-from-wal.html">part 1</a> & <a href="https://rjuju.github.io/postgresql/2023/12/20/extract-sql-from-wal-part2.html">part2</a> : plongeons dans le code de PostgreSQL pour retrouver les données ;</li>
</ul>PostgreSQL Hebdo #107urn:md5:a88d30474d12bca3788c8d4fb06dbdce2023-10-27T17:53:00+02:002023-12-22T13:58:15+01:00Sébastien LardièrePostgreSQLpgbouncerpostgresql<p><img src="http://sebastien.lardiere.net/blog/public/logo_walking_elephant_2.jpg" alt="logo_walking_elephant_2.jpg, oct. 2023" class="media-center" title="logo_walking_elephant_2.jpg, oct. 2023" /></p> <p>Lu ces dernières semaines :</p>
<ul>
<li><a href="https://github.com/pgbouncer/pgbouncer/releases/tag/pgbouncer_1_21_0">PgBouncer 1.21.0 - "The one with prepared statements" </a> : une nouvelle version du pooler intégrant la gestion des requêtes préparées ;
<ul>
<li><a href="https://www.crunchydata.com/blog/prepared-statements-in-transaction-mode-for-pgbouncer">Prepared Statements in Transaction Mode for PgBouncer</a> : et un article expliquant la notion ;</li>
</ul></li>
<li><a href="https://docs.paradedb.com/blog/introducing_bm25">pg_bm25: Elastic-Quality Full Text Search Inside Postgres</a> : une alternative à la recherche plein-texte integrée à PostgreSQL, s'appuyant sur des projets existants ;</li>
<li><a href="https://martinheinz.dev/blog/105">You Don't Need a Dedicated Cache Service - PostgreSQL as a Cache</a> : utiliser PostgreSQL comme cache, et pourquoi pas ?</li>
<li><a href="https://vadimkravcenko.com/shorts/database-migrations/">Database Migrations</a> : le changement de modèle de données, appelé ici une migration, est toujours une étape délicate à opérer à chaud. Pour bien faire, il faut maitriser des outils et méthodes dédiés, et bien étudier chaque phase ;</li>
<li><a href="https://postgresql.verite.pro/blog/2023/10/20/icu-73-versioning.html">The collation versioning problem with ICU 73</a> : les collations ICU sont très utiles, mais attention aux changements de versions, vraiment surprenant, qui nécessite de reconstruire les index ;</li>
<li><a href="https://github.com/zalando/patroni/blob/master/docs/releases.rst#version-320">Patroni 3.2.0</a> : il est maintenant possible de marquer un nœud préféré pour une bascule sur incident (failover) ;</li>
</ul>PostgreSQL Hebdo #106urn:md5:c737907e3925fe89c4fa1544fa4cef362023-10-11T15:46:00+02:002023-10-11T14:48:13+02:00Sébastien LardièrePostgreSQLcalendariopspartmanpostgresql <p>Lu ces dernières semaines :</p>
<ul>
<li><a href="https://postgresql.verite.pro/blog/2023/09/27/icu-traditional-calendars.html">Using traditional calendars with ICU</a> : très instructif, la conversion de date d'un calendrier à un autre en utilisant ICU ;</li>
<li><a href="https://peter.eisentraut.org/blog/2023/09/20/grouping-digits-in-sql">Grouping digits in SQL</a> : le chemin pour intégrer cette fonctionnalité n'est pas le plus simple, mais au moins, la notation est dans la norme SQL ;</li>
<li><a href="https://kmoppel.github.io/2023-09-28-til-when-was-my-postgres-cluster-initialized/">TIL - When was my Postgres cluster initialized?</a> : Ou l'on voit qu'on peut connaitre l'age d'une instance à partir de son identifiant ;</li>
<li><a href="https://blog.sequin.io/all-the-ways-to-capture-changes-in-postgres/">All the ways to capture changes in Postgres</a> : Intercepter un changement a de nombreuses applications possibles, et selon le besoin, différentes techniques existent ;</li>
<li><a href="https://www.crunchydata.com/blog/five-great-features-of-postgres-partition-manager">Five Great Features of the PostgreSQL Partition Manager</a> : pg_partman est le principal outil aidant à la mise en œuvre du partitionnement, et il s'enrichit de fonctionnalité avec la version 5 récemment publiée ;</li>
<li><a href="https://www.crunchydata.com/blog/understanding-postgres-iops">Understanding Postgres IOPS: Why They Matter Even When Everything Fits in Cache</a> : Comprendre les IOPS, comment PostgreSQL s'en sert, comment on peut observer les métriques associées et comment optimiser leurs utilisations ;</li>
<li><a href="https://www.cybertec-postgresql.com/en/pg_resetwal-when-to-reset-the-wal-in-postgresql/">pg_resetwal: When to reset the WAL in PostgreSQL</a> : Toujours être très attentif aux conditions d'utilisation de cet outil, car il entraine une perte de données : à n'utiliser qu'en cas d'absolu nécessité !</li>
</ul>PostgreSQL Hebdo #105urn:md5:45c4874c61057243076b7920fdfc42e52023-09-20T16:50:00+02:002023-09-20T16:50:00+02:00Sébastien LardièrePostgreSQLplpgsqlpostgresql <p>lu ces dernières semaines :</p>
<ul>
<li><a href="https://www.postgresql.org/about/news/postgresql-16-released-2715/">PostgreSQL 16 Released!</a> : pas besoin de rc2, PostgreSQL 16 est disponible !
<ul>
<li>et en français : <a href="https://www.loxodata.com/post/postgresql-16/">Sortie de PostgreSQL 16</a></li>
</ul></li>
<li><a href="https://www.crunchydata.com/blog/active-active-postgres-16">Active Active in Postgres 16</a> : Avec PostgreSQL 16, il est maintenant possible d'utiliser la réplication logique dans 2 directions pour une même table, avec quelques précautions ;</li>
<li><a href="https://learnsql.com/blog/history-of-sql-standards/">The History of SQL Standards</a> : la norme SQL a une histoire qui permet d'expliquer certaines particularités du language ;</li>
<li><a href="https://www.eversql.com/my-oracle-to-postgresql-migration-the-7-tools-that-made-it-possible/">My Oracle to PostgreSQL Migration: The 7 Tools That Made It Possible</a> : Un DBA Oracle montre sa boite à outils de migration vers PostgreSQL ;</li>
<li><a href="https://stormatics.tech/umairs-planet-postgresql/improving-update-query-performance-using-heap-only-tuples-hot">Improving UPDATE query performance using Heap-Only Tuples (HOT)</a> : Comment optimiser les mises à jour de données ;</li>
<li><a href="https://fluca1978.github.io/2023/09/19/PostgreSQLFORAutodeclaredVariables.html">FOR loops automatically declared variables in PL/PgSQL</a> : Attention aux déclarations implicites des variables dans Pl/pgSQL ;</li>
</ul>PostgreSQL Hebdo #104urn:md5:7e35cf87e1945abcf639330368d48ca42023-09-01T15:36:00+02:002023-09-01T15:02:14+02:00Sébastien LardièrePostgreSQLhapostgresqlsql <p>Lu ces dernières semaines :</p>
<ul>
<li><a href="https://www.cybertec-postgresql.com/en/postgresql-v16-cool-new-features/">Postgres v16: 14 Cool New Features</a> ;</li>
<li><a href="https://www.loxodata.com/post/postgresql-16-rc1/">PostgreSQL 16 en RC1</a> : la publication de PostgreSQL 16 approche ;</li>
<li><a href="https://www.crunchydata.com/blog/top-10-postgres-management-tasks">Top 10 Postgres Management Tasks</a> : Quelques conseils pertinents pour les administrateurs souhaitant maitriser leurs instances PostgreSQL ;</li>
<li><a href="https://www.percona.com/blog/streamline-the-sql-code-guide-to-pgformatter/">Streamline the SQL Code: Guide to pgFormatter</a> : pgformatter est un excellent outil pour aider à la lecture et la compréhension des requêtes SQL ;</li>
<li><a href="https://ubuntu.com/blog/postgresql-high-availability">PostgreSQL high availability made charmingly easy</a> : Un outil pour faciliter le déploiement d'une stack PostgreSQL complète ;</li>
<li><a href="https://www.timescale.com/blog/best-practices-for-picking-postgresql-data-types/">Best Practices for Picking PostgreSQL Data Types</a> : quels types de données faut-il choisir pour l'extension timescaledb ?</li>
<li><a href="https://www.depesz.com/2023/09/01/waiting-for-postgresql-17-add-to_bin-and-to_oct/">Waiting for PostgreSQL 17 – Add to_bin() and to_oct()</a> : l'usage de ces fonctions n'est pas si fréquent, mais c'est aussi l'occasion de montrer que le développement de la version 17 a déjà commencé ;</li>
</ul>PostgreSQL Hebdo #102urn:md5:9ba22fd049e875fa33b0eefe63b8ec6d2023-07-03T16:48:00+02:002023-07-03T16:48:00+02:00Sébastien LardièrePostgreSQLexplainfdwpostgresqlsqlmedvector <p>Lu ces dernières semaines :</p>
<ul>
<li><a href="https://lwn.net/SubscriberLink/934940/67531dfd296a5ba1/">PostgreSQL reconsiders its process-based model</a> : résumé des discussions à propos d'une refonte en profondeur de PostgreSQL, d'un modèle basé sur des processus vers un modèle basé sur des threads ;</li>
<li><a href="https://www.crunchydata.com/blog/performance-tips-for-postgres-fdw">Performance Tips for Postgres FDW</a> : quelques bonnes pratiques pour l'efficacité des accès distants aux données ;</li>
<li><a href="https://blog.rustprooflabs.com/2023/06/postgres15-explain-buffer-temp-timings">Postgres 15: Explain Buffer now with Temp Timings</a> : À partir de la version 15, les temps d'IO des fichiers temporaires sont visibles dans les plans d'exécutions ;</li>
<li><a href="https://jkatz05.com/post/postgres/vectors-json-postgresql/">Vectors are the new JSON in PostgreSQL</a>: à propos de l'utilisation de vecteurs dans PostgreSQL ;</li>
<li><a href="https://www.postgresql.org/about/news/postgresql-16-beta-2-released-2665/">PostgreSQL 16 Beta 2 Released!</a> : deuxième beta de la version 16 de PostgreSQL, à tester !
<ul>
<li>en français : <a href="https://www.loxodata.com/post/postgresql-16-beta2/" title="https://www.loxodata.com/post/postgresql-16-beta2/">https://www.loxodata.com/post/postg...</a></li>
</ul></li>
</ul>PostgreSQL Hebdo #101urn:md5:066b559ec1bfd67b064d3cf046eb94532023-06-12T15:43:00+02:002023-06-12T15:43:00+02:00Sébastien LardièrePostgreSQLpartmanpgbackrestpostgresql <p>Lu ces dernières semaines :</p>
<ul>
<li><a href="https://pgvis.org/">Simple Visualisations For PostgreSQL</a> : un outil facilitant la visualisation du résultat d'une requête ;</li>
<li><a href="https://www.postgresql.org/about/news/postgresql-16-beta-1-released-2643/">PostgreSQL 16 Beta 1 Released!</a> : testez la prochaine version de PostgreSQL, les paquets pour Debian et Redhat sont déjà prêts. Traduction en français : <a href="https://www.loxodata.com/post/postgresql-16-beta1/">PostgreSQL 16 bêta 1</a> ;</li>
<li><a href="https://rhaas.blogspot.com/2023/05/do-i-really-need-that-backuplabel-file.html">Do I Really Need That backup_label File?</a> : pas toujours évident de savoir pourquoi telle bonne pratique est essentielle, mais il est souvent préférable de suivre les recomandations données par la documentation ;</li>
<li><a href="https://www.keithf4.com/posts/2023-05-30-new-hugo-new-partman/">New Site, New Partman</a> : l'extension de gestion des tables partitionnées évolue ;</li>
<li><a href="https://www.crunchydata.com/blog/pgbackrest-file-bundling-and-block-incremental-backup">pgBackRest File Bundling and Block Incremental Backup</a> : L'outil de sauvegarde pgBackRest continue d'innover et de proposer de nouvelles options pour améliorer l'exploitation des sauvegardes de PostgreSQL ;</li>
<li><a href="https://blog-postgresql.verite.pro/2023/06/11/caracteres-icu.html">Classification des caractères avec ICU</a> : l'utilisation d'ICI à la place de la libc pour les collations ouvrent de nombreuses possibilités ;</li>
<li><a href="https://kmoppel.github.io/2023-06-07-til-filling-prepared-statement-placeholders-automatically-with-pgbadger/">TIL - Filling prepared statement placeholders automatically with pgbadger</a> : l'outil pgbadger est un très bon outil pour extraire des informations des logs de PostgreSQL ;</li>
<li><a href="https://www.cybertec-postgresql.com/en/what-is-a-schema-in-postgresql/">What is a schema in PostgreSQL?</a> : le schema est un objet mal connu, bien que très souvent utilisé ;</li>
</ul>PostgreSQL Hebdo #100urn:md5:9952c77074df673df797f19c68c92c332023-05-12T15:48:00+02:002023-05-12T15:53:30+02:00Sébastien LardièrePostgreSQLmvccpostgresqlvacuum <p>Lu ces dernières semaines :</p>
<ul>
<li><a href="https://philbooth.me/blog/nine-ways-to-shoot-yourself-in-the-foot-with-postgresql">Nine ways to shoot yourself in the foot with PostgreSQL</a> : Toujours bon à prendre, ces conseils peuvent guider dans la compréhension de qui ne va pas avec notre usage de PostgreSQL ;</li>
<li><a href="https://www.softwareandbooz.com/in-defense-of-postgresql-mvcc-and-vacuuming/">https://www.softwareandbooz.com/in-defense-of-postgresql-mvcc-and-vacuuming/</a> : Il est vrai que les sujets des VACUUM et de la fragmentation est ennuyeux, mais en réalité tout à fait gérable, au regard des avantages apportés par MVCC ;</li>
<li><a href="https://www.postgresql.org/about/news/postgresql-153-148-1311-1215-and-1120-released-2637/">PostgreSQL 15.3, 14.8, 13.11, 12.15, and 11.20 Released!</a> : Mettez à jour vos instances PostgreSQL !</li>
<li><a href="https://www.cybertec-postgresql.com/en/forcing-a-join-order-in-postgresql/">Forcing a join order in PostgreSQL</a> : forcer les plans d'exécution n'est pas toujours une bonne idée, mais c'est parfois nécessaire. Attention à la dette technique que cela introduit ;</li>
<li>Publication de <a href="https://www.pgbouncer.org/changelog.html#pgbouncer-119x">PgBouncer 1.19.0</a> : avec, en autres, un nouveau paramètre <code>auth_dbname</code>, pour simplifier la gestion de l'authentification ;</li>
</ul>
<p>À venir dans PostgreSQL 16 :</p>
<ul>
<li><a href="https://www.cybertec-postgresql.com/en/lz4-zstd-pg_dump-compression-postgresql-16/">LZ4 and ZSTD pg_dump compression</a> : des algorithmes de compression plus efficace pour les sauvegardes logiques ;</li>
<li><a href="https://mydbops.wordpress.com/2023/05/07/postgresql-16-brings-load-balancing-support-in-libpq-psql/">PostgreSQL 16 brings Load Balancing Support in libpq (psql)</a> : ce qui était déjà possible en Java le devient pour tous les clients utilisant la libpq ;</li>
<li><a href="https://www.postgresql.org/message-id/0048141b-9a6d-23da-13d3-ba4e55d6a0c5@postgresql.org">PostgreSQL 16 Beta 1 release date</a> : le 25 mai !</li>
</ul>PostgreSQL Hebdo #99urn:md5:47c5ae8f0d0d3e5597df4a95fb96941d2023-04-24T10:18:00+02:002023-04-24T10:07:29+02:00Sébastien LardièrePostgreSQLexplaingraphjsonpostgresqlrecursive <p>Lu ces dernières semaines :</p>
<ul>
<li><a href="https://dev.to/ftisiot/postgresqlr-jsonb-cheatsheet-complete-fast-lookup-guide-2ba1">PostgreSQL® JSONB Cheatsheet: Complete and Fast Lookup Guide</a> : un aperçu du type de données jsonb et des méthodes associées, à connaître pour être efficace ;</li>
<li><a href="https://www.dylanpaulus.com/posts/postgres-is-a-graph-database/">Postgres: The Graph Database You Didn't Know You Had</a> : PostgreSQL sait déjà faire des graphes avec des requêtes récursives ;</li>
<li><a href="https://peter.eisentraut.org/blog/2023/04/18/postgresql-and-sql-2023">PostgreSQL and SQL:2023</a> : suite au précédent billet sur le même sujet, la liste des fonctionnalités présentes ou non dans PostgreSQL ;</li>
<li><a href="https://event-driven.io/en/postgres_superpowers/">Postgres Superpowers in Practice</a> : beaucoup de possibilités offertes par PostgreSQL et ses extensions méritent le détour, car cela peut faciliter grandement une utilisation riche des données ;</li>
<li><a href="https://kmoppel.github.io/2023-04-18-can-there-be-too-many-partitions/">Can there be too many partitions?</a> : peut-on utiliser un grand nombre de partitions ? il semble que oui, c'est possible ;</li>
<li><a href="https://makina-corpus.com/sig-cartographie/structurer-donnees-geographiques-maniere-arborescente-postgresql-ltree">Structurer des données géographiques de manière arborescente avec PostgreSQL et ltree</a> : utiliser les extensions disponibles avec PostgreSQL permet d'exploiter au mieux nos données ;</li>
<li><a href="https://www.thenile.dev/blog/things-dbs-dont-do">Things DBs Don't Do - But Should</a> : nos bases de données ne savent pas tout faire (ça n'est d'ailleurs pas souhaitables), mais que pourraient-elles faire de mieux à l'avenir, afin de servir encore mieux les interêts de nos utilisateurs ?</li>
</ul>
<p>À venir dans PostgreSQL 16 :</p>
<ul>
<li><a href="https://www.cybertec-postgresql.com/en/explain-generic-plan-postgresql-16/">EXPLAIN (GENERIC_PLAN): New in PostgreSQL 16</a> : à partir de la version 16 de PostgreSQL, en cours de développement, on a la possibilité d'analyser un plan d'exécution générique ;</li>
<li><a href="https://bdrouvot.github.io/2023/04/19/postgres-16-highlight-logical-decoding-on-standby/">Postgres 16 highlight: Logical decoding on standby</a> : la réplication logique devient possible à partir d'un secondaire « physique » ;</li>
<li><a href="https://www.cybertec-postgresql.com/en/underscores-in-numeric-constants-in-postgresql-16/">Underscores in numeric constants in PostgreSQL 16</a> : la notation standard des nombres évolue, et PostgreSQL aussi !</li>
</ul>PostgreSQL Hebdo #98urn:md5:3576c35253fc0bca9adb0becb82f11b02023-04-07T17:13:00+02:002023-04-07T16:19:57+02:00Sébastien LardièrePostgreSQLcollationcryptpartitionpgdaypostgresqlwal <p>Lu ces dernière semaines :</p>
<ul>
<li><a href="https://thebuild.com/blog/2023/03/23/the-importance-of-max_wal_size/">The importance of max_wal_size</a> : l'importance de la distance entre les CHECKPOINTs ;
<ul>
<li><a href="https://thebuild.com/blog/2023/03/30/a-little-more-on-max_wal_size/">A little more on max_wal_size</a> : Ne pas augmenter trop <code>max_wal_size</code> est important pour limiter le temps de <em>crash recovery</em> (Note: Si vous avez souvent des <em>crash recovery</em>, c'est qu'il y un problème plus grave) ;</li>
</ul></li>
<li><a href="https://ardentperf.com/2023/03/26/did-postgres-lose-my-data/">Did Postgres Lose My Data?</a> : des problèmes de partitionnements quand nos alphabets changent ;</li>
<li><a href="https://peter.eisentraut.org/blog/2023/04/04/sql-2023-is-finished-here-is-whats-new">SQL:2023 is finished: Here is what's new</a> : certaines de ces fonctionnalités sont déjà présentes dans PostgreSQL ;</li>
<li><a href="https://www.hezmatt.org/~mpalmer/blog/2023/04/07/queryable-encryption.html">Database Encryption: If It's So Good, Why Isn't Everyone Doing It?</a> : comment chiffrer les données dans la base, et faire en sorte qu'elles soient tout de même requêtables ? L'extension <a href="https://github.com/enquo/pg_enquo">pg_enquo</a> propose une solution.</li>
<li><a href="https://www.loxodata.com/post/pgday-paris-2023/">Retour sur le pgDay Paris 2023</a> : l'équipe de LOXODATA étaient présente à Paris et vous raconte sa journée !</li>
</ul>PostgreSQL Hebdo #97urn:md5:f7d8805b2121dbdccb4f8a421d9b8e3b2023-03-17T14:37:00+01:002023-03-17T17:07:08+01:00Sébastien LardièrePostgreSQLlogicalpatronipostgresqlwal <p>Lu ces dernières semaines :</p>
<ul>
<li><a href="https://engineering.adjust.com/post/11_tb_wal_in_postgresql/">11TB WAL in PostgreSQL</a></li>
<li><a href="https://paquier.xyz/postgresql-2/postgres-16-pghba-regexp/">Postgres 16 highlight - More regexps in pg_hba.conf</a></li>
<li><a href="https://www.citusdata.com/blog/2023/03/06/patroni-3-0-and-citus-scalable-ha-postgres/">Patroni 3.0 & Citus: Scalable, Highly Available Postgres </a></li>
<li><a href="https://www.percona.com/blog/postgresql-database-security-external-server-based-authentication/">PostgreSQL Database Security: External Server-Based Authentication</a></li>
<li><a href="https://shortishly.com/blog/pgec-read-write-notify/">pgec reads: memory replicated cache, writes: PostgreSQL with a Redis API</a></li>
<li><a href="https://maxhalford.github.io/blog/ogd-in-sql/">Online gradient descent written in SQL</a></li>
<li><a href="https://paquier.xyz/postgresql-2/postgres-16-pgstatstatements-norm/">Postgres 16 highlight - Normalization of utilities in pg_stat_statements</a></li>
<li><a href="https://dx.tips/oops-database">Oops, You Wrote a Database</a></li>
<li><a href="https://thebuild.com/blog/2023/03/13/everything-you-know-about-setting-work_mem-is-wrong/">Everything you know about setting `work_mem` is wrong.</a></li>
<li><a href="https://www.infoq.com/articles/wonders-of-postgres-logical-decoding-messages/">The Wonders of Postgres Logical Decoding Messages</a></li>
</ul>PostgreSQL Hebdo #96urn:md5:49a8f908eb6b0082de922a3b337d85942023-02-24T16:08:00+01:002023-02-24T16:11:22+01:00Sébastien LardièrePostgreSQLpgwatchpostgresqlvacuum <p>Lu ces dernières semaines :</p>
<ul>
<li><a href="https://www.postgresql.org/about/news/postgresql-152-147-1310-1214-and-1119-released-2592/">PostgreSQL 15.2, 14.7, 13.10, 12.14, and 11.19 Released!</a></li>
<li>Pgwatch2 1.10.0 : <a href="https://github.com/cybertec-postgresql/pgwatch2/releases/tag/v1.10.0" title="https://github.com/cybertec-postgresql/pgwatch2/releases/tag/v1.10.0">https://github.com/cybertec-postgre...</a></li>
<li><a href="https://thebuild.com//presentations/xtreme-sfpug-2023-02-08.pdf">Extreme PostgreSQL</a> (pdf)</li>
<li><a href="https://www.endpointdev.com/blog/2023/02/find-text-in-any-column/">Find Text in Any Column of a PostgreSQL Table</a></li>
<li><a href="https://www.depesz.com/2023/02/07/how-to-get-a-row-and-all-of-its-dependencies/">How to get a row, and all of it’s dependencies?</a></li>
<li><a href="https://www.depesz.com/2023/02/06/when-to-use-vacuum-full/">When to use VACUUM FULL</a></li>
<li><a href="https://www.cybertec-postgresql.com/en/er-diagrams-with-sql-and-mermaid/">ER diagrams with SQL and Mermaid</a></li>
<li><a href="https://www.commandprompt.com/blog/announcing-pgmanage-10a/">Announcing PgManage 1.0a</a></li>
</ul>PostgreSQL Hebdo #95urn:md5:5166a5266e8536bc9e50f1042bf7dd742023-02-01T15:34:00+01:002023-02-01T15:34:00+01:00Sébastien LardièrePostgreSQLpostgresql <p>Lu ces dernières semaines :</p>
<ul>
<li><a href="https://www.depesz.com/2022/12/14/waiting-for-postgresql-16-add-grantable-maintain-privilege-and-pg_maintain-role/">Waiting for PostgreSQL 16 – Add grantable MAINTAIN privilege and pg_maintain role</a></li>
<li><a href="https://www.percona.com/blog/new-wal-archive-module-library-in-postgresql-15/">New WAL Archive Module/Library in PostgreSQL 15</a></li>
<li><a href="https://www.percona.com/blog/rebuild-patroni-replica-using-pgbackrest/">Rebuild Patroni Replica Using pgBackRest</a></li>
<li><a href="https://www.depesz.com/2023/01/11/waiting-for-postgresql-16-invent-random_normal-to-provide-normally-distributed-random-numbers/">Waiting for PostgreSQL 16 – Invent random_normal() to provide normally-distributed random numbers</a></li>
<li><a href="https://peter.eisentraut.org/blog/2023/01/30/postgresql-supply-chain">PostgreSQL supply chain</a></li>
<li><a href="https://pgbackrest.org/release.html#2.44">Pgbackrest v2.44 Release Notes </a></li>
<li><a href="https://patroni.readthedocs.io/en/latest/releases.html#version-3-0-0">Patroni 3.0.0</a> released !</li>
<li><a href="https://github.com/jnidzwetzki/pg-lock-tracer">Lock tracing tools for PostgreSQL</a></li>
<li><a href="https://www.cybertec-postgresql.com/en/transaction-id-wraparound-a-walk-on-the-wild-side/">Transaction ID wraparound: a walk on the wild side</a></li>
</ul>
<p>Dans l'agenda :</p>
<ul>
<li>pgday Paris 2023 <a href="https://www.postgresql.eu/events/pgdayparis2023/schedule/">Schedule</a></li>
</ul>PostgreSQL Hebdo #94urn:md5:332f7b32f9ceaca1aa450e481b9fa35f2022-12-02T16:49:00+01:002022-12-02T17:07:10+01:00Sébastien LardièrePostgreSQLk8spatronipoolerpostgresql <p>Lu ces dernières semaines :</p>
<ul>
<li><a href="https://www.postgresql.org/about/news/postgresql-151-146-139-1213-1118-and-1023-released-2543/">PostgreSQL 15.1, 14.6, 13.9, 12.13, 11.18, and 10.23 Released!</a></li>
<li><a href="https://dev.to/yugabyte/pgcat-a-postgresql-pooler-3a24">pgcat: a PostgreSQL pooler</a></li>
<li><a href="https://www.citusdata.com/blog/2022/11/10/reducing-replication-lag-with-io-concurrency-in-pg15/">Reducing replication lag with IO concurrency in Postgres 15</a></li>
<li><a href="https://axelle.me/2022/11/03/implement-postgresql-pool-connection-in-rust/">Implement PostgreSQL Pool connection in Rust</a></li>
<li><a href="https://www.crunchydata.com/blog/postgres-query-boost-using-any-instead-of-in">Postgres Query Boost: Using ANY Instead of IN</a></li>
<li><a href="https://github.com/zalando/patroni/blob/master/docs/releases.rst#version-215">Patroni 2.1.5</a></li>
<li><a href="https://pgstats.dev/?version=15">PostgreSQL Observability</a></li>
<li><a href="http://www.bailis.org/blog/understanding-weak-isolation-is-a-serious-problem/">Understanding Weak Isolation Is a Serious Problem</a></li>
<li><a href="https://blog.palark.com/comparing-kubernetes-operators-for-postgresql/">Comparing Kubernetes operators for PostgreSQL</a> ; <a href="https://blog.palark.com/cloudnativepg-and-other-kubernetes-operators-for-postgresql/">Part 2: CloudNativePG</a></li>
</ul>PostgreSQL Hebdo #93urn:md5:afe82eb6c2d6921b3ddf280708e839f02022-10-21T16:05:00+02:002022-10-21T15:16:59+02:00Sébastien LardièrePostgreSQLpostgispostgresql <p>Lu ces dernières semaines :</p>
<ul>
<li><a href="https://blog.cleverelephant.ca/2022/10/postgresql-links.html">Learning PostgreSQL Internals</a></li>
<li><a href="https://www.bostongis.com/blog/index.php?/archives/278-Using-pg_upgrade-to-upgrade-PostgreSQL-9.6-PostGIS-2.4-to-PostgreSQL-15-3.3-on-Yum.html">Using pg_upgrade to upgrade PostgreSQL 9.6 PostGIS 2.4 to PostgreSQL 15 3.3 on Yum</a></li>
<li><a href="https://aws.amazon.com/blogs/database/understanding-statistics-in-postgresql/">Understanding statistics in PostgreSQL</a></li>
<li><a href="https://www.postgresql.org/about/news/postgresql-15-released-2526/">PostgreSQL 15 Released!</a> ; en français : <a href="https://www.loxodata.com/post/postgresql-15/" title="https://www.loxodata.com/post/postgresql-15/">https://www.loxodata.com/post/postg...</a></li>
<li><a href="https://www.percona.com/blog/postgresql-15-new-features-to-be-excited-about/">PostgreSQL 15 – New Features to Be Excited About</a></li>
<li><a href="https://h50146.www5.hpe.com/products/software/oe/linux/mainstream/support/lcc/pdf/PostgreSQL_15GA_New_Features_en_20221014-1.pdf">PostgreSQL 15 New Features With Examples</a> (pdf)</li>
</ul>PostgreSQL Hebdo #92urn:md5:a165100427375af6b3b5016dbc01a6cd2022-09-28T16:18:00+02:002022-09-28T16:38:26+02:00Sébastien LardièrePostgreSQLisolationpostgresqlpsycopgpythonserializabletransaction <p>Lu ces dernières semaines :</p>
<ul>
<li><a href="https://www.reddit.com/r/Database/comments/xc9r9n/why_isolation_level_serializable_is_not_the/">Why isolation level serializable is not the default?</a> ; en effet, ce niveau d'isolation des transactions devrait être connu par les développeurs d'applications, et plus largement utilisé, car il correspond au comportement attendu dans bien des cas.</li>
<li><a href="https://blog.dalibo.com/2022/09/19/psycopg-pipeline-mode.html">Pipeline mode in Psycopg</a></li>
<li><a href="https://www.depesz.com/2022/09/18/what-is-lateral-what-is-it-for-and-how-can-one-use-it/">What is LATERAL, what is it for, and how can one use it?</a></li>
<li><a href="https://www.postgresql.fastware.com/blog/column-lists-in-logical-replication-publications">Column lists in logical replication publications - an overview of this useful PostgreSQL feature</a></li>
<li><a href="https://peter.eisentraut.org/blog/2022/09/26/icu-features-in-postgresql-15">ICU features in PostgreSQL 15</a></li>
<li><a href="https://www.cybertec-postgresql.com/en/listen-notify-automatic-client-notification-in-postgresql/">LISTEN / NOTIFY: Automatic client notification in PostgreSQL</a></li>
</ul>
<p>La publication de PostgreSQL 15.0 est désormais prévue le 13 octobre 2022.</p>PostgreSQL Hebdo #91urn:md5:067a61542f4b46c4d089d07aa599acd02022-09-09T17:24:00+02:002022-09-09T17:24:00+02:00Sébastien LardièrePostgreSQLpostgresqlsql <p>Lu ces dernières semaines :</p>
<ul>
<li><a href="https://www.crunchydata.com/blog/rise-of-the-anti-join">Rise of the Anti-Join</a></li>
<li><a href="https://postgrespro.com/blog/pgsql/5969682">PostgreSQL 14 Internals, Part II (pdf))</a></li>
<li><a href="https://www.percona.com/blog/postgresql-15-stats-collector-gone-whats-new/">PostgreSQL 15: Stats Collector Gone? What’s New?</a></li>
<li><a href="https://andreas.scherbaum.la/blog/archives/1120-Changes-to-the-public-schema-in-PostgreSQL-15-and-how-to-handle-upgrades.html">Changes to the public schema in PostgreSQL 15 and how to handle upgrades</a></li>
<li><a href="https://www.psycopg.org/articles/2022/08/30/psycopg-31-released/">Psycopg 3.1 released</a></li>
<li><a href="https://www.postgresql.org/about/news/postgresql-15-beta-4-released-2507/">PostgreSQL 15 Beta 4 Released!</a></li>
<li><a href="https://carlineng.com/?postid=sql-critique#blog">A Critique of SQL, 40 Years Later</a></li>
</ul>
<p>À venir :</p>
<ul>
<li>PGconf.EU 2022 Conference Schedule : <a href="https://www.postgresql.eu/events/pgconfeu2022/schedule/" title="https://www.postgresql.eu/events/pgconfeu2022/schedule/">https://www.postgresql.eu/events/pg...</a></li>
</ul>PostgreSQL Hebdo #90urn:md5:96d66317e13613d9854fd18eff009f962022-07-22T15:50:00+02:002022-07-22T15:17:16+02:00Sébastien LardièrePostgreSQLnullpatronipgbackrestpostgresql <p>Lu ces dernières semaines :</p>
<ul>
<li><a href="https://pgstef.github.io/2022/07/11/patroni_on_pure_raft.html">Patroni on pure Raft</a></li>
<li><a href="https://blog.rustprooflabs.com/2022/07/postgres-15-unique-improvement-with-null">Postgres 15 improves UNIQUE and NULL</a></li>
<li><a href="https://fluca1978.github.io/2022/07/13/PostgreSQL15BackupFunctions.html">PostgreSQL 15: changes in the low level backup functions</a></li>
<li><a href="https://pgstef.github.io/2022/07/12/patroni_and_pgbackrest_combined.html">Patroni and pgBackRest combined</a></li>
<li><a href="https://vettabase.com/blog/alloydb-versus-postgresql/">AlloyDB versus PostgreSQL: a performance review</a></li>
<li><a href="https://fluca1978.github.io/2022/07/15/PostgreSQL15PublicSchema.html">PostgreSQL 15: changes in the public schema permissions</a></li>
</ul>PostgreSQL Hebdo #89urn:md5:f978765c5ca706a0d3edc4b79ec8a3f52022-07-08T16:47:00+02:002022-07-08T16:47:00+02:00Sébastien LardièrePostgreSQLindexpostgresqltransaction <p>Lu et entendu ces derniers jours :</p>
<ul>
<li><a href="https://dev.to/rap2hpoutre/sql-tips-for-beginners-what-i-learned-after-15-years-of-occasionally-writing-queries-and-schemas-as-a-fullstack-dev-2ide">SQL tips for beginners; what I learned after 10+ years of occasionally writing queries and schemas as a web dev </a></li>
<li><a href="https://www.crunchydata.com/blog/indexes-selectivity-and-statistics">Postgres Indexes, Selectivity, and Statistics</a></li>
<li><a href="https://andreas.scherbaum.la/blog/archives/1116-PostgreSQL-Upgrades-are-hard!.html">PostgreSQL Upgrades are hard!</a></li>
<li><a href="https://www.cybertec-postgresql.com/en/transaction-anomalies-with-select-for-update/">Transaction anomalies with SELECT FOR UPDATE</a></li>
<li><a href="https://www.postgresql.org/about/news/postgresql-15-beta-2-released-2479/">PostgreSQL 15 Beta 2 Released!</a> Test It !</li>
<li><a href="https://fljd.in/en/2022/06/29/draw-me-an-abstract-tree/">Draw me an (abstract) tree</a></li>
<li>Podcast : <a href="https://postgres.fm/episodes/slow-queries-and-slow-transactions">Slow queries and slow transactions</a></li>
</ul>