Round 347: PostgreSQL ext, MySQL ext, ClickHouse ext, ScyllaDB ext, TiDB ext (20 commands)

ober

f96b1809a786b4f6a5dbe91e30a5d857bdc39041

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 1af1b27..2fa8c90 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | ebib-import-file | :orange_circle: | Import file into Ebib |
 | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer |
 
+### Round 347 — PostgreSQL ext, MySQL ext, ClickHouse ext, ScyllaDB ext, TiDB ext
+
+| Feature | Status | Notes |
+|---|---|---|
+| postgresql-databases | :orange_circle: | PostgreSQL: list databases |
+| postgresql-tables | :orange_circle: | PostgreSQL: list tables |
+| postgresql-users | :orange_circle: | PostgreSQL: list users/roles |
+| postgresql-activity | :orange_circle: | PostgreSQL: active connections |
+| mysql-databases | :orange_circle: | MySQL: list databases |
+| mysql-tables | :orange_circle: | MySQL: list tables |
+| mysql-users | :orange_circle: | MySQL: list users |
+| mysql-processlist | :orange_circle: | MySQL: show process list |
+| clickhouse-databases | :orange_circle: | ClickHouse: list databases |
+| clickhouse-tables | :orange_circle: | ClickHouse: list tables |
+| clickhouse-query | :orange_circle: | ClickHouse: execute SQL |
+| clickhouse-parts | :orange_circle: | ClickHouse: show parts info |
+| scylladb-status | :orange_circle: | ScyllaDB: cluster status |
+| scylladb-nodetool | :orange_circle: | ScyllaDB: run nodetool |
+| scylladb-cqlsh | :orange_circle: | ScyllaDB: execute CQL |
+| scylladb-repair | :orange_circle: | ScyllaDB: run repair |
+| tidb-status | :orange_circle: | TiDB: cluster status |
+| tidb-regions | :orange_circle: | TiDB: list regions |
+| tidb-stores | :orange_circle: | TiDB: list TiKV stores |
+| tidb-tables | :orange_circle: | TiDB: list tables |
+
 ### Round 346 — RabbitMQ ext, Kafka ext, NATS ext, Redis ext, Memcached ext
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index bd3f4b4..d31e55d 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -25377,3 +25377,53 @@
 (def (cmd-memcached-connections app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Memcached: showing connection stats")))
+
+;;; Round 347 — ClickHouse ext, ScyllaDB ext, TiDB ext (batch 2)
+
+(def (cmd-clickhouse-query app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "ClickHouse SQL: "
+      (lambda (sql)
+        (echo-message! echo (str "ClickHouse: executing query"))))))
+
+(def (cmd-clickhouse-parts app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ClickHouse: showing parts info")))
+
+(def (cmd-scylladb-status app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ScyllaDB: showing cluster status")))
+
+(def (cmd-scylladb-nodetool app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "ScyllaDB nodetool command: "
+      (lambda (cmd)
+        (echo-message! echo (str "ScyllaDB: nodetool " cmd))))))
+
+(def (cmd-scylladb-cqlsh app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "ScyllaDB CQL: "
+      (lambda (cql)
+        (echo-message! echo (str "ScyllaDB: executing CQL"))))))
+
+(def (cmd-scylladb-repair app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ScyllaDB: running repair")))
+
+(def (cmd-tidb-status app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TiDB: showing cluster status")))
+
+(def (cmd-tidb-regions app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TiDB: listing regions")))
+
+(def (cmd-tidb-stores app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TiDB: listing TiKV stores")))
+
+(def (cmd-tidb-tables app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "TiDB database: "
+      (lambda (db)
+        (echo-message! echo (str "TiDB: listing tables in " db))))))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 95d10b4..d784bb6 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -26094,3 +26094,51 @@
     (echo-read-string echo "NATS subscribe subject: "
       (lambda (subj)
         (echo-message! echo (str "NATS: subscribing to " subj))))))
+
+;;; Round 347 — PostgreSQL ext, MySQL ext, ClickHouse ext, ScyllaDB ext, TiDB ext (batch 1)
+
+(def (cmd-postgresql-databases app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PostgreSQL: listing databases")))
+
+(def (cmd-postgresql-tables app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "PostgreSQL database: "
+      (lambda (db)
+        (echo-message! echo (str "PostgreSQL: listing tables in " db))))))
+
+(def (cmd-postgresql-users app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PostgreSQL: listing users/roles")))
+
+(def (cmd-postgresql-activity app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PostgreSQL: showing active connections")))
+
+(def (cmd-mysql-databases app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MySQL: listing databases")))
+
+(def (cmd-mysql-tables app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "MySQL database: "
+      (lambda (db)
+        (echo-message! echo (str "MySQL: listing tables in " db))))))
+
+(def (cmd-mysql-users app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MySQL: listing users")))
+
+(def (cmd-mysql-processlist app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MySQL: showing process list")))
+
+(def (cmd-clickhouse-databases app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ClickHouse: listing databases")))
+
+(def (cmd-clickhouse-tables app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "ClickHouse database: "
+      (lambda (db)
+        (echo-message! echo (str "ClickHouse: listing tables in " db))))))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 8197461..dbd571e 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -8716,4 +8716,26 @@
   (register-command! 'memcached-slabs cmd-memcached-slabs)
   (register-command! 'memcached-items cmd-memcached-items)
   (register-command! 'memcached-connections cmd-memcached-connections)
+
+  ;; Round 347 — PostgreSQL ext, MySQL ext, ClickHouse ext, ScyllaDB ext, TiDB ext
+  (register-command! 'postgresql-databases cmd-postgresql-databases)
+  (register-command! 'postgresql-tables cmd-postgresql-tables)
+  (register-command! 'postgresql-users cmd-postgresql-users)
+  (register-command! 'postgresql-activity cmd-postgresql-activity)
+  (register-command! 'mysql-databases cmd-mysql-databases)
+  (register-command! 'mysql-tables cmd-mysql-tables)
+  (register-command! 'mysql-users cmd-mysql-users)
+  (register-command! 'mysql-processlist cmd-mysql-processlist)
+  (register-command! 'clickhouse-databases cmd-clickhouse-databases)
+  (register-command! 'clickhouse-tables cmd-clickhouse-tables)
+  (register-command! 'clickhouse-query cmd-clickhouse-query)
+  (register-command! 'clickhouse-parts cmd-clickhouse-parts)
+  (register-command! 'scylladb-status cmd-scylladb-status)
+  (register-command! 'scylladb-nodetool cmd-scylladb-nodetool)
+  (register-command! 'scylladb-cqlsh cmd-scylladb-cqlsh)
+  (register-command! 'scylladb-repair cmd-scylladb-repair)
+  (register-command! 'tidb-status cmd-tidb-status)
+  (register-command! 'tidb-regions cmd-tidb-regions)
+  (register-command! 'tidb-stores cmd-tidb-stores)
+  (register-command! 'tidb-tables cmd-tidb-tables)
 )