From 40357875e8f4d0e428626887e22f162b6fe1eac9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nguye=CC=82=CC=83n=20Nam=20Long?= Date: Tue, 27 Oct 2026 09:36:49 +0700 Subject: [PATCH 1/2] docs(databases): document KingbaseES connections --- databases/index.mdx | 5 ++- databases/kingbasees.mdx | 82 ++++++++++++++++++++++++++++++++++++++ docs.json | 1 + index.mdx | 2 +- snippets/driver-counts.mdx | 4 +- 5 files changed, 89 insertions(+), 5 deletions(-) create mode 100644 databases/kingbasees.mdx diff --git a/databases/index.mdx b/databases/index.mdx index e16e380..6916e3f 100644 --- a/databases/index.mdx +++ b/databases/index.mdx @@ -1,11 +1,11 @@ --- title: Supported Databases -description: All 41 engines TablePro connects to, their default ports, and which ones need a plugin +description: All 42 engines TablePro connects to, their default ports, and which ones need a plugin --- import DriverCounts from "/snippets/driver-counts.mdx"; -Forty-one engines, and every one of them is free to use. What differs between them is where the +Forty-two engines, and every one of them is free to use. What differs between them is where the driver comes from, not what the license covers. @@ -31,6 +31,7 @@ driver comes from, not what the license covers. | [etcd](/databases/etcd) | 2379 | Plugin | | [Firebase Realtime Database](/databases/firebase) | API-based | Plugin | | [Firestore](/databases/firebase) | API-based | Plugin | +| [KingbaseES](/databases/kingbasees) | 54321 | Plugin | | [libSQL](/databases/libsql) | API-based | Plugin | | [Kafka](/databases/kafka) | 9092 | Plugin | | [MariaDB](/databases/mariadb) | 3306 | Built-in | diff --git a/databases/kingbasees.mdx b/databases/kingbasees.mdx new file mode 100644 index 0000000..654a826 --- /dev/null +++ b/databases/kingbasees.mdx @@ -0,0 +1,82 @@ +--- +title: KingbaseES +description: Connect to a KingbaseES server with the downloadable libpq driver +--- + +import RegistryPlugin from "/snippets/registry-plugin.mdx"; + +Choose **KingbaseES** when creating the connection. Enter the database and role supplied by your administrator; neither field is pre-filled. + + + +The plugin is named **KingbaseES Driver**. The driver was tested against KingbaseES V9R1C10 in PostgreSQL and Oracle compatibility modes. A minimum supported server version has not been established. + +## Quick setup + + + + Create a connection, choose **KingbaseES**, and install its driver when offered. + + + Set **Host**, **Port**, **Username**, **Password**, and **Database** to the values for your server. The default port is `54321`. + + + Click **Save & Connect**. + + + +## Connection settings + +| Field | Default | Notes | +|---|---|---| +| **Host** | `localhost` | Enter the server hostname or IP address | +| **Port** | `54321` | Use the port configured on your server | +| **Username** | Empty | Enter your database role | +| **Database** | Empty | Required; enter the database to open | +| **SSL Mode** | **Preferred** | Tries TLS first, then plain text if the server refuses TLS | +| **Connection Options** | Empty | Additional libpq connection options | + +## Connection URL + +```text +kingbase://user:password@host:54321/database +kingbase8://user:password@host:54321/database +``` + +See [Connection URL Reference](/connections/urls) for opening a connection URL. + +## Authentication + +Enter the password for your database role, or select **Use ~/.pgpass** to read it from a password file. A matching entry uses the server's port: + +```text +host:54321:database:user:password +``` + +Set the file permissions with `chmod 0600 ~/.pgpass`. See [Password file](/databases/postgresql#password-file). + +## Cross-database tabs + +Each database opened from the connections strip keeps a separate connection. A tab runs on the connection for its bound database; transactions and temporary tables belong to that connection. See [Cross-database tabs](/databases/postgresql#cross-database-tabs). + +## Compatibility modes + +The driver detects the session's compatibility mode after connecting. PostgreSQL (`pg`) and Oracle (`oracle`) modes are supported; other modes are refused with an error. + +On V9R1C10, both modes passed checks for catalog browsing, parameterized reads and writes, transactions, reconnecting, query cancellation, and DDL replay. Script execution recognizes dollar-quoted strings in PostgreSQL mode and native blocks and `q`-quoted strings in Oracle mode. + +## SSL/TLS + +The default **Preferred** mode falls back to plain text when the server refuses TLS. Select **Verify CA** to validate the server certificate. See [SSL/TLS](/connections/ssl) for the certificate settings. + +## Limitations + +- In the tested Oracle configuration, empty strings and empty `bytea` values become SQL NULL. They do not remain distinct values; use a separate flag column if that distinction matters. +- Oracle-mode `DATE` values include a time component. Read and write the time as part of the value. +- The tested V9R1C10 server rejects `NUMERIC 'Infinity'`. Use a finite numeric value or a separate status column. +- A transaction or temporary table in one database is not shared with another database's tab. Keep related statements on the same database connection. + +## Related + +- [Connections](/connections) +- [Plugins](/features/plugins) diff --git a/docs.json b/docs.json index 405d3d1..116b9d1 100644 --- a/docs.json +++ b/docs.json @@ -255,6 +255,7 @@ "databases/bigquery", "databases/bigtable", "databases/kafka", + "databases/kingbasees", "databases/libsql", "databases/mariadb", "databases/mssql", diff --git a/index.mdx b/index.mdx index 0684879..c64e11f 100644 --- a/index.mdx +++ b/index.mdx @@ -1,6 +1,6 @@ --- title: Introduction -description: Native macOS database client for MySQL, PostgreSQL, SQLite, MongoDB, Redis, and 36 more +description: Native macOS database client for MySQL, PostgreSQL, SQLite, MongoDB, Redis, and 37 more --- import DriverCounts from "/snippets/driver-counts.mdx"; diff --git a/snippets/driver-counts.mdx b/snippets/driver-counts.mdx index 73868cb..44a8722 100644 --- a/snippets/driver-counts.mdx +++ b/snippets/driver-counts.mdx @@ -1,3 +1,3 @@ -Five drivers ship inside the app and cover twelve databases. Twenty-five registry plugins cover the -other twenty-nine and install on the first connection that needs one. See +Five drivers ship inside the app and cover twelve databases. Twenty-six registry plugins cover the +other thirty and install on the first connection that needs one. See [Plugins](/features/plugins). From 75527266ec95515587a9809e59505804d0cf8816 Mon Sep 17 00:00:00 2001 From: Ngo Quoc Dat Date: Tue, 27 Oct 2026 17:43:26 +0700 Subject: [PATCH 2/2] docs(databases): describe KingbaseES modes, version support and copy limits --- databases/kingbasees.mdx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/databases/kingbasees.mdx b/databases/kingbasees.mdx index 654a826..52a8b05 100644 --- a/databases/kingbasees.mdx +++ b/databases/kingbasees.mdx @@ -9,7 +9,7 @@ Choose **KingbaseES** when creating the connection. Enter the database and role -The plugin is named **KingbaseES Driver**. The driver was tested against KingbaseES V9R1C10 in PostgreSQL and Oracle compatibility modes. A minimum supported server version has not been established. +The plugin is named **KingbaseES Driver**. It supports KingbaseES V9 and was tested against V9R1C10 in PostgreSQL and Oracle compatibility modes. ## Quick setup @@ -61,9 +61,13 @@ Each database opened from the connections strip keeps a separate connection. A t ## Compatibility modes -The driver detects the session's compatibility mode after connecting. PostgreSQL (`pg`) and Oracle (`oracle`) modes are supported; other modes are refused with an error. +The driver reads the server's `database_mode` setting when it connects. PostgreSQL (`pg`) and Oracle (`oracle`) modes are supported. A server in MySQL or SQL Server mode is refused with an error, and a server without the setting connects in PostgreSQL mode. -On V9R1C10, both modes passed checks for catalog browsing, parameterized reads and writes, transactions, reconnecting, query cancellation, and DDL replay. Script execution recognizes dollar-quoted strings in PostgreSQL mode and native blocks and `q`-quoted strings in Oracle mode. +In Oracle mode, anonymous blocks, procedure bodies, `q'[...]'` strings and `/` lines stay whole when you run a statement or a script, import a `.sql` file, or run startup commands. Dollar-quoted strings work in both modes. + +## Copying and comparing + +Copy tables between KingbaseES in PostgreSQL mode and PostgreSQL, or generate a Compare & Sync structure script between them. A server in Oracle mode spells its column types its own way, so it copies and syncs structure only with another Oracle-mode server. See [Copy objects](/features/copy-objects) and [Compare & Sync](/features/compare-sync). ## SSL/TLS