@mongodb-js/explain-plan-helper 1.2.2 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -69,13 +69,23 @@ const _getFindStats = (explain) => {
69
69
  function sumArrayProp(arr, prop) {
70
70
  return arr.reduce((acc, x) => acc + Number(x[prop] ?? 0), 0);
71
71
  }
72
+ /**
73
+ *
74
+ * @param stages List of all stages in the explain plan
75
+ * @param shard Shard name
76
+ * @returns Indexes used in the stages
77
+ */
72
78
  function getIndexesFromStages(stages, shard) {
73
79
  return stages
74
80
  .reduce((acc, x) => acc.concat(x?.indexesUsed ?? []), [])
75
81
  .map((index) => ({ index, shard: shard ?? null, fields: {} }));
76
82
  }
77
83
  function getAggregationExecutionTime(stats, stages) {
78
- return (stats.executionTimeMillis ??
84
+ return (
85
+ // Aggregation execution time is either accessible as part of stats, or as
86
+ // the estimated time of the last stage as execution time for stages is
87
+ // accumulated: every next stage includes the time for the previous stages
88
+ stats.executionTimeMillis ??
79
89
  stages[stages.length - 1]?.executionTimeMillisEstimate ??
80
90
  0);
81
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-execution-stats.js","sourceRoot":"","sources":["../src/get-execution-stats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-execution-stats.js","sourceRoot":"","sources":["../src/get-execution-stats.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ const _getUnshardedAggregationPlanner = (explain) => {
27
27
  return _getUnshardedFindPlanner(firstStage[cursorKey]);
28
28
  };
29
29
  const _getShardedAggregationPlanner = (explain) => {
30
+ // The first shard
30
31
  const firstShardName = Object.keys(explain.shards)[0];
31
32
  const firstShard = explain.shards[firstShardName];
32
33
  if (firstShard.stages) {
@@ -1 +1 @@
1
- {"version":3,"file":"get-planner-info.js","sourceRoot":"","sources":["../src/get-planner-info.ts"],"names":[],"mappings":";;;AAAA,mEAKgC;AAUzB,MAAM,cAAc,GAAG,CAAC,OAAc,EAAe,EAAE;IAC5D,MAAM,YAAY,GAAG,IAAA,6CAAoB,EAAC,OAAO,CAAC;QAChD,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC;QACjC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7B,OAAO;QACL,SAAS,EAAE,YAAY,CAAC,SAAS;QACjC,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,WAAW,EAAE,YAAY,CAAC,WAAW;KACtC,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,cAAc,kBASzB;AACF,MAAM,sBAAsB,GAAG,CAAC,OAAc,EAAS,EAAE;IACvD,OAAO,IAAA,oDAA2B,EAAC,OAAO,CAAC;QACzC,CAAC,CAAC,6BAA6B,CAAC,OAAO,CAAC;QACxC,CAAC,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF,MAAM,+BAA+B,GAAG,CAAC,OAAc,EAAS,EAAE;IAChE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,IAAA,0CAAiB,EAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;KACjD;IACD,OAAO,wBAAwB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AACzD,CAAC,CAAC;AACF,MAAM,6BAA6B,GAAG,CAAC,OAAc,EAAS,EAAE;IAE9D,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAClD,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,OAAO,+BAA+B,CAAC,UAAU,CAAC,CAAC;KACpD;IACD,OAAO,wBAAwB,CAAC,UAAU,CAAC,CAAC;AAC9C,CAAC,CAAC;AACF,MAAM,eAAe,GAAG,CAAC,OAAc,EAAS,EAAE;IAChD,OAAO,IAAA,6CAAoB,EAAC,OAAO,CAAC;QAClC,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC;QACjC,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC,CAAC;AACF,MAAM,wBAAwB,GAAG,CAAC,OAAc,EAAS,EAAE;IACzD,OAAO,OAAO,CAAC,YAAY,CAAC;AAC9B,CAAC,CAAC;AACF,MAAM,sBAAsB,GAAG,CAAC,OAAc,EAAS,EAAE;IACvD,OAAO,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC"}
1
+ {"version":3,"file":"get-planner-info.js","sourceRoot":"","sources":["../src/get-planner-info.ts"],"names":[],"mappings":";;;AAAA,mEAKgC;AAUzB,MAAM,cAAc,GAAG,CAAC,OAAc,EAAe,EAAE;IAC5D,MAAM,YAAY,GAAG,IAAA,6CAAoB,EAAC,OAAO,CAAC;QAChD,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC;QACjC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7B,OAAO;QACL,SAAS,EAAE,YAAY,CAAC,SAAS;QACjC,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,WAAW,EAAE,YAAY,CAAC,WAAW;KACtC,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,cAAc,kBASzB;AACF,MAAM,sBAAsB,GAAG,CAAC,OAAc,EAAS,EAAE;IACvD,OAAO,IAAA,oDAA2B,EAAC,OAAO,CAAC;QACzC,CAAC,CAAC,6BAA6B,CAAC,OAAO,CAAC;QACxC,CAAC,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF,MAAM,+BAA+B,GAAG,CAAC,OAAc,EAAS,EAAE;IAChE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,IAAA,0CAAiB,EAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;KACjD;IACD,OAAO,wBAAwB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AACzD,CAAC,CAAC;AACF,MAAM,6BAA6B,GAAG,CAAC,OAAc,EAAS,EAAE;IAC9D,kBAAkB;IAClB,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAClD,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,OAAO,+BAA+B,CAAC,UAAU,CAAC,CAAC;KACpD;IACD,OAAO,wBAAwB,CAAC,UAAU,CAAC,CAAC;AAC9C,CAAC,CAAC;AACF,MAAM,eAAe,GAAG,CAAC,OAAc,EAAS,EAAE;IAChD,OAAO,IAAA,6CAAoB,EAAC,OAAO,CAAC;QAClC,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC;QACjC,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC,CAAC;AACF,MAAM,wBAAwB,GAAG,CAAC,OAAc,EAAS,EAAE;IACzD,OAAO,OAAO,CAAC,YAAY,CAAC;AAC9B,CAAC,CAAC;AACF,MAAM,sBAAsB,GAAG,CAAC,OAAc,EAAS,EAAE;IACvD,OAAO,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -37,12 +37,52 @@ export declare class ExplainPlan {
37
37
  get numShards(): number;
38
38
  get isClusteredScan(): boolean;
39
39
  get indexType(): "COLLSCAN" | "CLUSTERED" | "UNAVAILABLE" | "MULTIPLE" | "COVERED" | "INDEX";
40
+ /**
41
+ * Walks the tree of execution stages from a given node (or root) and returns
42
+ * the first stage with the specified name, or null if no stage is found.
43
+ * Equally-named children stage are traversed and returned in order.
44
+ * Returns null if legacyMode is true.
45
+ *
46
+ * @param {String} name - name of stage to return
47
+ * @param {Object} root - stage to start from. If unspecified, start from
48
+ * executionStages root node.
49
+ * @return {Object|null} - stage object or null
50
+ */
40
51
  findStageByName(name: string, root?: Stage): Stage | null;
52
+ /**
53
+ * Walks the tree of execution stages from a given node (or root) and returns
54
+ * an array of all stages with the specified name, or null if no stage is found.
55
+ * Returns null if legacyMode is true.
56
+ *
57
+ * @param {String} name - name of stage to return
58
+ * @param {Object} root - stage to start from. If unspecified, start from
59
+ * executionStages root node.
60
+ * @return {Array} - array of matching stage objects
61
+ */
41
62
  findAllStagesByName(name: string, root?: Stage): Stage[];
63
+ /** DFS stack iterator implementation */
42
64
  _getStageIterator(root?: Stage): Iterable<Stage>;
43
65
  serialize(): Pick<ExplainPlan, 'namespace' | 'parsedQuery' | 'executionSuccess' | 'nReturned' | 'executionTimeMillis' | 'totalKeysExamined' | 'totalDocsExamined' | 'originalExplainData' | 'executionStats' | 'usedIndexes' | 'isCovered' | 'isMultiKey' | 'inMemorySort' | 'isCollectionScan' | 'isSharded' | 'numShards' | 'indexType'>;
66
+ /**
67
+ * Returns child stage or stages of current stage as array. If there are
68
+ * no more child stages, returns empty array []. Also works for sharded
69
+ * explain plans (where shards are children). Not supported for legacy mode.
70
+ *
71
+ * @param {Object} stage - stage to get children of.
72
+ * @return {Array} - array of child stages.
73
+ */
44
74
  static getChildStages(stage?: Stage): Iterable<Stage>;
75
+ /**
76
+ * Recursively add a hidden property to all child stages
77
+ * that points to the parent, or `null` for the root stage.
78
+ * The list of parents can be iterated via getParentStages().
79
+ */
45
80
  static addParentStages(stage: Stage): void;
81
+ /**
82
+ * Iterator over all parent stages of a stage. Only works if
83
+ * ExplainPlan.addParentStages() has been called on a parent stage
84
+ * first. Does not yield the stage itself.
85
+ */
46
86
  static getParentStages(stage: Stage): Iterable<Stage>;
47
87
  }
48
88
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,QAAA,MAAM,OAAO,eAAgC,CAAC;AAE9C,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,OAAO,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CACzB,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,CACjE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,GAC9B;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CACjC,CAAC;AAEF,qBAAa,WAAW;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,KAAK,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,mBAAmB,EAAE,KAAK,CAAC;IAC3B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,WAAW,EAAE,KAAK,CAAC;gBAEP,mBAAmB,EAAE,KAAK;IAqBtC,IAAI,WAAW,IAAI,gBAAgB,EAAE,CAmCpC;IAED,IAAI,SAAS,IAAI,OAAO,CASvB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,SAAS,IAAI,MAAM,CAItB;IAED,IAAI,eAAe,IAAI,OAAO,CAK7B;IAED,IAAI,SAAS,gFA+CZ;IAaD,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI;IAmBzD,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE;IAOvD,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAcjD,SAAS,IAAI,IAAI,CACf,WAAW,EACT,WAAW,GACX,aAAa,GACb,kBAAkB,GAClB,WAAW,GACX,qBAAqB,GACrB,mBAAmB,GACnB,mBAAmB,GACnB,qBAAqB,GACrB,gBAAgB,GAChB,aAAa,GACb,WAAW,GACX,YAAY,GACZ,cAAc,GACd,kBAAkB,GAClB,WAAW,GACX,WAAW,GACX,WAAW,CACd;IAgCD,MAAM,CAAE,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAoCtD,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAa1C,MAAM,CAAE,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;CAMvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,QAAA,MAAM,OAAO,eAAgC,CAAC;AAE9C,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,OAAO,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CACzB,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,CACjE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,GAC9B;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CACjC,CAAC;AAEF,qBAAa,WAAW;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,KAAK,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,mBAAmB,EAAE,KAAK,CAAC;IAC3B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,WAAW,EAAE,KAAK,CAAC;gBAEP,mBAAmB,EAAE,KAAK;IAqBtC,IAAI,WAAW,IAAI,gBAAgB,EAAE,CAmCpC;IAED,IAAI,SAAS,IAAI,OAAO,CASvB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,SAAS,IAAI,MAAM,CAItB;IAED,IAAI,eAAe,IAAI,OAAO,CAK7B;IAED,IAAI,SAAS,gFA+CZ;IAED;;;;;;;;;;OAUG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI;IASzD;;;;;;;;;OASG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE;IAMxD,wCAAwC;IACvC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAcjD,SAAS,IAAI,IAAI,CACf,WAAW,EACT,WAAW,GACX,aAAa,GACb,kBAAkB,GAClB,WAAW,GACX,qBAAqB,GACrB,mBAAmB,GACnB,mBAAmB,GACnB,qBAAqB,GACrB,gBAAgB,GAChB,aAAa,GACb,WAAW,GACX,YAAY,GACZ,cAAc,GACd,kBAAkB,GAClB,WAAW,GACX,WAAW,GACX,WAAW,CACd;IAwBD;;;;;;;OAOG;IACH,MAAM,CAAE,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IA+BtD;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAQ1C;;;;OAIG;IACH,MAAM,CAAE,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;CAMvD"}
package/dist/index.js CHANGED
@@ -33,6 +33,7 @@ class ExplainPlan {
33
33
  const ixscan = this.findAllStagesByName('IXSCAN');
34
34
  const expressIxscan = this.findAllStagesByName('EXPRESS_IXSCAN');
35
35
  const countScan = this.findAllStagesByName('COUNT_SCAN');
36
+ // special case for IDHACK stage, using the _id_ index.
36
37
  const idhack = this.findStageByName('IDHACK');
37
38
  const ret = this.executionStats?.stageIndexes ?? [];
38
39
  for (const stage of [...ixscan, ...expressIxscan, ...countScan, idhack]) {
@@ -61,6 +62,7 @@ class ExplainPlan {
61
62
  return ret.filter((indexInfo, index, arr) => arr.findIndex((i) => i.index === indexInfo.index && i.shard === indexInfo.shard) === index);
62
63
  }
63
64
  get isCovered() {
65
+ // @todo (thomas) implement for sharded explain plans
64
66
  if (this.totalDocsExamined && this.totalDocsExamined > 0) {
65
67
  return false;
66
68
  }
@@ -92,6 +94,9 @@ class ExplainPlan {
92
94
  }
93
95
  get indexType() {
94
96
  const indexes = this.usedIndexes;
97
+ // Currently the CLUSTERED_IXSCAN and EXPRESS_CLUSTERED_IXSCAN do not report
98
+ // any indexes in the winning stage. Even though the query clearly uses
99
+ // an index. And since we can't determine the index used, we will return CLUSTER.
95
100
  if (this.isClusteredScan) {
96
101
  return 'CLUSTERED';
97
102
  }
@@ -111,7 +116,7 @@ class ExplainPlan {
111
116
  if (indexNamesForAllShards[i].length !==
112
117
  indexNamesForAllShards[j].length ||
113
118
  indexNamesForAllShards[i].some((val, idx) => val !== indexNamesForAllShards[j][idx])) {
114
- return 'MULTIPLE';
119
+ return 'MULTIPLE'; // As in, multiple index setups that differ between shards
115
120
  }
116
121
  }
117
122
  }
@@ -123,6 +128,17 @@ class ExplainPlan {
123
128
  }
124
129
  return 'INDEX';
125
130
  }
131
+ /**
132
+ * Walks the tree of execution stages from a given node (or root) and returns
133
+ * the first stage with the specified name, or null if no stage is found.
134
+ * Equally-named children stage are traversed and returned in order.
135
+ * Returns null if legacyMode is true.
136
+ *
137
+ * @param {String} name - name of stage to return
138
+ * @param {Object} root - stage to start from. If unspecified, start from
139
+ * executionStages root node.
140
+ * @return {Object|null} - stage object or null
141
+ */
126
142
  findStageByName(name, root) {
127
143
  for (const stage of this._getStageIterator(root)) {
128
144
  if (stage.stage === name) {
@@ -131,9 +147,20 @@ class ExplainPlan {
131
147
  }
132
148
  return null;
133
149
  }
150
+ /**
151
+ * Walks the tree of execution stages from a given node (or root) and returns
152
+ * an array of all stages with the specified name, or null if no stage is found.
153
+ * Returns null if legacyMode is true.
154
+ *
155
+ * @param {String} name - name of stage to return
156
+ * @param {Object} root - stage to start from. If unspecified, start from
157
+ * executionStages root node.
158
+ * @return {Array} - array of matching stage objects
159
+ */
134
160
  findAllStagesByName(name, root) {
135
161
  return [...this._getStageIterator(root)].filter((stage) => stage.stage === name);
136
162
  }
163
+ /** DFS stack iterator implementation */
137
164
  *_getStageIterator(root) {
138
165
  const stage = root ?? this.executionStats?.executionStages ?? this.winningPlan;
139
166
  if (!stage) {
@@ -165,6 +192,14 @@ class ExplainPlan {
165
192
  indexType: this.indexType,
166
193
  }));
167
194
  }
195
+ /**
196
+ * Returns child stage or stages of current stage as array. If there are
197
+ * no more child stages, returns empty array []. Also works for sharded
198
+ * explain plans (where shards are children). Not supported for legacy mode.
199
+ *
200
+ * @param {Object} stage - stage to get children of.
201
+ * @return {Array} - array of child stages.
202
+ */
168
203
  static *getChildStages(stage) {
169
204
  if (!stage) {
170
205
  return;
@@ -194,6 +229,11 @@ class ExplainPlan {
194
229
  yield* stage.inputStages;
195
230
  }
196
231
  }
232
+ /**
233
+ * Recursively add a hidden property to all child stages
234
+ * that points to the parent, or `null` for the root stage.
235
+ * The list of parents can be iterated via getParentStages().
236
+ */
197
237
  static addParentStages(stage) {
198
238
  stage[kParent] = null;
199
239
  for (const child of ExplainPlan.getChildStages(stage)) {
@@ -201,6 +241,11 @@ class ExplainPlan {
201
241
  child[kParent] = stage;
202
242
  }
203
243
  }
244
+ /**
245
+ * Iterator over all parent stages of a stage. Only works if
246
+ * ExplainPlan.addParentStages() has been called on a parent stage
247
+ * first. Does not yield the stage itself.
248
+ */
204
249
  static *getParentStages(stage) {
205
250
  let current = stage;
206
251
  while ((current = current?.[kParent])) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/utils.js CHANGED
@@ -28,6 +28,7 @@ const shell_bson_parser_1 = __importStar(require("@mongodb-js/shell-bson-parser"
28
28
  function getStageIndexFields(stage) {
29
29
  if (stage.stage === 'EXPRESS_IXSCAN' &&
30
30
  typeof stage.keyPattern === 'string') {
31
+ // For EXPRESS stages, the keyPattern is a string, which is not valid json.
31
32
  try {
32
33
  const result = (0, shell_bson_parser_1.default)(stage.keyPattern, { mode: shell_bson_parser_1.ParseMode.Loose });
33
34
  return typeof result === 'string' ? {} : result;
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mFAAiE;AAEjE,SAAgB,mBAAmB,CAAC,KAAY;IAC9C,IACE,KAAK,CAAC,KAAK,KAAK,gBAAgB;QAChC,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EACpC;QAEA,IAAI;YACF,MAAM,MAAM,GAAG,IAAA,2BAAK,EAAC,KAAK,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,6BAAS,CAAC,KAAK,EAAE,CAAC,CAAC;YAClE,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;SACjD;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,EAAE,CAAC;SACX;KACF;IACD,OAAO,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;AAChC,CAAC;AAdD,kDAcC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mFAAiE;AAEjE,SAAgB,mBAAmB,CAAC,KAAY;IAC9C,IACE,KAAK,CAAC,KAAK,KAAK,gBAAgB;QAChC,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EACpC;QACA,2EAA2E;QAC3E,IAAI;YACF,MAAM,MAAM,GAAG,IAAA,2BAAK,EAAC,KAAK,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,6BAAS,CAAC,KAAK,EAAE,CAAC,CAAC;YAClE,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;SACjD;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,EAAE,CAAC;SACX;KACF;IACD,OAAO,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;AAChC,CAAC;AAdD,kDAcC"}
package/package.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "email": "compass@mongodb.com"
14
14
  },
15
15
  "homepage": "https://github.com/mongodb-js/compass",
16
- "version": "1.2.2",
16
+ "version": "1.2.3",
17
17
  "repository": {
18
18
  "type": "git",
19
19
  "url": "https://github.com/mongodb-js/compass.git"
@@ -53,10 +53,10 @@
53
53
  "mongodb-explain-compat": "^3.1.0"
54
54
  },
55
55
  "devDependencies": {
56
- "@mongodb-js/eslint-config-compass": "^1.1.6",
57
- "@mongodb-js/mocha-config-compass": "^1.4.1",
56
+ "@mongodb-js/eslint-config-compass": "^1.1.7",
57
+ "@mongodb-js/mocha-config-compass": "^1.4.2",
58
58
  "@mongodb-js/prettier-config-compass": "^1.0.2",
59
- "@mongodb-js/tsconfig-compass": "^1.0.4",
59
+ "@mongodb-js/tsconfig-compass": "^1.0.5",
60
60
  "@types/chai": "^4.2.21",
61
61
  "@types/mocha": "^9.0.0",
62
62
  "@types/sinon-chai": "^3.2.5",
@@ -69,5 +69,5 @@
69
69
  "sinon": "^9.2.3",
70
70
  "typescript": "^5.0.4"
71
71
  },
72
- "gitHead": "610f66813a9fa7e0b5240896a273be0e90e60d50"
72
+ "gitHead": "7bb0ec47c90909273d5cf0a63a39f12fc31e8d42"
73
73
  }