Expand description
Table paths that carry attributes. Table paths that carry attributes.
A YTsaurus path is not only a string: it is a YSON value, and attributes on
it change what a command does with it. <append=%true>//tmp/log and
//tmp/log name the same table and mean opposite things — one adds rows,
the other replaces them. <columns=[host];ranges=[{lower_limit={row_index=0}; upper_limit={row_index=100}}]>//tmp/log names a hundred rows of one column
of it, which is the difference between a read worth doing over a laptop
link and one that is not.
This crate sent bare strings until now, so every write replaced the table
and append was unreachable. TablePath is the type that makes the
attributes expressible, and From<&str> is what keeps client.write_table ("//tmp/out", …) reading exactly as it did.
The attribute spellings are the
rich YPath reference:
columns is a list of names, ranges a list of maps with lower_limit,
upper_limit and exact, and inside a limit sit row_index, key and
key_bound. The Go SDK’s ypath.Rich renders the same shapes
(yt/go/ypath/rich.go: Ranges []Range \yson:“ranges,attr”`, ReadLimit{Key []any; RowIndex *int64}`).