You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
UpdateBuilder::set() rejects any column name containing ., so a nested field cannot be updated directly — it can only be changed by setting its whole top-level struct column.
Location — rust/lance/src/dataset/write/update.rs, in set():
// TODO: support nested column references. This is mostly blocked on the// ability to insert them into the RecordBatch properly.if column.as_ref().contains('.'){returnErr(Error::not_supported_source(format!("Nested column references are not yet supported. Referenced: {}",
column.as_ref(),).into(),));}
Impact
To change s.x, callers must SET s = <whole struct>, which is awkward and rewrites the entire struct value.
Support set("s.x", <expr>) for nested leaf columns. The existing TODO notes this is mostly blocked on inserting nested columns into the RecordBatch properly. Once supported, the index-coverage logic can target the leaf field directly instead of conservatively expanding the whole struct subtree.
UpdateBuilder::set()rejects any column name containing., so a nested field cannot be updated directly — it can only be changed by setting its whole top-level struct column.Location —
rust/lance/src/dataset/write/update.rs, inset():Impact
s.x, callers mustSET s = <whole struct>, which is awkward and rewrites the entire struct value.s.x) had to be handled specially to avoid being wrongly extended over the rewritten fragment.Ask
Support
set("s.x", <expr>)for nested leaf columns. The existing TODO notes this is mostly blocked on inserting nested columns into theRecordBatchproperly. Once supported, the index-coverage logic can target the leaf field directly instead of conservatively expanding the whole struct subtree.