Code

- Optimisation: Late evaluation of Multilinks (only in rdbms backends):
authorschlatterbeck <schlatterbeck@57a73879-2fb5-44c3-a270-3262357dd7e2>
Mon, 21 Mar 2011 20:44:39 +0000 (20:44 +0000)
committerschlatterbeck <schlatterbeck@57a73879-2fb5-44c3-a270-3262357dd7e2>
Mon, 21 Mar 2011 20:44:39 +0000 (20:44 +0000)
commiteb25ddf86e9f278d3e39137cae613789344dcfa2
treed1a83f1312bcdd00bef94d8f84ef029e4df80628
parentb061d3e9508435b4c9c687743a2c95e385815637
- Optimisation: Late evaluation of Multilinks (only in rdbms backends):
  previously we materialized each multilink in a Node -- this creates an
  SQL query for each multilink (e.g. 'files' and 'messages' for each
  line in the issue index display) -- even if the multilinks aren't
  displayed. Now we compute multilinks only if they're accessed (and
  keep them cached).
- Add a filter_iter similar to the existing filter call. This feature is
  considered experimental. This is currently not used in the
  web-interface but passes all tests for the filter call except sorting
  by Multilinks (which isn't supported by SQL and isn't a sane concept
  anyway). When using filter_iter instead of filter this saves a *lot*
  of SQL queries: Filter returns only the IDs of Nodes in the database,
  the additional content of a Node has to be fetched in a separate SQL
  call. The new filter_iter also returns the IDs of Nodes (one by one,
  it's an iterator) but pre-seeds the cache with the content of the
  Node. The information needed for seeding the cache is retrieved in the
  same SQL query as the ids.

git-svn-id: http://svn.roundup-tracker.org/svnroot/roundup/roundup/trunk@4581 57a73879-2fb5-44c3-a270-3262357dd7e2
CHANGES.txt
roundup/backends/rdbms_common.py
roundup/date.py
roundup/hyperdb.py
test/db_test_base.py
test/test_mysql.py
test/test_postgresql.py
test/test_sqlite.py