Changes between Initial Version and Version 1 of Ticket #14030, comment 17
- Timestamp:
- Mar 23, 2012, 5:03:54 AM (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #14030, comment 17
initial v1 1 1 The patches posted here are insufficient to effectively solve this problem. 2 2 3 I have come up with a better solution: refactoring of Aggregate into ExpressionNode.3 I have come up with a better solution: refactoring of {{{Aggregate}}} into {{{ExpressionNode}}}. 4 4 5 5 I have uploaded my branch; it can be found here: … … 10 10 * I tried to preserve as much interface as possible; I didn't know how much was considered to be more public, so generally I tried to add rather than subtract. However, I did remove a couple things - if you see something missing that shouldn't be, let me know. 11 11 * Currently, I'm getting the entire test suite passed on sqlite, postgres, mysql, oracle, and postgis. I was unable to test on oracle spatial - any help with that would be appreciated. 12 * When fields are combined, they are coerced to a common type; IntegerFields are coerced to FloatFields, which are coerced into DecimalFields as needed. Any other kinds of combinations must be of the same types. Also, when coerced to a DecimalField, the precision is limited by the original DecimalField. If this is not correct, or other coercions should be added, I'd like to correct that.13 * When joins are required, they tend to be LEFT OUTER; I'd like some feedback on this, as I'm not 100% sure its always the best behavior.12 * When fields are combined, they are coerced to a common type; {{{IntegerField}}}s are coerced to {{{FloatField}}}s, which are coerced into {{{DecimalField}}}s as needed. Any other kinds of combinations must be of the same types. Also, when coerced to a {{{DecimalField}}}, the precision is limited by the original {{{DecimalField}}}. If this is not correct, or other coercions should be added, I'd like to correct that. 13 * When joins are required, they tend to be {{{LEFT OUTER}}}; I'd like some feedback on this, as I'm not 100% sure its always the best behavior. 14 14 * As the aggregates are a little more complicated, on trivial cases there is a minor reduction in performance; using djangobench, I measured somewhere between a 3% and 8% increase in runtime. 15 15 * I don't have enough tests - mostly for a lack of creativity. What kind of composed aggregates and expressions would you like to see? I'll add tests for them.