@query-doctor/core 0.3.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 (45) 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 +202 -36
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.js +202 -36
  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.d.ts +7 -0
  14. package/dist/optimizer/genalgo.d.ts.map +1 -1
  15. package/dist/optimizer/genalgo.test.d.ts +2 -0
  16. package/dist/optimizer/genalgo.test.d.ts.map +1 -0
  17. package/dist/optimizer/index-candidate.d.ts +23 -0
  18. package/dist/optimizer/index-candidate.d.ts.map +1 -0
  19. package/dist/optimizer/index-shrinker.d.ts +10 -0
  20. package/dist/optimizer/index-shrinker.d.ts.map +1 -0
  21. package/dist/optimizer/index-shrinker.test.d.ts +2 -0
  22. package/dist/optimizer/index-shrinker.test.d.ts.map +1 -0
  23. package/dist/optimizer/index-tester.d.ts +2 -0
  24. package/dist/optimizer/index-tester.d.ts.map +1 -0
  25. package/dist/optimizer/pss-rewriter.test.d.ts +2 -0
  26. package/dist/optimizer/pss-rewriter.test.d.ts.map +1 -0
  27. package/dist/optimizer/statistics.d.ts +9 -0
  28. package/dist/optimizer/statistics.d.ts.map +1 -1
  29. package/dist/sql/analyzer.d.ts +2 -0
  30. package/dist/sql/analyzer.d.ts.map +1 -1
  31. package/dist/sql/analyzer.test.d.ts +2 -0
  32. package/dist/sql/analyzer.test.d.ts.map +1 -0
  33. package/dist/sql/builder.test.d.ts +2 -0
  34. package/dist/sql/builder.test.d.ts.map +1 -0
  35. package/dist/sql/nudges.d.ts +1 -0
  36. package/dist/sql/nudges.d.ts.map +1 -1
  37. package/dist/sql/permutations.test.d.ts +2 -0
  38. package/dist/sql/permutations.test.d.ts.map +1 -0
  39. package/dist/sql/pg-identifier.test.d.ts +2 -0
  40. package/dist/sql/pg-identifier.test.d.ts.map +1 -0
  41. package/dist/sql/walker.d.ts +2 -1
  42. package/dist/sql/walker.d.ts.map +1 -1
  43. package/dist/sql/walker.test.d.ts +2 -0
  44. package/dist/sql/walker.test.d.ts.map +1 -0
  45. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  import type { NullTestType } from "@pgsql/types";
2
+ import type { JsonbOperator } from "../sql/analyzer.js";
2
3
  import type { SortContext } from "../sql/analyzer.js";
3
4
  import { PostgresQueryBuilder } from "../sql/builder.js";
4
5
  import { type Postgres, type PostgresExplainStage, type PostgresTransaction } from "../sql/database.js";
@@ -47,6 +48,9 @@ export declare class IndexOptimizer {
47
48
  **/
48
49
  private indexesToCreate;
49
50
  private toDefinition;
51
+ private toGinDefinition;
52
+ private groupGinCandidatesByColumn;
53
+ private ginIndexAlreadyExists;
50
54
  /**
51
55
  * Drop indexes that can be dropped. Ignore the ones that can't
52
56
  */
@@ -85,12 +89,15 @@ export type RootIndexCandidate = {
85
89
  where?: {
86
90
  nulltest?: NullTestType;
87
91
  };
92
+ jsonbOperator?: JsonbOperator;
88
93
  };
89
94
  export type PermutedIndexCandidate = {
90
95
  schema: string;
91
96
  table: string;
92
97
  columns: RootIndexCandidate[];
93
98
  where?: string;
99
+ indexMethod?: "btree" | "gin";
100
+ opclass?: string;
94
101
  };
95
102
  export declare const PROCEED: unique symbol;
96
103
  export declare const SKIP: unique symbol;
@@ -1 +1 @@
1
- {"version":3,"file":"genalgo.d.ts","sourceRoot":"","sources":["../../src/optimizer/genalgo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"genalgo.d.ts","sourceRoot":"","sources":["../../src/optimizer/genalgo.ts"],"names":[],"mappings":"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"}
@@ -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":""}
@@ -275,6 +275,14 @@ export declare class Statistics {
275
275
  * This derives that type for us so it can be used in `array_in`
276
276
  */
277
277
  private stavalueKind;
278
+ /**
279
+ * PostgreSQL's anyarray columns in pg_statistic can hold arrays of arrays
280
+ * for columns with array types (e.g. text[], int4[]). These create
281
+ * multidimensional arrays that can be "ragged" (sub-arrays with different
282
+ * lengths). jsonb_to_recordset can't reconstruct ragged multidimensional
283
+ * arrays from JSON, so we need to drop these values.
284
+ */
285
+ private static safeStavalues;
278
286
  private restoreStats17;
279
287
  static dumpStats(db: PostgresTransaction, postgresVersion: PostgresVersion, kind: "anonymous" | "full"): Promise<ExportedStats[]>;
280
288
  /**
@@ -339,6 +347,7 @@ export type IndexedTable = {
339
347
  index_columns: Array<{
340
348
  name: string;
341
349
  order: IndexOrder;
350
+ opclass?: string;
342
351
  }>;
343
352
  is_primary: boolean;
344
353
  is_unique: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"statistics.d.ts","sourceRoot":"","sources":["../../src/optimizer/statistics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"statistics.d.ts","sourceRoot":"","sources":["../../src/optimizer/statistics.ts"],"names":[],"mappings":"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"}
@@ -55,7 +55,9 @@ export type DiscoveredColumnReference = {
55
55
  where?: {
56
56
  nulltest?: NullTestType;
57
57
  };
58
+ jsonbOperator?: JsonbOperator;
58
59
  };
60
+ export type JsonbOperator = "@>" | "?" | "?|" | "?&";
59
61
  /** A function defined by @pgsql/parser */
60
62
  export type Parser = (query: string) => Promise<unknown>;
61
63
  export type TableReference = {
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../src/sql/analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEZ,SAAS,EACT,WAAW,EACZ,MAAM,cAAc,CAAC;AAQtB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAyB,MAAM,aAAa,CAAC;AAEzE,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CAC7D;AAED,eAAO,MAAM,iBAAiB,qBAAqB,CAAC;AAEpD,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;;;;OAaG;IACH,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB,yDAAyD;IACzD,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,YAAY,CAAA;KAAE,CAAC;CACrC,CAAC;AAEF,0CAA0C;AAC1C,MAAM,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,cAAc,EAAE,yBAAyB,EAAE,CAAC;IAC5C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,cAAc,EAAE,CAAC;IACnC,eAAe,EAAE,mBAAmB,EAAE,CAAC;IACvC,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,QAAQ;IACP,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IACrC,OAAO,CACX,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC;IAgG1B,aAAa,CACX,MAAM,EAAE,aAAa,EAAE,EACvB,UAAU,EAAE,yBAAyB,EAAE,EACvC,gBAAgB,EAAE,cAAc,EAAE,GACjC,kBAAkB,EAAE;IAkGvB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,gBAAgB;IAgBxB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,mBAAmB;CAgD5B"}
1
+ {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../src/sql/analyzer.ts"],"names":[],"mappings":"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"}
@@ -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,EAAE,yBAAyB,EAAe,MAAM,eAAe,CAAC;AAE5E,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;;;;;;;;;IA+Lf,OAAO,CAAC,GAAG;IA6EX,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.3.0",
3
+ "version": "0.4.1",
4
4
  "private": false,
5
5
  "description": "Core logic for Query Doctor",
6
6
  "license": "",