Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
Description
RelOptTableImpl's getMonotonocity does an indexOf on rowType.getFieldNames(), which is O(N) in the number of fields. IdentifierNamespace calls getMonotonicity once for every field in the table namespace, so it becomes O(N^2) in the number of fields. We observed 2-4 second query planning times with a table that had 18,000 columns, reduced to about 150ms after patching getMonotonicity to be O(1) in the number of fields.