@query-doctor/core 0.4.0 → 0.4.1

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.
Files changed (39) hide show
  1. package/dist/explain/rewriter.d.ts +4 -0
  2. package/dist/explain/rewriter.d.ts.map +1 -0
  3. package/dist/explain/traverse.d.ts +3 -0
  4. package/dist/explain/traverse.d.ts.map +1 -0
  5. package/dist/explain/tree.d.ts +73 -0
  6. package/dist/explain/tree.d.ts.map +1 -0
  7. package/dist/index.cjs +58 -22
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.js +58 -22
  10. package/dist/index.js.map +1 -1
  11. package/dist/index.mjs +25333 -0
  12. package/dist/index.mjs.map +1 -0
  13. package/dist/optimizer/genalgo.test.d.ts +2 -0
  14. package/dist/optimizer/genalgo.test.d.ts.map +1 -0
  15. package/dist/optimizer/index-candidate.d.ts +23 -0
  16. package/dist/optimizer/index-candidate.d.ts.map +1 -0
  17. package/dist/optimizer/index-shrinker.d.ts +10 -0
  18. package/dist/optimizer/index-shrinker.d.ts.map +1 -0
  19. package/dist/optimizer/index-shrinker.test.d.ts +2 -0
  20. package/dist/optimizer/index-shrinker.test.d.ts.map +1 -0
  21. package/dist/optimizer/index-tester.d.ts +2 -0
  22. package/dist/optimizer/index-tester.d.ts.map +1 -0
  23. package/dist/optimizer/pss-rewriter.test.d.ts +2 -0
  24. package/dist/optimizer/pss-rewriter.test.d.ts.map +1 -0
  25. package/dist/sql/analyzer.test.d.ts +2 -0
  26. package/dist/sql/analyzer.test.d.ts.map +1 -0
  27. package/dist/sql/builder.test.d.ts +2 -0
  28. package/dist/sql/builder.test.d.ts.map +1 -0
  29. package/dist/sql/nudges.d.ts +1 -0
  30. package/dist/sql/nudges.d.ts.map +1 -1
  31. package/dist/sql/permutations.test.d.ts +2 -0
  32. package/dist/sql/permutations.test.d.ts.map +1 -0
  33. package/dist/sql/pg-identifier.test.d.ts +2 -0
  34. package/dist/sql/pg-identifier.test.d.ts.map +1 -0
  35. package/dist/sql/walker.d.ts +2 -1
  36. package/dist/sql/walker.d.ts.map +1 -1
  37. package/dist/sql/walker.test.d.ts +2 -0
  38. package/dist/sql/walker.test.d.ts.map +1 -0
  39. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=genalgo.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genalgo.test.d.ts","sourceRoot":"","sources":["../../src/optimizer/genalgo.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import { PgIdentifier } from "../sql/pg-identifier";
2
+ import type { RootIndexCandidate } from "./genalgo";
3
+ export declare class IndexCandidate {
4
+ readonly schema: PgIdentifier;
5
+ readonly table: PgIdentifier;
6
+ private _columns;
7
+ readonly name: PgIdentifier;
8
+ constructor(schema: PgIdentifier, table: PgIdentifier, _columns: RootIndexCandidate[], name: PgIdentifier);
9
+ get columns(): readonly RootIndexCandidate[];
10
+ toJSON(): {
11
+ schema: string;
12
+ table: string;
13
+ columns: RootIndexCandidate[];
14
+ name: string;
15
+ };
16
+ definition(): string;
17
+ fullyQualifiedTarget(): PgIdentifier;
18
+ withColumns(columns: RootIndexCandidate[]): IndexCandidate;
19
+ private columnDefinition;
20
+ private static nullsOrder;
21
+ private static sortDirection;
22
+ }
23
+ //# sourceMappingURL=index-candidate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-candidate.d.ts","sourceRoot":"","sources":["../../src/optimizer/index-candidate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,qBAAa,cAAc;IAEvB,QAAQ,CAAC,MAAM,EAAE,YAAY;IAC7B,QAAQ,CAAC,KAAK,EAAE,YAAY;IAC5B,OAAO,CAAC,QAAQ;IAChB,QAAQ,CAAC,IAAI,EAAE,YAAY;gBAHlB,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,EACpB,QAAQ,EAAE,kBAAkB,EAAE,EAC7B,IAAI,EAAE,YAAY;IAG7B,IAAI,OAAO,IAAI,SAAS,kBAAkB,EAAE,CAE3C;IAED,MAAM;;;;;;IASN,UAAU,IAAI,MAAM;IASpB,oBAAoB,IAAI,YAAY;IAQpC,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,cAAc;IAI1D,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,MAAM,CAAC,UAAU;IAezB,OAAO,CAAC,MAAM,CAAC,aAAa;CAe7B"}
@@ -0,0 +1,10 @@
1
+ import type { IndexCandidate } from "./index-candidate.js";
2
+ export declare class IndexShrinker {
3
+ private readonly indexes;
4
+ constructor(indexes: readonly IndexCandidate[]);
5
+ start(optimizedCost: number): Generator<IndexCandidate[], IndexCandidate[], PlanCost>;
6
+ private canShrink;
7
+ private shrink;
8
+ }
9
+ export type PlanCost = number;
10
+ //# sourceMappingURL=index-shrinker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-shrinker.d.ts","sourceRoot":"","sources":["../../src/optimizer/index-shrinker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,SAAS,cAAc,EAAE;IAE9D,KAAK,CACJ,aAAa,EAAE,MAAM,GACpB,SAAS,CAAC,cAAc,EAAE,EAAE,cAAc,EAAE,EAAE,QAAQ,CAAC;IA4B1D,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,MAAM;CAMf;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index-shrinker.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-shrinker.test.d.ts","sourceRoot":"","sources":["../../src/optimizer/index-shrinker.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index-tester.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-tester.d.ts","sourceRoot":"","sources":["../../src/optimizer/index-tester.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pss-rewriter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pss-rewriter.test.d.ts","sourceRoot":"","sources":["../../src/optimizer/pss-rewriter.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=analyzer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzer.test.d.ts","sourceRoot":"","sources":["../../src/sql/analyzer.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=builder.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.test.d.ts","sourceRoot":"","sources":["../../src/sql/builder.test.ts"],"names":[],"mappings":""}
@@ -4,6 +4,7 @@ export type Nudge = {
4
4
  kind: NudgeKind;
5
5
  severity: "CRITICAL" | "WARNING" | "INFO";
6
6
  message: string;
7
+ location?: number;
7
8
  };
