Raphael Collet
9920f20e4c
[IMP] models: ORM speedup
...
This branch is the combination of several optimizations in the ORM:
* store field values once in the cache: the cache reflects more
faithfully the database, only fields that explicitly depend on the
context have an extra indirection in the cache;
* delay recomputations by default: use method `recompute` to explicitly
flush out pending recomputations;
* delay updates in method `write`: updates are stored in a data
structure that can be flushed efficiently to the database with method
`flush` (which also flush out recomputations);
* make method `modified` take advantage of inverse fields to inverse
dependencies;
* filter records by evaluating a domain on records in Python;
* a computed field with `readonly=False` behaves like a normal field
with an onchange method;
* computed fields are computed in superuser mode by default.
Work done by Toufik Ben Jaa, Raphael Collet, Denis Ledoux and Fabien
Pinckaers.
closes odoo/odoo#35659
Signed-off-by: Denis Ledoux <beledouxdenis@users.noreply.github.com >
2019-08-20 12:43:59 +00:00
..
2019-08-20 12:43:59 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-16 13:35:21 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-16 13:35:21 +00:00
2019-08-16 13:35:21 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-20 12:43:59 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-16 11:14:58 +00:00
2019-08-20 12:43:59 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-07 10:28:33 +00:00
2019-08-20 12:43:59 +00:00
2019-08-14 16:48:10 +02:00
2019-08-20 08:38:52 +00:00
2019-08-13 11:53:38 +02:00
2019-08-20 12:43:59 +00:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-16 11:17:28 +00:00
2019-08-16 13:35:21 +00:00
2019-08-16 13:35:21 +00:00
2019-08-20 12:43:59 +00:00
2019-08-04 01:17:49 +02:00
2019-08-13 11:53:38 +02:00
2019-08-14 16:48:10 +02:00
2019-08-16 13:35:21 +00:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-20 12:43:59 +00:00
2019-08-14 16:48:10 +02:00
2019-08-16 13:35:21 +00:00
2019-08-20 12:43:59 +00:00
2019-08-13 11:53:38 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-16 13:35:21 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-16 13:22:29 +00:00
2019-08-16 13:35:21 +00:00
2019-08-13 11:53:38 +02:00
2019-08-13 11:53:38 +02:00
2019-08-16 13:35:21 +00:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-13 14:12:17 +00:00
2019-08-05 17:25:59 +00:00
2019-08-14 11:27:10 +02:00
2019-08-08 11:53:37 +00:00
2019-08-12 08:16:04 +02:00
2019-08-13 15:35:38 +02:00
2019-08-11 06:07:52 +02:00
2019-08-20 12:43:59 +00:00
2019-08-13 11:53:38 +02:00
2019-08-13 11:53:38 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-19 09:54:06 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 08:42:27 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 08:42:27 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-06 12:34:12 +00:00
2019-08-14 08:42:27 +00:00
2019-08-14 08:42:27 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 08:42:27 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 08:42:27 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-09 13:57:11 +00:00
2019-08-14 08:42:27 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 08:42:27 +00:00
2019-08-14 08:42:27 +00:00
2019-08-14 08:42:27 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-01 11:01:24 +00:00
2019-08-16 11:17:28 +00:00
2019-08-01 11:01:24 +00:00
2019-08-14 16:48:10 +02:00
2019-08-09 14:30:55 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-05 14:38:52 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 08:42:27 +00:00
2019-08-14 08:42:27 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 08:42:27 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 08:42:27 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 08:42:27 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 08:42:27 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-16 15:52:39 +00:00
2019-08-14 08:42:27 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-20 12:43:59 +00:00
2019-08-20 12:43:59 +00:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-20 12:43:59 +00:00
2019-08-14 16:48:10 +02:00
2019-08-01 11:39:51 +00:00
2019-08-01 11:39:51 +00:00
2019-08-14 16:48:10 +02:00
2019-08-08 08:29:34 +00:00
2019-08-20 12:43:59 +00:00
2019-08-20 12:43:59 +00:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-19 15:03:59 +00:00
2019-08-19 15:03:59 +00:00
2019-08-20 12:43:59 +00:00
2019-08-14 16:48:10 +02:00
2019-08-01 02:41:11 +02:00
2019-08-14 16:48:10 +02:00
2019-08-13 11:53:38 +02:00
2019-08-16 15:52:40 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-16 15:52:40 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-16 15:52:40 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-16 15:26:59 +00:00
2019-08-01 02:41:11 +02:00
2019-08-13 11:53:38 +02:00
2019-08-19 14:15:25 +00:00
2019-08-14 16:48:10 +02:00
2019-08-19 17:53:02 +00:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-20 12:43:59 +00:00
2019-08-09 09:06:10 +00:00
2019-08-20 12:43:59 +00:00
2019-08-16 11:17:28 +00:00
2019-08-20 12:43:59 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 10:23:38 +00:00
2019-08-20 12:43:59 +00:00
2019-08-16 11:17:28 +00:00
2019-08-20 12:43:59 +00:00
2019-08-20 12:43:59 +00:00
2019-08-16 13:35:21 +00:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-20 12:43:59 +00:00
2019-08-20 12:43:59 +00:00
2019-08-20 08:38:52 +00:00
2019-08-16 15:00:13 +00:00
2019-08-12 10:07:39 +00:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-14 14:03:23 +00:00
2019-08-13 16:36:58 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-20 12:43:59 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-11 06:07:52 +02:00
2019-08-20 12:43:59 +00:00
2019-08-20 12:43:59 +00:00
2019-08-14 12:27:04 +00:00
2019-08-20 12:43:59 +00:00
2019-08-16 13:35:21 +00:00
2019-08-20 12:43:59 +00:00
2019-08-20 12:43:59 +00:00
2019-08-20 12:43:59 +00:00
2019-08-20 12:43:59 +00:00
2019-08-03 09:51:22 +00:00
2019-07-30 09:59:28 +00:00
2019-07-30 09:59:28 +00:00
2019-08-01 09:06:25 +00:00
2019-08-16 13:35:21 +00:00
2019-08-16 13:35:21 +00:00
2019-08-20 12:43:59 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-13 11:53:38 +02:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-16 08:02:42 +00:00
2019-08-19 06:34:20 +00:00
2019-08-20 08:38:52 +00:00
2019-08-16 13:35:21 +00:00
2019-08-20 12:43:59 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-14 16:48:10 +02:00
2019-08-13 11:53:38 +02:00
2019-08-20 12:43:59 +00:00
2019-08-11 06:07:52 +02:00
2019-08-07 10:28:33 +00:00
2019-08-16 13:22:29 +00:00
2019-08-14 16:48:10 +02:00
2019-08-19 06:33:37 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-16 11:17:28 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-20 12:43:59 +00:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-14 16:48:10 +02:00
2019-08-14 16:48:10 +02:00
2019-08-20 12:43:59 +00:00
2019-08-14 16:48:10 +02:00