top | item 30290547

(no title)

ryanbooz | 4 years ago

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.

discuss

order

eatonphil|4 years ago

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.

proddata|4 years ago

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 ;)