Tryton - Issues

 

Issue7116

Title Use recursive CTE when MPTT is not there
Priority feature Status resolved
Superseder Nosy List albertca, ced, pokoli, reviewbot, roundup-bot
Type performance Components trytond
Assigned To ced Keywords review
Reviews 46331002
View: 46331002

Created on 2018-02-06.10:45:40 by ced, last changed by roundup-bot.

Messages
New changeset 6fefd00369c1 by C├ędric Krier in branch 'default':
Use recursive common table expression for child_of/parent_of operators
http://hg.tryton.org/trytond/rev/6fefd00369c1
msg40338 (view) Author: [hidden] (ced) (Tryton committer) (Tryton translator) Date: 2018-04-23.01:15:12
That's make no sense.
msg40337 (view) Author: [hidden] (albertca) (Tryton committer) (Tryton translator) Date: 2018-04-22.23:43:12
In a couple of places we use left/right fields in queries:

http://hg.tryton.org/modules/account/file/tip/account.py#l818
http://hg.tryton.org/modules/stock_forecast/file/tip/forecast.py#l445

I wonder if we should use convert_domain_tree() or some other method in those queries instead of using left/right.
review46331002 updated at https://codereview.tryton.org/46331002/#ps1
msg39709 (view) Author: [hidden] (ced) (Tryton committer) (Tryton translator) Date: 2018-04-04.16:59:48
Here is review46331002
msg39708 (view) Author: [hidden] (ced) (Tryton committer) (Tryton translator) Date: 2018-04-04.16:50:54
The recursive common table expression are supported by all major SQL database. So I think it is fine to make it a requirement for any back-end implementation.
msg39703 (view) Author: [hidden] (ced) (Tryton committer) (Tryton translator) Date: 2018-04-04.14:56:06
The active test has been disabled by issue7026
msg38224 (view) Author: [hidden] (ced) (Tryton committer) (Tryton translator) Date: 2018-02-06.10:47:38
I just found that the MPTT search applies the active test flag but the ORM loop does.
I think this should be unified when implementing this third option.
msg38223 (view) Author: [hidden] (ced) (Tryton committer) (Tryton translator) Date: 2018-02-06.10:45:39
For 'child_of' domain, we have two strategy the MPTT and the recursive ORM loop.
Indeed when the database support the recursive CTE, we could use it as an alternative between both. Recursive CTE is not better than MPTT but still avoid many round-trip compared to the recursive ORM loop.
Normally, postgresql and sqlite supports recursive MPTT but it is still good to have a backend flag for external backend which does not support it.
History
Date User Action Args
2018-04-30 16:03:38roundup-botsetstatus: testing -> resolved
nosy: + roundup-bot
messages: + msg40479
2018-04-23 01:15:12cedsetmessages: + msg40338
2018-04-22 23:43:12albertcasetnosy: + albertca
messages: + msg40337
2018-04-04 17:04:27reviewbotsetnosy: + reviewbot
messages: + msg39710
2018-04-04 16:59:49cedsetstatus: in-progress -> testing
reviews: 46331002
messages: + msg39709
keyword: + review
2018-04-04 16:50:55cedsetmessages: + msg39708
2018-04-04 16:43:35cedlinkissue6213 superseder
2018-04-04 14:56:06cedsetstatus: chatting -> in-progress
assignedto: ced
messages: + msg39703
2018-02-06 11:07:10pokolisetnosy: + pokoli
2018-02-06 10:47:39cedsetstatus: unread -> chatting
messages: + msg38224

Showing 10 items. Show all history (warning: this could be VERY long)