The GitHub Actions job "Java CI with Ant" on 
poi.git/bug-1506-array-formula-lookup has succeeded.
Run started by GitHub user pjfanning (triggered by pjfanning).

Head commit for run:
3d8dd636f3aea839354802d62429ad10333c8e64 / PJ Fanning 
<[email protected]>
XSSFSheet: index array formula ranges by row block (#1506)

isCellInArrayFormulaContext, getFirstCellInArrayFormula and
removeArrayFormula scanned every array formula in the sheet, and
setArrayFormula did a linear contains() check. isFormulaCell() calls
isCellInArrayFormulaContext, so getCellType() and friends cost
O(array formulas) per cell, which is quadratic over a sheet with
many array formulas.

The ranges now live in ArrayFormulaRanges, which registers each range
against the 64-row blocks it spans and checks only the ranges in the
cell's block. Indexing per block rather than per cell keeps a large
array formula from costing one map entry per covered cell. Ranges are
copied on add so a caller mutating its CellRangeAddress afterwards
can't corrupt the index.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

Report URL: https://github.com/apache/poi/actions/runs/40927172748

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to