-
Notifications
You must be signed in to change notification settings - Fork 51
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
refactor: Internal doc restructure #471
Conversation
7f24e1e
to
b69bf71
Compare
I disagree, and I think we are going in circles. Will leave these two deleted unless really really pushed back on. |
dac7e5d
to
09b95b0
Compare
09b95b0
to
ebb45a0
Compare
Are hard to maintain with the coming changes, and prod code should be covered by integration tests
Maintaining them is not worth the effort with connor now being covered by our integration tests, and the upcoming changes.
Work could be taken futher by creating a new mapper.relation struct, but would suggest that is out of scope here. Also removes an explain parameter as it is not useful, duplicating info already highly visible in the result whilst using an otherwise dead property.
Looks like case A in the issue was already tested, and the new test passes in develop - so I guess this was just a coverage issue, unless something else fixed it before I448.
Checked test against develop, it failed. Was a bug and it is now fixed.
Turned out the bug wasnt really related to this PR (unless there was another bug hiding this one maybe), but I fixed it anyway.
ebb45a0
to
3c7f82a
Compare
* Alias internal doc object * Reduce Select mutation * Remove unused return param (arb. join) * Remove extra funcs from MultiNode * Remove deprecated unit tests Are hard to maintain with the coming changes, and prod code should be covered by integration tests * Remove connor unit tests Maintaining them is not worth the effort with connor now being covered by our integration tests, and the upcoming changes. * Restructure internal document data structure * Rework type join to make use of new select Work could be taken futher by creating a new mapper.relation struct, but would suggest that is out of scope here. Also removes an explain parameter as it is not useful, duplicating info already highly visible in the result whilst using an otherwise dead property. * Remove dead code from parser package * I443: Expand deep group filter tests Looks like case A in the issue was already tested, and the new test passes in develop - so I guess this was just a coverage issue, unless something else fixed it before I448. * I387: Handle multiple aggregate sources * I390: Handle multiple aliased joins with filters Checked test against develop, it failed. Was a bug and it is now fixed. * I484: Handle filters on unrendered children * I495: Handle version select within create Turned out the bug wasnt really related to this PR (unless there was another bug hiding this one maybe), but I fixed it anyway.
RELEVANT ISSUE(S)
Resolves #448, #395, #390, #443, #427, #387, #484, #495
DESCRIPTION
Reworks the internal data structure used to house documents within the planner package. Solves a number of existing issues and allows for further code improvements. Automated tests should not have changed (minus a couple of tiny exceptions), and a couple have been added. More may be added as I start looking at the linked issues.
Key changes include:
Very strongly recommend reviewing commit by commit - they should be clean:
TEMP - enable logging caller
will be dropped before mergeAlias internal doc object
can be glossed over as it is overwritten by the restructure commit, but might be useful for contextCopy-paste connor fork into repo
is a clean copy paste from our connor fork, no code changes were made, although a handful of build/CI related files were omittedRestructure internal document data structure
contains the bulk of the work and should be reviewed very carefully - it is a very large commit and pretty much all of it is 'manual' coding - please also keep an eye out for anything that looks half doneTo do/confirm/discuss before merge:
[]core.Doc
as[]core.Doc
is a struct and is not handled by a switch-case[]interface{}
. I dont think we should change all inner collections to[]*core.Doc
(which would solve this), but you guys might have other opinions. UPDATE: decision made, connor will live in defra.Stuff I will be adding as I wait for reviewers (will merge as soon as properly approved, regardless of how many of these are done):
Related issues have been solved (commit per issue):
Super happy to have a call to walk through this if anyone feels the need. Is probably going to be a bit of a pain to review.
HOW HAS THIS BEEN TESTED?
Int. tests.
CHECKLIST:
ENVIRONMENT / OS THIS WAS TESTED ON?
Please specify which of the following was this tested on (remove or add your own):