8
9
  type KeysOfUnion<T> = T extends T ? keyof T : never;
9
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"nudges.d.ts","sourceRoot":"","sources":["../../src/sql/nudges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,IAAI,EAAE,MAAM,cAAc,CAAC;AAE/C,KAAK,SAAS,GACV,yBAAyB,GACzB,yBAAyB,GACzB,mBAAmB,GACnB,qCAAqC,GACrC,sBAAsB,GACtB,sBAAsB,GACtB,wBAAwB,GACxB,+BAA+B,GAC/B,wBAAwB,GACxB,6BAA6B,GAC7B,iCAAiC,GACjC,uCAAuC,CAAC;AAE5C,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC;AAiBpD;;;GAGG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,GACpC,KAAK,EAAE,CA2LT"}
1
+ {"version":3,"file":"nudges.d.ts","sourceRoot":"","sources":["../../src/sql/nudges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,IAAI,EAAa,MAAM,cAAc,CAAC;AAEnE,KAAK,SAAS,GACV,yBAAyB,GACzB,yBAAyB,GACzB,mBAAmB,GACnB,qCAAqC,GACrC,sBAAsB,GACtB,sBAAsB,GACtB,wBAAwB,GACxB,+BAA+B,GAC/B,wBAAwB,GACxB,6BAA6B,GAC7B,iCAAiC,GACjC,uCAAuC,CAAC;AAE5C,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC;AAiBpD;;;GAGG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,GACpC,KAAK,EAAE,CA+NT"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=permutations.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permutations.test.d.ts","sourceRoot":"","sources":["../../src/sql/permutations.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pg-identifier.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg-identifier.test.d.ts","sourceRoot":"","sources":["../../src/sql/pg-identifier.test.ts"],"names":[],"mappings":""}
@@ -30,7 +30,8 @@ export declare class Walker {
30
30
  nudges: Nudge[];
31
31
  };
32
32
  private add;
33
- static traverse(node: unknown, stack: (KeysOfUnion<Node> | string)[], callback: (node: Node, stack: (KeysOfUnion<Node> | string)[]) => void): void;
33
+ static traverse(node: Node, callback: (node: Node, stack: (KeysOfUnion<Node> | string)[]) => void): void;
34
+ private static doTraverse;
34
35
  }
35
36
  export type ColumnReferencePart = {
36
37
  schema?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../src/sql/walker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAgB,MAAM,cAAc,CAAC;AAEvD,OAAO,KAAK,EACV,yBAAyB,EAG1B,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,wDAAwD;AACxD,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAG7D;;;;GAIG;AACH,qBAAa,MAAM;IAaL,OAAO,CAAC,QAAQ,CAAC,KAAK;IAZlC,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,oBAAoB,CAAqB;IACjD,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,kBAAkB,CAAqB;IAG/C,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,MAAM,CAAe;gBAEA,KAAK,EAAE,MAAM;IAE1C,IAAI,CAAC,IAAI,EAAE,IAAI;;;;;;;;;IAsNf,OAAO,CAAC,GAAG;IAiFX,MAAM,CAAC,QAAQ,CACb,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,EACrC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI;CAwBxE;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../src/sql/walker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAgB,MAAM,cAAc,CAAC;AAEvD,OAAO,KAAK,EACV,yBAAyB,EAG1B,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,wDAAwD;AACxD,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAG7D;;;;GAIG;AACH,qBAAa,MAAM;IAaL,OAAO,CAAC,QAAQ,CAAC,KAAK;IAZlC,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,oBAAoB,CAAqB;IACjD,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,kBAAkB,CAAqB;IAG/C,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,MAAM,CAAe;gBAEA,KAAK,EAAE,MAAM;IAE1C,IAAI,CAAC,IAAI,EAAE,IAAI;;;;;;;;;IAsNf,OAAO,CAAC,GAAG;IAiFX,MAAM,CAAC,QAAQ,CACb,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI;IAKvE,OAAO,CAAC,MAAM,CAAC,UAAU;CA+B1B;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=walker.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walker.test.d.ts","sourceRoot":"","sources":["../../src/sql/walker.test.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@query-doctor/core",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "private": false,
5
5
  "description": "Core logic for Query Doctor",
6
6
  "license": "",