Hacker Newsnew | past | comments | ask | show | jobs | submit | tpetry's commentslogin

Sam is always shitting on others. For years he has been screaming how bad PostgreSQL is compared to MySQL. Until getting silent about this topic for a few months and then launching PostgreSQL support. Seems he had to realize than the market for PostgreSQL is too big to ignore.

And there is no single company developing. Its a healthy mix of engineers from many companies. A perfect model to prevent this issue here of being aquihired.


The article suggested using TimescaleDB which has its own concept of IVM: continuos aggregates. And compared to the approach by ClickHouse it can also update the materialized views when you update/delete old raw data

https://sqlfordevs.com/books+courses/timescale/05-continuous...


Yes but that is just one use case. Columnar OLAP engines operating on object storage can do all kinds of stuff so much better than Postgres that it may as well be a completely different capability. That said - the point is that you can get a lot further with just Postgres than many people think, and now we also have options like pg_lake. But I wish I'd changed analytics platforms A LOT sooner than I did.


You‘re not the only one interested in this. But seems its a big change that would have to change many parts within DuckdB:

https://github.com/duckdb/duckdb/discussions/8444


Neat!

I’m sort of amazing that nothing in that thread mentioned ClickHouse, even just as a product that has this capability and from which one might take syntactical inspiration.


The question is more what this really solves. They said they built all this because DNS propagation was too slow. But secondary dns servers by e.g. your isp will still have old records when you change something. So what did they earn? Every is correct within their network pretty fast. But for a normal user there isnt any difference because 8.8.8.8 or 1.1.1.1 still cache old records?


Sometimes similar articles are merged into one. Including the comments.


You immply that a testcase exists for every weird edge case. Especially filesystem and concurrency is things you can barely build test cases for.

Even a 100% test coversge is far away from verifying all behaviour.


These are for type-checking. Transpiling takes barely any time.


And Planetscale (who is the current primary maintainer of vitess) is developing a Vitess for PostgreSQL.

There will be a couple of production-grade PG vitess solutions the next months.


Looked it up, says 'Will be released as an open source project' but announcement was in July 2025 and no public repo yet which is strange, so time will tell if they will stick to this.

https://planetscale.com/blog/planetscale-for-postgres#vitess...

https://planetscale.com/neki

...

Supabase one is open from start:

https://github.com/multigres/multigres

https://multigres.com/


We are already moving Neki customers into production. Nobody else is even close. PlanetScale doesn't spend our days yapping about what we are going to do. We just do it.


Congrats!

The question was whether your previous statement about it being open source was still the case, or is it now going to be propriety?


More details on this are coming soon.


Thanks.

Appreciate your company has spent a lot of money on the project.


Famous last words.

There will be 0 production grade solutions in the next months, I guarantee it


This exists, its called a user. You just use different database users for this.


I was thinking of something that only exists at the pool level.

Every new version of your app has the potential to change behavior in a way that would affect the previous version if the connection was recycled during a progressive rollout.

But I don’t think I would want to create a real database user for every version of the app.

I suppose the connection pooler could map versioned users to the same real user, and use separate pools, but a dedicated UA field is probably better.


> But I don’t think I would want to create a real database user for every version of the app.

Why not? Database users are (usually) not expensive, and with groups you can give access to a group you just add the user to.

Adding this logic to the connection pooler seems more complicated.


Because it means connecting to the database to provision a new user on every deploy.

Also because it doesn’t really concern the database, it concerns the pooler.

Connection poolers already maintain multiple pools, it would not be complicated at all.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: