-
Couldn't load subscription status.
- Fork 2
MVP Memo Table (DO NOT MERGE) #49
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
Conversation
2cbdae0 to
f0e4b45
Compare
This commit adds the boilerplate files and fixes the CI workflows.
4d60811 to
8610184
Compare
This commit adds a first draft of a memo table trait and a persistent memo table implementation backed by SeaORM entities.
b3467f3 to
24df49f
Compare
This commit adds the `src/expression` module which contains a very simple representation of Cascades expressions. The `Memo` trait interface and implemenation has also changed, where it now correctly detects exact match duplicates, and it does not track fingerprints for physical expressions (only logical). TODO: Add more tests. TODO: Figure out how to test in CI.
a74f03c to
aaba197
Compare
This commit completely refactors the memo table, removing the `Memo` trait and instead placing all methods directly on the `PersistentMemo` structure itself. This also cleans up some code in other places.
4b06b81 to
9d9db84
Compare
1fe79ad to
c4462fb
Compare
|
To run tests, use: cargo t -- --test-threads 1 --ignoredThey are ignored because tests don't work in CI. I need to figure out how to run migrations in CI before those will work. Also, each of the tests assumes they are isolated. I need to convert all of the implementation methods to use transaction instead in order to make this thread safe, which won't be hard but will be a bit tedious. |
|
You can create a sqlite in memory database and run the migrate function on it for every test case? |
|
Yes itll be easy I just haven't had time to do it yet and it's not that important |
c09012e to
09b868f
Compare
This commit replaces the specific expression types with traits that define the behavior the in-memory represenations of both logical and physical expressions need to have. Right now, the `PhysicalExpression` trait does not do that much, but the `LogicalExpression` trait is super important to how the persistent memo table works.
This commit adds the rank by size optimization into the embedded union-find data structure of the group sets. It also bumps the version number of `sea-orm-cli` to `1.1.2`.
Very incompleteLess incomplete
TODO:
Result<Result<_, _>>which can be unclear, but I have no idea how to make this better.GroupIdand aRootGroupId, whereimpl From<RootGroupId> for GroupIdis implemented but not the other way around...grouptable records, but if we separate it out into a separate table we will have a level of abstraction that allows us to change the implementation when we need to.tracingandlogsupport