Check isMultikey() and getMultikeyPaths() consistency when preparing IndexEntry

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Query Optimization
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Problem

      Query planner relies on these methods from IndexCatalogEntry to prepare IndexEntry in QueryPlannerParams.

      However, if an index is corrupted as in HELP-65833 where isMultikey() may return false while getMultikeyPaths() returns a non-empty vector, a query planner may and hence produce incorrect results.

      Action Item

      • When preparing IndexEntry, if isMultikey() return false, also checks getMultikeyPaths() to see if it returns empty array. If not, set IndexEntry::isMultikey to true.
      • Log whenever it observes multikey path inconsistency from IndexCatalogEntry.

              Assignee:
              Unassigned
              Reporter:
              Chi-I Huang
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

                Created:
                Updated: