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

    Add test recipes for PolarDB, AgensGraph, ArcadeDB, SurrealDB
---
 test/Makefile | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 65 insertions(+), 3 deletions(-)

diff --git a/test/Makefile b/test/Makefile
index cc2f5ecffb..dab2301c1e 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -442,7 +442,7 @@ test-timescale: test-pg.el
 test-citus: test-pg.el
        ${DOCKER} run --rm --name citus \
            --pull=newer \
-          --publish 5409:5409 \
+          --publish 127.0.0.1:5409:5409 \
           -e POSTGRES_DB=pgeltestdb \
           -e POSTGRES_USER=pgeltestuser \
           -e POSTGRES_PASSWORD=pgeltest \
@@ -461,7 +461,7 @@ test-citus: test-pg.el
 test-orioledb: test-pg.el
        ${DOCKER} run --rm --name orioledb \
           --pull=newer \
-         --publish 5317:5317 \
+         --publish 127.0.0.1:5317:5317 \
           -e POSTGRES_DB=pgeltestdb \
           -e POSTGRES_USER=pgeltestuser \
           -e POSTGRES_PASSWORD=pgeltest \
@@ -479,7 +479,7 @@ test-orioledb: test-pg.el
 test-ivorysql: test-pg.el
        ${DOCKER} run --rm --name ivorydb \
           --pull=newer \
-         --publish 5437:5432 \
+         --publish 127.0.0.1:5437:5432 \
          -e LANG=C.UTF8 \
          -e LC_CTYPE=C.UTF8 \
          -e IVORYSQL_DB=pgeltestdb \
@@ -560,6 +560,20 @@ test-age: test-pg.el
        ${DOCKER} stop age
 
 
+# An open source graph database based on PostgreSQL
+#
+# https://github.com/skaiworldwide-oss/agensgraph
+test-agensgraph: test-pg.el
+       ${DOCKER} run --rm --name agensgraph \
+          --publish 127.0.0.1:5455:5432 \
+          -e POSTGRES_USER=pgeltestuser \
+          -e POSTGRES_PASSWORD=pgeltest \
+          -e POSTGRES_DB=pgeltestdb \
+          -d docker.io/skaiworldwide/agensgraph:latest
+       sleep 5
+       PGURI=postgresql://pgeltestuser:pgeltest@127.0.0.1:5455/pgeltestdb 
$(MAKE) test
+       ${DOCKER} stop agensgraph
+
 
 # Microsoft DocumentDB (PostgreSQL-based). This is not the same product as 
Amazon DocumentDB.
 #
@@ -750,6 +764,23 @@ test-yugabyte: test-pg.el
        ${DOCKER} stop yugabyte
 
 
+# https://github.com/ApsaraDB/PolarDB-for-PostgreSQL from Alibaba Cloud
+#
+# Note: primary runs on $POLARDB_PORT, replicas on ${POLARDB_PORT}+1 and 
${POLARDB_PORT}+2
+# We don't seem to be able to set POLARDB_DATABASE or equivalent
+test-polardb: test-pg.el
+       ${DOCKER} run --rm --name polardb \
+          --pull=newer \
+          --publish 127.0.0.1:5998:5998 \
+          -e POLARDB_PORT=5998 \
+          -e POLARDB_USER=pgeltestuser \
+          -e POLARDB_PASSWORD=pgeltest \
+          -d docker.io/polardb/polardb_pg_local_instance:15
+       sleep 10
+       PGURI=postgresql://pgeltestuser:pgeltest@127.0.0.1:5998/postgres 
$(MAKE) test
+       ${DOCKER} stop polardb
+
+
 # Materialize (here the "Materialize emulator" running in Docker). This 
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.
@@ -1016,6 +1047,37 @@ test-vertica: test-pg.el
        ${DOCKER} stop vertica
 
 
+# https://docs.arcadedb.com/#postgres-driver
+# https://github.com/ArcadeData/arcadedb
+#
+# Note: syntax compatibility with PostgreSQL is very low
+# https://docs.arcadedb.com/#sql-syntax
+# In particular, "CREATE TABLE" does not work, needs "CREATE TYPE"
+test-arcadedb: test-pg.el
+       ${DOCKER} run --rm --name arcadedb \
+          --pull=newer \
+          --publish 127.0.0.1:5600:5432 \
+          -e 
JAVA_OPTS="-Darcadedb.server.plugins=Postgres:com.arcadedb.postgres.PostgresProtocolPlugin
 -Darcadedb.server.rootPassword=pgeltest 
-Darcadedb.server.defaultDatabases=pgeltestdb[pgeltestuser:pgeltest]" \
+          -d docker.io/arcadedata/arcadedb:latest
+       sleep 10
+       PGURI=postgresql://pgeltestuser:pgeltest@127.0.0.1:5600/pgeltestdb 
$(MAKE) test
+       ${DOCKER} stop arcadedb
+
+
+# https://github.com/surrealdb/surrealdb?tab=readme-ov-file#run-using-docker
+#
+# It looks like PostgreSQL wire protocol support is "in development".
+test-surrealdb: test-pg.el
+       ${DOCKER} run --rm --name surrealdb \
+           --pull=newer \
+           --publish 127.0.0.1:8000:8000 \
+           -d docker.io/surrealdb/surrealdb:latest start memory \
+              --user pgeltestuser --pass pgeltest --log info 
--allow-experimental
+       sleep 5
+       PGURI=postgresql://pgeltestuser:pgeltest@127.0.0.1:5433/pgeltestdb 
$(MAKE) test
+       ${DOCKER} stop surrealdb
+
+
 # https://github.com/risinglightdb/risinglight
 #
 # This educational database implementation is not very PostgreSQL compatible; 
it doesn't implement

Reply via email to