<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/advice-contrib-module-select-from-depesz--jy7lidjez" -->

---
title: advice contrib module. – select * from depesz; | daily.dev
description: PostgreSQL 19 introduces the pg_plan_advice contrib module, which allows users to stabilize or override query planner decisions. By analyzing a finished query...
canonical: https://daily.dev/posts/advice-contrib-module-select-from-depesz--jy7lidjez
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: advice contrib module. – select * from depesz; | daily.dev
og:description: PostgreSQL 19 introduces the pg_plan_advice contrib module, which allows users to stabilize or override query planner decisions. By analyzing a finished query...
og:url: https://daily.dev/posts/advice-contrib-module-select-from-depesz--jy7lidjez
og:image: https://api.daily.dev/og/posts/JY7LidjEZ.png
og:image:alt: advice contrib module. – select * from depesz;
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# advice contrib module. – select * from depesz;

**[depesz](https://daily.dev/sources/depesz)** · 10 min read · 0 upvotes · 0 comments

## Summary

PostgreSQL 19 introduces the pg_plan_advice contrib module, which allows users to stabilize or override query planner decisions. By analyzing a finished query plan, it generates textual 'plan advice' (e.g., JOIN_ORDER, MERGE_JOIN, SEQ_SCAN directives) that can be fed back to force the planner to reproduce or alter those decisions in future executions. The post walks through loading the extension, generating advice from EXPLAIN output, and progressively overriding join order, join type, and scan method. While powerful for cases where statistics mislead the planner, the author warns it's a 'foot-gun' — advice set once tends to be forgotten, and bad advice in production can cause serious performance regressions.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.depesz.com/2026/03/22/waiting-for-postgresql-19-add-pg_plan_advice-contrib-module/>

## Similar posts on daily.dev

- [Looking Forward to Postgres 19: Query Hints](https://daily.dev/posts/looking-forward-to-postgres-19-query-hints-ubjiqehqi) · Planet PostgreSQL · 0 upvotes · 0 comments

---

Tags: [#postgresql](https://daily.dev/tags/postgresql)

[View this post on daily.dev](https://daily.dev/posts/advice-contrib-module-select-from-depesz--jy7lidjez)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"advice contrib module. – select * from depesz;","url":"https://daily.dev/posts/advice-contrib-module-select-from-depesz--jy7lidjez","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/advice-contrib-module-select-from-depesz--jy7lidjez"},"datePublished":"2026-03-22T13:49:20.073Z","dateModified":"2026-03-22T13:49:45.809Z","description":"PostgreSQL 19 introduces the pg_plan_advice contrib module, which allows users to stabilize or override query planner decisions. By analyzing a finished query...","image":"https://media.daily.dev/image/upload/s--qPvKM23u--/f_auto/v1722860399/public/Placeholder%2009","thumbnailUrl":"https://media.daily.dev/image/upload/s--qPvKM23u--/f_auto/v1722860399/public/Placeholder%2009","isAccessibleForFree":true,"articleSection":"depesz","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"depesz","logo":"https://media.daily.dev/image/upload/s--ir7juGOi--/f_auto/v1758461024/logos/depesz","url":"https://daily.dev/sources/depesz"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/advice-contrib-module-select-from-depesz--jy7lidjez","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"postgresql","timeRequired":"PT10M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"depesz","item":"https://daily.dev/sources/depesz"},{"@type":"ListItem","position":3,"name":"advice contrib module. – select * from depesz;"}]}
```

