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

      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: