What’s New in Postgresql 18 – a Developer’s Perspective
Posted3 months agoActive3 months ago
bytebase.comTechstory
calmpositive
Debate
40/100
PostgresqlDatabase ManagementSQL
Key topics
Postgresql
Database Management
SQL
The post discusses new features in PostgreSQL 18, sparking a thoughtful discussion among commenters about the benefits and potential use cases of these features.
Snapshot generated from the HN discussion
Discussion Activity
Active discussionFirst comment
2h
Peak period
13
6-8h
Avg / period
3.9
Comment distribution27 data points
Loading chart...
Based on 27 loaded comments
Key moments
- 01Story posted
Sep 28, 2025 at 11:27 AM EDT
3 months ago
Step 01 - 02First comment
Sep 28, 2025 at 1:15 PM EDT
2h after posting
Step 02 - 03Peak activity
13 comments in 6-8h
Hottest window of the conversation
Step 03 - 04Latest activity
Sep 29, 2025 at 10:26 AM EDT
3 months ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 45405055Type: storyLast synced: 11/20/2025, 6:33:43 PM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
Do people here need pg_ownerships and/or pg_privileges?
[1] https://www.postgresql.org/message-id/flat/bbe7d1cb-0435-4ee...
Why would you ever force your db to multiply a value by 12 to another column, or parse a json path, if it’s not for filtering?
Move that effort to your clients so you’re not needlessly consuming db resources.
I imagine the computed column could be indexed or materialized if needed.
The article mentions that "you cannot create indexes on VIRTUAL generated columns".
For comparison, MySQL permits indexing of virtual columns, and indexes on expressions share the same underlying implementation to support this. In other words, in MySQL an index on an expression is literally just an index on an internally-hidden virtual column.
Having computed (stored or virtual) columns would've been awesome.
The use case isn't really "multiply a value by 12", but more like "we have a single boolean is_active column, and want to migrate to a more extensive status model" or "migrate from an is_active column to a (begin, end) timestamp tuple" or so.
With a virtual column, you can present a read-only, compatible column to the legacy application, while the other applications can use the more detailed, new columns, without having to keep the legacy column in sync.
In case you only want to filter without returning values, you could also index directly on the expression without needing to add a stored generated column with an index on it
I agree that they're often a symptom of bad schema design or data normalisation though. Sometimes that can't be helped however.
PostgreSQL 18 Released https://news.ycombinator.com/item?id=45372283 - 3 days ago, 21 comments
This all meant that as databases like Postgres keep adding cool new features they mostly go unused because an ORM just doesn’t let you pierce that layer of abstraction except dropping to pure SQL which is typically seen as a code smell and an annoyance to everyone involved.
So on the one hand I love that Postgres is getting amazing new features, not to mention all the cool extensions. On the other hand I and I suspect many others are essentially locked out of them and since most ORMa try to serve multiple databases they typically only include the most common denominator features. As I get more experienced I both see why RDBMS is the right choice most times AND see the appeal of an object store instead of a row store.
We use them to pull out some fields out of JSON blobs, and until PG18 they were not available for logical replication log consumers.