Round 373: ClickHouse ext, BigQuery ext, Snowflake ext, Redshift/DuckDB ext (20 commands)

ober

1cc5fdce4cdc1311ccd457c460070cd777466b69

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 9a84355..7d3d781 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 373 — ClickHouse ext, BigQuery ext, Snowflake ext, Redshift/DuckDB ext
+
+| Feature | Emacs | jemacs | Status |
+|---|---|---|---|
+| ClickHouse merges | — | `clickhouse-merges` | :orange_circle: Scaffolded |
+| ClickHouse replicas | — | `clickhouse-replicas` | :orange_circle: Scaffolded |
+| ClickHouse mutations | — | `clickhouse-mutations` | :orange_circle: Scaffolded |
+| ClickHouse dictionaries | — | `clickhouse-dictionaries` | :orange_circle: Scaffolded |
+| BigQuery SQL query | — | `bigquery-query` | :orange_circle: Scaffolded |
+| BigQuery list tables | — | `bigquery-tables` | :orange_circle: Scaffolded |
+| BigQuery list datasets | — | `bigquery-datasets` | :orange_circle: Scaffolded |
+| BigQuery list jobs | — | `bigquery-jobs` | :orange_circle: Scaffolded |
+| Snowflake SQL query | — | `snowflake-query` | :orange_circle: Scaffolded |
+| Snowflake warehouses | — | `snowflake-warehouses` | :orange_circle: Scaffolded |
+| Snowflake databases | — | `snowflake-databases` | :orange_circle: Scaffolded |
+| Snowflake stages | — | `snowflake-stages` | :orange_circle: Scaffolded |
+| Redshift SQL query | — | `redshift-query` | :orange_circle: Scaffolded |
+| Redshift list tables | — | `redshift-tables` | :orange_circle: Scaffolded |
+| Redshift clusters | — | `redshift-clusters` | :orange_circle: Scaffolded |
+| Redshift schemas | — | `redshift-schemas` | :orange_circle: Scaffolded |
+| DuckDB SQL query | — | `duckdb-query` | :orange_circle: Scaffolded |
+| DuckDB list tables | — | `duckdb-tables` | :orange_circle: Scaffolded |
+| DuckDB export data | — | `duckdb-export` | :orange_circle: Scaffolded |
+| DuckDB import data | — | `duckdb-import` | :orange_circle: Scaffolded |
+
 ### Round 372 — Splunk ext, Elasticsearch ext, Sumo Logic ext, Loki/Tempo ext
 
 | Feature | Emacs | jemacs | Status |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 3a27139..e0cf8e3 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -26583,3 +26583,48 @@
 (def (cmd-tempo-config app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Tempo: showing configuration")))
+
+;; Round 373 batch 2 — Snowflake ext, Redshift/DuckDB ext
+(def (cmd-snowflake-databases app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Snowflake: listing databases")))
+
+(def (cmd-snowflake-stages app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Snowflake: listing stages")))
+
+(def (cmd-redshift-query app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Redshift SQL: "
+      (lambda (sql)
+        (echo-message! echo (str "Redshift: executing: " sql))))))
+
+(def (cmd-redshift-tables app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Redshift: listing tables")))
+
+(def (cmd-redshift-clusters app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Redshift: listing clusters")))
+
+(def (cmd-redshift-schemas app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Redshift: listing schemas")))
+
+(def (cmd-duckdb-query app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "DuckDB SQL: "
+      (lambda (sql)
+        (echo-message! echo (str "DuckDB: executing: " sql))))))
+
+(def (cmd-duckdb-tables app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "DuckDB: listing tables")))
+
+(def (cmd-duckdb-export app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "DuckDB: exporting data")))
+
+(def (cmd-duckdb-import app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "DuckDB: importing data")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 8b24735..68a9a89 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -27360,3 +27360,48 @@
 (def (cmd-sumo-collectors app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Sumo Logic: listing collectors")))
+
+;; Round 373 batch 1 — ClickHouse ext, BigQuery ext
+(def (cmd-clickhouse-merges app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ClickHouse: listing active merges")))
+
+(def (cmd-clickhouse-replicas app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ClickHouse: listing replicas")))
+
+(def (cmd-clickhouse-mutations app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ClickHouse: listing mutations")))
+
+(def (cmd-clickhouse-dictionaries app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ClickHouse: listing dictionaries")))
+
+(def (cmd-bigquery-query app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "BQ SQL: "
+      (lambda (sql)
+        (echo-message! echo (str "BigQuery: executing: " sql))))))
+
+(def (cmd-bigquery-tables app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "BigQuery: listing tables")))
+
+(def (cmd-bigquery-datasets app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "BigQuery: listing datasets")))
+
+(def (cmd-bigquery-jobs app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "BigQuery: listing jobs")))
+
+(def (cmd-snowflake-query app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Snowflake SQL: "
+      (lambda (sql)
+        (echo-message! echo (str "Snowflake: executing: " sql))))))
+
+(def (cmd-snowflake-warehouses app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Snowflake: listing warehouses")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index a6a44a5..e8932b7 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -9288,4 +9288,26 @@
   (register-command! 'tempo-traces cmd-tempo-traces)
   (register-command! 'tempo-spansets cmd-tempo-spansets)
   (register-command! 'tempo-config cmd-tempo-config)
+
+  ;; Round 373 — ClickHouse ext, BigQuery ext, Snowflake ext, Redshift/DuckDB ext
+  (register-command! 'clickhouse-merges cmd-clickhouse-merges)
+  (register-command! 'clickhouse-replicas cmd-clickhouse-replicas)
+  (register-command! 'clickhouse-mutations cmd-clickhouse-mutations)
+  (register-command! 'clickhouse-dictionaries cmd-clickhouse-dictionaries)
+  (register-command! 'bigquery-query cmd-bigquery-query)
+  (register-command! 'bigquery-tables cmd-bigquery-tables)
+  (register-command! 'bigquery-datasets cmd-bigquery-datasets)
+  (register-command! 'bigquery-jobs cmd-bigquery-jobs)
+  (register-command! 'snowflake-query cmd-snowflake-query)
+  (register-command! 'snowflake-warehouses cmd-snowflake-warehouses)
+  (register-command! 'snowflake-databases cmd-snowflake-databases)
+  (register-command! 'snowflake-stages cmd-snowflake-stages)
+  (register-command! 'redshift-query cmd-redshift-query)
+  (register-command! 'redshift-tables cmd-redshift-tables)
+  (register-command! 'redshift-clusters cmd-redshift-clusters)
+  (register-command! 'redshift-schemas cmd-redshift-schemas)
+  (register-command! 'duckdb-query cmd-duckdb-query)
+  (register-command! 'duckdb-tables cmd-duckdb-tables)
+  (register-command! 'duckdb-export cmd-duckdb-export)
+  (register-command! 'duckdb-import cmd-duckdb-import)
 )