<feed xmlns='http://www.w3.org/2005/Atom'>
<title>django.git/django/db/models/sql/query.py, branch 1.6a1</title>
<subtitle>django
</subtitle>
<id>http://cgit.adnoto.dev/django.git/atom?h=1.6a1</id>
<link rel='self' href='http://cgit.adnoto.dev/django.git/atom?h=1.6a1'/>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/'/>
<updated>2013-05-17T16:08:58Z</updated>
<entry>
<title>Replaced an antiquated pattern.</title>
<updated>2013-05-17T16:08:58Z</updated>
<author>
<name>Aymeric Augustin</name>
<email>aymeric.augustin@m4x.org</email>
</author>
<published>2013-05-17T14:33:36Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=9c487b5974ee7e7f196079611d7352364e8873ed'/>
<id>urn:sha1:9c487b5974ee7e7f196079611d7352364e8873ed</id>
<content type='text'>
Thanks Lennart Regebro for pointing it out.
</content>
</entry>
<entry>
<title>Fixed #20413 - Respect Query.get_meta()</title>
<updated>2013-05-15T19:55:30Z</updated>
<author>
<name>Mike Fogel</name>
<email>mike@prismskylabs.com</email>
</author>
<published>2013-05-13T19:40:39Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=74f3884ae04ea57baee9b04ab0b5658a97cfd296'/>
<id>urn:sha1:74f3884ae04ea57baee9b04ab0b5658a97cfd296</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixed #20091 -- Oracle null promotion for empty strings</title>
<updated>2013-03-26T12:19:54Z</updated>
<author>
<name>Anssi Kääriäinen</name>
<email>akaariai@gmail.com</email>
</author>
<published>2013-03-24T20:59:44Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=e17fa9e877e84e93b699c2bd13ea48dbbb86e451'/>
<id>urn:sha1:e17fa9e877e84e93b699c2bd13ea48dbbb86e451</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixed #19385 again, now with real code changes</title>
<updated>2013-03-24T16:40:40Z</updated>
<author>
<name>Anssi Kääriäinen</name>
<email>akaariai@gmail.com</email>
</author>
<published>2013-03-24T16:40:40Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=97774429aeb54df4c09895c07cd1b09e70201f7d'/>
<id>urn:sha1:97774429aeb54df4c09895c07cd1b09e70201f7d</id>
<content type='text'>
The commit of 266de5f9ae9e9f2fbfaec3b7e4b5fb9941967801 included only
tests, this time also code changes included...
</content>
</entry>
<entry>
<title>Removed unused import</title>
<updated>2013-03-20T22:50:48Z</updated>
<author>
<name>Anssi Kääriäinen</name>
<email>akaariai@gmail.com</email>
</author>
<published>2013-03-20T22:49:27Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=0ff12c28d0ce8d64209d8df1438fd4e98f96e979'/>
<id>urn:sha1:0ff12c28d0ce8d64209d8df1438fd4e98f96e979</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixed #19635 -- Made fields pickleable</title>
<updated>2013-03-17T13:32:50Z</updated>
<author>
<name>Anssi Kääriäinen</name>
<email>akaariai@gmail.com</email>
</author>
<published>2013-01-19T12:09:46Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=f403653cf146384946e5c879ad2a351768ebc226'/>
<id>urn:sha1:f403653cf146384946e5c879ad2a351768ebc226</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refactored qs.add_q() and utils/tree.py</title>
<updated>2013-03-13T08:44:49Z</updated>
<author>
<name>Anssi Kääriäinen</name>
<email>akaariai@gmail.com</email>
</author>
<published>2012-05-24T21:27:24Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=d3f00bd5706b35961390d3814dd7e322ead3a9a3'/>
<id>urn:sha1:d3f00bd5706b35961390d3814dd7e322ead3a9a3</id>
<content type='text'>
The sql/query.py add_q method did a lot of where/having tree hacking to
get complex queries to work correctly. The logic was refactored so that
it should be simpler to understand. The new logic should also produce
leaner WHERE conditions.

The changes cascade somewhat, as some other parts of Django (like
add_filter() and WhereNode) expect boolean trees in certain format or
they fail to work. So to fix the add_q() one must fix utils/tree.py,
some things in add_filter(), WhereNode and so on.

This commit also fixed add_filter to see negate clauses up the path.
A query like .exclude(Q(reversefk__in=a_list)) didn't work similarly to
.filter(~Q(reversefk__in=a_list)). The reason for this is that only
the immediate parent negate clauses were seen by add_filter, and thus a
tree like AND: (NOT AND: (AND: condition)) will not be handled
correctly, as there is one intermediary AND node in the tree. The
example tree is generated by .exclude(~Q(reversefk__in=a_list)).

Still, aggregation lost connectors in OR cases, and F() objects and
aggregates in same filter clause caused GROUP BY problems on some
databases.

Fixed #17600, fixed #13198, fixed #17025, fixed #17000, fixed #11293.
</content>
</entry>
<entry>
<title>Fixed #19964 -- Removed relabel_aliases from some structs</title>
<updated>2013-03-12T19:33:47Z</updated>
<author>
<name>Anssi Kääriäinen</name>
<email>akaariai@gmail.com</email>
</author>
<published>2013-03-01T23:06:56Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=d744c550d51955fd623897884446b7f34318e94d'/>
<id>urn:sha1:d744c550d51955fd623897884446b7f34318e94d</id>
<content type='text'>
Before there was need to have both .relabel_aliases() and .clone() for
many structs. Now there is only relabeled_clone() for those structs
where alias is the only mutable attribute.
</content>
</entry>
<entry>
<title>Fixed #12823 -- Was already fixed in master, tests added</title>
<updated>2013-02-28T13:05:48Z</updated>
<author>
<name>Anssi Kääriäinen</name>
<email>akaariai@gmail.com</email>
</author>
<published>2013-02-28T13:04:12Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=06de130dae8b7a6c95143077d7a82fab37da0bc0'/>
<id>urn:sha1:06de130dae8b7a6c95143077d7a82fab37da0bc0</id>
<content type='text'>
Also added a little improvement to sql/query.py to get rid of
non-necessary IS NOT NULL check.
</content>
</entry>
<entry>
<title>Cleaned up join promotion in query.combine() with OR</title>
<updated>2013-02-20T19:45:36Z</updated>
<author>
<name>Anssi Kääriäinen</name>
<email>akaariai@gmail.com</email>
</author>
<published>2013-02-19T10:46:11Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=10f9ba046f6122414fe5501934b6e080c3554a85'/>
<id>urn:sha1:10f9ba046f6122414fe5501934b6e080c3554a85</id>
<content type='text'>
Refs #19849
</content>
</entry>
</feed>
