[ https://issues.apache.org/jira/browse/CALCITE-2635?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16658057#comment-16658057 ]
Gian Merlino commented on CALCITE-2635: --------------------------------------- Any suggestions on what file is appropriate for that test? I'm a bit concerned about the ability of a test like that to verify performance: the added overhead is only about 2 seconds, which is probably within normal variation across test environments. Even trying both ways (a big table and small table) and comparing in the same environment seems liable to false failures. > getMonotonocity is slow on wide tables > -------------------------------------- > > Key: CALCITE-2635 > URL: https://issues.apache.org/jira/browse/CALCITE-2635 > Project: Calcite > Issue Type: Improvement > Components: core > Reporter: Gian Merlino > Assignee: Gian Merlino > Priority: Major > Labels: performance > > 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. -- This message was sent by Atlassian JIRA (v7.6.3#76005)