Skip to content

fix(schema): implement robust delimiter escaping for nodeId path segments - #67

Merged
ZhuchkaTriplesix merged 1 commit into
devfrom
issue/56-nodeid-delimiter-escaping
Sep 28, 2026
Merged

ZhuchkaTriplesix merged 1 commit into
devfrom
issue/56-nodeid-delimiter-escaping

Conversation

@ZhuchkaTriplesix

Copy link
Copy Markdown
Member

Summary

  • Added src/utils/node_id.rs with encode_id_segment/decode_id_segment/split_node_id, escaping literal . and ~ within each dynamic nodeId segment before joining
  • Wired encoding into src/sdui/tree.rs node construction (db, table, view, dictionary, column, partition ids)
  • Wired decoding into src/rpc/handlers/schema.rs (db.expandTreeNode, db.getObjectMetadata) and src/sdui/actions.rs (sdui.contextActions), replacing naive nodeId.split('.')
  • Added regression tests covering database/table names containing literal dots

Closes #56

…ents

nodeId values (e.g. "table.analytics.events") were split naively on '.'
in db.expandTreeNode, sdui.contextActions and db.getObjectMetadata.
ClickHouse allows literal '.' inside backtick-quoted database/table
names and inside partition values, so such an identifier misaligned
every downstream segment once split.

Add src/utils/node_id.rs with encode_id_segment/decode_id_segment,
escaping '.' and '~' within each dynamic segment before it is joined
into a nodeId, and split_node_id to reverse it. Wire it into
src/sdui/tree.rs (node construction), src/rpc/handlers/schema.rs and
src/sdui/actions.rs (node parsing). Closes #56
@ZhuchkaTriplesix
ZhuchkaTriplesix merged commit 5c63ae2 into dev Sep 28, 2026
2 checks passed
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