@query-doctor/core 0.8.1 → 0.8.2-rc.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 (118) hide show
  1. package/dist/_virtual/_@oxc-project_runtime@0.122.0/helpers/defineProperty.cjs +13 -0
  2. package/dist/_virtual/_@oxc-project_runtime@0.122.0/helpers/defineProperty.mjs +13 -0
  3. package/dist/_virtual/_@oxc-project_runtime@0.122.0/helpers/toPrimitive.cjs +15 -0
  4. package/dist/_virtual/_@oxc-project_runtime@0.122.0/helpers/toPrimitive.mjs +15 -0
  5. package/dist/_virtual/_@oxc-project_runtime@0.122.0/helpers/toPropertyKey.cjs +10 -0
  6. package/dist/_virtual/_@oxc-project_runtime@0.122.0/helpers/toPropertyKey.mjs +10 -0
  7. package/dist/_virtual/_@oxc-project_runtime@0.122.0/helpers/typeof.cjs +17 -0
  8. package/dist/_virtual/_@oxc-project_runtime@0.122.0/helpers/typeof.mjs +12 -0
  9. package/dist/_virtual/_rolldown/runtime.cjs +24 -0
  10. package/dist/index.cjs +33 -2568
  11. package/dist/index.d.cts +11 -781
  12. package/dist/index.d.mts +11 -781
  13. package/dist/index.mjs +10 -2522
  14. package/dist/optimizer/genalgo.cjs +365 -0
  15. package/dist/optimizer/genalgo.cjs.map +1 -0
  16. package/dist/optimizer/genalgo.d.cts +111 -0
  17. package/dist/optimizer/genalgo.d.cts.map +1 -0
  18. package/dist/optimizer/genalgo.d.mts +111 -0
  19. package/dist/optimizer/genalgo.d.mts.map +1 -0
  20. package/dist/optimizer/genalgo.mjs +362 -0
  21. package/dist/optimizer/genalgo.mjs.map +1 -0
  22. package/dist/optimizer/pss-rewriter.cjs +31 -0
  23. package/dist/optimizer/pss-rewriter.cjs.map +1 -0
  24. package/dist/optimizer/pss-rewriter.d.cts +16 -0
  25. package/dist/optimizer/pss-rewriter.d.cts.map +1 -0
  26. package/dist/optimizer/pss-rewriter.d.mts +16 -0
  27. package/dist/optimizer/pss-rewriter.d.mts.map +1 -0
  28. package/dist/optimizer/pss-rewriter.mjs +31 -0
  29. package/dist/optimizer/pss-rewriter.mjs.map +1 -0
  30. package/dist/optimizer/statistics.cjs +738 -0
  31. package/dist/optimizer/statistics.cjs.map +1 -0
  32. package/dist/optimizer/statistics.d.cts +389 -0
  33. package/dist/optimizer/statistics.d.cts.map +1 -0
  34. package/dist/optimizer/statistics.d.mts +389 -0
  35. package/dist/optimizer/statistics.d.mts.map +1 -0
  36. package/dist/optimizer/statistics.mjs +729 -0
  37. package/dist/optimizer/statistics.mjs.map +1 -0
  38. package/dist/sentry.cjs +13 -0
  39. package/dist/sentry.cjs.map +1 -0
  40. package/dist/sentry.d.cts +7 -0
  41. package/dist/sentry.d.cts.map +1 -0
  42. package/dist/sentry.d.mts +7 -0
  43. package/dist/sentry.d.mts.map +1 -0
  44. package/dist/sentry.mjs +13 -0
  45. package/dist/sentry.mjs.map +1 -0
  46. package/dist/sql/analyzer.cjs +242 -0
  47. package/dist/sql/analyzer.cjs.map +1 -0
  48. package/dist/sql/analyzer.d.cts +112 -0
  49. package/dist/sql/analyzer.d.cts.map +1 -0
  50. package/dist/sql/analyzer.d.mts +112 -0
  51. package/dist/sql/analyzer.d.mts.map +1 -0
  52. package/dist/sql/analyzer.mjs +240 -0
  53. package/dist/sql/analyzer.mjs.map +1 -0
  54. package/dist/sql/ast-utils.cjs +19 -0
  55. package/dist/sql/ast-utils.cjs.map +1 -0
  56. package/dist/sql/ast-utils.d.cts +9 -0
  57. package/dist/sql/ast-utils.d.cts.map +1 -0
  58. package/dist/sql/ast-utils.d.mts +9 -0
  59. package/dist/sql/ast-utils.d.mts.map +1 -0
  60. package/dist/sql/ast-utils.mjs +17 -0
  61. package/dist/sql/ast-utils.mjs.map +1 -0
  62. package/dist/sql/builder.cjs +94 -0
  63. package/dist/sql/builder.cjs.map +1 -0
  64. package/dist/sql/builder.d.cts +37 -0
  65. package/dist/sql/builder.d.cts.map +1 -0
  66. package/dist/sql/builder.d.mts +37 -0
  67. package/dist/sql/builder.d.mts.map +1 -0
  68. package/dist/sql/builder.mjs +94 -0
  69. package/dist/sql/builder.mjs.map +1 -0
  70. package/dist/sql/database.cjs +35 -0
  71. package/dist/sql/database.cjs.map +1 -0
  72. package/dist/sql/database.d.cts +91 -0
  73. package/dist/sql/database.d.cts.map +1 -0
  74. package/dist/sql/database.d.mts +91 -0
  75. package/dist/sql/database.d.mts.map +1 -0
  76. package/dist/sql/database.mjs +32 -0
  77. package/dist/sql/database.mjs.map +1 -0
  78. package/dist/sql/indexes.cjs +17 -0
  79. package/dist/sql/indexes.cjs.map +1 -0
  80. package/dist/sql/indexes.d.cts +14 -0
  81. package/dist/sql/indexes.d.cts.map +1 -0
  82. package/dist/sql/indexes.d.mts +14 -0
  83. package/dist/sql/indexes.d.mts.map +1 -0
  84. package/dist/sql/indexes.mjs +16 -0
  85. package/dist/sql/indexes.mjs.map +1 -0
  86. package/dist/sql/nudges.cjs +484 -0
  87. package/dist/sql/nudges.cjs.map +1 -0
  88. package/dist/sql/nudges.d.cts +21 -0
  89. package/dist/sql/nudges.d.cts.map +1 -0
  90. package/dist/sql/nudges.d.mts +21 -0
  91. package/dist/sql/nudges.d.mts.map +1 -0
  92. package/dist/sql/nudges.mjs +484 -0
  93. package/dist/sql/nudges.mjs.map +1 -0
  94. package/dist/sql/permutations.cjs +28 -0
  95. package/dist/sql/permutations.cjs.map +1 -0
  96. package/dist/sql/permutations.mjs +28 -0
  97. package/dist/sql/permutations.mjs.map +1 -0
  98. package/dist/sql/pg-identifier.cjs +216 -0
  99. package/dist/sql/pg-identifier.cjs.map +1 -0
  100. package/dist/sql/pg-identifier.d.cts +31 -0
  101. package/dist/sql/pg-identifier.d.cts.map +1 -0
  102. package/dist/sql/pg-identifier.d.mts +31 -0
  103. package/dist/sql/pg-identifier.d.mts.map +1 -0
  104. package/dist/sql/pg-identifier.mjs +216 -0
  105. package/dist/sql/pg-identifier.mjs.map +1 -0
  106. package/dist/sql/walker.cjs +314 -0
  107. package/dist/sql/walker.cjs.map +1 -0
  108. package/dist/sql/walker.d.cts +15 -0
  109. package/dist/sql/walker.d.cts.map +1 -0
  110. package/dist/sql/walker.d.mts +15 -0
  111. package/dist/sql/walker.d.mts.map +1 -0
  112. package/dist/sql/walker.mjs +313 -0
  113. package/dist/sql/walker.mjs.map +1 -0
  114. package/package.json +2 -1
  115. package/dist/index.cjs.map +0 -1
  116. package/dist/index.d.cts.map +0 -1
  117. package/dist/index.d.mts.map +0 -1
  118. package/dist/index.mjs.map +0 -1
