Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-97136

Create walker-based implementation of matchesSingleElement

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

      Create a visitor derived from MatchExpressionConstVisitor and define the callbacks for all the MatchExpression-derived classes that define matchesSingleElement

      • AlwaysBooleanMatchExpression
      • ArrayMatchingMatchExpression
      • GeoMatchExpression
      • GeoNearMatchExpression
      • TwoDPtInAnnulusExpression
      • InternalBucketGeoWithinMatchExpression
      • InternalEqHashedKey
      • InternalExprComparisonMatchExpression
      • ComparisonMatchExpression
      • RegexMatchExpression
      • ModMatchExpression
      • ExistsMatchExpression
      • InMatchExpression
      • BitTestMatchExpression
      • AndMatchExpression
      • OrMatchExpression
      • NorMatchExpression
      • NotMatchExpression
      • TypeMatchExpressionBase
      • InternalSchemaAllowedPropertiesMatchExpression
      • InternalSchemaBinDataSubTypeExpression
      • InternalSchemaBinDataEncryptedTypeExpression
      • InternalSchemaBinDataFLE2EncryptedTypeExpression
      • InternalSchemaCondMatchExpression
      • InternalSchemaEqMatchExpression
      • InternalSchemaFmodMatchExpression
      • InternalSchemaMaxPropertiesMatchExpression
      • InternalSchemaMinPropertiesMatchExpression
      • InternalSchemaObjectMatchExpression
      • InternalSchemaRootDocEqMatchExpression
      • InternalSchemaStrLengthMatchExpression
      • InternalSchemaXorMatchExpression
      • TextMatchExpression
      • TextNoOpMatchExpression 
      • WhereMatchExpressionBase

      The new files should be in the src/mongo/db/exec/matcher folder, using the mongo::exec::matcher namespace and split the callbacks into separate cpp files (e.g. Text, Where, Geo as they are owned by QI, but also FLE and InternalSchema)

            Assignee:
            projjal.chanda@mongodb.com Projjal Chanda
            Reporter:
            alberto.massari@mongodb.com Alberto Massari
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: