odoo/odoo#124119
Created by Upgrade, Alvaro Fuentes Suarez (afu)
- label
- odoo-dev:saas-12.3-fix_mem_error-afu
- head
- 1f223cc1ad940d9ad170db40e95c264b4c6209c5
- target
- saas-12.3
- merged
- 1 year ago by Upgrade, Christophe Simonis (chs)
- forward-ports
- odoo/odoo#124990 targeting master
- odoo/odoo#124982 targeting saas-16.3
- odoo/odoo#124375 targeting saas-16.2
- odoo/odoo#124374 targeting saas-16.1
- odoo/odoo#124369 targeting 16.0
- odoo/odoo#124363 targeting saas-15.2
- odoo/odoo#124194 targeting 15.0
- odoo/odoo#124180 targeting 14.0
- odoo/odoo#124173 targeting 13.0
[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 |
+---------+
```
opw-3295467