Commits on Jul 21, 2017
Commits on Jul 20, 2017
  1. SERVER-29840 Merge libexpressions and libexpressions_geo.

    Removes expressionParserGeoCallback.
    dstorch committed Jul 11, 2017
Commits on Jul 17, 2017
  1. SERVER-29571 Parse a subset of $jsonSchema into a MatchExpression.

    Adds support for $jsonSchema containing only the following
    JSON Schema keywords:
     - type
     - properties
     - maximum
    dstorch committed Jul 12, 2017
Commits on Jul 5, 2017
Commits on Jun 29, 2017
  1. SERVER-28769 Implement PopNode.

    dstorch committed Jun 28, 2017
Commits on Jun 23, 2017
Commits on Jun 20, 2017
  1. SERVER-19402 Change find command semantics for sorting on an array fi…

    This eliminates the behavior in which the lowest-valued
    in-bounds index key was chosen as the sort key. After this
    change, we instead choose the lowest key overall, which may
    or may not be in-bounds. This change prevents the sort order
    from depending on either the query predicate or the
    implementation details of the query planner.
    Note that it is no longer correct for a multikey index to
    provide a sort over an array field. However, a non-array
    field of a multikey index can provide a sort when that index
    has path-level multikeyness metadata.
    dstorch committed Jun 8, 2017
Commits on Jun 19, 2017
Commits on Jun 14, 2017
  1. SERVER-29304 Exclude time spent blocking for awaitData from getMore l…

    …atency reporting.
    This change applies to various server diagnostics which
    include latency metrics: the slow query logs, the
    system.profile collection, top, global operation latency
    stats, and per-collection operation latency stats. The
    secs_running and microsecs_running fields reported in
    currentOp output, on the other hand, will include time spent
    blocking for awaitData.
    Furthermore, this change fixes the following:
     - getMore operations are no longer double-counted.
     - Lock acquisition times are now consistently included.
       This fixes a bug in which time spent acquiring locks was
       accidentally omitted in some cases.
    dstorch committed Jun 5, 2017
Commits on Jun 9, 2017
Commits on Jun 8, 2017
Commits on May 30, 2017
Commits on May 19, 2017
Commits on May 8, 2017
  1. SERVER-1475 Make $type:'array' match outer arrays.

    Prior to this change, the semantics of $type were that it
    only matches documents with nested arrays, e.g.  {x: {$type:
    'array'}} would match {x: [1, [2, 3]]} but not {x: [1, 2,
    3]}. This is inconsistent with the matching semantics for
    other query predicate operators, which apply both to the
    individual array elements and the array as a whole.
    The new behavior is that single-level arrays as well as
    nested arrays will match {$type:'array'}. This is a breaking
    change for applications which rely on the old behavior.
    dstorch committed May 4, 2017
Commits on May 4, 2017
Commits on Apr 21, 2017
  1. SERVER-28309 remove RangePreserver class

    RangePreserver was an old way to ensure that necessary chunk
    ranges are not deleted during query execution. This is now
    handled by ScopedCollectionMetadata.
    dstorch committed Apr 21, 2017
Commits on Apr 18, 2017
  1. SERVER-27115 extend $match swapping optimization to handle renamed fi…

    If a field renamed by $project or $addFields is used in a
    subsequent $match, we can now swap the $match and update it
    to use the original (or, "renamed from") field name. This
    allows $match planning to result in better index usage in
    some cases.
    dstorch committed Apr 12, 2017
Commits on Apr 17, 2017
Commits on Apr 12, 2017
Commits on Mar 28, 2017
Commits on Mar 22, 2017
  1. SERVER-28310 fix mongos count command error reporting to include deta…

    …ils in errmsg field
    dstorch committed Mar 21, 2017
Commits on Mar 14, 2017
Commits on Mar 13, 2017
  1. SERVER-19758 add support for "executionStats" and "allPlansExecution"…

    … to agg explain
    Like other explainable commands, aggregate can now be
    explained using the explain command, e.g.
    db.runCommand({explain: {aggregate: ...}, verbosity:
    "executionStats"}). The existing explain:true flag
    corresponds to "queryPlanner" mode and is still supported.
    However, explain:true cannot be specified when explaining
    aggregate via the explain command.
    Additional execution information is provided only in the
    $cursor section of the aggregation explain output. Having
    aggregation stages themselves track and report execution
    info is further work.
    dstorch committed Feb 10, 2017
Commits on Feb 24, 2017
  1. SERVER-2104 add support for covered projections with dotted field paths

    For example, suppose you have index {"a.b": 1}. The
    projection {_id: 0, "a.b": 1} will now result in a covered
    plan when this index is used.
    dstorch committed Feb 22, 2017
Commits on Feb 23, 2017
Commits on Feb 6, 2017
Commits on Feb 3, 2017
Commits on Feb 1, 2017
Commits on Jan 27, 2017
  1. SERVER-5580 track paths containing empty or single-element arrays as …

    This is required in order for the planner to enforce correct
    covering behavior.
    dstorch committed Jan 24, 2017
Commits on Jan 19, 2017
Commits on Jan 18, 2017