Skip to content

feat: ducklake_catalog_connstr config for remote DuckLake catalog#72

Merged
YuweiXiao merged 5 commits intomainfrom
worktree-remote-ducklake-catalog
Apr 15, 2026
Merged

feat: ducklake_catalog_connstr config for remote DuckLake catalog#72
YuweiXiao merged 5 commits intomainfrom
worktree-remote-ducklake-catalog

Conversation

@YuweiXiao
Copy link
Copy Markdown
Collaborator

Summary

  • Add ducklake_catalog_connstr string config key (global + per-group) that lets flush threads and snapshot consumers point at a remote PG for DuckLake metadata instead of the local PG
  • FlushCoordinator resolves the catalog connstr internally from ResolvedConfigzero changes to bgworker/daemon call sites
  • Redact passwords in set_config() logs when the key is a connection string
  • Remove dead ServiceConfig.duckdb_pg_connstr field and stale host=127.0.0.1 variable
  • Fix get_group_config(key) returning false "unknown key" error for Option<String> config fields

Enables Citus worker-side execution (CITUS_DESIGN.md Phase 1a) where each worker flushes to a shared DuckLake catalog on an analytics node.

Test plan

  • New ducklake_catalog_connstr regression test (config CRUD, empty string rejection, per-group override, cleanup)
  • All 43 regression tests pass (make installcheck)
  • cargo fmt --all --check clean
  • Manual: set ducklake_catalog_connstr pointing at a remote PG, verify flush threads ATTACH to the remote catalog

🤖 Generated with Claude Code

YuweiXiao and others added 5 commits April 13, 2026 20:30
Allow flush threads and snapshot consumers to point at a remote PG for
DuckLake metadata instead of the local PG. When unset, behavior is
unchanged (local PG). Enables Citus worker-side execution where each
worker flushes to a shared DuckLake catalog on an analytics node.

- New string config key in GroupConfig/ResolvedConfig (global + per-group)
- FlushCoordinator resolves catalog connstr internally from ResolvedConfig
- Redact credentials in set_config logs for connstr-valued keys
- Remove dead ServiceConfig.duckdb_pg_connstr field
- Fix get_group_config false "unknown key" error for Option<String> fields

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ist)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Verifies flush threads actually use the configured ducklake_catalog_connstr
for DuckDB ATTACH by creating a dedicated sync group with a Unix socket
loopback connstr, inserting data, and confirming it arrives in the target.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Merge config CRUD and E2E flush tests into a single file. Remove the
separate _e2e test. Move to late schedule position (needs bgworker).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Applies the same redaction logic from set_config to set_group_config,
preventing connection string passwords from leaking to PostgreSQL logs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@YuweiXiao YuweiXiao merged commit a59c772 into main Apr 15, 2026
5 checks passed
@YuweiXiao YuweiXiao deleted the worktree-remote-ducklake-catalog branch April 15, 2026 03:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant