Skip to content

POC: formula dependencies safer#7755

Open
laa-odoo wants to merge 12 commits intomaster-use-cell-position-on-FunctionResultObject-laafrom
master-ref-generalize-updateDependencies-laa
Open

POC: formula dependencies safer#7755
laa-odoo wants to merge 12 commits intomaster-use-cell-position-on-FunctionResultObject-laafrom
master-ref-generalize-updateDependencies-laa

Conversation

@laa-odoo
Copy link
Collaborator

No description provided.

@robodoo
Copy link
Collaborator

robodoo commented Jan 12, 2026

This PR targets the un-managed branch odoo/o-spreadsheet:master-use-cell-position-on-FunctionResultObject-laa, it needs to be retargeted before it can be merged.

@laa-odoo laa-odoo force-pushed the master-ref-generalize-updateDependencies-laa branch 8 times, most recently from 10a1b83 to c9b6f71 Compare February 2, 2026 12:52
@laa-odoo laa-odoo force-pushed the master-use-cell-position-on-FunctionResultObject-laa branch 2 times, most recently from 92044ad to 3527247 Compare February 3, 2026 09:17
Enabling the reuse of functions returning references as arguments
in functions expecting references.

Task: 5428577
This commit simplifies the code by removing the need for meta-concepts.
Reference coordinates are now directly accessible from FunctionResultObject-typed arguments.

Task: 5428577
Avoid to manualy update dependencies in the 'compute' functions.
The work concerns all formulas except pivots, which will require
a more precise analysis.

Note that this is possible because, technically, we now register
dependencies when we try to read a reference or range.

Task: 5905722
@laa-odoo laa-odoo force-pushed the master-ref-generalize-updateDependencies-laa branch from c9b6f71 to 57c6b45 Compare February 3, 2026 12:57
@laa-odoo laa-odoo changed the title WIP POC: formula dependencies safer Feb 3, 2026
@laa-odoo laa-odoo force-pushed the master-ref-generalize-updateDependencies-laa branch from 57c6b45 to 27fb508 Compare February 3, 2026 15:38
When evaluating formulas, use virtual matrices rather than filling
physical matrices to record the dependencies of the formulas that
were actually used.

Task: 5905722

makeLargeDataset(26, 10_000, ["formulas"])

evaluate all cells
  master-use-cell-position-on-FunctionResultObject-laa:  Mean: 379.30 ms, StdErr: 5.74 ms, n=5 (-89%)
  27fb508:                             Mean: 3380.92 ms, StdErr: 21.86 ms, n=5

START
  master-use-cell-position-on-FunctionResultObject-laa:  Mean: 641.36 ms, StdErr: 6.07 ms, n=5 (-82%)
  27fb508:                             Mean: 3643.81 ms, StdErr: 20.27 ms, n=5

Model created in
  master-use-cell-position-on-FunctionResultObject-laa:  Mean: 3052.03 ms, StdErr: 13.94 ms, n=5 (-50%)
  27fb508:                             Mean: 6046.85 ms, StdErr: 29.25 ms, n=5

Global
  master-use-cell-position-on-FunctionResultObject-laa:  Mean: 3052.66 ms, StdErr: 13.97 ms, n=5 (-50%)
  27fb508:                             Mean: 6047.52 ms, StdErr: 29.26 ms, n=5
makeLargeDataset(26, 10_000, ["formulas"]);

evaluate all cells
  master-use-cell-position-on-FunctionResultObject-laa:  Mean: 379.89 ms, StdErr: 9.99 ms, n=5 (-82%)
  master-ref-generalize-updateDependencies-laa:          Mean: 2096.19 ms, StdErr: 9.40 ms, n=5

START
  master-use-cell-position-on-FunctionResultObject-laa:  Mean: 647.46 ms, StdErr: 11.81 ms, n=5 (-73%)
  master-ref-generalize-updateDependencies-laa:          Mean: 2361.34 ms, StdErr: 11.16 ms, n=5

Model created in
  master-use-cell-position-on-FunctionResultObject-laa:  Mean: 3078.06 ms, StdErr: 35.44 ms, n=5 (-36%)
  master-ref-generalize-updateDependencies-laa:          Mean: 4803.17 ms, StdErr: 21.11 ms, n=5

Global
  master-use-cell-position-on-FunctionResultObject-laa:  Mean: 3078.63 ms, StdErr: 35.45 ms, n=5 (-36%)
  master-ref-generalize-updateDependencies-laa:          Mean: 4803.93 ms, StdErr: 21.09 ms, n=5
@laa-odoo laa-odoo force-pushed the master-ref-generalize-updateDependencies-laa branch from 27fb508 to 8d63752 Compare February 5, 2026 11:41
makeLargeDataset(26, 10_000, ["formulas"])

evaluate all cells
  master-use-cell-position-on-FunctionResultObject-laa:  Mean: 374.43 ms, StdErr: 4.91 ms, n=5 (-81%)
  master-ref-generalize-updateDependencies-laa:          Mean: 2016.51 ms, StdErr: 61.64 ms, n=5

START
  master-use-cell-position-on-FunctionResultObject-laa:  Mean: 633.84 ms, StdErr: 5.28 ms, n=5 (-72%)
  master-ref-generalize-updateDependencies-laa:          Mean: 2278.81 ms, StdErr: 61.02 ms, n=5

Model created in
  master-use-cell-position-on-FunctionResultObject-laa:  Mean: 3044.10 ms, StdErr: 6.79 ms, n=5 (-35%)
  master-ref-generalize-updateDependencies-laa:          Mean: 4679.23 ms, StdErr: 68.48 ms, n=5

Global
  master-use-cell-position-on-FunctionResultObject-laa:  Mean: 3044.70 ms, StdErr: 6.77 ms, n=5 (-35%)
  master-ref-generalize-updateDependencies-laa:          Mean: 4679.98 ms, StdErr: 68.50 ms, n=5
 makeLargeDataset(26, 10_000, ["formulas"])

evaluate all cells
  master-use-cell-position-on-FunctionResultObject-laa:  Mean: 385.68 ms, StdErr: 6.09 ms, n=5 (-79%)
  master-ref-generalize-updateDependencies-laa:          Mean: 1847.19 ms, StdErr: 9.75 ms, n=5

START
  master-use-cell-position-on-FunctionResultObject-laa:  Mean: 652.61 ms, StdErr: 7.36 ms, n=5 (-69%)
  master-ref-generalize-updateDependencies-laa:          Mean: 2114.91 ms, StdErr: 8.52 ms, n=5

Model created in
  master-use-cell-position-on-FunctionResultObject-laa:  Mean: 3097.24 ms, StdErr: 13.64 ms, n=5 (-32%)
  master-ref-generalize-updateDependencies-laa:          Mean: 4543.85 ms, StdErr: 14.14 ms, n=5

Global
  master-use-cell-position-on-FunctionResultObject-laa:  Mean: 3097.85 ms, StdErr: 13.61 ms, n=5 (-32%)
  master-ref-generalize-updateDependencies-laa:          Mean: 4544.53 ms, StdErr: 14.16 ms, n=5
makeLargeDataset(26, 10_000, ["formulas"])

evaluate all cells
  master-use-cell-position-on-FunctionResultObject-laa:  Mean: 378.57 ms, StdErr: 3.19 ms, n=5 (-27%)
  master-ref-generalize-updateDependencies-laa:          Mean: 516.58 ms, StdErr: 4.91 ms, n=5

START
  master-use-cell-position-on-FunctionResultObject-laa:  Mean: 650.30 ms, StdErr: 6.07 ms, n=5 (-17%)
  master-ref-generalize-updateDependencies-laa:          Mean: 779.60 ms, StdErr: 4.09 ms, n=5

Model created in
  master-use-cell-position-on-FunctionResultObject-laa:  Mean: 3068.87 ms, StdErr: 16.02 ms, n=5 (-4%)
  master-ref-generalize-updateDependencies-laa:          Mean: 3210.66 ms, StdErr: 6.76 ms, n=5

Global
  master-use-cell-position-on-FunctionResultObject-laa:  Mean: 3069.50 ms, StdErr: 16.04 ms, n=5 (-4%)
  master-ref-generalize-updateDependencies-laa:          Mean: 3211.27 ms, StdErr: 6.78 ms, n=5
@laa-odoo laa-odoo force-pushed the master-ref-generalize-updateDependencies-laa branch from c40325c to 017a9e4 Compare February 6, 2026 09:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants