#16187: Refactor lookup system
-------------------------------------+-------------------------------------
     Reporter:  UloPe                |                    Owner:  akaariai
         Type:                       |                   Status:  assigned
  Cleanup/optimization               |                  Version:  master
    Component:  Database layer       |               Resolution:
  (models, ORM)                      |             Triage Stage:  Accepted
     Severity:  Normal               |      Needs documentation:  0
     Keywords:                       |  Patch needs improvement:  1
    Has patch:  1                    |                    UI/UX:  0
  Needs tests:  0                    |
Easy pickings:  0                    |
-------------------------------------+-------------------------------------

Comment (by akaariai):

 Just take simple queries and see how they are built and executed by the
 ORM.

 Try to pick one area to concentrate at a time. For the lookup refactor
 checking where clause entries generation and execution is naturally
 important. The basic path for generating a clause is qs.filter() ->
 _filter_or_exclude() -> query.add_q() -> query._add_q() ->
 query.build_filter() -> query.setup_joins(). At execution time the
 query.where clause is converted to SQL by WhereNode.as_sql() (and
 WhereNode.make_atom() as part of that).

 Try to ignore HAVING clause generation at start. If you wonder why
 something is needed, change it and run queries tests - that test module
 alone covers most of ORM features. The broken tests should tell you why
 any particular part is needed.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/16187#comment:31>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/063.088e858cc3e18b37dd8257485a80f474%40djangoproject.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to