https://bz.apache.org/bugzilla/show_bug.cgi?id=61841
Bug ID: 61841
Summary: Unnecessary long computation when evaluating VLOOKUP
on all column reference
Product: POI
Version: 3.15-FINAL
Hardware: PC
Status: NEW
Severity: normal
Priority: P2
Component: SS Common
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
Created attachment 35573
--> https://bz.apache.org/bugzilla/attachment.cgi?id=35573&action=edit
Simple testcase
Hi all,
I spotted a problem in the evaluation of VLOOKUP function when the table area
is defined as all column reference.
Basically, when a "all column" reference is used, the evaluation code treats
the reference as if it's applied to the maximum number of rows available for
the workbook version.
In practice every reference as a $C:$D is translated as a $C$1:$D$1048576.
When such references are used a table argument for a VLOOKUP (exact match) and
the value to be searched is not found, the evaluation code loops for 2^20
times.
A proposed fix could be to translate the "all column" reference to a reference
that goes from row 1 to the maximum row of the considered sheet.
I attached a simple xlsx workbook that takes a *very long* time to evaluate
about 300 VLOOKUPs.
A fix could be to enhance the logic of
OperationEvaluationContext.getDynamicReference to translate the reference to a
narrow area.
I am available for any clarification.
Best regards,
Luca
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]