Heads-upHighlight of Weekly #004

parent_path fixed on databases with non-C collations

On databases with glibc collations such as en_US.UTF-8, moving a node could leave its descendants with a stale parent_path. The range now uses COLLATE "C", and the parent_path index is rebuilt to match.

Versions19.020.0
AppFramework & technical

On the upgrade checklist: 18.0 → 19.0

Pull requests and commits

BranchPull requestCommit
19.0odoo/odoo#292894 ↗cef775ff79 ↗
20.0odoo/odoo#295450 ↗cf2cecb5ad ↗

Commit message

[FIX] orm: keep parent_store descendants with non-C collations

Since 9b1872b1793a, _parent_store_update matches descendants with a range
on parent_path, which is only right with a bytewise collation like "C".
With glibc collations like en_US.UTF-8, '12/14/' sorts after '120', so the
descendants of a moved node keep a stale parent_path.

Add COLLATE "C" to the range on such databases. To keep using an index
there, rebuild the parent_path index with COLLATE "C".

My stack

Pick the versions and apps you run. Weekly digests, this week's table and All changes then show only what concerns you. Saved in this browser.

Versions
Apps
Modules