Live data from Hacker News

The world of PostgreSQL wire compatibility

datastation.multiprocess.io

11–20 of 21 posts

Re: The world of PostgreSQL wire compatibility

#11

Postgres wire compatibility does not imply Postgres compatibility. I recently got bit by this, I wanted to convert a mail address database from MySQL Galera to CockroachDB, because CockroachDB was just a bit easier to deal with. Unfortunately, Cockroach only support UTF-8, and Postgres only supports LATIN1 for the database (compiled into code). I believe that there are reasons for both sides to make this choice, unfo…

What do you mean with postgres only supporting LATIN1?

Re: The world of PostgreSQL wire compatibility

#12
Timescale DevRel here!

Great observations around how popular and useful it is for systems to have some level of Postgres line compatibility! Thanks for doing the writeup!

One thing that's not totally clear in the comparison table is that most of these implementations are just that, databases providing an abstraction through the Postgres wire protocol over a different database architecture/parser & solution.

TimescaleDB, however, is the only one listed that is built directly on Postgres as an extension. There is no abstraction layer over some other implementation of the query parser or storage layer.

When it comes to application maintenance and developer expectations at query time, not all of these are apples-to-apples comparisons, as some of the other comments have noted.

Re: The world of PostgreSQL wire compatibility

#13

Timescale DevRel here! Great observations around how popular and useful it is for systems to have some level of Postgres line compatibility! Thanks for doing the writeup! One thing that's not totally clear in the comparison table is that most of these implementations are just that, databases providing an abstraction through the Postgres wire protocol over a different database architecture/parser & solution. Timescale…

While the table doesn't say that much about intent (other than what you might infer from the SQL Compatibility, ACID and Category columns), I had hoped it was clear from the rest of the article that I was saying there is no relationship between the wire protocol and being PostgreSQL compatible in general.

> It does NOT encompass the actual query language itself, let alone database semantics.

> This doesn't mean that any PostgreSQL or MySQL query will work with them since, as mentioned previously, query language and database semantics are independent of the wire protocol.

> To reiterate, the wire protocol doesn't specify anything about the query language.

> Just because a database implements the PostgreSQL wire protocol does not mean it intends to be a drop-in replacement for PostgreSQL.

> So just looking at parser support is not enough to talk about PostgreSQL query or semantic compatibility. But it is a starting point.

But I guess it wasn't clear.

Re: The world of PostgreSQL wire compatibility

#14

Earlier quoted context omitted.

> Proprietary databases like Oracle and SQL Server find value in developing their own drivers. They don't tend to publish their wire protocol. Just to note, MS have long published the details of their wire protocol, TDS - https://docs.microsoft.com/en-us/openspecs/windows_protocols...

Thanks I should be fairer to them. Updated the post to note this.

btw I think you meant to say "worth noting" instead if "worth nothing" ;)

Re: The world of PostgreSQL wire compatibility

#15
post #14

Earlier quoted context omitted.

Thanks I should be fairer to them. Updated the post to note this.

btw I think you meant to say "worth noting" instead if "worth nothing" ;)

lol, oops. Not a freudian slip. Edited, thank you.

Re: The world of PostgreSQL wire compatibility

#16

Timescale DevRel here! Great observations around how popular and useful it is for systems to have some level of Postgres line compatibility! Thanks for doing the writeup! One thing that's not totally clear in the comparison table is that most of these implementations are just that, databases providing an abstraction through the Postgres wire protocol over a different database architecture/parser & solution. Timescale…

CrateDB DevRel here :)

> databases providing an abstraction through the Postgres wire protocol

I would not call it an abstraction, if one has a full parser, analyzer, planner and execution engine. It is just a common language ;)

Re: The world of PostgreSQL wire compatibility

#17

Postgres wire compatibility does not imply Postgres compatibility. I recently got bit by this, I wanted to convert a mail address database from MySQL Galera to CockroachDB, because CockroachDB was just a bit easier to deal with. Unfortunately, Cockroach only support UTF-8, and Postgres only supports LATIN1 for the database (compiled into code). I believe that there are reasons for both sides to make this choice, unfo…

What do you mean with postgres only supporting LATIN1?

Dang, I meant PostFIX only supports LATIN1.

Re: The world of PostgreSQL wire compatibility

#18

Postgres wire compatibility does not imply Postgres compatibility. I recently got bit by this, I wanted to convert a mail address database from MySQL Galera to CockroachDB, because CockroachDB was just a bit easier to deal with. Unfortunately, Cockroach only support UTF-8, and Postgres only supports LATIN1 for the database (compiled into code). I believe that there are reasons for both sides to make this choice, unfo…

Correction, which I can't do because it's been downvoted, POSTFIX only supports LATIN1, so I can't use Cockroach with it.

Re: The world of PostgreSQL wire compatibility

#19
post #8
post #3

Well done. Couple of notes: - YugabyteDB is currently on Postgres 11.2 with plans to keep upgrading. - Cockroach is not pinned to any Postgres version so its compatibility is reliant on their implementation. Not a bad thing, just different than YB. - Like you said Timescale is in lockstep with latest Postgres (14 at the time of this comment) https://blog.timescale.com/blog/massive-scale-for-time-serie... - Materializ…

- Materialize is not really focused on scaling because that is not really what it is for Horizontal scalability is actually something that Materialize's underlying incremental computation engine (timely/differential dataflow) excels at. We're actively working to expose that tech in Materialize. (As in: many engineers, including me, are working on this full time; happy to answer questions!) It is too bad that you got…

Ok that is my bad! Sorry I was curious as to the answer to the question in the * scaling cell in the original blog post and searched 'materialized scaling' and came across that. Regardless I am actually a user of Materialize and quite like it.

Re: The world of PostgreSQL wire compatibility

#20

Postgres wire compatibility does not imply Postgres compatibility. I recently got bit by this, I wanted to convert a mail address database from MySQL Galera to CockroachDB, because CockroachDB was just a bit easier to deal with. Unfortunately, Cockroach only support UTF-8, and Postgres only supports LATIN1 for the database (compiled into code). I believe that there are reasons for both sides to make this choice, unfo…

[deleted]
Post reply on HN