Spike extend compile to handle WhereNode. #29
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In this PR, I implemented a quick and dirty version of a local compiler. Note that I called it
_compile
to avoid overwriting the parent method (it should be overwritten, but to make a point, I decided not to).As we can see, the idea is to take advantage of the Django objects and manage them as a tree. This approach would be easier and more understandable.
Note that each Node has a function
as_mql
, but we cannot add this method to the Node class. Therefore, I suggest using it as an abstract datatype. (It is a bit unconventional, given that we are using OOD, but it is better than the alternative.)This implementation passes the same tests as the original one in the basic suite (it is small, but just to prove a concept, I think it is okay).