-
Notifications
You must be signed in to change notification settings - Fork 110
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Nuke to_mem_table_with_op_type
#990
Conversation
Rather than annotating rows with `__op_type` during `eval_incr` of selects, partition the rows before evaluation, then merge after.
row.elements.remove(pos_op_type).into_u8().unwrap_or_else(|_| { | ||
panic!("Failed to extract `{OP_TYPE_FIELD_NAME}` from `{}`", header.table_name) | ||
}); | ||
let row = row_ref.into_product_value(); | ||
into.push(TableOp::new(op_type, row)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perfect; next step (I'll fix it): make TableOp
hold a RelValue
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Beautiful!
Co-authored-by: Mazdak Farrokhzad <twingoow@gmail.com> Signed-off-by: Phoebe Goldman <phoebe@goldman-tribe.org>
…bs/spacetimedb into phoebe/incr-select-partition
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bots are happily running around as far as I can tell, no obvious breakage.
Description of Changes
Rather than annotating rows with
__op_type
duringeval_incr
of selects, partition the rows before evaluation, then merge after.API and ABI breaking changes
N/a
Expected complexity level and risk
2 - a purely interior change to
eval_incr
ofSELECT
queries, but if incorrect could lead to subtle weird behaviors. Probably worth a bot test before merging.Testing
Describe any testing you've done, and any testing you'd like your reviewers to do,
so that you're confident that all the changes work as expected!
incr-select
benchmark, saw: