<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/pg-catalog-almanac-lgiwnos79" -->

---
title: pg-catalog-almanac | daily.dev
description: A new reference site called pg-catalog-almanac tracks how PostgreSQL&#x27;s system catalogs, views, and statistics views have evolved from version 9.6 through the...
canonical: https://daily.dev/posts/pg-catalog-almanac-lgiwnos79
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: pg-catalog-almanac | daily.dev
og:description: A new reference site called pg-catalog-almanac tracks how PostgreSQL&#x27;s system catalogs, views, and statistics views have evolved from version 9.6 through the...
og:url: https://daily.dev/posts/pg-catalog-almanac-lgiwnos79
og:image: https://api.daily.dev/og/posts/lGIWnoS79.png
og:image:alt: pg-catalog-almanac
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.

# pg-catalog-almanac

**[Planet PostgreSQL](https://daily.dev/sources/planet-postgresql)** · 4 min read · 1 upvotes · 0 comments

## Summary

A new reference site called pg-catalog-almanac tracks how PostgreSQL's system catalogs, views, and statistics views have evolved from version 9.6 through the upcoming PostgreSQL 19, covering 143 documented relations. Highlights include PostgreSQL 19 beta 3 adding the most new relations of any release (12 catalogs/views and 43 columns, five of them for SQL property graphs), only one catalog (pg_pltemplate) ever being fully removed (in PostgreSQL 13, replaced by trusted extensions), and collation metadata columns changing type in PostgreSQL 15 and gaining provider-neutral naming in PostgreSQL 17.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://postgr.es/p/9tA>

## Questions this post answers

### How many new catalogs and columns does PostgreSQL 19 add to pg_catalog?

As of PostgreSQL 19 beta 3, the release adds 12 new catalogs and views along with 43 new columns, the largest expansion of any release since the PostgreSQL 9.6 baseline (PostgreSQL 10 is next closest with 11 new relations). Five of the new catalogs support SQL property graphs, including pg_propgraph_element and pg_propgraph_label, alongside operational additions like pg_stat_lock and pg_stat_recovery.

_Track PostgreSQL 19's catalog changes on daily.dev before planning your upgrade and monitoring updates._

### Why was pg_pltemplate removed from PostgreSQL

pg_pltemplate, which held template information for creating procedural languages, was present through PostgreSQL 12 and removed in PostgreSQL 13. It is the only pg_catalog relation ever fully removed across versions 9.6 through 19, because PostgreSQL 13 introduced trusted extensions and moved procedural-language installation onto the standard extension machinery, eliminating the need for the special catalog.

_Developers auditing catalog dependencies before a Postgres upgrade can follow changes like this on daily.dev._

### What changed with pg_collation and pg_database column types in PostgreSQL 15 and 17

In PostgreSQL 15, pg_collation.collcollate, pg_collation.collctype, pg_database.datcollate, and pg_database.datctype changed from type name to text, since locale values aren't identifiers and text permits longer ICU locale names while saving space for short ones. Then PostgreSQL 17 renamed the ICU-specific colliculocale and daticulocale columns to the provider-neutral colllocale and datlocale after adding a built-in collation provider.

_daily.dev helps engineers tweaking ORMs and monitoring queries keep up with catalog schema changes like this._

---

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

[View this post on daily.dev](https://daily.dev/posts/pg-catalog-almanac-lgiwnos79)

```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":"pg-catalog-almanac","url":"https://daily.dev/posts/pg-catalog-almanac-lgiwnos79","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/pg-catalog-almanac-lgiwnos79"},"datePublished":"2026-08-31T15:02:30.989Z","dateModified":"2026-08-31T15:02:55.910Z","description":"A new reference site called pg-catalog-almanac tracks how PostgreSQL's system catalogs, views, and statistics views have evolved from version 9.6 through the...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/6a4e410a60e60ddc9819068974442dcc?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/6a4e410a60e60ddc9819068974442dcc?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Planet PostgreSQL","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":"Planet PostgreSQL","logo":"https://media.daily.dev/image/upload/logos/placeholder.jpg","url":"https://daily.dev/sources/planet-postgresql"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/pg-catalog-almanac-lgiwnos79","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"database,backend,postgresql","timeRequired":"PT4M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Planet PostgreSQL","item":"https://daily.dev/sources/planet-postgresql"},{"@type":"ListItem","position":3,"name":"pg-catalog-almanac"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/pg-catalog-almanac-lgiwnos79#faq","mainEntity":[{"@type":"Question","name":"How many new catalogs and columns does PostgreSQL 19 add to pg_catalog?","acceptedAnswer":{"@type":"Answer","text":"As of PostgreSQL 19 beta 3, the release adds 12 new catalogs and views along with 43 new columns, the largest expansion of any release since the PostgreSQL 9.6 baseline (PostgreSQL 10 is next closest with 11 new relations). Five of the new catalogs support SQL property graphs, including pg_propgraph_element and pg_propgraph_label, alongside operational additions like pg_stat_lock and pg_stat_recovery. Track PostgreSQL 19's catalog changes on daily.dev before planning your upgrade and monitoring updates."}},{"@type":"Question","name":"Why was pg_pltemplate removed from PostgreSQL","acceptedAnswer":{"@type":"Answer","text":"pg_pltemplate, which held template information for creating procedural languages, was present through PostgreSQL 12 and removed in PostgreSQL 13. It is the only pg_catalog relation ever fully removed across versions 9.6 through 19, because PostgreSQL 13 introduced trusted extensions and moved procedural-language installation onto the standard extension machinery, eliminating the need for the special catalog. Developers auditing catalog dependencies before a Postgres upgrade can follow changes like this on daily.dev."}},{"@type":"Question","name":"What changed with pg_collation and pg_database column types in PostgreSQL 15 and 17","acceptedAnswer":{"@type":"Answer","text":"In PostgreSQL 15, pg_collation.collcollate, pg_collation.collctype, pg_database.datcollate, and pg_database.datctype changed from type name to text, since locale values aren't identifiers and text permits longer ICU locale names while saving space for short ones. Then PostgreSQL 17 renamed the ICU-specific colliculocale and daticulocale columns to the provider-neutral colllocale and datlocale after adding a built-in collation provider. daily.dev helps engineers tweaking ORMs and monitoring queries keep up with catalog schema changes like this."}}]}
```

