Remove SerializationContext::Prefix enum now that multitenancy support is removed

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

      This ticket tracks removing the {{enum class Prefix : uint8_t

      { IncludePrefix, ExcludePrefix }

      }} from src/mongo/util/serialization_context.h.

      Follow-up to SERVER-113707 (Remove multitenancy support from PQS). See the review discussion at https://github.com/10gen/mongo/pull/62219#pullrequestreview-5104085643, where the reviewer suggested dropping SerializationContext::Prefix::ExcludePrefix and running a multiversion patch. SERVER-113707 removed the last query-settings usage of Prefix; it remains in the Atlas-proxy tenant-prefix encode/decode paths (NamespaceStringUtil/DatabaseNameUtil, FLE) and tests.

      The enum is a two-state flag that maps 1:1 to a bool (IncludePrefix/ExcludePrefix <-> isFromAtlasProxy), so it can likely be collapsed into a plain bool prefix state or removed entirely.

      Proposed approach:

      1. Try replacing the remaining Prefix usages with a bool.
      2. Run a multiversion / Atlas-proxy passthrough patch to confirm nothing breaks on backwards compatibility.
      3. If nothing breaks, delete the enum; otherwise document why it must be preserved.

      Prior art: SERVER-80298 (collapsed the SerializationContext enums to uint8_t), SERVER-88335 (Remove SerializationContext, closed as Won't Do).

            Assignee:
            Unassigned
            Reporter:
            Charlie Swanson
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: