plan/spec: the positional gate goes green
Scorecard 204 -> 218 pass, 87 -> 73 fail: the fourteen `arrayFilters` cases across five files, which is the whole of what the two implementation commits were expected to move and nothing else. Positional corpus 51/51. The three divergences measured on the way are written into PLAN §6 rather than left in commit messages: `$` with two predicates on one array that no element satisfies together, an array filter with a top-level `$and`/`$or`, and a literal index into a scalar element -- the last being the one place the positional walk and the plain indexed path now answer differently, which is worth a commit of its own and needs its own measurements first. The design review gets an outcome note, since two of its guesses were wrong and the corpus is where that was settled.
This commit is contained in:
@@ -72,24 +72,26 @@ measures the version gap, not the engine.
|
||||
|
||||
## Where it stands
|
||||
|
||||
Recorded against mongod 8.3.7, run against the server at the positional
|
||||
refusal:
|
||||
Recorded against mongod 8.3.7. Green:
|
||||
|
||||
```
|
||||
filtered.json 8 pass 19 fail 0 skip
|
||||
all-positional.json 3 pass 9 fail 0 skip
|
||||
first-positional.json 4 pass 8 fail 0 skip
|
||||
filtered.json 27 pass 0 fail 0 skip
|
||||
all-positional.json 12 pass 0 fail 0 skip
|
||||
first-positional.json 12 pass 0 fail 0 skip
|
||||
```
|
||||
|
||||
Red by construction and by design. The 15 that pass are the refusals where
|
||||
this server's code already matches mongod's; of the 36 that fail, 31 are the
|
||||
constructs themselves answering "not implemented by this server", and 5 are
|
||||
refusals whose code differs — four of them the `arrayFilters` validation this
|
||||
server cannot do yet because it never parses the option.
|
||||
It was recorded red — 15 pass / 36 fail against the positional refusal — and
|
||||
driven green by the two implementation commits, the same shape
|
||||
`tests/spec/aggregate/expressions.json` had at 1 pass / 26 fail before the
|
||||
expression evaluator existed. The 15 that passed then were the refusals where
|
||||
this server already agreed with mongod, which is the only part of a red gate
|
||||
that is worth anything: it says the corpus is measuring the server and not
|
||||
the harness.
|
||||
|
||||
That is the intended shape. `tests/spec/aggregate/expressions.json` was
|
||||
recorded at 1 pass / 26 fail before the evaluator existed and is green now;
|
||||
this is the same gate at the same stage.
|
||||
Three answers here still differ from mongod and are green only because no
|
||||
case covers them; they are written down in PLAN §6 rather than papered over —
|
||||
`$` with two disagreeing predicates on one array, an array filter with a
|
||||
top-level `$and`/`$or`, and a literal index into a scalar element.
|
||||
|
||||
## What recording it settled
|
||||
|
||||
|
||||
Reference in New Issue
Block a user