-
Notifications
You must be signed in to change notification settings - Fork 1
Enabling symbolic execution support for filters, joins and unions #10
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
base: michael/sym-eval
Are you sure you want to change the base?
Conversation
Exposing arrow datatype to z3 type converter in mod
The module defines methods to construct primitive array from indexes of the input primitive array. We need to make sure that the symbolic data of the input primitive array is copied into the constructed primitive array
| } | ||
|
|
||
| fn to_symbolic_data(&self) -> super::SymbolicArrayData { | ||
| dbg!(&self.data_type, &self, &self.symbolic_data); |
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.
how did we end up with dbg lines in the first place? For other repos we have a protection, should we lint here as well?
| Boolean, | ||
| /// A string variable | ||
| String, | ||
| /// A int variable |
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.
nit: An int
| DataType::Int8 | DataType::Int16 | DataType::Int32 | DataType::Int64 | | ||
| DataType::UInt8 | DataType::UInt16 | DataType::UInt32 | DataType::UInt64 | | ||
| DataType::Decimal128(_, _) | DataType::Decimal256(_, _) => VarType::Int, | ||
| _ => VarType::String, // Default to String for other types |
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.
what are those other types and why is string ok? Is it safer to return an error in this case
| r.clone(), | ||
| )); | ||
| for j in 0..syms2.len() { | ||
| let l = &syms1[i]; |
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.
why is this not outside the nested loop?
| } else { | ||
| vec![] | ||
| }; | ||
| all_constraints.extend(constraints.unwrap_or_default()); |
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.
potentially move into the branches above to avoid mut
gliga
left a comment
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.
Looks fine to me, but check with @milevin
This pull request merges the latest four commits on
aditya/sym_evalintomichael/sym-eval.takesym!macro to pair every element of the two batches (quadratic join)VarTypeenum andarrow_type_to_var_typefor correct Z3 typing. Add row offset field to symbolic variable to support unionsdbg!calls across array / select modules