Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-2635

getMonotonocity is slow on wide tables

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.19.0
    • Component/s: core
    • Labels:

      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.

        Attachments

          Activity

            People

            • Assignee:
              gian Gian Merlino
              Reporter:
              gian Gian Merlino
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: