Refactor QueryKnobConfiguration to snapshot model

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Query Execution
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Refactor QueryKnobConfiguration to replace 37 hand-written fields with a runtime-sized QueryKnobSnapshot backed by std::vector. makeFromDefaults() takes a QueryKnobRegistry reference and loops over entries calling each descriptor's readGlobal function pointer. Callers switch from named getters to cfg.get(query_knobs::foo). Derived getters with logic (isForceClassicEngineEnabled, canPushDownFullyCompatibleStages) remain hand-written and delegate to the snapshot. Fields typed size_t today are stored as int/long long in the variant; call sites cast as needed. Enum knobs stored as underlying int, cast back in the getter. Source tracking and applyPqsOverrides() deferred to later tickets.

            Assignee:
            Unassigned
            Reporter:
            Catalin Sumanaru
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: