From 4d97f6a839436101cfaecd7bf40644967668120f Mon Sep 17 00:00:00 2001 From: Lev Date: Mon, 22 Apr 2024 14:25:36 -0700 Subject: [PATCH 1/4] add diagram --- packages/pgml-rds-proxy/README.md | 2 ++ packages/pgml-rds-proxy/diagram.png | Bin 0 -> 43472 bytes 2 files changed, 2 insertions(+) create mode 100644 packages/pgml-rds-proxy/diagram.png diff --git a/packages/pgml-rds-proxy/README.md b/packages/pgml-rds-proxy/README.md index 6cf35569b..d12b2b0d6 100644 --- a/packages/pgml-rds-proxy/README.md +++ b/packages/pgml-rds-proxy/README.md @@ -2,6 +2,8 @@ A pgcat-based PostgreSQL proxy that allows to use PostgresML functions on managed PostgreSQL databases that may not have Internet access, like AWS RDS. +![Diagram](./diagram.png) + ## Getting started A Docker image is provided and is the easiest way to get started. To run the image, you can simply: diff --git a/packages/pgml-rds-proxy/diagram.png b/packages/pgml-rds-proxy/diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..5552633d92e640586989bfd3d9e04c6b8d67246b GIT binary patch literal 43472 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 Date: Mon, 22 Apr 2024 14:26:06 -0700 Subject: [PATCH 2/4] center --- packages/pgml-rds-proxy/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/pgml-rds-proxy/README.md b/packages/pgml-rds-proxy/README.md index d12b2b0d6..02ca5e253 100644 --- a/packages/pgml-rds-proxy/README.md +++ b/packages/pgml-rds-proxy/README.md @@ -2,8 +2,12 @@ A pgcat-based PostgreSQL proxy that allows to use PostgresML functions on managed PostgreSQL databases that may not have Internet access, like AWS RDS. +
+ ![Diagram](./diagram.png) +
+ ## Getting started A Docker image is provided and is the easiest way to get started. To run the image, you can simply: From 7112b3716546f03bf7aef55971b68363a946ba0a Mon Sep 17 00:00:00 2001 From: Lev Date: Mon, 22 Apr 2024 14:26:46 -0700 Subject: [PATCH 3/4] center --- packages/pgml-rds-proxy/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/pgml-rds-proxy/README.md b/packages/pgml-rds-proxy/README.md index 02ca5e253..a520c54db 100644 --- a/packages/pgml-rds-proxy/README.md +++ b/packages/pgml-rds-proxy/README.md @@ -2,11 +2,11 @@ A pgcat-based PostgreSQL proxy that allows to use PostgresML functions on managed PostgreSQL databases that may not have Internet access, like AWS RDS. -
+

![Diagram](./diagram.png) -

+

## Getting started From 8952a30f0550836d1eb318b46dfc52f30ad7e63c Mon Sep 17 00:00:00 2001 From: Lev Date: Mon, 22 Apr 2024 14:27:26 -0700 Subject: [PATCH 4/4] diagram --- packages/pgml-rds-proxy/README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/pgml-rds-proxy/README.md b/packages/pgml-rds-proxy/README.md index a520c54db..d7ff662de 100644 --- a/packages/pgml-rds-proxy/README.md +++ b/packages/pgml-rds-proxy/README.md @@ -3,9 +3,7 @@ A pgcat-based PostgreSQL proxy that allows to use PostgresML functions on managed PostgreSQL databases that may not have Internet access, like AWS RDS.

- -![Diagram](./diagram.png) - + Diagram

## Getting started