1. 13 Mar, 2013 4 kayıt (commit)
    • Aymeric Augustin's avatar
      Made atomic usable when autocommit is off. · 83a416f5
      Aymeric Augustin yazdı
      Thanks Anssi for haggling until I implemented this.
      
      This change alleviates the need for atomic_if_autocommit. When
      autocommit is disabled for a database, atomic will simply create and
      release savepoints, and not commit anything. This honors the contract of
      not doing any transaction management.
      
      This change also makes the hack to allow using atomic within the legacy
      transaction management redundant.
      
      None of the above will work with SQLite, because of a flaw in the design
      of the sqlite3 library. This is a known limitation that cannot be lifted
      without unacceptable side effects eg. triggering arbitrary commits.
      83a416f5
    • Anssi Kääriäinen's avatar
      bd0cba58
    • Claude Paroz's avatar
      Fixed #20036 -- Improved GEOS version string parsing · 747f7d25
      Claude Paroz yazdı
      Thanks chikiro.spam at gmail.com for the report.
      747f7d25
    • Anssi Kääriäinen's avatar
      Refactored qs.add_q() and utils/tree.py · d3f00bd5
      Anssi Kääriäinen yazdı
      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.
      d3f00bd5
  2. 12 Mar, 2013 6 kayıt (commit)
  3. 11 Mar, 2013 30 kayıt (commit)