@query-doctor/core 0.7.2 → 0.8.0-rc.10

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.
package/dist/index.d.cts CHANGED
@@ -186,6 +186,7 @@ declare const ExportedStatsStatistics: z.ZodObject<{
186
186
  }, z.core.$strip>;
187
187
  declare const ExportedStatsColumns: z.ZodObject<{
188
188
  columnName: z.ZodString;
189
+ attlen: z.ZodNullable<z.ZodNumber>;
189
190
  stats: z.ZodNullable<z.ZodObject<{
190
191
  stawidth: z.ZodNumber;
191
192
  stainherit: z.ZodDefault<z.ZodBoolean>;
@@ -220,10 +221,15 @@ declare const ExportedStatsColumns: z.ZodObject<{
220
221
  }, z.core.$strip>;
221
222
  declare const ExportedStatsIndex: z.ZodObject<{
222
223
  indexName: z.ZodString;
224
+ amname: z.ZodDefault<z.ZodString>;
223
225
  relpages: z.ZodNumber;
224
226
  reltuples: z.ZodNumber;
225
227
  relallvisible: z.ZodNumber;
226
228
  relallfrozen: z.ZodOptional<z.ZodNumber>;
229
+ fillfactor: z.ZodDefault<z.ZodNumber>;
230
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
231
+ attlen: z.ZodNullable<z.ZodNumber>;
232
+ }, z.core.$strip>>>;
227
233
  }, z.core.$strip>;
228
234
  declare const ExportedStatsV1: z.ZodObject<{
229
235
  tableName: z.ZodString;
@@ -232,8 +238,9 @@ declare const ExportedStatsV1: z.ZodObject<{
232
238
  reltuples: z.ZodNumber;
233
239
  relallvisible: z.ZodNumber;
234
240
  relallfrozen: z.ZodOptional<z.ZodNumber>;
235
- columns: z.ZodNullable<z.ZodArray<z.ZodObject<{
241
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
236
242
  columnName: z.ZodString;
243
+ attlen: z.ZodNullable<z.ZodNumber>;
237
244
  stats: z.ZodNullable<z.ZodObject<{
238
245
  stawidth: z.ZodNumber;
239
246
  stainherit: z.ZodDefault<z.ZodBoolean>;
@@ -268,10 +275,15 @@ declare const ExportedStatsV1: z.ZodObject<{
268
275
  }, z.core.$strip>>>;
269
276
  indexes: z.ZodArray<z.ZodObject<{
270
277
  indexName: z.ZodString;
278
+ amname: z.ZodDefault<z.ZodString>;
271
279
  relpages: z.ZodNumber;
272
280
  reltuples: z.ZodNumber;
273
281
  relallvisible: z.ZodNumber;
274
282
  relallfrozen: z.ZodOptional<z.ZodNumber>;
283
+ fillfactor: z.ZodDefault<z.ZodNumber>;
284
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
285
+ attlen: z.ZodNullable<z.ZodNumber>;
286
+ }, z.core.$strip>>>;
275
287
  }, z.core.$strip>>;
276
288
  }, z.core.$strip>;
277
289
  declare const ExportedStats: z.ZodUnion<readonly [z.ZodObject<{
@@ -281,8 +293,9 @@ declare const ExportedStats: z.ZodUnion<readonly [z.ZodObject<{
281
293
  reltuples: z.ZodNumber;
282
294
  relallvisible: z.ZodNumber;
283
295
  relallfrozen: z.ZodOptional<z.ZodNumber>;
284
- columns: z.ZodNullable<z.ZodArray<z.ZodObject<{
296
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
285
297
  columnName: z.ZodString;
298
+ attlen: z.ZodNullable<z.ZodNumber>;
286
299
  stats: z.ZodNullable<z.ZodObject<{
287
300
  stawidth: z.ZodNumber;
288
301
  stainherit: z.ZodDefault<z.ZodBoolean>;
@@ -317,17 +330,21 @@ declare const ExportedStats: z.ZodUnion<readonly [z.ZodObject<{
317
330
  }, z.core.$strip>>>;
318
331
  indexes: z.ZodArray<z.ZodObject<{
319
332
  indexName: z.ZodString;
333
+ amname: z.ZodDefault<z.ZodString>;
320
334
  relpages: z.ZodNumber;
321
335
  reltuples: z.ZodNumber;
322
336
  relallvisible: z.ZodNumber;
323
337
  relallfrozen: z.ZodOptional<z.ZodNumber>;
338
+ fillfactor: z.ZodDefault<z.ZodNumber>;
339
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
340
+ attlen: z.ZodNullable<z.ZodNumber>;
341
+ }, z.core.$strip>>>;
324
342
  }, z.core.$strip>>;
325
343
  }, z.core.$strip>]>;
326
344
  type ExportedStats = z.infer<typeof ExportedStats>;
327
345
  declare const StatisticsMode: z.ZodDiscriminatedUnion<[z.ZodObject<{
328
346
  kind: z.ZodLiteral<"fromAssumption">;
329
347
  reltuples: z.ZodNumber;
330
- relpages: z.ZodNumber;
331
348
  }, z.core.$strip>, z.ZodObject<{
332
349
  kind: z.ZodLiteral<"fromStatisticsExport">;
333
350
  stats: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
@@ -337,8 +354,9 @@ declare const StatisticsMode: z.ZodDiscriminatedUnion<[z.ZodObject<{
337
354
  reltuples: z.ZodNumber;
338
355
  relallvisible: z.ZodNumber;
339
356
  relallfrozen: z.ZodOptional<z.ZodNumber>;
340
- columns: z.ZodNullable<z.ZodArray<z.ZodObject<{
357
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
341
358
  columnName: z.ZodString;
359
+ attlen: z.ZodNullable<z.ZodNumber>;
342
360
  stats: z.ZodNullable<z.ZodObject<{
343
361
  stawidth: z.ZodNumber;
344
362
  stainherit: z.ZodDefault<z.ZodBoolean>;
@@ -373,10 +391,15 @@ declare const StatisticsMode: z.ZodDiscriminatedUnion<[z.ZodObject<{
373
391
  }, z.core.$strip>>>;
374
392
  indexes: z.ZodArray<z.ZodObject<{
375
393
  indexName: z.ZodString;
394
+ amname: z.ZodDefault<z.ZodString>;
376
395
  relpages: z.ZodNumber;
377
396
  reltuples: z.ZodNumber;
378
397
  relallvisible: z.ZodNumber;
379
398
  relallfrozen: z.ZodOptional<z.ZodNumber>;
399
+ fillfactor: z.ZodDefault<z.ZodNumber>;
400
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
401
+ attlen: z.ZodNullable<z.ZodNumber>;
402
+ }, z.core.$strip>>>;
380
403
  }, z.core.$strip>>;
381
404
  }, z.core.$strip>]>>;
382
405
  source: z.ZodUnion<readonly [z.ZodObject<{
@@ -396,11 +419,9 @@ declare class Statistics {
396
419
  static readonly defaultStatsMode: StatisticsMode;
397
420
  constructor(db: Postgres, postgresVersion: PostgresVersion, ownMetadata: ExportedStats[], statsMode: StatisticsMode);
398
421
  static statsModeFromAssumption({
399
- reltuples,
400
- relpages
422
+ reltuples
401
423
  }: {
402
424
  reltuples: number;
403
- relpages: number;
404
425
  }): StatisticsMode;
405
426
  /**
406
427
  * Create a statistic mode from stats exported from another database
@@ -753,5 +774,8 @@ declare class PssRewriter {
753
774
  private problematicKeywords;
754
775
  }
755
776
  //#endregion
756
- export { AnalysisResult, Analyzer, ColumnMetadata, DatabaseDriver, DiscoveredColumnReference, ExportedStats, ExportedStatsColumns, ExportedStatsIndex, ExportedStatsStatistics, ExportedStatsV1, IndexIdentifier, IndexOptimizer, IndexOrder, IndexRecommendation, IndexedTable, JsonbOperator, Nudge, OptimizeResult, PROCEED, Parameter, Parser, Path, PermutedIndexCandidate, PgIdentifier, Postgres, PostgresConnectionInput, PostgresExplainResult, PostgresExplainStage, PostgresExplainStageCommon, PostgresExplainStageSchema, PostgresFactory, PostgresQueryBuilder, PostgresQueryBuilderCommand, PostgresStage, PostgresStageId, PostgresTransaction, PostgresVersion, PssRewriter, RootIndexCandidate, SKIP, SQLCommenterExtraction, SQLCommenterTag, SerializeResult, SortContext, Statistics, StatisticsMode, StatisticsSource, TableMetadata, TableReference, TableStats, dropIndex, ignoredIdentifier, isIndexProbablyDroppable, isIndexSupported, parseNudges };
777
+ //#region src/sentry.d.ts
778
+ declare function deriveSentryEnvironment(url: string | undefined): string;
779
+ //#endregion
780
+ export { AnalysisResult, Analyzer, ColumnMetadata, DatabaseDriver, DiscoveredColumnReference, ExportedStats, ExportedStatsColumns, ExportedStatsIndex, ExportedStatsStatistics, ExportedStatsV1, IndexIdentifier, IndexOptimizer, IndexOrder, IndexRecommendation, IndexedTable, JsonbOperator, Nudge, OptimizeResult, PROCEED, Parameter, Parser, Path, PermutedIndexCandidate, PgIdentifier, Postgres, PostgresConnectionInput, PostgresExplainResult, PostgresExplainStage, PostgresExplainStageCommon, PostgresExplainStageSchema, PostgresFactory, PostgresQueryBuilder, PostgresQueryBuilderCommand, PostgresStage, PostgresStageId, PostgresTransaction, PostgresVersion, PssRewriter, RootIndexCandidate, SKIP, SQLCommenterExtraction, SQLCommenterTag, SerializeResult, SortContext, Statistics, StatisticsMode, StatisticsSource, TableMetadata, TableReference, TableStats, deriveSentryEnvironment, dropIndex, ignoredIdentifier, isIndexProbablyDroppable, isIndexSupported, parseNudges };
757
781
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/sql/pg-identifier.ts","../src/sql/builder.ts","../src/sql/database.ts","../src/optimizer/statistics.ts","../src/optimizer/genalgo.ts","../src/sql/ast-utils.ts","../src/sql/nudges.ts","../src/sql/walker.ts","../src/sql/analyzer.ts","../src/sql/indexes.ts","../src/optimizer/pss-rewriter.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/sql/pg-identifier.ts","../src/sql/builder.ts","../src/sql/database.ts","../src/optimizer/statistics.ts","../src/optimizer/genalgo.ts","../src/sql/ast-utils.ts","../src/sql/nudges.ts","../src/sql/walker.ts","../src/sql/analyzer.ts","../src/sql/indexes.ts","../src/optimizer/pss-rewriter.ts","../src/sentry.ts"],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -186,6 +186,7 @@ declare const ExportedStatsStatistics: z.ZodObject<{
186
186
  }, z.core.$strip>;
187
187
  declare const ExportedStatsColumns: z.ZodObject<{
188
188
  columnName: z.ZodString;
189
+ attlen: z.ZodNullable<z.ZodNumber>;
189
190
  stats: z.ZodNullable<z.ZodObject<{
190
191
  stawidth: z.ZodNumber;
191
192
  stainherit: z.ZodDefault<z.ZodBoolean>;
@@ -220,10 +221,15 @@ declare const ExportedStatsColumns: z.ZodObject<{
220
221
  }, z.core.$strip>;
221
222
  declare const ExportedStatsIndex: z.ZodObject<{
222
223
  indexName: z.ZodString;
224
+ amname: z.ZodDefault<z.ZodString>;
223
225
  relpages: z.ZodNumber;
224
226
  reltuples: z.ZodNumber;
225
227
  relallvisible: z.ZodNumber;
226
228
  relallfrozen: z.ZodOptional<z.ZodNumber>;
229
+ fillfactor: z.ZodDefault<z.ZodNumber>;
230
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
231
+ attlen: z.ZodNullable<z.ZodNumber>;
232
+ }, z.core.$strip>>>;
227
233
  }, z.core.$strip>;
228
234
  declare const ExportedStatsV1: z.ZodObject<{
229
235
  tableName: z.ZodString;
@@ -232,8 +238,9 @@ declare const ExportedStatsV1: z.ZodObject<{
232
238
  reltuples: z.ZodNumber;
233
239
  relallvisible: z.ZodNumber;
234
240
  relallfrozen: z.ZodOptional<z.ZodNumber>;
235
- columns: z.ZodNullable<z.ZodArray<z.ZodObject<{
241
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
236
242
  columnName: z.ZodString;
243
+ attlen: z.ZodNullable<z.ZodNumber>;
237
244
  stats: z.ZodNullable<z.ZodObject<{
238
245
  stawidth: z.ZodNumber;
239
246
  stainherit: z.ZodDefault<z.ZodBoolean>;
@@ -268,10 +275,15 @@ declare const ExportedStatsV1: z.ZodObject<{
268
275
  }, z.core.$strip>>>;
269
276
  indexes: z.ZodArray<z.ZodObject<{
270
277
  indexName: z.ZodString;
278
+ amname: z.ZodDefault<z.ZodString>;
271
279
  relpages: z.ZodNumber;
272
280
  reltuples: z.ZodNumber;
273
281
  relallvisible: z.ZodNumber;
274
282
  relallfrozen: z.ZodOptional<z.ZodNumber>;
283
+ fillfactor: z.ZodDefault<z.ZodNumber>;
284
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
285
+ attlen: z.ZodNullable<z.ZodNumber>;
286
+ }, z.core.$strip>>>;
275
287
  }, z.core.$strip>>;
276
288
  }, z.core.$strip>;
277
289
  declare const ExportedStats: z.ZodUnion<readonly [z.ZodObject<{
@@ -281,8 +293,9 @@ declare const ExportedStats: z.ZodUnion<readonly [z.ZodObject<{
281
293
  reltuples: z.ZodNumber;
282
294
  relallvisible: z.ZodNumber;
283
295
  relallfrozen: z.ZodOptional<z.ZodNumber>;
284
- columns: z.ZodNullable<z.ZodArray<z.ZodObject<{
296
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
285
297
  columnName: z.ZodString;
298
+ attlen: z.ZodNullable<z.ZodNumber>;
286
299
  stats: z.ZodNullable<z.ZodObject<{
287
300
  stawidth: z.ZodNumber;
288
301
  stainherit: z.ZodDefault<z.ZodBoolean>;
@@ -317,17 +330,21 @@ declare const ExportedStats: z.ZodUnion<readonly [z.ZodObject<{
317
330
  }, z.core.$strip>>>;
318
331
  indexes: z.ZodArray<z.ZodObject<{
319
332
  indexName: z.ZodString;
333
+ amname: z.ZodDefault<z.ZodString>;
320
334
  relpages: z.ZodNumber;
321
335
  reltuples: z.ZodNumber;
322
336
  relallvisible: z.ZodNumber;
323
337
  relallfrozen: z.ZodOptional<z.ZodNumber>;
338
+ fillfactor: z.ZodDefault<z.ZodNumber>;
339
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
340
+ attlen: z.ZodNullable<z.ZodNumber>;
341
+ }, z.core.$strip>>>;
324
342
  }, z.core.$strip>>;
325
343
  }, z.core.$strip>]>;
326
344
  type ExportedStats = z.infer<typeof ExportedStats>;
327
345
  declare const StatisticsMode: z.ZodDiscriminatedUnion<[z.ZodObject<{
328
346
  kind: z.ZodLiteral<"fromAssumption">;
329
347
  reltuples: z.ZodNumber;
330
- relpages: z.ZodNumber;
331
348
  }, z.core.$strip>, z.ZodObject<{
332
349
  kind: z.ZodLiteral<"fromStatisticsExport">;
333
350
  stats: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
@@ -337,8 +354,9 @@ declare const StatisticsMode: z.ZodDiscriminatedUnion<[z.ZodObject<{
337
354
  reltuples: z.ZodNumber;
338
355
  relallvisible: z.ZodNumber;
339
356
  relallfrozen: z.ZodOptional<z.ZodNumber>;
340
- columns: z.ZodNullable<z.ZodArray<z.ZodObject<{
357
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
341
358
  columnName: z.ZodString;
359
+ attlen: z.ZodNullable<z.ZodNumber>;
342
360
  stats: z.ZodNullable<z.ZodObject<{
343
361
  stawidth: z.ZodNumber;
344
362
  stainherit: z.ZodDefault<z.ZodBoolean>;
@@ -373,10 +391,15 @@ declare const StatisticsMode: z.ZodDiscriminatedUnion<[z.ZodObject<{
373
391
  }, z.core.$strip>>>;
374
392
  indexes: z.ZodArray<z.ZodObject<{
375
393
  indexName: z.ZodString;
394
+ amname: z.ZodDefault<z.ZodString>;
376
395
  relpages: z.ZodNumber;
377
396
  reltuples: z.ZodNumber;
378
397
  relallvisible: z.ZodNumber;
379
398
  relallfrozen: z.ZodOptional<z.ZodNumber>;
399
+ fillfactor: z.ZodDefault<z.ZodNumber>;
400
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
401
+ attlen: z.ZodNullable<z.ZodNumber>;
402
+ }, z.core.$strip>>>;
380
403
  }, z.core.$strip>>;
381
404
  }, z.core.$strip>]>>;
382
405
  source: z.ZodUnion<readonly [z.ZodObject<{
@@ -396,11 +419,9 @@ declare class Statistics {
396
419
  static readonly defaultStatsMode: StatisticsMode;
397
420
  constructor(db: Postgres, postgresVersion: PostgresVersion, ownMetadata: ExportedStats[], statsMode: StatisticsMode);
398
421
  static statsModeFromAssumption({
399
- reltuples,
400
- relpages
422
+ reltuples
401
423
  }: {
402
424
  reltuples: number;
403
- relpages: number;
404
425
  }): StatisticsMode;
405
426
  /**
406
427
  * Create a statistic mode from stats exported from another database
@@ -753,5 +774,8 @@ declare class PssRewriter {
753
774
  private problematicKeywords;
754
775
  }
755
776
  //#endregion
756
- export { AnalysisResult, Analyzer, ColumnMetadata, DatabaseDriver, DiscoveredColumnReference, ExportedStats, ExportedStatsColumns, ExportedStatsIndex, ExportedStatsStatistics, ExportedStatsV1, IndexIdentifier, IndexOptimizer, IndexOrder, IndexRecommendation, IndexedTable, JsonbOperator, Nudge, OptimizeResult, PROCEED, Parameter, Parser, Path, PermutedIndexCandidate, PgIdentifier, Postgres, PostgresConnectionInput, PostgresExplainResult, PostgresExplainStage, PostgresExplainStageCommon, PostgresExplainStageSchema, PostgresFactory, PostgresQueryBuilder, PostgresQueryBuilderCommand, PostgresStage, PostgresStageId, PostgresTransaction, PostgresVersion, PssRewriter, RootIndexCandidate, SKIP, SQLCommenterExtraction, SQLCommenterTag, SerializeResult, SortContext, Statistics, StatisticsMode, StatisticsSource, TableMetadata, TableReference, TableStats, dropIndex, ignoredIdentifier, isIndexProbablyDroppable, isIndexSupported, parseNudges };
777
+ //#region src/sentry.d.ts
778
+ declare function deriveSentryEnvironment(url: string | undefined): string;
779
+ //#endregion
780
+ export { AnalysisResult, Analyzer, ColumnMetadata, DatabaseDriver, DiscoveredColumnReference, ExportedStats, ExportedStatsColumns, ExportedStatsIndex, ExportedStatsStatistics, ExportedStatsV1, IndexIdentifier, IndexOptimizer, IndexOrder, IndexRecommendation, IndexedTable, JsonbOperator, Nudge, OptimizeResult, PROCEED, Parameter, Parser, Path, PermutedIndexCandidate, PgIdentifier, Postgres, PostgresConnectionInput, PostgresExplainResult, PostgresExplainStage, PostgresExplainStageCommon, PostgresExplainStageSchema, PostgresFactory, PostgresQueryBuilder, PostgresQueryBuilderCommand, PostgresStage, PostgresStageId, PostgresTransaction, PostgresVersion, PssRewriter, RootIndexCandidate, SKIP, SQLCommenterExtraction, SQLCommenterTag, SerializeResult, SortContext, Statistics, StatisticsMode, StatisticsSource, TableMetadata, TableReference, TableStats, deriveSentryEnvironment, dropIndex, ignoredIdentifier, isIndexProbablyDroppable, isIndexSupported, parseNudges };
757
781
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/sql/pg-identifier.ts","../src/sql/builder.ts","../src/sql/database.ts","../src/optimizer/statistics.ts","../src/optimizer/genalgo.ts","../src/sql/ast-utils.ts","../src/sql/nudges.ts","../src/sql/walker.ts","../src/sql/analyzer.ts","../src/sql/indexes.ts","../src/optimizer/pss-rewriter.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/sql/pg-identifier.ts","../src/sql/builder.ts","../src/sql/database.ts","../src/optimizer/statistics.ts","../src/optimizer/genalgo.ts","../src/sql/ast-utils.ts","../src/sql/nudges.ts","../src/sql/walker.ts","../src/sql/analyzer.ts","../src/sql/indexes.ts","../src/optimizer/pss-rewriter.ts","../src/sentry.ts"],"mappings":";;;;;;;;;;;cAKa,YAAA;EAAA,iBAEQ,KAAA;EAAA,iBACA,MAAA;EAAA,QAFZ,WAAA,CAAA;EA+BoC;;;;EAAA,OAtBpC,UAAA,CAAW,UAAA,WAAqB,YAAA;EAPpB;;;;;;EAAA,OA6BZ,SAAA,CAAA,GAAa,WAAA,YAAuB,YAAA,MAAkB,YAAA;EAe7D,QAAA,CAAA;EAOA,MAAA,CAAA;EAAA,wBAMwB,gBAAA;AAAA;;;KC/Dd,2BAAA;AAAA,cAKC,oBAAA;EAAA,QASS,KAAA;EAAA,iBARH,QAAA;EAAA,QACT,eAAA;EAAA,QACA,YAAA;EAAA,QACA,SAAA;EAAA,QACA,UAAA;EAAA,QAEA,iBAAA;cAEY,KAAA;EAAA,IAEhB,QAAA,CAAA;EAAA,OAIG,WAAA,CAAY,UAAA,UAAoB,IAAA,GAAO,YAAA,GAAY,oBAAA;EAS1D,MAAA,CAAO,OAAA,EAAS,2BAAA,EAA6B,KAAA;EAU7C,SAAA,CAAU,KAAA;EAKV,UAAA,CAAA;EAKA,OAAA,CAAQ,KAAA;EAKR,YAAA,CAAa,UAAA,EAAY,MAAA,CAAO,SAAA;EAKhC,YAAA,CAAa,KAAA;EAKb,KAAA,CAAA;ED7BoB;ECuCpB,UAAA,CAAA;;;;UAUQ,mBAAA;EAAA,QASA,eAAA;EAAA,QAaA,eAAA;AAAA;AAAA,KAeE,SAAA;;;cCxHC,eAAA,EAAe,CAAA,CAAA,IAAA,CAAA,WAAA,CAAA,CAAA,CAAA,SAAA;AAAA,KAChB,eAAA,GAAkB,CAAA,CAAE,KAAA,QAAa,eAAA;AAAA,UAE5B,mBAAA;EFDJ;;;EEKX,IAAA,IAAQ,KAAA,UAAe,MAAA,eAAqB,OAAA,CAAQ,CAAA;AAAA;;;;;UAOrC,QAAA,SAAiB,mBAAA;EAChC,WAAA,IAAe,QAAA,GAAW,EAAA,EAAI,mBAAA,KAAwB,OAAA,CAAQ,CAAA,IAAK,OAAA,CAAQ,CAAA;EAC3E,MAAA,KACE,KAAA,UACA,MAAA,cACA,OAAA;IAAY,IAAA;EAAA,IACX,cAAA,CAAe,CAAA;EAElB,SAAA,IAAa,OAAA,CAAQ,eAAA;AAAA;AAAA,KAGX,uBAAA;EACV,GAAA;AAAA;AAAA,KAGU,eAAA,IAAmB,KAAA,EAAO,uBAAA,KAA4B,QAAA;AAAA,cAGpD,OAAA;AAAA,KACF,eAAA;EAAA,CAA8B,OAAA;AAAA;AAAA,KAE9B,aAAA;AAAA,KASA,0BAAA;EACV,WAAA,EAAa,aAAA;EAGb,SAAA,EAAW,eAAA;EACX,KAAA,GAAQ,oBAAA;EACR,YAAA;EACA,YAAA;AAAA;AAAA,KAGU,oBAAA,IACP,0BAAA;EACC,WAAA;EACA,YAAA;EACA,eAAA;EACA,KAAA;EACA,wBAAA;AAAA,MAED,0BAAA;EACC,WAAA;EACA,eAAA;EACA,MAAA;EACA,aAAA;EACA,cAAA;EACA,wBAAA;AAAA,MAED,0BAAA;EACC,WAAA;EACA,eAAA;EACA,MAAA;EACA,aAAA;EACA,cAAA;EACA,wBAAA;AAAA,MAED,0BAAA;EACC,WAAA;EACA,YAAA;EACA,MAAA;EACA,aAAA;EACA,cAAA;EACA,wBAAA;AAAA,MAED,0BAAA;EACC,WAAA;EACA,YAAA;EACA,MAAA;EACA,aAAA;EACA,cAAA;EACA,wBAAA;AAAA,KAEF,0BAAA;;cAGS,0BAAA,EAA4B,CAAA,CAAE,OAAA,CAAQ,oBAAA;AAAA,KAavC,qBAAA;EACV,YAAA;IACE,IAAA,EAAM,oBAAA;EAAA;AAAA;;;;;iBAQY,SAAA,CACpB,EAAA,EAAI,mBAAA,EACJ,KAAA,EAAO,YAAA,GACN,OAAA;;;KCnHS,IAAA;AAAA,cAEC,gBAAA,EAAgB,CAAA,CAAA,QAAA,WAAA,CAAA,CAAA,SAAA;;;;;;cAUhB,uBAAA,EAAuB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoCvB,oBAAA,EAAoB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAMpB,kBAAA,EAAkB,CAAA,CAAA,SAAA;;;;;;;;;;;;cAclB,eAAA,EAAe,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAcf,aAAA,EAAa,CAAA,CAAA,QAAA,WAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAEd,aAAA,GAAgB,CAAA,CAAE,KAAA,QAAa,aAAA;AAAA,cAE9B,cAAA,EAAc,CAAA,CAAA,qBAAA,EAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAYf,cAAA,GAAiB,CAAA,CAAE,KAAA,QAAa,cAAA;AAAA,cAyC/B,UAAA;EAAA,iBAUQ,EAAA;EAAA,SACD,eAAA,EAAiB,eAAA;EAAA,SACjB,WAAA,EAAa,aAAA;EAAA,SAXtB,IAAA,EAAM,cAAA;EAAA,iBACE,gBAAA;EAAA,gBAED,gBAAA,EAAkB,cAAA;cAMf,EAAA,EAAI,QAAA,EACL,eAAA,EAAiB,eAAA,EACjB,WAAA,EAAa,aAAA,IAC7B,SAAA,EAAW,cAAA;EAAA,OAYN,uBAAA,CAAA;IACL;EAAA;IAEA,SAAA;EAAA,IACE,cAAA;EDxDyB;;;EAAA,OCkEtB,mBAAA,CAAoB,KAAA,EAAO,aAAA,KAAkB,cAAA;EAAA,OAQvC,YAAA,CACX,EAAA,EAAI,QAAA,EACJ,SAAA,EAAW,cAAA,GACV,OAAA,CAAQ,UAAA;EAMX,YAAA,CAAa,EAAA,EAAI,mBAAA,GAAmB,OAAA;;;;;MA2D9B,SAAA;MACA,KAAA;MACA,MAAA;MACA,MAAA;IAAA;EAAA;EAvDN,oBAAA,CAAA;EA1MU;;;;EAAA,QAyNF,YAAA;EAvNG;;;;;;;EAAA,eA6OI,aAAA;EAAA,QASD,cAAA;EAAA,OAmhBD,SAAA,CACX,EAAA,EAAI,mBAAA,EACJ,eAAA,EAAiB,eAAA,EACjB,IAAA,yBACC,OAAA,CAAQ,aAAA;EA7wBgB;;;;EAo4BrB,kBAAA,CAAA,GAAsB,OAAA,CAAQ,YAAA;AAAA;AAAA,KA2D1B,cAAA;EACV,UAAA;EACA,QAAA;EACA,UAAA;EACA,KAAA,EAAO,WAAA;AAAA;AAAA,KAGJ,WAAA;EACH,UAAA;EACA,WAAA;EACA,QAAA;EACA,WAAA;EACA,QAAA;EACA,QAAA;EACA,QAAA;EACA,QAAA;EACA,QAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,QAAA;EACA,QAAA;EACA,QAAA;EACA,QAAA;EACA,QAAA;EACA,WAAA;EACA,WAAA;EACA,WAAA;EACA,WAAA;EACA,WAAA;AAAA;AAAA,KAGU,aAAA;EACV,SAAA;EACA,UAAA;EACA,SAAA;EACA,QAAA;EACA,aAAA;EACA,YAAA;EACA,OAAA,EAAS,cAAA;AAAA;AAAA,KAGN,SAAA;AAAA,KACO,UAAA;EACV,aAAA;EACA,SAAA;AAAA;AAAA,KAGU,eAAA;EACV,MAAA,EAAQ,aAAA;EACR,UAAA;EACA,cAAA,EAAgB,MAAA,CAAO,SAAA;AAAA;AAAA,KAGb,UAAA;AAAA,KAEA,YAAA;EACV,aAAA,EAAe,KAAA;IAAQ,IAAA;IAAc,KAAA,EAAO,UAAA;IAAY,OAAA;EAAA;EACxD,UAAA;EACA,SAAA;EACA,UAAA;EAEA,UAAA;EAEA,WAAA;EACA,UAAA;AAAA;;;KC9/BU,eAAA;AAAA,KAEA,mBAAA,GAAsB,sBAAA;EAChC,UAAA,EAAY,eAAA;AAAA;AAAA,cAUD,cAAA;EAAA,iBAIQ,EAAA;EAAA,iBACA,UAAA;EAAA,QACT,eAAA;EAAA,iBACS,MAAA;EAAA,OANZ,MAAA;cAGY,EAAA,EAAI,QAAA,EACJ,UAAA,EAAY,UAAA,EACrB,eAAA,EAAiB,YAAA,IACR,MAAA;IACf,KAAA;IACA,KAAA;EAAA;EAIE,GAAA,CACJ,OAAA,EAAS,oBAAA,EACT,OAAA,EAAS,kBAAA,IACT,WAAA,IAAe,EAAA,EAAI,mBAAA,KAAwB,OAAA,SAC1C,OAAA,CAAQ,cAAA;EAkEL,iBAAA,CAAkB,OAAA,EAAS,oBAAA,GAAoB,OAAA;UAiYlC,oBAAA;EAAA;EJvbnB;;;;;;;ACzDF;;;;;AAKA;EG6HE,gBAAA,CAAiB,CAAA,GAAI,OAAA,EAAS,YAAA,OAAmB,YAAA;;;;;;UAWzC,SAAA;EAAA,QAOA,kBAAA;EH9FuB;;;EAAA,QG0IvB,eAAA;EAAA,QAiHA,YAAA;EAAA,QA6CA,eAAA;EAAA,QAqBA,sBAAA;EAAA,QAkBA,0BAAA;EAAA,QA8BA,qBAAA;EHrZY;;;EAAA,QGoaN,mBAAA;EAAA,QAaN,WAAA;EAAA,QAaA,UAAA;EAAA,QAeA,aAAA;EAiBF,kBAAA,CACJ,OAAA,EAAS,oBAAA,EACT,CAAA,IAAK,EAAA,EAAI,mBAAA,KAAwB,OAAA,QACjC,OAAA;IAAY,MAAA;IAAoB,WAAA;EAAA,IAC/B,OAAA;IAAU,IAAA,EAAM,oBAAA;EAAA;EAAA,QAsCX,iCAAA;EAAA,QAoBA,eAAA;EAAA,QAyBA,gCAAA;AAAA;AAAA,KA4BE,cAAA;EAEN,IAAA;EACA,eAAA,EAAiB,oBAAA;EACjB,QAAA;EACA,SAAA;EACA,UAAA,EAAY,GAAA;EACZ,eAAA,EAAiB,GAAA;EACjB,YAAA,EAAc,GAAA,SAAY,mBAAA;EAC1B,WAAA,EAAa,oBAAA;AAAA;EAGb,IAAA;EACA,WAAA,EAAa,oBAAA;AAAA;AAAA,KAOP,kBAAA;EACV,MAAA;EACA,KAAA;EACA,MAAA;EACA,IAAA,GAAO,WAAA;EACP,KAAA;IAAU,QAAA,GAAW,YAAA;EAAA;EACrB,aAAA,GAAgB,aAAA;EAChB,eAAA;AAAA;AAAA,KAGU,sBAAA;EACV,MAAA;EACA,KAAA;EACA,OAAA,EAAS,kBAAA;EAET,KAAA;EACA,WAAA;EACA,OAAA;AAAA;AAAA,cAGW,OAAA;AAAA,cACA,IAAA;;;KCxoBD,WAAA,MAAiB,CAAA,SAAU,CAAA,SAAU,CAAA;;;KCE5C,SAAA;AAAA,KAwBO,KAAA;EACV,IAAA,EAAM,SAAA;EACN,QAAA;EACA,OAAA;EACA,QAAA;AAAA;;;;;iBA8Cc,WAAA,CACd,IAAA,EAAM,IAAA,EACN,KAAA,GAAQ,WAAA,CAAY,IAAA,gBACnB,KAAA;;;KCoXS,mBAAA;EACV,MAAA,WN7bQ;EM+bR,IAAA;EACA,KAAA;EACA,MAAA;EACA,KAAA;AAAA;;;UCzbe,cAAA;EACf,KAAA,CAAM,KAAA,UAAe,MAAA,cAAoB,OAAA;AAAA;AAAA,cAG9B,iBAAA;AAAA,UAEI,eAAA;EACf,GAAA;EACA,KAAA;AAAA;AAAA,KAGU,WAAA;EACV,GAAA,EAAK,SAAA;EACL,KAAA,EAAO,WAAA;AAAA;AAAA,KAGG,yBAAA;ERnB6B,2DQqBvC,SAAA;ERCoB;;;;EQIpB,cAAA;ERwBwB;;;;;;AC/D1B;;;;;AAKA;;;EOiDE,KAAA,EAAO,mBAAA;EPlCmD;;;EOsC1D,OAAA,WPJ+B;EOM/B,QAAA;IACE,KAAA;IACA,GAAA;EAAA;EPtDM;;;;EO4DR,IAAA,GAAO,WAAA;EACP,KAAA;IAAU,QAAA,GAAW,YAAA;EAAA;EACrB,aAAA,GAAgB,aAAA;EAChB,eAAA;AAAA;AAAA,KAGU,aAAA;;KAGA,MAAA,IAAU,KAAA,aAAkB,OAAA;AAAA,KAE5B,cAAA;EACV,MAAA;EACA,KAAA;AAAA;AAAA,KAGU,cAAA;EACV,cAAA,EAAgB,yBAAA;EAChB,oBAAA;EACA,gBAAA,EAAkB,cAAA;EAClB,eAAA,EAAiB,mBAAA;EACjB,IAAA,EAAM,eAAA;EACN,gBAAA;EACA,yBAAA;EACA,MAAA,EAAQ,KAAA;AAAA;AAAA,KAGE,sBAAA;EACV,IAAA,EAAM,eAAA;EACN,gBAAA;AAAA;;;;;APwBF;;cOfa,QAAA;EAAA,iBACkB,MAAA;cAAA,MAAA,EAAQ,MAAA;EAC/B,OAAA,CACJ,KAAA,UACA,cAAA,YACC,OAAA,CAAQ,cAAA;EAmGX,aAAA,CACE,MAAA,EAAQ,aAAA,IACR,UAAA,EAAY,yBAAA,IACZ,gBAAA,EAAkB,cAAA,KACjB,kBAAA;EAAA,QAuHK,gBAAA;EAAA,QAmBA,SAAA;EAAA,QAMA,gBAAA;;;;;;;UAsBA,mBAAA;EAAA,QAkBA,SAAA;EAAA,QAOA,mBAAA;AAAA;;;iBCrZM,gBAAA,CAAiB,KAAA,EAAO,YAAA;;;;ATGxC;iBSKgB,wBAAA,CAAyB,KAAA,EAAO,YAAA;;;;;;;;cCLnC,WAAA;EACX,OAAA,CAAQ,KAAA;EAAA,QAIA,2BAAA;EAAA,QAaA,mBAAA;AAAA;;;iBCvBM,uBAAA,CAAwB,GAAA"}
package/dist/index.mjs CHANGED
@@ -1793,14 +1793,18 @@ const ExportedStatsStatistics = z.object({
1793
1793
  });
1794
1794
  const ExportedStatsColumns = z.object({
1795
1795
  columnName: z.string(),
1796
+ attlen: z.number().nullable(),
1796
1797
  stats: ExportedStatsStatistics.nullable()
1797
1798
  });
1798
1799
  const ExportedStatsIndex = z.object({
1799
1800
  indexName: z.string(),
1801
+ amname: z.string().default("btree"),
1800
1802
  relpages: z.number(),
1801
1803
  reltuples: z.number(),
1802
1804
  relallvisible: z.number(),
1803
- relallfrozen: z.number().optional()
1805
+ relallfrozen: z.number().optional(),
1806
+ fillfactor: z.number().default(90),
1807
+ columns: z.array(z.object({ attlen: z.number().nullable() })).default([])
1804
1808
  });
1805
1809
  const ExportedStatsV1 = z.object({
1806
1810
  tableName: z.string(),
@@ -1809,14 +1813,13 @@ const ExportedStatsV1 = z.object({
1809
1813
  reltuples: z.number(),
1810
1814
  relallvisible: z.number(),
1811
1815
  relallfrozen: z.number().optional(),
1812
- columns: z.array(ExportedStatsColumns).nullable(),
1816
+ columns: z.array(ExportedStatsColumns).default([]),
1813
1817
  indexes: z.array(ExportedStatsIndex)
1814
1818
  });
1815
1819
  const ExportedStats = z.union([ExportedStatsV1]);
1816
1820
  const StatisticsMode = z.discriminatedUnion("kind", [z.object({
1817
1821
  kind: z.literal("fromAssumption"),
1818
- reltuples: z.number().min(0),
1819
- relpages: z.number().min(0)
1822
+ reltuples: z.number().min(0)
1820
1823
  }), z.object({
1821
1824
  kind: z.literal("fromStatisticsExport"),
1822
1825
  stats: z.array(ExportedStats),
@@ -1824,6 +1827,19 @@ const StatisticsMode = z.discriminatedUnion("kind", [z.object({
1824
1827
  })]);
1825
1828
  const DEFAULT_RELTUPLES = 1e4;
1826
1829
  const DEFAULT_RELPAGES = 1;
1830
+ const DEFAULT_PAGE_SIZE = 2 ** 13;
1831
+ function estimateStawidth(col) {
1832
+ return col.attlen ?? 32;
1833
+ }
1834
+ function estimateRelpages(reltuples, columns) {
1835
+ const rowWidth = columns.reduce((sum, col) => sum + estimateStawidth(col), 0) + 27;
1836
+ return Math.ceil(reltuples * rowWidth / DEFAULT_PAGE_SIZE);
1837
+ }
1838
+ function estimateIndexRelpages(reltuples, columns, fillfactor, amname, tableRelpages) {
1839
+ if (amname === "gin") return Math.ceil(tableRelpages * .3);
1840
+ const keyWidth = columns.reduce((sum, col) => sum + estimateStawidth(col) + 16, 0);
1841
+ return Math.ceil(reltuples * keyWidth / DEFAULT_PAGE_SIZE / fillfactor);
1842
+ }
1827
1843
  var Statistics = class Statistics {
1828
1844
  constructor(db, postgresVersion, ownMetadata, statsMode) {
1829
1845
  this.db = db;
@@ -1836,11 +1852,10 @@ var Statistics = class Statistics {
1836
1852
  if (statsMode.kind === "fromStatisticsExport") this.exportedMetadata = statsMode.stats;
1837
1853
  } else this.mode = Statistics.defaultStatsMode;
1838
1854
  }
1839
- static statsModeFromAssumption({ reltuples, relpages }) {
1855
+ static statsModeFromAssumption({ reltuples }) {
1840
1856
  return {
1841
1857
  kind: "fromAssumption",
1842
- reltuples,
1843
- relpages
1858
+ reltuples
1844
1859
  };
1845
1860
  }
1846
1861
  /**
@@ -1904,17 +1919,17 @@ var Statistics = class Statistics {
1904
1919
  const columnStatsValues = [];
1905
1920
  for (const table of this.ownMetadata) {
1906
1921
  const target = (this.exportedMetadata?.find((m) => m.tableName === table.tableName && m.schemaName === table.schemaName))?.columns ?? table.columns;
1907
- if (!target) continue;
1908
1922
  for (const column of target) {
1909
1923
  const { stats } = column;
1910
1924
  if (!stats || this.mode.kind === "fromAssumption") {
1925
+ const stawidth = stats?.stawidth || estimateStawidth(column);
1911
1926
  columnStatsValues.push({
1912
1927
  schema_name: table.schemaName,
1913
1928
  table_name: table.tableName,
1914
1929
  column_name: column.columnName,
1915
1930
  stainherit: false,
1916
1931
  stanullfrac: .04,
1917
- stawidth: stats?.stawidth ?? 32,
1932
+ stawidth,
1918
1933
  stadistinct: -.9,
1919
1934
  stakind1: 0,
1920
1935
  stakind2: 0,
@@ -2215,7 +2230,7 @@ var Statistics = class Statistics {
2215
2230
  let relallfrozen;
2216
2231
  if (this.mode.kind === "fromAssumption") {
2217
2232
  reltuples = this.mode.reltuples;
2218
- relpages = this.mode.relpages;
2233
+ relpages = estimateRelpages(reltuples, table.columns);
2219
2234
  } else if (targetTable) {
2220
2235
  reltuples = targetTable.reltuples;
2221
2236
  relpages = targetTable.relpages;
@@ -2234,15 +2249,18 @@ var Statistics = class Statistics {
2234
2249
  relallfrozen,
2235
2250
  relallvisible
2236
2251
  });
2237
- if (this.mode.kind === "fromAssumption") for (const index of table.indexes) reltuplesValues.push({
2238
- relname: index.indexName,
2239
- schema_name: table.schemaName,
2240
- reltuples: this.mode.reltuples,
2241
- relpages: Math.ceil(this.mode.relpages * .2),
2242
- relallfrozen: 0,
2243
- relallvisible: this.mode.relpages
2244
- });
2245
- if (targetTable) for (const index of targetTable.indexes) reltuplesValues.push({
2252
+ if (this.mode.kind === "fromAssumption") for (const index of table.indexes) {
2253
+ const indexRelpages = estimateIndexRelpages(this.mode.reltuples, index.columns, index.fillfactor / 100, index.amname, relpages);
2254
+ reltuplesValues.push({
2255
+ relname: index.indexName,
2256
+ schema_name: table.schemaName,
2257
+ reltuples: this.mode.reltuples,
2258
+ relpages: indexRelpages,
2259
+ relallfrozen: 0,
2260
+ relallvisible: indexRelpages
2261
+ });
2262
+ }
2263
+ else if (targetTable) for (const index of targetTable.indexes) reltuplesValues.push({
2246
2264
  relname: index.indexName,
2247
2265
  schema_name: targetTable.schemaName,
2248
2266
  reltuples: index.reltuples,
@@ -2285,19 +2303,19 @@ var Statistics = class Statistics {
2285
2303
  static async dumpStats(db, postgresVersion, kind) {
2286
2304
  const fullDump = kind === "full";
2287
2305
  console.log(`dumping stats for postgres ${gray(postgresVersion)}`);
2288
- return (await db.exec(`
2306
+ const stats = await db.exec(`
2289
2307
  WITH table_columns AS (
2290
2308
  SELECT
2291
- c.table_name,
2292
- c.table_schema,
2309
+ cl.relname,
2310
+ n.nspname,
2293
2311
  cl.reltuples,
2294
2312
  cl.relpages,
2295
2313
  cl.relallvisible,
2296
2314
  -- cl.relallfrozen,
2297
- n.nspname AS schema_name,
2298
2315
  json_agg(
2299
2316
  json_build_object(
2300
- 'columnName', c.column_name,
2317
+ 'columnName', a.attname,
2318
+ 'attlen', CASE WHEN a.attlen > 0 THEN a.attlen ELSE NULL END,
2301
2319
  'stats', (
2302
2320
  SELECT json_build_object(
2303
2321
  'starelid', s.starelid,
@@ -2320,21 +2338,15 @@ var Statistics = class Statistics {
2320
2338
  WHERE s.starelid = a.attrelid AND s.staattnum = a.attnum
2321
2339
  )
2322
2340
  )
2323
- ORDER BY c.ordinal_position
2341
+ ORDER BY a.attnum
2324
2342
  ) AS columns
2325
- FROM information_schema.columns c
2326
- JOIN pg_attribute a
2327
- ON a.attrelid = (quote_ident(c.table_schema) || '.' || quote_ident(c.table_name))::regclass
2328
- AND a.attname = c.column_name
2329
- JOIN pg_class cl
2330
- ON cl.oid = a.attrelid
2331
- JOIN pg_namespace n
2332
- ON n.oid = cl.relnamespace
2333
- WHERE c.table_name NOT LIKE 'pg_%'
2334
- AND n.nspname <> 'information_schema'
2335
- AND n.nspname NOT IN ('tiger', 'tiger_data', 'topology')
2336
- AND c.table_name NOT IN ('pg_stat_statements', 'pg_stat_statements_info')
2337
- GROUP BY c.table_name, c.table_schema, cl.reltuples, cl.relpages, cl.relallvisible, n.nspname
2343
+ FROM pg_class cl
2344
+ JOIN pg_namespace n ON n.oid = cl.relnamespace
2345
+ JOIN pg_attribute a ON a.attrelid = cl.oid AND a.attnum > 0 AND NOT a.attisdropped
2346
+ WHERE cl.relkind = 'r'
2347
+ AND n.nspname NOT IN ('pg_catalog', 'information_schema', 'tiger', 'tiger_data', 'topology')
2348
+ AND cl.relname NOT IN ('pg_stat_statements', 'pg_stat_statements_info')
2349
+ GROUP BY cl.relname, n.nspname, cl.reltuples, cl.relpages, cl.relallvisible
2338
2350
  ),
2339
2351
  table_indexes AS (
2340
2352
  SELECT
@@ -2342,15 +2354,37 @@ var Statistics = class Statistics {
2342
2354
  json_agg(
2343
2355
  json_build_object(
2344
2356
  'indexName', i.relname,
2357
+ 'amname', am.amname,
2345
2358
  'reltuples', i.reltuples,
2346
2359
  'relpages', i.relpages,
2347
- 'relallvisible', i.relallvisible
2348
- -- 'relallfrozen', i.relallfrozen
2360
+ 'relallvisible', i.relallvisible,
2361
+ -- 'relallfrozen', i.relallfrozen,
2362
+ 'fillfactor', COALESCE(
2363
+ (
2364
+ SELECT (regexp_match(opt, 'fillfactor=(\\d+)'))[1]::integer
2365
+ FROM unnest(i.reloptions) AS opt
2366
+ WHERE opt LIKE 'fillfactor=%'
2367
+ LIMIT 1
2368
+ ),
2369
+ 90
2370
+ ),
2371
+ 'columns', COALESCE(
2372
+ (
2373
+ SELECT json_agg(json_build_object(
2374
+ 'attlen', CASE WHEN a.attlen > 0 THEN a.attlen ELSE NULL END
2375
+ ) ORDER BY col_pos.ord)
2376
+ FROM unnest(ix.indkey) WITH ORDINALITY AS col_pos(attnum, ord)
2377
+ JOIN pg_attribute a ON a.attrelid = t.oid AND a.attnum = col_pos.attnum
2378
+ WHERE col_pos.attnum > 0
2379
+ ),
2380
+ '[]'::json
2381
+ )
2349
2382
  )
2350
2383
  ) AS indexes
2351
2384
  FROM pg_class t
2352
2385
  JOIN pg_index ix ON ix.indrelid = t.oid
2353
2386
  JOIN pg_class i ON i.oid = ix.indexrelid
2387
+ JOIN pg_am am ON am.oid = i.relam
2354
2388
  JOIN pg_namespace n ON n.oid = t.relnamespace
2355
2389
  WHERE t.relname NOT LIKE 'pg_%'
2356
2390
  AND n.nspname <> 'information_schema'
@@ -2359,20 +2393,21 @@ var Statistics = class Statistics {
2359
2393
  )
2360
2394
  SELECT json_agg(
2361
2395
  json_build_object(
2362
- 'tableName', tc.table_name,
2363
- 'schemaName', tc.table_schema,
2396
+ 'tableName', tc.relname,
2397
+ 'schemaName', tc.nspname,
2364
2398
  'reltuples', tc.reltuples,
2365
2399
  'relpages', tc.relpages,
2366
2400
  'relallvisible', tc.relallvisible,
2367
2401
  -- 'relallfrozen', tc.relallfrozen,
2368
- 'columns', tc.columns,
2402
+ 'columns', COALESCE(tc.columns, '[]'::json),
2369
2403
  'indexes', COALESCE(ti.indexes, '[]'::json)
2370
2404
  )
2371
2405
  )
2372
2406
  FROM table_columns tc
2373
2407
  LEFT JOIN table_indexes ti
2374
- ON ti.table_name = tc.table_name;
2375
- `, [fullDump]))[0].json_agg;
2408
+ ON ti.table_name = tc.relname;
2409
+ `, [fullDump]);
2410
+ return z.array(ExportedStats).parse(stats[0].json_agg);
2376
2411
  }
2377
2412
  /**
2378
2413
  * Returns all indexes in the database.
@@ -2467,6 +2502,15 @@ var PssRewriter = class {
2467
2502
  }
2468
2503
  };
2469
2504
  //#endregion
2470
- export { Analyzer, ExportedStats, ExportedStatsColumns, ExportedStatsIndex, ExportedStatsStatistics, ExportedStatsV1, IndexOptimizer, PROCEED, PgIdentifier, PostgresExplainStageSchema, PostgresQueryBuilder, PostgresVersion, PssRewriter, SKIP, Statistics, StatisticsMode, StatisticsSource, dropIndex, ignoredIdentifier, isIndexProbablyDroppable, isIndexSupported, parseNudges };
2505
+ //#region src/sentry.ts
2506
+ function deriveSentryEnvironment(url) {
2507
+ if (!url) return "local";
2508
+ if (url.includes("next")) return "next";
2509
+ if (url.includes("staging")) return "staging";
2510
+ if (url.includes("querydoctor.com")) return "production";
2511
+ return "local";
2512
+ }
2513
+ //#endregion
2514
+ export { Analyzer, ExportedStats, ExportedStatsColumns, ExportedStatsIndex, ExportedStatsStatistics, ExportedStatsV1, IndexOptimizer, PROCEED, PgIdentifier, PostgresExplainStageSchema, PostgresQueryBuilder, PostgresVersion, PssRewriter, SKIP, Statistics, StatisticsMode, StatisticsSource, deriveSentryEnvironment, dropIndex, ignoredIdentifier, isIndexProbablyDroppable, isIndexSupported, parseNudges };
2471
2515
 
2472
2516
  //# sourceMappingURL=index.mjs.map