odoo/odoo#124119
Created by Upgrade, Alvaro Fuentes Suarez (afu)
Merged
at 45d19b265033aa626e110e51d8b1d01408717a3e
Statuses:
- legal/cla: Contributor License Agreement check
- ci/runbot: Odoo Test Suite
- ci/upgrade_enterprise: Test upgrades for enterprise master
- ci/template: Contact runbot team for help in case of failure.
- ci/style: Optional style check. Ignore it only if strictly necessary.
- ci/security: Required security check. Can only be ignored by security team.
- label
- odoo-dev:saas-12.3-fix_mem_error-afu
- head
- 1f223cc1ad940d9ad170db40e95c264b4c6209c5
- merged
- 2 years ago by Upgrade, Christophe Simonis (chs)
odoo/odoo | |
---|---|
saas-12.3 | #124119 |
13.0 | #124173 |
14.0 | #124180 |
15.0 | #124194 |
saas-15.2 | #124363 |
16.0 | #124369 |
saas-16.1 | #124374 |
saas-16.2 | #124375 |
saas-16.3 | #124982 |
17.0 | |
18.0 | |
saas-18.1 | |
saas-18.2 | |
saas-18.3 | |
saas-18.4 | |
master | #124990 |
[FIX] point_of_sale: fix memory error
When there are too many (millions) of POS order lines associated to opened POS sessions we get too many taxes, most are duplicated. This causes a MemoryError.
Example queries from a real DB:
> select count(distinct r.account_tax_id) from pos_order_line l join pos_order o on o.id = l.order_id join pos_session s on s.id = o.session_id join account_tax_pos_order_line_rel r on r.pos_order_line_id = l.id where s.state != 'closed'
+-------+
| count |
|-------|
| 24 |
+-------+
> select count(r.account_tax_id) from pos_order_line l join pos_order o on o.id = l.order_id join pos_session s on s.id = o.session_id join account_tax_pos_order_line_rel r on r.pos_order_line_id = l.id where s.state != 'closed'
+---------+
| count |
|---------|
| 2504539 |
+---------+