@@ -0,0 +1,389 @@
1
+ 'use client';
2
+
3
+ import { Postgres, PostgresTransaction, PostgresVersion } from "../sql/database.mjs";
4
+ import { z } from "zod";
5
+
6
+ //#region src/optimizer/statistics.d.ts
7
+ type Path = string;
8
+ declare const StatisticsSource: z.ZodUnion<readonly [z.ZodObject<{
9
+ kind: z.ZodLiteral<"path">;
10
+ path: z.ZodString;
11
+ }, z.core.$strip>, z.ZodObject<{
12
+ kind: z.ZodLiteral<"inline">;
13
+ }, z.core.$strip>]>;
14
+ declare const ExportedStatsStatistics: z.ZodObject<{
15
+ stawidth: z.ZodNumber;
16
+ stainherit: z.ZodDefault<z.ZodBoolean>;
17
+ stadistinct: z.ZodNumber;
18
+ stanullfrac: z.ZodNumber;
19
+ stakind1: z.ZodNumber;
20
+ stakind2: z.ZodNumber;
21
+ stakind3: z.ZodNumber;
22
+ stakind4: z.ZodNumber;
23
+ stakind5: z.ZodNumber;
24
+ staop1: z.ZodString;
25
+ staop2: z.ZodString;
26
+ staop3: z.ZodString;
27
+ staop4: z.ZodString;
28
+ staop5: z.ZodString;
29
+ stacoll1: z.ZodString;
30
+ stacoll2: z.ZodString;
31
+ stacoll3: z.ZodString;
32
+ stacoll4: z.ZodString;
33
+ stacoll5: z.ZodString;
34
+ stanumbers1: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
35
+ stanumbers2: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
36
+ stanumbers3: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
37
+ stanumbers4: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
38
+ stanumbers5: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
39
+ stavalues1: z.ZodNullable<z.ZodArray<z.ZodAny>>;
40
+ stavalues2: z.ZodNullable<z.ZodArray<z.ZodAny>>;
41
+ stavalues3: z.ZodNullable<z.ZodArray<z.ZodAny>>;
42
+ stavalues4: z.ZodNullable<z.ZodArray<z.ZodAny>>;
43
+ stavalues5: z.ZodNullable<z.ZodArray<z.ZodAny>>;
44
+ }, z.core.$strip>;
45
+ declare const ExportedStatsColumns: z.ZodObject<{
46
+ columnName: z.ZodString;
47
+ attlen: z.ZodNullable<z.ZodNumber>;
48
+ stats: z.ZodNullable<z.ZodObject<{
49
+ stawidth: z.ZodNumber;
50
+ stainherit: z.ZodDefault<z.ZodBoolean>;
51
+ stadistinct: z.ZodNumber;
52
+ stanullfrac: z.ZodNumber;
53
+ stakind1: z.ZodNumber;
54
+ stakind2: z.ZodNumber;
55
+ stakind3: z.ZodNumber;
56
+ stakind4: z.ZodNumber;
57
+ stakind5: z.ZodNumber;
58
+ staop1: z.ZodString;
59
+ staop2: z.ZodString;
60
+ staop3: z.ZodString;
61
+ staop4: z.ZodString;
62
+ staop5: z.ZodString;
63
+ stacoll1: z.ZodString;
64
+ stacoll2: z.ZodString;
65
+ stacoll3: z.ZodString;
66
+ stacoll4: z.ZodString;
67
+ stacoll5: z.ZodString;
68
+ stanumbers1: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
69
+ stanumbers2: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
70
+ stanumbers3: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
71
+ stanumbers4: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
72
+ stanumbers5: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
73
+ stavalues1: z.ZodNullable<z.ZodArray<z.ZodAny>>;
74
+ stavalues2: z.ZodNullable<z.ZodArray<z.ZodAny>>;
75
+ stavalues3: z.ZodNullable<z.ZodArray<z.ZodAny>>;
76
+ stavalues4: z.ZodNullable<z.ZodArray<z.ZodAny>>;
77
+ stavalues5: z.ZodNullable<z.ZodArray<z.ZodAny>>;
78
+ }, z.core.$strip>>;
79
+ }, z.core.$strip>;
80
+ declare const ExportedStatsIndex: z.ZodObject<{
81
+ indexName: z.ZodString;
82
+ amname: z.ZodDefault<z.ZodString>;
83
+ relpages: z.ZodNumber;
84
+ reltuples: z.ZodNumber;
85
+ relallvisible: z.ZodNumber;
86
+ relallfrozen: z.ZodOptional<z.ZodNumber>;
87
+ fillfactor: z.ZodDefault<z.ZodNumber>;
88
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
89
+ attlen: z.ZodNullable<z.ZodNumber>;
90
+ }, z.core.$strip>>>;
91
+ }, z.core.$strip>;
92
+ declare const ExportedStatsV1: z.ZodObject<{
93
+ tableName: z.ZodString;
94
+ schemaName: z.ZodString;
95
+ relpages: z.ZodNumber;
96
+ reltuples: z.ZodNumber;
97
+ relallvisible: z.ZodNumber;
98
+ relallfrozen: z.ZodOptional<z.ZodNumber>;
99
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
100
+ columnName: z.ZodString;
101
+ attlen: z.ZodNullable<z.ZodNumber>;
102
+ stats: z.ZodNullable<z.ZodObject<{
103
+ stawidth: z.ZodNumber;
104
+ stainherit: z.ZodDefault<z.ZodBoolean>;
105
+ stadistinct: z.ZodNumber;
106
+ stanullfrac: z.ZodNumber;
107
+ stakind1: z.ZodNumber;
108
+ stakind2: z.ZodNumber;
109
+ stakind3: z.ZodNumber;
110
+ stakind4: z.ZodNumber;
111
+ stakind5: z.ZodNumber;
112
+ staop1: z.ZodString;
113
+ staop2: z.ZodString;
114
+ staop3: z.ZodString;
115
+ staop4: z.ZodString;
116
+ staop5: z.ZodString;
117
+ stacoll1: z.ZodString;
118
+ stacoll2: z.ZodString;
119
+ stacoll3: z.ZodString;
120
+ stacoll4: z.ZodString;
121
+ stacoll5: z.ZodString;
122
+ stanumbers1: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
123
+ stanumbers2: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
124
+ stanumbers3: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
125
+ stanumbers4: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
126
+ stanumbers5: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
127
+ stavalues1: z.ZodNullable<z.ZodArray<z.ZodAny>>;
128
+ stavalues2: z.ZodNullable<z.ZodArray<z.ZodAny>>;
129
+ stavalues3: z.ZodNullable<z.ZodArray<z.ZodAny>>;
130
+ stavalues4: z.ZodNullable<z.ZodArray<z.ZodAny>>;
131
+ stavalues5: z.ZodNullable<z.ZodArray<z.ZodAny>>;
132
+ }, z.core.$strip>>;
133
+ }, z.core.$strip>>>;
134
+ indexes: z.ZodArray<z.ZodObject<{
135
+ indexName: z.ZodString;
136
+ amname: z.ZodDefault<z.ZodString>;
137
+ relpages: z.ZodNumber;
138
+ reltuples: z.ZodNumber;
139
+ relallvisible: z.ZodNumber;
140
+ relallfrozen: z.ZodOptional<z.ZodNumber>;
141
+ fillfactor: z.ZodDefault<z.ZodNumber>;
142
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
143
+ attlen: z.ZodNullable<z.ZodNumber>;
144
+ }, z.core.$strip>>>;
145
+ }, z.core.$strip>>;
146
+ }, z.core.$strip>;
147
+ declare const ExportedStats: z.ZodUnion<readonly [z.ZodObject<{
148
+ tableName: z.ZodString;
149
+ schemaName: z.ZodString;
150
+ relpages: z.ZodNumber;
151
+ reltuples: z.ZodNumber;
152
+ relallvisible: z.ZodNumber;
153
+ relallfrozen: z.ZodOptional<z.ZodNumber>;
154
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
155
+ columnName: z.ZodString;
156
+ attlen: z.ZodNullable<z.ZodNumber>;
157
+ stats: z.ZodNullable<z.ZodObject<{
158
+ stawidth: z.ZodNumber;
159
+ stainherit: z.ZodDefault<z.ZodBoolean>;
160
+ stadistinct: z.ZodNumber;
161
+ stanullfrac: z.ZodNumber;
162
+ stakind1: z.ZodNumber;
163
+ stakind2: z.ZodNumber;
164
+ stakind3: z.ZodNumber;
165
+ stakind4: z.ZodNumber;
166
+ stakind5: z.ZodNumber;
167
+ staop1: z.ZodString;
168
+ staop2: z.ZodString;
169
+ staop3: z.ZodString;
170
+ staop4: z.ZodString;
171
+ staop5: z.ZodString;
172
+ stacoll1: z.ZodString;
173
+ stacoll2: z.ZodString;
174
+ stacoll3: z.ZodString;
175
+ stacoll4: z.ZodString;
176
+ stacoll5: z.ZodString;
177
+ stanumbers1: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
178
+ stanumbers2: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
179
+ stanumbers3: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
180
+ stanumbers4: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
181
+ stanumbers5: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
182
+ stavalues1: z.ZodNullable<z.ZodArray<z.ZodAny>>;
183
+ stavalues2: z.ZodNullable<z.ZodArray<z.ZodAny>>;
184
+ stavalues3: z.ZodNullable<z.ZodArray<z.ZodAny>>;
185
+ stavalues4: z.ZodNullable<z.ZodArray<z.ZodAny>>;
186
+ stavalues5: z.ZodNullable<z.ZodArray<z.ZodAny>>;
187
+ }, z.core.$strip>>;
188
+ }, z.core.$strip>>>;
189
+ indexes: z.ZodArray<z.ZodObject<{
190
+ indexName: z.ZodString;
191
+ amname: z.ZodDefault<z.ZodString>;
192
+ relpages: z.ZodNumber;
193
+ reltuples: z.ZodNumber;
194
+ relallvisible: z.ZodNumber;
195
+ relallfrozen: z.ZodOptional<z.ZodNumber>;
196
+ fillfactor: z.ZodDefault<z.ZodNumber>;
197
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
198
+ attlen: z.ZodNullable<z.ZodNumber>;
199
+ }, z.core.$strip>>>;
200
+ }, z.core.$strip>>;
201
+ }, z.core.$strip>]>;
202
+ type ExportedStats = z.infer<typeof ExportedStats>;
203
+ declare const StatisticsMode: z.ZodDiscriminatedUnion<[z.ZodObject<{
204
+ kind: z.ZodLiteral<"fromAssumption">;
205
+ reltuples: z.ZodNumber;
206
+ }, z.core.$strip>, z.ZodObject<{
207
+ kind: z.ZodLiteral<"fromStatisticsExport">;
208
+ stats: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
209
+ tableName: z.ZodString;
210
+ schemaName: z.ZodString;
211
+ relpages: z.ZodNumber;
212
+ reltuples: z.ZodNumber;
213
+ relallvisible: z.ZodNumber;
214
+ relallfrozen: z.ZodOptional<z.ZodNumber>;
215
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
216
+ columnName: z.ZodString;
217
+ attlen: z.ZodNullable<z.ZodNumber>;
218
+ stats: z.ZodNullable<z.ZodObject<{
219
+ stawidth: z.ZodNumber;
220
+ stainherit: z.ZodDefault<z.ZodBoolean>;
221
+ stadistinct: z.ZodNumber;
222
+ stanullfrac: z.ZodNumber;
223
+ stakind1: z.ZodNumber;
224
+ stakind2: z.ZodNumber;
225
+ stakind3: z.ZodNumber;
226
+ stakind4: z.ZodNumber;
227
+ stakind5: z.ZodNumber;
228
+ staop1: z.ZodString;
229
+ staop2: z.ZodString;
230
+ staop3: z.ZodString;
231
+ staop4: z.ZodString;
232
+ staop5: z.ZodString;
233
+ stacoll1: z.ZodString;
234
+ stacoll2: z.ZodString;
235
+ stacoll3: z.ZodString;
236
+ stacoll4: z.ZodString;
237
+ stacoll5: z.ZodString;
238
+ stanumbers1: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
239
+ stanumbers2: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
240
+ stanumbers3: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
241
+ stanumbers4: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
242
+ stanumbers5: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
243
+ stavalues1: z.ZodNullable<z.ZodArray<z.ZodAny>>;
244
+ stavalues2: z.ZodNullable<z.ZodArray<z.ZodAny>>;
245
+ stavalues3: z.ZodNullable<z.ZodArray<z.ZodAny>>;
246
+ stavalues4: z.ZodNullable<z.ZodArray<z.ZodAny>>;
247
+ stavalues5: z.ZodNullable<z.ZodArray<z.ZodAny>>;
248
+ }, z.core.$strip>>;
249
+ }, z.core.$strip>>>;
250
+ indexes: z.ZodArray<z.ZodObject<{
251
+ indexName: z.ZodString;
252
+ amname: z.ZodDefault<z.ZodString>;
253
+ relpages: z.ZodNumber;
254
+ reltuples: z.ZodNumber;
255
+ relallvisible: z.ZodNumber;
256
+ relallfrozen: z.ZodOptional<z.ZodNumber>;
257
+ fillfactor: z.ZodDefault<z.ZodNumber>;
258
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
259
+ attlen: z.ZodNullable<z.ZodNumber>;
260
+ }, z.core.$strip>>>;
261
+ }, z.core.$strip>>;
262
+ }, z.core.$strip>]>>;
263
+ source: z.ZodUnion<readonly [z.ZodObject<{
264
+ kind: z.ZodLiteral<"path">;
265
+ path: z.ZodString;
266
+ }, z.core.$strip>, z.ZodObject<{
267
+ kind: z.ZodLiteral<"inline">;
268
+ }, z.core.$strip>]>;
269
+ }, z.core.$strip>], "kind">;
270
+ type StatisticsMode = z.infer<typeof StatisticsMode>;
271
+ declare class Statistics {
272
+ private readonly db;
273
+ readonly postgresVersion: PostgresVersion;
274
+ readonly ownMetadata: ExportedStats[];
275
+ readonly mode: StatisticsMode;
276
+ private readonly exportedMetadata;
277
+ static readonly defaultStatsMode: StatisticsMode;
278
+ constructor(db: Postgres, postgresVersion: PostgresVersion, ownMetadata: ExportedStats[], statsMode: StatisticsMode);
279
+ static statsModeFromAssumption({
280
+ reltuples
281
+ }: {
282
+ reltuples: number;
283
+ }): StatisticsMode;
284
+ /**
285
+ * Create a statistic mode from stats exported from another database
286
+ **/
287
+ static statsModeFromExport(stats: ExportedStats[]): StatisticsMode;
288
+ static fromPostgres(db: Postgres, statsMode: StatisticsMode): Promise<Statistics>;
289
+ restoreStats(tx: PostgresTransaction): Promise<{
290
+ tablesNotInExports: string[];
291
+ tablesNotInTest: string[];
292
+ tableNotAnalyzed: string[];
293
+ statsMissing: {
294
+ statistic: string;
295
+ table: string;
296
+ schema: string;
297
+ column: string;
298
+ }[];
299
+ }>;
300
+ approximateTotalRows(): number;
301
+ /**
302
+ * We have to cast stavaluesN to the correct type
303
+ * This derives that type for us so it can be used in `array_in`
304
+ */
305
+ private stavalueKind;
306
+ /**
307
+ * PostgreSQL's anyarray columns in pg_statistic can hold arrays of arrays
308
+ * for columns with array types (e.g. text[], int4[]). These create
309
+ * multidimensional arrays that can be "ragged" (sub-arrays with different
310
+ * lengths). jsonb_to_recordset can't reconstruct ragged multidimensional
311
+ * arrays from JSON, so we need to drop these values.
312
+ */
313
+ private static safeStavalues;
314
+ private restoreStats17;
315
+ static dumpStats(db: PostgresTransaction, postgresVersion: PostgresVersion, kind: "anonymous" | "full"): Promise<ExportedStats[]>;
316
+ /**
317
+ * Returns all indexes in the database.
318
+ * ONLY handles regular btree indexes
319
+ */
320
+ getExistingIndexes(): Promise<IndexedTable[]>;
321
+ }
322
+ type ColumnMetadata = {
323
+ columnName: string;
324
+ dataType: string;
325
+ isNullable: boolean;
326
+ stats: ColumnStats | null;
327
+ };
328
+ type ColumnStats = {
329
+ stainherit: boolean;
330
+ stanullfrac: number;
331
+ stawidth: number;
332
+ stadistinct: number;
333
+ stakind1: number;
334
+ stakind2: number;
335
+ stakind3: number;
336
+ stakind4: number;
337
+ stakind5: number;
338
+ staop1: number;
339
+ staop2: number;
340
+ staop3: number;
341
+ staop4: number;
342
+ staop5: number;
343
+ stacoll1: number;
344
+ stacoll2: number;
345
+ stacoll3: number;
346
+ stacoll4: number;
347
+ stacoll5: number;
348
+ stanumbers1: number;
349
+ stanumbers2: number;
350
+ stanumbers3: number;
351
+ stanumbers4: number;
352
+ stanumbers5: number;
353
+ };
354
+ type TableMetadata = {
355
+ tableName: string;
356
+ schemaName: string;
357
+ reltuples: number;
358
+ relpages: number;
359
+ relallvisible: number;
360
+ relallfrozen?: number;
361
+ columns: ColumnMetadata[];
362
+ };
363
+ type TableName = string;
364
+ type TableStats = {
365
+ tupleEstimate: bigint;
366
+ pageCount: number;
367
+ };
368
+ type SerializeResult = {
369
+ schema: TableMetadata[];
370
+ serialized: string;
371
+ sampledRecords: Record<TableName, number>;
372
+ };
373
+ type IndexOrder = "ASC" | "DESC";
374
+ type IndexedTable = {
375
+ index_columns: Array<{
376
+ name: string;
377
+ order: IndexOrder;
378
+ opclass?: string;
379
+ }>;
380
+ is_primary: boolean;
381
+ is_unique: boolean;
382
+ index_name: string;
383
+ index_type: "btree" | "gin" | (string & {});
384
+ schema_name: string;
385
+ table_name: string;
386
+ };
387
+ //#endregion
388
+ export { ColumnMetadata, ExportedStats, ExportedStatsColumns, ExportedStatsIndex, ExportedStatsStatistics, ExportedStatsV1, IndexOrder, IndexedTable, Path, SerializeResult, Statistics, StatisticsMode, StatisticsSource, TableMetadata, TableStats };
389
+ //# sourceMappingURL=statistics.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statistics.d.mts","names":[],"sources":["../../src/optimizer/statistics.ts"],"mappings":"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"}