branch: elpa/pg
commit 9d5962c5ce439ac1c3de1e5eb5b202497c277706
Author: Eric Marsden <eric.mars...@risk-engineering.org>
Commit: Eric Marsden <eric.mars...@risk-engineering.org>

    List of tested PostgreSQL variants is maintained in the README (DRY)
---
 doc/src/about.md | 107 +++++--------------------------------------------------
 1 file changed, 8 insertions(+), 99 deletions(-)

diff --git a/doc/src/about.md b/doc/src/about.md
index c8093ca9cf..483c7f16dd 100644
--- a/doc/src/about.md
+++ b/doc/src/about.md
@@ -41,107 +41,16 @@ PostgreSQL or a compatible database.
 
 The code has been tested with **PostgreSQL versions** 17.4, 16.3, 15.4, 13.8, 
11.17, and 10.22 on
 Linux. It is also tested via GitHub actions on MacOS and Microsoft Windows. 
This library also works,
-to a variable extent, against other databases that implement the PostgreSQL 
wire protocol:
-
-- [Neon](https://neon.tech/) “serverless PostgreSQL” works perfectly.
-
-- [ParadeDB](https://www.paradedb.com/) version 0.9.1 works perfectly (it's 
really a PostgreSQL
-  extension rather than a distinct database implementation).
-
-- [IvorySQL](https://www.ivorysql.org/) version 3.4 works perfectly (this fork 
of PostgreSQL adds
-  some features for compatibility with Oracle).
-
-- The [CitusDB](https://github.com/citusdata/citus) extension for sharding 
PostgreSQL over multiple
-  hosts works perfectly (last tested with Citus version 12.1.5, which is based 
on PostgreSQL 16.6).
-
-- The [Microsoft DocumentDB](https://github.com/microsoft/documentdb) 
extension for MongoDB-like
-  queries works perfectly (last tested 2025-02 with version 16.6). Note that 
this is not the same
-  product as Amazon DocumentDB.
-
-- The [Hydra Columnar](https://github.com/hydradatabase/columnar) extension 
for column-oriented
-  storage and parallel queries works perfectly (last tested 2025-02).
-
-- The [Timescale DB](https://www.timescale.com/) extension for time series 
data works perfectly
-  (tested with version 2.16.1).
-
-- The [PgBouncer](https://www.pgbouncer.org/) connection pooler for PostgreSQL 
works fine (tested
-  with version 1.23 in the default session pooling mode).
-
-- [Google AlloyDB Omni](https://cloud.google.com/alloydb/omni/docs/quickstart) 
is a proprietary fork
-  of PostgreSQL with Google-developed extensions, including a columnar storage 
extension, adaptive
-  autovacuum, and an index advisor. It works perfectly with pg-el as of 
2025-01.
-
-- [ParadeDB](https://www.paradedb.com/): This ElasticSearch alternative is very
-  PostgreSQL-compatible (more of an extension than a reimplementation). Tested 
with the Dockerhub
-  instance which is based on PostgreSQL 16.3. All tests pass.
-
-- [Xata](https://xata.io/) “serverless PostgreSQL” has many limitations 
including lack of support
-  for `CREATE DATABASE`, `CREATE COLLATION`, for XML processing, for temporary 
tables, for cursors,
-  for `EXPLAIN`, for `CREATE EXTENSION`, for functions such as `pg_notify`.
-
-- [YugabyteDB](https://yugabyte.com/): tested against version 2.23. This 
database uses a lot of
-  code from PostgreSQL 11 and is quite compatible, including with the HSTORE 
and pgvector
-  extensions. However, some system tables differ from PostgreSQL, such as the 
`pg_sequences` table.
-  It does not support the XML type. It does not support `LISTEN`/`NOTIFY`.
-
-- The [RisingWave](https://github.com/risingwavelabs/risingwave) event 
streaming database is mostly
-  working. It does not support `GENERATED ALWAYS AS IDENTITY` columns. Last 
tested 2025-02 with v2.1.2.
-
-- [CrateDB](https://crate.io/): last tested 2025-02 with version 5.9.9. There 
are limitations in
-  this database's emulation of the PostgreSQL system tables: for example, it's 
not possible to query
-  the owner of a table (function `pg-table-owner`). It doesn't accept SQL 
statements that only
-  include an SQL comment. It doesn't support setting comments on SQL tables. As
-  
[documented](https://cratedb.com/docs/crate/reference/en/latest/interfaces/postgres.html),
 CrateDB
-  does not support the `TIME` type without a time zone. It doesn't support 
casting integers to bits.
-  It doesn't support the `VARBIT` type. It has no support for the COPY 
protocol.
-
-- [CockroachDB](https://github.com/cockroachdb/cockroach): tested with 
CockroachDB CCL v24.3. Note
-  that this database does not implement the large object functionality, and 
its interpretation of
-  SQL occasionally differs from that of PostgreSQL. It is currently [reporting 
an internal
-  error](https://github.com/cockroachdb/cockroach/issues/104009) when we call 
`pg-table-comment`.
-
-- [QuestDB](https://questdb.io/): tested against version 6.5.4. This is not 
very
-  PostgreSQL-compatible: it fails on the SQL query `SELECT 1::integer` because 
it doesn't recognize
-  integer as a type. It doesn't support `DELETE` statements.
-
-- [Google Spanner](https://cloud.google.com/spanner): tested with the Spanner 
emulator (that reports
-  itself as `PostgreSQL 14.1`) and the PGAdapter library that enables support 
for the PostgreSQL
-  wire protocol. Spanner has very limited PostgreSQL compatibility, for 
example refusing to create
-  tables that do not have a primary key. It does not recognize basic 
PostgreSQL types such as `INT2`.
-  It also does not for example support the `CHR` and `MD5` functions, row 
expressions, and WHERE
-  clauses without a FROM clause.
-
-- [YDB by Yandex](https://ydb.tech/docs/en/postgresql/docker-connect) last 
tested with version 23-4.
-  Has very limited PostgreSQL compatibility. For example, an empty query 
string leads to a hung
-  connection, and the `bit` type is returned as a string with the wrong oid.
-
-- The [Materialize](https://materialize.com/) operational database (a 
proprietary differential
-  dataflow database) has many limitations in its PostgreSQL compatibility: no 
support for primary
-  keys, unique constraints, check constraints, for the `bit` type for example. 
It works with these
-  limitations with pg-el (last tested 2025-02 with Materialize v0.133).
-
-- [ClickHouse](https://clickhouse.com/) doesn't work with pg-el. Their version 
24.5 has a very basic
-  implementation of the PostgreSQL wire protocol. It doesn’t support the 
`pg_type` system table
-  which provides information on the OIDs associated with different PostgreSQL 
types. All values are
-  returned in textual format using the pseudo-OID of 0, which means the client 
must parse the value.
-  The database immediately closes the connection on any SQL error. It doesn't 
support configuration
-  statements such as `SET datestyle`. It doesn't specify a `server_name` in 
the startup sequence,
-  which might allow us to detect this special case and restrict functionality 
to the most basic
-  aspects.
-
-- [GreptimeDB](https://github.com/GrepTimeTeam/greptimedb) version 0.9.5 
implements quite a lot of
-  the PostgreSQL wire protocol, but the names it uses for types in the 
`pg_catalog.pg_types` table
-  are not the same as those used by PostgreSQL (e.g. `Int64` instead of 
`int8`), so our parsing
-  machinery does not work.
-
-- Untested but likely to work: Amazon RDS, Google Cloud SQL, Azure Database 
for PostgreSQL, Amazon
-  Auroa. You may however encounter difficulties with TLS connections, as noted 
above.
-
-The generic function `pg-do-variant-specific-setup` allows you to specify 
setup operations to
-run for a particular semi-compatible PostgreSQL variant. You can specialize it 
on the symbol name of the
+to a variable extent, against other databases that implement the PostgreSQL 
wire protocol; please
+see our [README](https://github.com/emarsden/pg-el/blob/main/README.md) for 
the up to date list.
+
+The generic function `pg-do-variant-specific-setup` allows you to specify 
setup operations to run
+for a particular semi-compatible PostgreSQL variant. You can specialize it on 
the symbol name of the
 variant, currently one of `postgresql`, `alloydb`, `cratedb`, `cockroachdb`, 
`yugabyte`, `questdb`,
 `greptimedb`, `risingwave`, `immudb`, `timescaledb`, `ydb`, `orioledb`, 
`xata`, `spanner`,
-`ivorydb`. As an example, the following specializer is already defined to run 
for AlloyDB variants:
+`ivorydb`, `readyset`, `materialize`, `greenplum`, `clickhouse`, `octodb`, 
`vertica`, `arcadedb`,
+`polardb`, `agensgraph`. As an example, the following specializer is already 
defined to run for
+AlloyDB variants:
 
 ```lisp
 ;; Register the OIDs associated with these OmniDB-specific types, so that 
their types appear in

Reply via email to