@l-v-yonsama/multi-platform-database-drivers 2.0.1 → 2.1.0

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 (454) hide show
  1. package/README.md +1 -0
  2. package/built/schema/log-parse-config.schema.json +4 -4
  3. package/built/src/drivers/AwsDriver.d.ts +25 -1
  4. package/built/src/drivers/AwsDriver.js +189 -0
  5. package/built/src/drivers/AwsDriver.js.map +1 -1
  6. package/built/src/drivers/BaseDriver.js.map +1 -1
  7. package/built/src/drivers/DBDriverResolver.js.map +1 -1
  8. package/built/src/drivers/KeycloakDriver.js.map +1 -1
  9. package/built/src/drivers/MqttDriver.js.map +1 -1
  10. package/built/src/drivers/MySQLDriver.d.ts +10 -1
  11. package/built/src/drivers/MySQLDriver.js +130 -0
  12. package/built/src/drivers/MySQLDriver.js.map +1 -1
  13. package/built/src/drivers/OracleDriver.d.ts +14 -1
  14. package/built/src/drivers/OracleDriver.js +217 -2
  15. package/built/src/drivers/OracleDriver.js.map +1 -1
  16. package/built/src/drivers/PostgresDriver.d.ts +9 -1
  17. package/built/src/drivers/PostgresDriver.js +90 -2
  18. package/built/src/drivers/PostgresDriver.js.map +1 -1
  19. package/built/src/drivers/RDSBaseDriver.d.ts +26 -1
  20. package/built/src/drivers/RDSBaseDriver.js +601 -0
  21. package/built/src/drivers/RDSBaseDriver.js.map +1 -1
  22. package/built/src/drivers/RedisDriver.js.map +1 -1
  23. package/built/src/drivers/SQLServerDriver.d.ts +18 -1
  24. package/built/src/drivers/SQLServerDriver.js +282 -6
  25. package/built/src/drivers/SQLServerDriver.js.map +1 -1
  26. package/built/src/drivers/SQLiteDriver.d.ts +7 -1
  27. package/built/src/drivers/SQLiteDriver.js +33 -1
  28. package/built/src/drivers/SQLiteDriver.js.map +1 -1
  29. package/built/src/drivers/aws/AwsCloudFormationServiceClient.js.map +1 -1
  30. package/built/src/drivers/aws/AwsDynamoServiceClient.d.ts +61 -5
  31. package/built/src/drivers/aws/AwsDynamoServiceClient.js +404 -108
  32. package/built/src/drivers/aws/AwsDynamoServiceClient.js.map +1 -1
  33. package/built/src/drivers/aws/AwsS3ServiceClient.js +18 -6
  34. package/built/src/drivers/aws/AwsS3ServiceClient.js.map +1 -1
  35. package/built/src/drivers/aws/AwsSQSServiceClient.js.map +1 -1
  36. package/built/src/drivers/aws/AwsSecretsManagerServiceClient.js.map +1 -1
  37. package/built/src/drivers/aws/AwsServiceClient.js.map +1 -1
  38. package/built/src/drivers/aws/AwsSsmServiceClient.js.map +1 -1
  39. package/built/src/drivers/aws/dynamoDbRdhSummary.d.ts +16 -0
  40. package/built/src/drivers/aws/dynamoDbRdhSummary.js +81 -0
  41. package/built/src/drivers/aws/dynamoDbRdhSummary.js.map +1 -0
  42. package/built/src/drivers/aws/dynamoDbResultMetadata.d.ts +9 -0
  43. package/built/src/drivers/aws/dynamoDbResultMetadata.js +71 -0
  44. package/built/src/drivers/aws/dynamoDbResultMetadata.js.map +1 -0
  45. package/built/src/drivers/index.d.ts +1 -0
  46. package/built/src/drivers/index.js +1 -0
  47. package/built/src/drivers/index.js.map +1 -1
  48. package/built/src/drivers/keycloak/resourceTreeBuilder.js.map +1 -1
  49. package/built/src/drivers/keycloak/scanResultBuilder.js.map +1 -1
  50. package/built/src/drivers/memcache/helper.js.map +1 -1
  51. package/built/src/drivers/providers/index.d.ts +3 -0
  52. package/built/src/drivers/providers/index.js +7 -0
  53. package/built/src/drivers/providers/index.js.map +1 -0
  54. package/built/src/drivers/providers/metrics/adapters/dynamodb/DynamoDbMetricServiceAdapter.d.ts +8 -0
  55. package/built/src/drivers/providers/metrics/adapters/dynamodb/DynamoDbMetricServiceAdapter.js +421 -0
  56. package/built/src/drivers/providers/metrics/adapters/dynamodb/DynamoDbMetricServiceAdapter.js.map +1 -0
  57. package/built/src/drivers/providers/metrics/adapters/dynamodb/DynamoDbOverviewMetricServiceAdapter.d.ts +7 -0
  58. package/built/src/drivers/providers/metrics/adapters/dynamodb/DynamoDbOverviewMetricServiceAdapter.js +84 -0
  59. package/built/src/drivers/providers/metrics/adapters/dynamodb/DynamoDbOverviewMetricServiceAdapter.js.map +1 -0
  60. package/built/src/drivers/providers/metrics/adapters/dynamodb/index.d.ts +2 -0
  61. package/built/src/drivers/providers/metrics/adapters/dynamodb/index.js +6 -0
  62. package/built/src/drivers/providers/metrics/adapters/dynamodb/index.js.map +1 -0
  63. package/built/src/drivers/providers/metrics/adapters/index.d.ts +6 -0
  64. package/built/src/drivers/providers/metrics/adapters/index.js +10 -0
  65. package/built/src/drivers/providers/metrics/adapters/index.js.map +1 -0
  66. package/built/src/drivers/providers/metrics/adapters/logs/CloudWatchLogsMetricServiceAdapter.d.ts +7 -0
  67. package/built/src/drivers/providers/metrics/adapters/logs/CloudWatchLogsMetricServiceAdapter.js +132 -0
  68. package/built/src/drivers/providers/metrics/adapters/logs/CloudWatchLogsMetricServiceAdapter.js.map +1 -0
  69. package/built/src/drivers/providers/metrics/adapters/logs/index.d.ts +1 -0
  70. package/built/src/drivers/providers/metrics/adapters/logs/index.js +5 -0
  71. package/built/src/drivers/providers/metrics/adapters/logs/index.js.map +1 -0
  72. package/built/src/drivers/providers/metrics/adapters/overview/index.d.ts +1 -0
  73. package/built/src/drivers/providers/metrics/adapters/overview/index.js +5 -0
  74. package/built/src/drivers/providers/metrics/adapters/overview/index.js.map +1 -0
  75. package/built/src/drivers/providers/metrics/adapters/overview/overviewMetricAdapterUtils.d.ts +26 -0
  76. package/built/src/drivers/providers/metrics/adapters/overview/overviewMetricAdapterUtils.js +80 -0
  77. package/built/src/drivers/providers/metrics/adapters/overview/overviewMetricAdapterUtils.js.map +1 -0
  78. package/built/src/drivers/providers/metrics/adapters/s3/S3MetricServiceAdapter.d.ts +21 -0
  79. package/built/src/drivers/providers/metrics/adapters/s3/S3MetricServiceAdapter.js +478 -0
  80. package/built/src/drivers/providers/metrics/adapters/s3/S3MetricServiceAdapter.js.map +1 -0
  81. package/built/src/drivers/providers/metrics/adapters/s3/S3OverviewMetricServiceAdapter.d.ts +13 -0
  82. package/built/src/drivers/providers/metrics/adapters/s3/S3OverviewMetricServiceAdapter.js +172 -0
  83. package/built/src/drivers/providers/metrics/adapters/s3/S3OverviewMetricServiceAdapter.js.map +1 -0
  84. package/built/src/drivers/providers/metrics/adapters/s3/index.d.ts +2 -0
  85. package/built/src/drivers/providers/metrics/adapters/s3/index.js +6 -0
  86. package/built/src/drivers/providers/metrics/adapters/s3/index.js.map +1 -0
  87. package/built/src/drivers/providers/metrics/adapters/ses/SesMetricServiceAdapter.d.ts +13 -0
  88. package/built/src/drivers/providers/metrics/adapters/ses/SesMetricServiceAdapter.js +183 -0
  89. package/built/src/drivers/providers/metrics/adapters/ses/SesMetricServiceAdapter.js.map +1 -0
  90. package/built/src/drivers/providers/metrics/adapters/ses/index.d.ts +1 -0
  91. package/built/src/drivers/providers/metrics/adapters/ses/index.js +5 -0
  92. package/built/src/drivers/providers/metrics/adapters/ses/index.js.map +1 -0
  93. package/built/src/drivers/providers/metrics/adapters/sqs/SqsMetricServiceAdapter.d.ts +7 -0
  94. package/built/src/drivers/providers/metrics/adapters/sqs/SqsMetricServiceAdapter.js +174 -0
  95. package/built/src/drivers/providers/metrics/adapters/sqs/SqsMetricServiceAdapter.js.map +1 -0
  96. package/built/src/drivers/providers/metrics/adapters/sqs/SqsOverviewMetricServiceAdapter.d.ts +7 -0
  97. package/built/src/drivers/providers/metrics/adapters/sqs/SqsOverviewMetricServiceAdapter.js +81 -0
  98. package/built/src/drivers/providers/metrics/adapters/sqs/SqsOverviewMetricServiceAdapter.js.map +1 -0
  99. package/built/src/drivers/providers/metrics/adapters/sqs/index.d.ts +2 -0
  100. package/built/src/drivers/providers/metrics/adapters/sqs/index.js +6 -0
  101. package/built/src/drivers/providers/metrics/adapters/sqs/index.js.map +1 -0
  102. package/built/src/drivers/providers/metrics/cloudwatch/CloudWatchMetricsAvailability.d.ts +23 -0
  103. package/built/src/drivers/providers/metrics/cloudwatch/CloudWatchMetricsAvailability.js +69 -0
  104. package/built/src/drivers/providers/metrics/cloudwatch/CloudWatchMetricsAvailability.js.map +1 -0
  105. package/built/src/drivers/providers/metrics/cloudwatch/CloudWatchMetricsCollector.d.ts +24 -0
  106. package/built/src/drivers/providers/metrics/cloudwatch/CloudWatchMetricsCollector.js +49 -0
  107. package/built/src/drivers/providers/metrics/cloudwatch/CloudWatchMetricsCollector.js.map +1 -0
  108. package/built/src/drivers/providers/metrics/cloudwatch/alignSeriesByTimestamp.d.ts +2 -0
  109. package/built/src/drivers/providers/metrics/cloudwatch/alignSeriesByTimestamp.js +16 -0
  110. package/built/src/drivers/providers/metrics/cloudwatch/alignSeriesByTimestamp.js.map +1 -0
  111. package/built/src/drivers/providers/metrics/cloudwatch/cloudWatchMetricsTransport.d.ts +21 -0
  112. package/built/src/drivers/providers/metrics/cloudwatch/cloudWatchMetricsTransport.js +193 -0
  113. package/built/src/drivers/providers/metrics/cloudwatch/cloudWatchMetricsTransport.js.map +1 -0
  114. package/built/src/drivers/providers/metrics/cloudwatch/collectAcrossMetricEndpoints.d.ts +6 -0
  115. package/built/src/drivers/providers/metrics/cloudwatch/collectAcrossMetricEndpoints.js +99 -0
  116. package/built/src/drivers/providers/metrics/cloudwatch/collectAcrossMetricEndpoints.js.map +1 -0
  117. package/built/src/drivers/providers/metrics/cloudwatch/deriveMetricSeries.d.ts +2 -0
  118. package/built/src/drivers/providers/metrics/cloudwatch/deriveMetricSeries.js +100 -0
  119. package/built/src/drivers/providers/metrics/cloudwatch/deriveMetricSeries.js.map +1 -0
  120. package/built/src/drivers/providers/metrics/cloudwatch/index.d.ts +7 -0
  121. package/built/src/drivers/providers/metrics/cloudwatch/index.js +11 -0
  122. package/built/src/drivers/providers/metrics/cloudwatch/index.js.map +1 -0
  123. package/built/src/drivers/providers/metrics/cloudwatch/metricPeriod.d.ts +2 -0
  124. package/built/src/drivers/providers/metrics/cloudwatch/metricPeriod.js +16 -0
  125. package/built/src/drivers/providers/metrics/cloudwatch/metricPeriod.js.map +1 -0
  126. package/built/src/drivers/providers/metrics/index.d.ts +3 -0
  127. package/built/src/drivers/providers/metrics/index.js +7 -0
  128. package/built/src/drivers/providers/metrics/index.js.map +1 -0
  129. package/built/src/drivers/providers/metrics/metricServiceAdapterRegistry.d.ts +8 -0
  130. package/built/src/drivers/providers/metrics/metricServiceAdapterRegistry.js +27 -0
  131. package/built/src/drivers/providers/metrics/metricServiceAdapterRegistry.js.map +1 -0
  132. package/built/src/drivers/providers/performance/DynamoDbPerformanceTuningProvider.d.ts +60 -0
  133. package/built/src/drivers/providers/performance/DynamoDbPerformanceTuningProvider.js +751 -0
  134. package/built/src/drivers/providers/performance/DynamoDbPerformanceTuningProvider.js.map +1 -0
  135. package/built/src/drivers/providers/performance/MySQLPerformanceTuningProvider.d.ts +29 -0
  136. package/built/src/drivers/providers/performance/MySQLPerformanceTuningProvider.js +350 -0
  137. package/built/src/drivers/providers/performance/MySQLPerformanceTuningProvider.js.map +1 -0
  138. package/built/src/drivers/providers/performance/OraclePerformanceTuningProvider.d.ts +37 -0
  139. package/built/src/drivers/providers/performance/OraclePerformanceTuningProvider.js +393 -0
  140. package/built/src/drivers/providers/performance/OraclePerformanceTuningProvider.js.map +1 -0
  141. package/built/src/drivers/providers/performance/PerformanceTuningContextProvider.d.ts +57 -0
  142. package/built/src/drivers/providers/performance/PerformanceTuningContextProvider.js +3 -0
  143. package/built/src/drivers/providers/performance/PerformanceTuningContextProvider.js.map +1 -0
  144. package/built/src/drivers/providers/performance/PostgresPerformanceTuningProvider.d.ts +24 -0
  145. package/built/src/drivers/providers/performance/PostgresPerformanceTuningProvider.js +328 -0
  146. package/built/src/drivers/providers/performance/PostgresPerformanceTuningProvider.js.map +1 -0
  147. package/built/src/drivers/providers/performance/SQLServerPerformanceTuningProvider.d.ts +29 -0
  148. package/built/src/drivers/providers/performance/SQLServerPerformanceTuningProvider.js +420 -0
  149. package/built/src/drivers/providers/performance/SQLServerPerformanceTuningProvider.js.map +1 -0
  150. package/built/src/drivers/providers/performance/dynamoDbCapacity.d.ts +38 -0
  151. package/built/src/drivers/providers/performance/dynamoDbCapacity.js +111 -0
  152. package/built/src/drivers/providers/performance/dynamoDbCapacity.js.map +1 -0
  153. package/built/src/drivers/providers/performance/dynamoDbCloudWatchMetrics.d.ts +20 -0
  154. package/built/src/drivers/providers/performance/dynamoDbCloudWatchMetrics.js +221 -0
  155. package/built/src/drivers/providers/performance/dynamoDbCloudWatchMetrics.js.map +1 -0
  156. package/built/src/drivers/providers/performance/dynamoPartiqlAccessPattern.d.ts +18 -0
  157. package/built/src/drivers/providers/performance/dynamoPartiqlAccessPattern.js +736 -0
  158. package/built/src/drivers/providers/performance/dynamoPartiqlAccessPattern.js.map +1 -0
  159. package/built/src/drivers/providers/performance/index.d.ts +23 -0
  160. package/built/src/drivers/providers/performance/index.js +27 -0
  161. package/built/src/drivers/providers/performance/index.js.map +1 -0
  162. package/built/src/drivers/providers/performance/mysqlActualPlanTextParser.d.ts +26 -0
  163. package/built/src/drivers/providers/performance/mysqlActualPlanTextParser.js +181 -0
  164. package/built/src/drivers/providers/performance/mysqlActualPlanTextParser.js.map +1 -0
  165. package/built/src/drivers/providers/performance/mysqlCatalogMapper.d.ts +11 -0
  166. package/built/src/drivers/providers/performance/mysqlCatalogMapper.js +218 -0
  167. package/built/src/drivers/providers/performance/mysqlCatalogMapper.js.map +1 -0
  168. package/built/src/drivers/providers/performance/mysqlPlanParser.d.ts +11 -0
  169. package/built/src/drivers/providers/performance/mysqlPlanParser.js +209 -0
  170. package/built/src/drivers/providers/performance/mysqlPlanParser.js.map +1 -0
  171. package/built/src/drivers/providers/performance/oracleActualPlanTextParser.d.ts +10 -0
  172. package/built/src/drivers/providers/performance/oracleActualPlanTextParser.js +245 -0
  173. package/built/src/drivers/providers/performance/oracleActualPlanTextParser.js.map +1 -0
  174. package/built/src/drivers/providers/performance/oracleCatalogMapper.d.ts +11 -0
  175. package/built/src/drivers/providers/performance/oracleCatalogMapper.js +226 -0
  176. package/built/src/drivers/providers/performance/oracleCatalogMapper.js.map +1 -0
  177. package/built/src/drivers/providers/performance/oraclePlanParser.d.ts +18 -0
  178. package/built/src/drivers/providers/performance/oraclePlanParser.js +223 -0
  179. package/built/src/drivers/providers/performance/oraclePlanParser.js.map +1 -0
  180. package/built/src/drivers/providers/performance/performanceTuningDiagnosticHelpers.d.ts +2 -0
  181. package/built/src/drivers/providers/performance/performanceTuningDiagnosticHelpers.js +13 -0
  182. package/built/src/drivers/providers/performance/performanceTuningDiagnosticHelpers.js.map +1 -0
  183. package/built/src/drivers/providers/performance/planNodeMath.d.ts +20 -0
  184. package/built/src/drivers/providers/performance/planNodeMath.js +82 -0
  185. package/built/src/drivers/providers/performance/planNodeMath.js.map +1 -0
  186. package/built/src/drivers/providers/performance/postgresCatalogMapper.d.ts +20 -0
  187. package/built/src/drivers/providers/performance/postgresCatalogMapper.js +287 -0
  188. package/built/src/drivers/providers/performance/postgresCatalogMapper.js.map +1 -0
  189. package/built/src/drivers/providers/performance/postgresPlanParser.d.ts +13 -0
  190. package/built/src/drivers/providers/performance/postgresPlanParser.js +258 -0
  191. package/built/src/drivers/providers/performance/postgresPlanParser.js.map +1 -0
  192. package/built/src/drivers/providers/performance/sqlServerActualPlanXmlParser.d.ts +10 -0
  193. package/built/src/drivers/providers/performance/sqlServerActualPlanXmlParser.js +252 -0
  194. package/built/src/drivers/providers/performance/sqlServerActualPlanXmlParser.js.map +1 -0
  195. package/built/src/drivers/providers/performance/sqlServerCatalogMapper.d.ts +20 -0
  196. package/built/src/drivers/providers/performance/sqlServerCatalogMapper.js +254 -0
  197. package/built/src/drivers/providers/performance/sqlServerCatalogMapper.js.map +1 -0
  198. package/built/src/drivers/providers/performance/sqlServerPlanParser.d.ts +10 -0
  199. package/built/src/drivers/providers/performance/sqlServerPlanParser.js +199 -0
  200. package/built/src/drivers/providers/performance/sqlServerPlanParser.js.map +1 -0
  201. package/built/src/drivers/providers/performance/vendorRowCoercion.d.ts +6 -0
  202. package/built/src/drivers/providers/performance/vendorRowCoercion.js +42 -0
  203. package/built/src/drivers/providers/performance/vendorRowCoercion.js.map +1 -0
  204. package/built/src/drivers/providers/rdbDashboard/RdbDashboardProvider.d.ts +8 -0
  205. package/built/src/drivers/providers/rdbDashboard/RdbDashboardProvider.js +3 -0
  206. package/built/src/drivers/providers/rdbDashboard/RdbDashboardProvider.js.map +1 -0
  207. package/built/src/drivers/providers/rdbDashboard/RdbSampleAccumulator.d.ts +22 -0
  208. package/built/src/drivers/providers/rdbDashboard/RdbSampleAccumulator.js +331 -0
  209. package/built/src/drivers/providers/rdbDashboard/RdbSampleAccumulator.js.map +1 -0
  210. package/built/src/drivers/providers/rdbDashboard/index.d.ts +9 -0
  211. package/built/src/drivers/providers/rdbDashboard/index.js +13 -0
  212. package/built/src/drivers/providers/rdbDashboard/index.js.map +1 -0
  213. package/built/src/drivers/providers/rdbDashboard/rdbDashboardErrors.d.ts +3 -0
  214. package/built/src/drivers/providers/rdbDashboard/rdbDashboardErrors.js +10 -0
  215. package/built/src/drivers/providers/rdbDashboard/rdbDashboardErrors.js.map +1 -0
  216. package/built/src/drivers/providers/rdbDashboard/rdbDashboardValueUtils.d.ts +7 -0
  217. package/built/src/drivers/providers/rdbDashboard/rdbDashboardValueUtils.js +31 -0
  218. package/built/src/drivers/providers/rdbDashboard/rdbDashboardValueUtils.js.map +1 -0
  219. package/built/src/drivers/providers/rdbDashboard/validateRdbDashboard.d.ts +3 -0
  220. package/built/src/drivers/providers/rdbDashboard/validateRdbDashboard.js +73 -0
  221. package/built/src/drivers/providers/rdbDashboard/validateRdbDashboard.js.map +1 -0
  222. package/built/src/drivers/providers/rdbDashboard/vendors/mysql/MySQLRdbDashboardProvider.d.ts +16 -0
  223. package/built/src/drivers/providers/rdbDashboard/vendors/mysql/MySQLRdbDashboardProvider.js +247 -0
  224. package/built/src/drivers/providers/rdbDashboard/vendors/mysql/MySQLRdbDashboardProvider.js.map +1 -0
  225. package/built/src/drivers/providers/rdbDashboard/vendors/mysql/index.d.ts +3 -0
  226. package/built/src/drivers/providers/rdbDashboard/vendors/mysql/index.js +7 -0
  227. package/built/src/drivers/providers/rdbDashboard/vendors/mysql/index.js.map +1 -0
  228. package/built/src/drivers/providers/rdbDashboard/vendors/mysql/mysqlDashboardCatalog.d.ts +4 -0
  229. package/built/src/drivers/providers/rdbDashboard/vendors/mysql/mysqlDashboardCatalog.js +279 -0
  230. package/built/src/drivers/providers/rdbDashboard/vendors/mysql/mysqlDashboardCatalog.js.map +1 -0
  231. package/built/src/drivers/providers/rdbDashboard/vendors/mysql/mysqlDashboardQueries.d.ts +5 -0
  232. package/built/src/drivers/providers/rdbDashboard/vendors/mysql/mysqlDashboardQueries.js +41 -0
  233. package/built/src/drivers/providers/rdbDashboard/vendors/mysql/mysqlDashboardQueries.js.map +1 -0
  234. package/built/src/drivers/providers/rdbDashboard/vendors/oracle/OracleRdbDashboardProvider.d.ts +21 -0
  235. package/built/src/drivers/providers/rdbDashboard/vendors/oracle/OracleRdbDashboardProvider.js +420 -0
  236. package/built/src/drivers/providers/rdbDashboard/vendors/oracle/OracleRdbDashboardProvider.js.map +1 -0
  237. package/built/src/drivers/providers/rdbDashboard/vendors/oracle/index.d.ts +3 -0
  238. package/built/src/drivers/providers/rdbDashboard/vendors/oracle/index.js +7 -0
  239. package/built/src/drivers/providers/rdbDashboard/vendors/oracle/index.js.map +1 -0
  240. package/built/src/drivers/providers/rdbDashboard/vendors/oracle/oracleDashboardCatalog.d.ts +12 -0
  241. package/built/src/drivers/providers/rdbDashboard/vendors/oracle/oracleDashboardCatalog.js +117 -0
  242. package/built/src/drivers/providers/rdbDashboard/vendors/oracle/oracleDashboardCatalog.js.map +1 -0
  243. package/built/src/drivers/providers/rdbDashboard/vendors/oracle/oracleDashboardQueries.d.ts +8 -0
  244. package/built/src/drivers/providers/rdbDashboard/vendors/oracle/oracleDashboardQueries.js +60 -0
  245. package/built/src/drivers/providers/rdbDashboard/vendors/oracle/oracleDashboardQueries.js.map +1 -0
  246. package/built/src/drivers/providers/rdbDashboard/vendors/postgres/PostgresRdbDashboardProvider.d.ts +13 -0
  247. package/built/src/drivers/providers/rdbDashboard/vendors/postgres/PostgresRdbDashboardProvider.js +216 -0
  248. package/built/src/drivers/providers/rdbDashboard/vendors/postgres/PostgresRdbDashboardProvider.js.map +1 -0
  249. package/built/src/drivers/providers/rdbDashboard/vendors/postgres/index.d.ts +3 -0
  250. package/built/src/drivers/providers/rdbDashboard/vendors/postgres/index.js +7 -0
  251. package/built/src/drivers/providers/rdbDashboard/vendors/postgres/index.js.map +1 -0
  252. package/built/src/drivers/providers/rdbDashboard/vendors/postgres/postgresDashboardCatalog.d.ts +4 -0
  253. package/built/src/drivers/providers/rdbDashboard/vendors/postgres/postgresDashboardCatalog.js +218 -0
  254. package/built/src/drivers/providers/rdbDashboard/vendors/postgres/postgresDashboardCatalog.js.map +1 -0
  255. package/built/src/drivers/providers/rdbDashboard/vendors/postgres/postgresDashboardQueries.d.ts +3 -0
  256. package/built/src/drivers/providers/rdbDashboard/vendors/postgres/postgresDashboardQueries.js +70 -0
  257. package/built/src/drivers/providers/rdbDashboard/vendors/postgres/postgresDashboardQueries.js.map +1 -0
  258. package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/SQLiteRdbDashboardProvider.d.ts +20 -0
  259. package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/SQLiteRdbDashboardProvider.js +259 -0
  260. package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/SQLiteRdbDashboardProvider.js.map +1 -0
  261. package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/index.d.ts +3 -0
  262. package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/index.js +7 -0
  263. package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/index.js.map +1 -0
  264. package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/sqliteDashboardCatalog.d.ts +5 -0
  265. package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/sqliteDashboardCatalog.js +135 -0
  266. package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/sqliteDashboardCatalog.js.map +1 -0
  267. package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/sqliteDashboardQueries.d.ts +4 -0
  268. package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/sqliteDashboardQueries.js +14 -0
  269. package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/sqliteDashboardQueries.js.map +1 -0
  270. package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/SQLServerRdbDashboardProvider.d.ts +16 -0
  271. package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/SQLServerRdbDashboardProvider.js +301 -0
  272. package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/SQLServerRdbDashboardProvider.js.map +1 -0
  273. package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/index.d.ts +3 -0
  274. package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/index.js +7 -0
  275. package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/index.js.map +1 -0
  276. package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/sqlServerDashboardCatalog.d.ts +4 -0
  277. package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/sqlServerDashboardCatalog.js +130 -0
  278. package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/sqlServerDashboardCatalog.js.map +1 -0
  279. package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/sqlServerDashboardQueries.d.ts +6 -0
  280. package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/sqlServerDashboardQueries.js +91 -0
  281. package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/sqlServerDashboardQueries.js.map +1 -0
  282. package/built/src/helpers/ProposalHelper.js.map +1 -1
  283. package/built/src/helpers/SQLHelper.d.ts +1 -1
  284. package/built/src/helpers/SQLHelper.js +3 -1
  285. package/built/src/helpers/SQLHelper.js.map +1 -1
  286. package/built/src/helpers/dynamoDbBillingMode.d.ts +6 -0
  287. package/built/src/helpers/dynamoDbBillingMode.js +16 -0
  288. package/built/src/helpers/dynamoDbBillingMode.js.map +1 -0
  289. package/built/src/helpers/index.d.ts +1 -0
  290. package/built/src/helpers/index.js +1 -0
  291. package/built/src/helpers/index.js.map +1 -1
  292. package/built/src/helpers/prompts/Auth0PromptHelper.js.map +1 -1
  293. package/built/src/helpers/prompts/AwsPromptHelper.js.map +1 -1
  294. package/built/src/helpers/prompts/KeycloakPromptHelper.js.map +1 -1
  295. package/built/src/helpers/prompts/MemcachePromptHelper.js.map +1 -1
  296. package/built/src/helpers/prompts/MqttPromptHelper.js.map +1 -1
  297. package/built/src/helpers/prompts/RdsPromptHelper.js.map +1 -1
  298. package/built/src/helpers/prompts/RedisPromptHelper.js.map +1 -1
  299. package/built/src/helpers/prompts/SchemaPromptHelper.js.map +1 -1
  300. package/built/src/helpers/prompts/promptFormatUtils.js.map +1 -1
  301. package/built/src/helpers/sql/mutationQuery.js.map +1 -1
  302. package/built/src/helpers/sql/parameterNormalizer.js +2 -2
  303. package/built/src/helpers/sql/parameterNormalizer.js.map +1 -1
  304. package/built/src/helpers/sql/queryParser.js +272 -48
  305. package/built/src/helpers/sql/queryParser.js.map +1 -1
  306. package/built/src/helpers/sql/quote.d.ts +2 -0
  307. package/built/src/helpers/sql/quote.js +9 -2
  308. package/built/src/helpers/sql/quote.js.map +1 -1
  309. package/built/src/helpers/sql/selectQuery.js.map +1 -1
  310. package/built/src/resource/aws.d.ts +2 -1
  311. package/built/src/resource/aws.js +76 -2
  312. package/built/src/resource/aws.js.map +1 -1
  313. package/built/src/resource/base.d.ts +2 -1
  314. package/built/src/resource/base.js.map +1 -1
  315. package/built/src/resource/fromJson.js.map +1 -1
  316. package/built/src/resource/iam.js.map +1 -1
  317. package/built/src/resource/index.js.map +1 -1
  318. package/built/src/resource/keyValue.js.map +1 -1
  319. package/built/src/types/drivers/EstimatedBindParameter.d.ts +12 -0
  320. package/built/src/types/drivers/EstimatedBindParameter.js +3 -0
  321. package/built/src/types/drivers/EstimatedBindParameter.js.map +1 -0
  322. package/built/src/types/drivers/StatementStatistics.d.ts +13 -0
  323. package/built/src/types/drivers/StatementStatistics.js +10 -0
  324. package/built/src/types/drivers/StatementStatistics.js.map +1 -0
  325. package/built/src/types/drivers/index.d.ts +5 -0
  326. package/built/src/types/drivers/index.js +5 -0
  327. package/built/src/types/drivers/index.js.map +1 -1
  328. package/built/src/types/drivers/metrics/CloudWatchMetrics.d.ts +168 -0
  329. package/built/src/types/drivers/metrics/CloudWatchMetrics.js +3 -0
  330. package/built/src/types/drivers/metrics/CloudWatchMetrics.js.map +1 -0
  331. package/built/src/types/drivers/metrics/index.d.ts +1 -0
  332. package/built/src/types/drivers/metrics/index.js +5 -0
  333. package/built/src/types/drivers/metrics/index.js.map +1 -0
  334. package/built/src/types/drivers/performance/DynamoDbPerformanceTuningCapabilities.d.ts +12 -0
  335. package/built/src/types/drivers/performance/DynamoDbPerformanceTuningCapabilities.js +3 -0
  336. package/built/src/types/drivers/performance/DynamoDbPerformanceTuningCapabilities.js.map +1 -0
  337. package/built/src/types/drivers/performance/DynamoDbPerformanceTuningContext.d.ts +302 -0
  338. package/built/src/types/drivers/performance/DynamoDbPerformanceTuningContext.js +7 -0
  339. package/built/src/types/drivers/performance/DynamoDbPerformanceTuningContext.js.map +1 -0
  340. package/built/src/types/drivers/performance/DynamoDbPerformanceTuningDiagnostic.d.ts +13 -0
  341. package/built/src/types/drivers/performance/DynamoDbPerformanceTuningDiagnostic.js +3 -0
  342. package/built/src/types/drivers/performance/DynamoDbPerformanceTuningDiagnostic.js.map +1 -0
  343. package/built/src/types/drivers/performance/PerformanceTuningCapabilities.d.ts +17 -0
  344. package/built/src/types/drivers/performance/PerformanceTuningCapabilities.js +3 -0
  345. package/built/src/types/drivers/performance/PerformanceTuningCapabilities.js.map +1 -0
  346. package/built/src/types/drivers/performance/PerformanceTuningContext.d.ts +263 -0
  347. package/built/src/types/drivers/performance/PerformanceTuningContext.js +3 -0
  348. package/built/src/types/drivers/performance/PerformanceTuningContext.js.map +1 -0
  349. package/built/src/types/drivers/performance/PerformanceTuningDiagnostic.d.ts +28 -0
  350. package/built/src/types/drivers/performance/PerformanceTuningDiagnostic.js +3 -0
  351. package/built/src/types/drivers/performance/PerformanceTuningDiagnostic.js.map +1 -0
  352. package/built/src/types/drivers/performance/PlanNode.d.ts +37 -0
  353. package/built/src/types/drivers/performance/PlanNode.js +3 -0
  354. package/built/src/types/drivers/performance/PlanNode.js.map +1 -0
  355. package/built/src/types/drivers/performance/index.d.ts +7 -0
  356. package/built/src/types/drivers/performance/index.js +11 -0
  357. package/built/src/types/drivers/performance/index.js.map +1 -0
  358. package/built/src/types/drivers/rdbDashboard/RdbDashboardCapabilities.d.ts +30 -0
  359. package/built/src/types/drivers/rdbDashboard/RdbDashboardCapabilities.js +3 -0
  360. package/built/src/types/drivers/rdbDashboard/RdbDashboardCapabilities.js.map +1 -0
  361. package/built/src/types/drivers/rdbDashboard/RdbDashboardDefinition.d.ts +134 -0
  362. package/built/src/types/drivers/rdbDashboard/RdbDashboardDefinition.js +14 -0
  363. package/built/src/types/drivers/rdbDashboard/RdbDashboardDefinition.js.map +1 -0
  364. package/built/src/types/drivers/rdbDashboard/RdbDashboardSample.d.ts +69 -0
  365. package/built/src/types/drivers/rdbDashboard/RdbDashboardSample.js +3 -0
  366. package/built/src/types/drivers/rdbDashboard/RdbDashboardSample.js.map +1 -0
  367. package/built/src/types/drivers/rdbDashboard/index.d.ts +3 -0
  368. package/built/src/types/drivers/rdbDashboard/index.js +7 -0
  369. package/built/src/types/drivers/rdbDashboard/index.js.map +1 -0
  370. package/built/src/types/helpers/index.js.map +1 -1
  371. package/built/src/types/index.d.ts +1 -0
  372. package/built/src/types/index.js +1 -0
  373. package/built/src/types/index.js.map +1 -1
  374. package/built/src/types/observability/dashboardLaunchCapability.d.ts +11 -0
  375. package/built/src/types/observability/dashboardLaunchCapability.js +22 -0
  376. package/built/src/types/observability/dashboardLaunchCapability.js.map +1 -0
  377. package/built/src/types/observability/index.d.ts +1 -0
  378. package/built/src/types/observability/index.js +5 -0
  379. package/built/src/types/observability/index.js.map +1 -0
  380. package/built/src/types/resource/AwsCfnStackAttributes.js.map +1 -1
  381. package/built/src/types/resource/AwsDynamoTableAttributes.d.ts +13 -0
  382. package/built/src/types/resource/AwsServiceType.d.ts +1 -1
  383. package/built/src/types/resource/AwsSupplyCredentialType.js.map +1 -1
  384. package/built/src/types/resource/ConnectionSetting.js.map +1 -1
  385. package/built/src/types/resource/OracleColumnType.js.map +1 -1
  386. package/built/src/types/resource/RedisKeyType.d.ts +1 -1
  387. package/built/src/types/resource/ResourceType.js.map +1 -1
  388. package/built/src/types/resource/SQLServerColumnType.js.map +1 -1
  389. package/built/src/utils/bindParameterEstimator.d.ts +22 -0
  390. package/built/src/utils/bindParameterEstimator.js +400 -0
  391. package/built/src/utils/bindParameterEstimator.js.map +1 -0
  392. package/built/src/utils/cfn/applicationDiagram.js.map +1 -1
  393. package/built/src/utils/cfn/applicationRelations.js.map +1 -1
  394. package/built/src/utils/cfn/cfnDependencyGraphDiagram.js.map +1 -1
  395. package/built/src/utils/cfn/deploymentTopology.js.map +1 -1
  396. package/built/src/utils/cfn/diagramFileModel.js.map +1 -1
  397. package/built/src/utils/cfn/drawio/cfnDependencyGraphDiagram.js.map +1 -1
  398. package/built/src/utils/cfn/drawio/commonCells.js.map +1 -1
  399. package/built/src/utils/cfn/drawio/multiAzInfrastructureDiagram.js.map +1 -1
  400. package/built/src/utils/cfn/drawioApplicationDiagram.js.map +1 -1
  401. package/built/src/utils/cfn/drawioInfrastructureDiagrams.js.map +1 -1
  402. package/built/src/utils/cfn/drawioXml.js.map +1 -1
  403. package/built/src/utils/cfn/generateDiagram.js.map +1 -1
  404. package/built/src/utils/cfn/icons.js.map +1 -1
  405. package/built/src/utils/cfn/index.js.map +1 -1
  406. package/built/src/utils/cfn/intrinsics.js.map +1 -1
  407. package/built/src/utils/cfn/multiAzDeploymentTrafficPathsAndProtection.js.map +1 -1
  408. package/built/src/utils/cfn/multiAzDeploymentTrafficPathsAndProtectionDiagram.js.map +1 -1
  409. package/built/src/utils/cfn/naming.js.map +1 -1
  410. package/built/src/utils/cfn/resourceDependencies.js.map +1 -1
  411. package/built/src/utils/cfn/templateParsing.js.map +1 -1
  412. package/built/src/utils/cfn/viewpoints.js.map +1 -1
  413. package/built/src/utils/csv.js.map +1 -1
  414. package/built/src/utils/dbType.js.map +1 -1
  415. package/built/src/utils/diagramLayout/elkLayoutEngine.js.map +1 -1
  416. package/built/src/utils/diagramLayout/index.js.map +1 -1
  417. package/built/src/utils/diagramLayout/normalizeLayout.js.map +1 -1
  418. package/built/src/utils/drawio/drawioXml.js.map +1 -1
  419. package/built/src/utils/drawio/index.js.map +1 -1
  420. package/built/src/utils/dynamoDbPerformanceTuningContextValidator.d.ts +3 -0
  421. package/built/src/utils/dynamoDbPerformanceTuningContextValidator.js +440 -0
  422. package/built/src/utils/dynamoDbPerformanceTuningContextValidator.js.map +1 -0
  423. package/built/src/utils/er/erDiagramDrawioGenerator.js.map +1 -1
  424. package/built/src/utils/er/erDiagramDrawioGeneratorAuto.js.map +1 -1
  425. package/built/src/utils/er/erDiagramGenerator.js.map +1 -1
  426. package/built/src/utils/er/index.d.ts +1 -0
  427. package/built/src/utils/er/index.js +3 -1
  428. package/built/src/utils/er/index.js.map +1 -1
  429. package/built/src/utils/er/performanceQueryDiagram.d.ts +18 -0
  430. package/built/src/utils/er/performanceQueryDiagram.js +381 -0
  431. package/built/src/utils/er/performanceQueryDiagram.js.map +1 -0
  432. package/built/src/utils/index.d.ts +5 -0
  433. package/built/src/utils/index.js +5 -0
  434. package/built/src/utils/index.js.map +1 -1
  435. package/built/src/utils/log/buildSqlExecutions.js.map +1 -1
  436. package/built/src/utils/log/constant/base.js.map +1 -1
  437. package/built/src/utils/log/constant/logEventSplitPreset.js.map +1 -1
  438. package/built/src/utils/log/constant/sqlLogParsePreset.js.map +1 -1
  439. package/built/src/utils/log/detect/presetDetector.js.map +1 -1
  440. package/built/src/utils/log/extract/runExtractors.js.map +1 -1
  441. package/built/src/utils/log/logSummary.js.map +1 -1
  442. package/built/src/utils/log/rdh/convertExtractedSqlRdhResult.js.map +1 -1
  443. package/built/src/utils/log/sql/removeSqlComments.js.map +1 -1
  444. package/built/src/utils/log/validator.js.map +1 -1
  445. package/built/src/utils/performanceTuningContext.d.ts +45 -0
  446. package/built/src/utils/performanceTuningContext.js +149 -0
  447. package/built/src/utils/performanceTuningContext.js.map +1 -0
  448. package/built/src/utils/performanceTuningContextValidator.d.ts +3 -0
  449. package/built/src/utils/performanceTuningContextValidator.js +364 -0
  450. package/built/src/utils/performanceTuningContextValidator.js.map +1 -0
  451. package/built/src/utils/statementStatistics.d.ts +11 -0
  452. package/built/src/utils/statementStatistics.js +39 -0
  453. package/built/src/utils/statementStatistics.js.map +1 -0
  454. package/package.json +37 -31
@@ -0,0 +1,20 @@
1
+ import { ColumnDefinition, ColumnStatisticsContext, ConstraintDefinition, IndexDefinition, PartitioningDefinition } from '../../../types/drivers/performance/PerformanceTuningContext';
2
+ import { VendorPhysicalHealth, VendorTableStatistics } from './PerformanceTuningContextProvider';
3
+ export declare function mapColumnRow(row: unknown): ColumnDefinition | undefined;
4
+ export declare function mapColumnRows(rows: unknown[]): ColumnDefinition[];
5
+ export declare function mapConstraintRow(row: unknown): ConstraintDefinition | undefined;
6
+ export declare function mapConstraintRows(rows: unknown[]): ConstraintDefinition[];
7
+ export declare function mapIndexRow(row: unknown): IndexDefinition | undefined;
8
+ export declare function mapIndexRows(rows: unknown[]): IndexDefinition[];
9
+ export declare function mapPartitioningRow(row: unknown): PartitioningDefinition | undefined;
10
+ export declare function mapTableStatisticsRow(row: unknown): VendorTableStatistics | undefined;
11
+ export declare function mapColumnStatisticsRow(row: unknown): ColumnStatisticsContext | undefined;
12
+ export declare function mapColumnStatisticsRows(rows: unknown[]): ColumnStatisticsContext[];
13
+ export declare function mapPhysicalHealthRow(row: unknown): VendorPhysicalHealth;
14
+ export declare function renderPostgresTableDdl(params: {
15
+ schemaName?: string;
16
+ tableName: string;
17
+ columns: ColumnDefinition[];
18
+ constraints: ConstraintDefinition[];
19
+ indexes: IndexDefinition[];
20
+ }): string;
@@ -0,0 +1,287 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapColumnRow = mapColumnRow;
4
+ exports.mapColumnRows = mapColumnRows;
5
+ exports.mapConstraintRow = mapConstraintRow;
6
+ exports.mapConstraintRows = mapConstraintRows;
7
+ exports.mapIndexRow = mapIndexRow;
8
+ exports.mapIndexRows = mapIndexRows;
9
+ exports.mapPartitioningRow = mapPartitioningRow;
10
+ exports.mapTableStatisticsRow = mapTableStatisticsRow;
11
+ exports.mapColumnStatisticsRow = mapColumnStatisticsRow;
12
+ exports.mapColumnStatisticsRows = mapColumnStatisticsRows;
13
+ exports.mapPhysicalHealthRow = mapPhysicalHealthRow;
14
+ exports.renderPostgresTableDdl = renderPostgresTableDdl;
15
+ const vendorRowCoercion_1 = require("./vendorRowCoercion");
16
+ function metric(value, source, estimated, unit) {
17
+ return value === undefined ? undefined : { value, estimated, source, unit };
18
+ }
19
+ function mapColumnRow(row) {
20
+ var _a;
21
+ const r = (0, vendorRowCoercion_1.asRecord)(row);
22
+ const columnName = (0, vendorRowCoercion_1.asString)(r === null || r === void 0 ? void 0 : r.name);
23
+ if (!r || !columnName) {
24
+ return undefined;
25
+ }
26
+ const rawDataType = (_a = (0, vendorRowCoercion_1.asString)(r.data_type)) !== null && _a !== void 0 ? _a : 'unknown';
27
+ const udtName = (0, vendorRowCoercion_1.asString)(r.udt_name);
28
+ const dataType = (rawDataType === 'USER-DEFINED' || rawDataType === 'ARRAY') && udtName
29
+ ? udtName
30
+ : rawDataType;
31
+ return {
32
+ columnName,
33
+ dataType,
34
+ nullable: r.is_nullable === 'YES',
35
+ defaultExpression: (0, vendorRowCoercion_1.asString)(r.column_default),
36
+ ordinalPosition: (0, vendorRowCoercion_1.asNumber)(r.ordinal_position),
37
+ comment: (0, vendorRowCoercion_1.asString)(r.comment),
38
+ };
39
+ }
40
+ function mapColumnRows(rows) {
41
+ return rows.map(mapColumnRow).filter((c) => c !== undefined);
42
+ }
43
+ const CONSTRAINT_TYPE_BY_CONTYPE = {
44
+ p: 'primaryKey',
45
+ u: 'uniqueKey',
46
+ f: 'foreignKey',
47
+ c: 'check',
48
+ };
49
+ function extractCheckExpression(definition) {
50
+ if (!definition) {
51
+ return undefined;
52
+ }
53
+ const match = definition.match(/^CHECK\s*\(([\s\S]*)\)$/i);
54
+ return match ? match[1] : definition;
55
+ }
56
+ function mapConstraintRow(row) {
57
+ const r = (0, vendorRowCoercion_1.asRecord)(row);
58
+ const contype = (0, vendorRowCoercion_1.asString)(r === null || r === void 0 ? void 0 : r.contype);
59
+ const type = contype ? CONSTRAINT_TYPE_BY_CONTYPE[contype] : undefined;
60
+ if (!r || !type) {
61
+ return undefined;
62
+ }
63
+ const definition = (0, vendorRowCoercion_1.asString)(r.definition);
64
+ return {
65
+ constraintName: (0, vendorRowCoercion_1.asString)(r.constraint_name),
66
+ type,
67
+ columns: (0, vendorRowCoercion_1.asStringArray)(r.columns),
68
+ referencedSchemaName: (0, vendorRowCoercion_1.asString)(r.referenced_schema),
69
+ referencedTableName: (0, vendorRowCoercion_1.asString)(r.referenced_table),
70
+ referencedColumns: (0, vendorRowCoercion_1.asStringArray)(r.referenced_columns),
71
+ checkExpression: type === 'check' ? extractCheckExpression(definition) : undefined,
72
+ };
73
+ }
74
+ function mapConstraintRows(rows) {
75
+ return rows
76
+ .map(mapConstraintRow)
77
+ .filter((c) => c !== undefined);
78
+ }
79
+ function parseIndexColumnEntries(raw) {
80
+ if (!Array.isArray(raw)) {
81
+ return [];
82
+ }
83
+ const entries = [];
84
+ for (const item of raw) {
85
+ const r = (0, vendorRowCoercion_1.asRecord)(item);
86
+ const position = (0, vendorRowCoercion_1.asNumber)(r === null || r === void 0 ? void 0 : r.position);
87
+ if (!r || position === undefined) {
88
+ continue;
89
+ }
90
+ entries.push({
91
+ position,
92
+ name: (0, vendorRowCoercion_1.asString)(r.name),
93
+ expression: (0, vendorRowCoercion_1.asString)(r.expression),
94
+ desc: (0, vendorRowCoercion_1.asBoolean)(r.desc),
95
+ });
96
+ }
97
+ return entries.sort((a, b) => a.position - b.position);
98
+ }
99
+ function mapIndexRow(row) {
100
+ var _a;
101
+ const r = (0, vendorRowCoercion_1.asRecord)(row);
102
+ const indexName = (0, vendorRowCoercion_1.asString)(r === null || r === void 0 ? void 0 : r.index_name);
103
+ if (!r || !indexName) {
104
+ return undefined;
105
+ }
106
+ const entries = parseIndexColumnEntries(r.columns);
107
+ const nKeyAtts = (_a = (0, vendorRowCoercion_1.asNumber)(r.n_key_atts)) !== null && _a !== void 0 ? _a : entries.length;
108
+ const columns = entries
109
+ .filter((e) => e.position <= nKeyAtts)
110
+ .map((e) => ({
111
+ columnName: e.name,
112
+ expression: e.expression,
113
+ direction: e.desc ? 'desc' : 'asc',
114
+ }));
115
+ const includedColumns = entries
116
+ .filter((e) => e.position > nKeyAtts && e.name)
117
+ .map((e) => e.name);
118
+ return {
119
+ indexName,
120
+ unique: (0, vendorRowCoercion_1.asBoolean)(r.is_unique),
121
+ primary: (0, vendorRowCoercion_1.asBoolean)(r.is_primary),
122
+ columns,
123
+ includedColumns: includedColumns.length > 0 ? includedColumns : undefined,
124
+ predicate: (0, vendorRowCoercion_1.asString)(r.predicate),
125
+ enabled: r.is_valid === undefined ? undefined : (0, vendorRowCoercion_1.asBoolean)(r.is_valid),
126
+ indexType: (0, vendorRowCoercion_1.asString)(r.index_type),
127
+ };
128
+ }
129
+ function mapIndexRows(rows) {
130
+ return rows.map(mapIndexRow).filter((i) => i !== undefined);
131
+ }
132
+ function mapPartitioningRow(row) {
133
+ var _a;
134
+ const r = (0, vendorRowCoercion_1.asRecord)(row);
135
+ const strategy = (0, vendorRowCoercion_1.asString)(r === null || r === void 0 ? void 0 : r.strategy);
136
+ if (!r || !strategy) {
137
+ return undefined;
138
+ }
139
+ const columnsMatch = (_a = (0, vendorRowCoercion_1.asString)(r.partition_key_def)) === null || _a === void 0 ? void 0 : _a.match(/\(([^)]*)\)/);
140
+ const columns = columnsMatch
141
+ ? columnsMatch[1]
142
+ .split(',')
143
+ .map((c) => c.trim())
144
+ .filter((c) => c.length > 0)
145
+ : undefined;
146
+ return {
147
+ strategy,
148
+ columns: columns && columns.length > 0 ? columns : undefined,
149
+ partitionCount: (0, vendorRowCoercion_1.asNumber)(r.partition_count),
150
+ };
151
+ }
152
+ function mapTableStatisticsRow(row) {
153
+ var _a;
154
+ const r = (0, vendorRowCoercion_1.asRecord)(row);
155
+ if (!r) {
156
+ return undefined;
157
+ }
158
+ return {
159
+ estimatedRowCount: metric((0, vendorRowCoercion_1.asNumber)(r.estimated_row_count), 'pg_class.reltuples', true, 'rows'),
160
+ tableBytes: metric((0, vendorRowCoercion_1.asNumber)(r.table_bytes), 'pg_table_size', false, 'bytes'),
161
+ indexBytes: metric((0, vendorRowCoercion_1.asNumber)(r.index_bytes), 'pg_indexes_size', false, 'bytes'),
162
+ totalBytes: metric((0, vendorRowCoercion_1.asNumber)(r.total_bytes), 'pg_total_relation_size', false, 'bytes'),
163
+ statisticsUpdatedAt: metric((_a = (0, vendorRowCoercion_1.asIsoDateString)(r.last_analyze)) !== null && _a !== void 0 ? _a : (0, vendorRowCoercion_1.asIsoDateString)(r.last_autoanalyze), (0, vendorRowCoercion_1.asIsoDateString)(r.last_analyze)
164
+ ? 'pg_stat_user_tables.last_analyze'
165
+ : 'pg_stat_user_tables.last_autoanalyze', false),
166
+ modificationsSinceAnalyze: metric((0, vendorRowCoercion_1.asNumber)(r.n_mod_since_analyze), 'pg_stat_user_tables.n_mod_since_analyze', true, 'rows'),
167
+ };
168
+ }
169
+ function mapColumnStatisticsRow(row) {
170
+ const r = (0, vendorRowCoercion_1.asRecord)(row);
171
+ const columnName = (0, vendorRowCoercion_1.asString)(r === null || r === void 0 ? void 0 : r.attname);
172
+ if (!r || !columnName) {
173
+ return undefined;
174
+ }
175
+ const nDistinct = (0, vendorRowCoercion_1.asNumber)(r.n_distinct);
176
+ const rowCount = (0, vendorRowCoercion_1.asNumber)(r.reltuples);
177
+ let distinctCount;
178
+ let distinctFraction;
179
+ if (nDistinct !== undefined) {
180
+ if (nDistinct >= 0) {
181
+ distinctCount = metric(nDistinct, 'pg_stats.n_distinct', true, 'values');
182
+ if (rowCount && rowCount > 0) {
183
+ distinctFraction = metric(nDistinct / rowCount, 'pg_stats.n_distinct', true);
184
+ }
185
+ }
186
+ else {
187
+ const fraction = -nDistinct;
188
+ distinctFraction = metric(fraction, 'pg_stats.n_distinct', true);
189
+ if (rowCount && rowCount > 0) {
190
+ distinctCount = metric(Math.round(fraction * rowCount), 'pg_stats.n_distinct', true, 'values');
191
+ }
192
+ }
193
+ }
194
+ return {
195
+ columnName,
196
+ distinctCount,
197
+ distinctFraction,
198
+ nullFraction: metric((0, vendorRowCoercion_1.asNumber)(r.null_frac), 'pg_stats.null_frac', true),
199
+ averageWidthBytes: metric((0, vendorRowCoercion_1.asNumber)(r.avg_width), 'pg_stats.avg_width', true, 'bytes'),
200
+ correlation: metric((0, vendorRowCoercion_1.asNumber)(r.correlation), 'pg_stats.correlation', true),
201
+ };
202
+ }
203
+ function mapColumnStatisticsRows(rows) {
204
+ return rows
205
+ .map(mapColumnStatisticsRow)
206
+ .filter((c) => c !== undefined);
207
+ }
208
+ function mapPhysicalHealthRow(row) {
209
+ var _a;
210
+ const r = (_a = (0, vendorRowCoercion_1.asRecord)(row)) !== null && _a !== void 0 ? _a : {};
211
+ const liveTuples = (0, vendorRowCoercion_1.asNumber)(r.n_live_tup);
212
+ const deadTuples = (0, vendorRowCoercion_1.asNumber)(r.n_dead_tup);
213
+ const metrics = [];
214
+ const push = (name, value, unit, estimated = true, description) => {
215
+ if (value === undefined) {
216
+ return;
217
+ }
218
+ metrics.push({ name, value, unit, estimated, description });
219
+ };
220
+ push('liveTuples', liveTuples, 'rows', true, 'pg_stat_user_tables.n_live_tup');
221
+ push('deadTuples', deadTuples, 'rows', true, 'pg_stat_user_tables.n_dead_tup');
222
+ if (liveTuples !== undefined && deadTuples !== undefined && liveTuples + deadTuples > 0) {
223
+ push('deadTupleRatio', deadTuples / (liveTuples + deadTuples), undefined, true, 'n_dead_tup / (n_live_tup + n_dead_tup)');
224
+ }
225
+ push('modificationsSinceAnalyze', (0, vendorRowCoercion_1.asNumber)(r.n_mod_since_analyze), 'rows', true, 'pg_stat_user_tables.n_mod_since_analyze');
226
+ push('lastVacuum', (0, vendorRowCoercion_1.asIsoDateString)(r.last_vacuum), undefined, false, 'pg_stat_user_tables.last_vacuum');
227
+ push('lastAutovacuum', (0, vendorRowCoercion_1.asIsoDateString)(r.last_autovacuum), undefined, false, 'pg_stat_user_tables.last_autovacuum');
228
+ push('lastAnalyze', (0, vendorRowCoercion_1.asIsoDateString)(r.last_analyze), undefined, false, 'pg_stat_user_tables.last_analyze');
229
+ push('lastAutoanalyze', (0, vendorRowCoercion_1.asIsoDateString)(r.last_autoanalyze), undefined, false, 'pg_stat_user_tables.last_autoanalyze');
230
+ return { metrics };
231
+ }
232
+ const CONSTRAINT_DDL_KEYWORD = {
233
+ primaryKey: 'PRIMARY KEY',
234
+ uniqueKey: 'UNIQUE',
235
+ foreignKey: 'FOREIGN KEY',
236
+ check: 'CHECK',
237
+ };
238
+ function renderPostgresTableDdl(params) {
239
+ const { schemaName, tableName, columns, constraints, indexes } = params;
240
+ const qualifiedName = schemaName ? `${schemaName}.${tableName}` : tableName;
241
+ const columnLines = columns.map((col) => {
242
+ let line = ` ${col.columnName} ${col.dataType}`;
243
+ if (!col.nullable) {
244
+ line += ' NOT NULL';
245
+ }
246
+ if (col.defaultExpression) {
247
+ line += ` DEFAULT ${col.defaultExpression}`;
248
+ }
249
+ return line;
250
+ });
251
+ const constraintLines = constraints.map((c) => {
252
+ var _a, _b, _c, _d;
253
+ const keyword = CONSTRAINT_DDL_KEYWORD[c.type];
254
+ const name = c.constraintName ? `CONSTRAINT ${c.constraintName} ` : '';
255
+ if (c.type === 'check') {
256
+ return ` ${name}${keyword} (${(_a = c.checkExpression) !== null && _a !== void 0 ? _a : ''})`;
257
+ }
258
+ if (c.type === 'foreignKey') {
259
+ const ref = c.referencedTableName
260
+ ? ` REFERENCES ${c.referencedSchemaName ? `${c.referencedSchemaName}.` : ''}${c.referencedTableName}(${((_b = c.referencedColumns) !== null && _b !== void 0 ? _b : []).join(', ')})`
261
+ : '';
262
+ return ` ${name}${keyword} (${((_c = c.columns) !== null && _c !== void 0 ? _c : []).join(', ')})${ref}`;
263
+ }
264
+ return ` ${name}${keyword} (${((_d = c.columns) !== null && _d !== void 0 ? _d : []).join(', ')})`;
265
+ });
266
+ const tableDdl = `CREATE TABLE ${qualifiedName} (\n${[...columnLines, ...constraintLines].join(',\n')}\n);`;
267
+ const constraintBackedIndexNames = new Set(constraints
268
+ .filter((c) => c.type === 'primaryKey' || c.type === 'uniqueKey')
269
+ .map((c) => c.constraintName)
270
+ .filter((name) => !!name));
271
+ const indexDdls = indexes
272
+ .filter((idx) => !constraintBackedIndexNames.has(idx.indexName))
273
+ .map((idx) => {
274
+ var _a;
275
+ const uniqueKeyword = idx.unique ? 'UNIQUE ' : '';
276
+ const cols = idx.columns
277
+ .map((c) => { var _a, _b; return `${(_b = (_a = c.columnName) !== null && _a !== void 0 ? _a : c.expression) !== null && _b !== void 0 ? _b : ''}${c.direction === 'desc' ? ' DESC' : ''}`; })
278
+ .join(', ');
279
+ const include = ((_a = idx.includedColumns) === null || _a === void 0 ? void 0 : _a.length)
280
+ ? ` INCLUDE (${idx.includedColumns.join(', ')})`
281
+ : '';
282
+ const where = idx.predicate ? ` WHERE ${idx.predicate}` : '';
283
+ return `CREATE ${uniqueKeyword}INDEX ${idx.indexName} ON ${qualifiedName} (${cols})${include}${where};`;
284
+ });
285
+ return [tableDdl, ...indexDdls].join('\n');
286
+ }
287
+ //# sourceMappingURL=postgresCatalogMapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgresCatalogMapper.js","sourceRoot":"","sources":["../../../../../src/drivers/providers/performance/postgresCatalogMapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { PlanTableMapping } from '../../../types/drivers/performance/PerformanceTuningContext';
2
+ import { PerformanceTuningDiagnostic } from '../../../types/drivers/performance/PerformanceTuningDiagnostic';
3
+ import { PlanNode } from '../../../types/drivers/performance/PlanNode';
4
+ export declare function extractPredicateColumns(predicate: string | undefined): string[];
5
+ export declare function extractPlanningTimeMs(explainRoot: unknown): number | undefined;
6
+ export declare function extractExecutionTimeMs(explainRoot: unknown): number | undefined;
7
+ export type ParsedPostgresPlan = {
8
+ planNode: PlanNode;
9
+ mappings: PlanTableMapping[];
10
+ diagnostics: PerformanceTuningDiagnostic[];
11
+ };
12
+ export declare function parsePostgresPlan(explainRoot: unknown): ParsedPostgresPlan;
13
+ export declare function resolvePlanTableMappings(explainRoot: unknown): PlanTableMapping[];
@@ -0,0 +1,258 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractPredicateColumns = extractPredicateColumns;
4
+ exports.extractPlanningTimeMs = extractPlanningTimeMs;
5
+ exports.extractExecutionTimeMs = extractExecutionTimeMs;
6
+ exports.parsePostgresPlan = parsePostgresPlan;
7
+ exports.resolvePlanTableMappings = resolvePlanTableMappings;
8
+ const performanceTuningDiagnosticHelpers_1 = require("./performanceTuningDiagnosticHelpers");
9
+ const planNodeMath_1 = require("./planNodeMath");
10
+ const vendorRowCoercion_1 = require("./vendorRowCoercion");
11
+ const PREDICATE_KEYS = [
12
+ 'Filter',
13
+ 'Index Cond',
14
+ 'Hash Cond',
15
+ 'Merge Cond',
16
+ 'Join Filter',
17
+ 'Recheck Cond',
18
+ ];
19
+ const COLUMN_BEFORE_OPERATOR = /([a-zA-Z_][a-zA-Z0-9_.]*)\s*(?:=|<>|!=|<=|>=|<|>|~~?|!~~?|\bIN\b|\bLIKE\b|\bILIKE\b)/gi;
20
+ function extractPredicateColumns(predicate) {
21
+ if (!predicate) {
22
+ return [];
23
+ }
24
+ const columns = new Set();
25
+ for (const match of predicate.matchAll(COLUMN_BEFORE_OPERATOR)) {
26
+ const raw = match[1];
27
+ if (!raw) {
28
+ continue;
29
+ }
30
+ const column = raw.includes('.') ? raw.split('.').pop() : raw;
31
+ if (column) {
32
+ columns.add(column);
33
+ }
34
+ }
35
+ return [...columns];
36
+ }
37
+ function extractPlanningTimeMs(explainRoot) {
38
+ var _a;
39
+ return (0, vendorRowCoercion_1.asNumber)((_a = (0, vendorRowCoercion_1.asRecord)(explainRoot)) === null || _a === void 0 ? void 0 : _a['Planning Time']);
40
+ }
41
+ function extractExecutionTimeMs(explainRoot) {
42
+ var _a;
43
+ return (0, vendorRowCoercion_1.asNumber)((_a = (0, vendorRowCoercion_1.asRecord)(explainRoot)) === null || _a === void 0 ? void 0 : _a['Execution Time']);
44
+ }
45
+ const hasAnyKey = (node, keys) => keys.some((key) => node[key] !== undefined);
46
+ const NON_TABLE_SCAN_OPERATIONS = {
47
+ 'Function Scan': { objectKind: 'function', nameKeys: ['Function Name'] },
48
+ 'Values Scan': { objectKind: 'values', nameKeys: ['Alias'] },
49
+ 'CTE Scan': { objectKind: 'cte', nameKeys: ['CTE Name', 'Alias'] },
50
+ 'WorkTable Scan': { objectKind: 'workTable', nameKeys: ['CTE Name', 'Alias'] },
51
+ 'Subquery Scan': { objectKind: 'subquery', nameKeys: ['Alias'] },
52
+ };
53
+ function collectBitmapIndexScans(rawChildren) {
54
+ if (!Array.isArray(rawChildren)) {
55
+ return [];
56
+ }
57
+ const scans = [];
58
+ for (const childValue of rawChildren) {
59
+ const child = (0, vendorRowCoercion_1.asRecord)(childValue);
60
+ if (!child) {
61
+ continue;
62
+ }
63
+ const operation = (0, vendorRowCoercion_1.asString)(child['Node Type']);
64
+ if (operation === 'Bitmap Index Scan') {
65
+ scans.push(child);
66
+ }
67
+ else if (operation === 'BitmapAnd' || operation === 'BitmapOr') {
68
+ scans.push(...collectBitmapIndexScans(child['Plans']));
69
+ }
70
+ }
71
+ return scans;
72
+ }
73
+ function parsePostgresPlan(explainRoot) {
74
+ var _a;
75
+ const mappings = [];
76
+ const diagnostics = [];
77
+ let counter = 0;
78
+ const visit = (nodeValue, parentId, depth, bitmapRelation) => {
79
+ var _a;
80
+ const node = (0, vendorRowCoercion_1.asRecord)(nodeValue);
81
+ if (!node) {
82
+ return undefined;
83
+ }
84
+ const id = `n${counter++}`;
85
+ const operation = (_a = (0, vendorRowCoercion_1.asString)(node['Node Type'])) !== null && _a !== void 0 ? _a : 'Unknown';
86
+ const tableName = (0, vendorRowCoercion_1.asString)(node['Relation Name']);
87
+ const schemaName = (0, vendorRowCoercion_1.asString)(node['Schema']);
88
+ const aliasValue = (0, vendorRowCoercion_1.asString)(node['Alias']);
89
+ const indexName = (0, vendorRowCoercion_1.asString)(node['Index Name']);
90
+ const ownRelation = tableName
91
+ ? { schemaName, tableName, alias: aliasValue }
92
+ : undefined;
93
+ const inheritedBitmapRelation = operation === 'Bitmap Index Scan' ? bitmapRelation : undefined;
94
+ const relation = ownRelation !== null && ownRelation !== void 0 ? ownRelation : inheritedBitmapRelation;
95
+ const bitmapIndexScans = operation === 'Bitmap Heap Scan' ? collectBitmapIndexScans(node['Plans']) : [];
96
+ const mergedBitmapIndexName = bitmapIndexScans.length === 1 ? (0, vendorRowCoercion_1.asString)(bitmapIndexScans[0]['Index Name']) : undefined;
97
+ const predicates = [];
98
+ const filterColumns = new Set();
99
+ for (const key of PREDICATE_KEYS) {
100
+ const predicate = (0, vendorRowCoercion_1.asString)(node[key]);
101
+ if (predicate) {
102
+ predicates.push(predicate);
103
+ for (const column of extractPredicateColumns(predicate)) {
104
+ filterColumns.add(column);
105
+ }
106
+ }
107
+ }
108
+ const mappingFilterColumns = new Set(filterColumns);
109
+ for (const bitmapIndexScan of bitmapIndexScans) {
110
+ for (const key of PREDICATE_KEYS) {
111
+ const predicate = (0, vendorRowCoercion_1.asString)(bitmapIndexScan[key]);
112
+ for (const column of extractPredicateColumns(predicate)) {
113
+ mappingFilterColumns.add(column);
114
+ }
115
+ }
116
+ }
117
+ if (tableName) {
118
+ const alias = aliasValue && aliasValue !== tableName ? aliasValue : undefined;
119
+ const estimatedRows = (0, vendorRowCoercion_1.asNumber)(node['Plan Rows']);
120
+ const actualRows = (0, vendorRowCoercion_1.asNumber)(node['Actual Rows']);
121
+ const rowsRemovedByFilter = (0, vendorRowCoercion_1.asNumber)(node['Rows Removed by Filter']);
122
+ const hasLocalFilter = (0, vendorRowCoercion_1.asString)(node['Filter']) !== undefined;
123
+ const tableAccessRows = actualRows !== undefined
124
+ ? {
125
+ value: actualRows + (hasLocalFilter && rowsRemovedByFilter !== undefined ? rowsRemovedByFilter : 0),
126
+ estimated: false,
127
+ source: hasLocalFilter && rowsRemovedByFilter !== undefined
128
+ ? 'PostgreSQL EXPLAIN ANALYZE Actual Rows + Rows Removed by Filter (per loop)'
129
+ : 'PostgreSQL EXPLAIN ANALYZE Actual Rows (per loop)',
130
+ }
131
+ : undefined;
132
+ const predicateFilterInputRows = hasLocalFilter && actualRows !== undefined && rowsRemovedByFilter !== undefined
133
+ ? {
134
+ value: actualRows + rowsRemovedByFilter,
135
+ estimated: false,
136
+ source: 'PostgreSQL EXPLAIN ANALYZE Actual Rows + Rows Removed by Filter (per loop)',
137
+ }
138
+ : undefined;
139
+ const predicateFilterOutputRows = predicateFilterInputRows
140
+ ? {
141
+ value: actualRows,
142
+ estimated: false,
143
+ source: 'PostgreSQL EXPLAIN ANALYZE Actual Rows (per loop)',
144
+ }
145
+ : undefined;
146
+ mappings.push({
147
+ planNodeId: id,
148
+ schemaName,
149
+ tableName,
150
+ alias,
151
+ indexName: indexName !== null && indexName !== void 0 ? indexName : mergedBitmapIndexName,
152
+ estimatedRows,
153
+ actualRows,
154
+ tableAccessRows,
155
+ predicateFilterInputRows,
156
+ predicateFilterOutputRows,
157
+ rowEstimateRatio: (0, planNodeMath_1.computeRowEstimateRatio)(estimatedRows, actualRows),
158
+ filterColumns: mappingFilterColumns.size > 0 ? [...mappingFilterColumns] : undefined,
159
+ });
160
+ }
161
+ else {
162
+ const nonTableScan = NON_TABLE_SCAN_OPERATIONS[operation];
163
+ if (nonTableScan) {
164
+ const objectName = nonTableScan.nameKeys.map((key) => (0, vendorRowCoercion_1.asString)(node[key])).find((v) => v !== undefined);
165
+ diagnostics.push({
166
+ code: 'NON_TABLE_PLAN_SOURCE',
167
+ severity: 'info',
168
+ affectsCompleteness: false,
169
+ scope: 'executionPlan',
170
+ message: `Plan node ${id} (${operation}) reads from a non-table source; table definitions and statistics do not apply to it.`,
171
+ node: { id, operation, objectKind: nonTableScan.objectKind, objectName },
172
+ });
173
+ }
174
+ else if (operation === 'Bitmap Index Scan' && inheritedBitmapRelation) {
175
+ }
176
+ else if (operation.endsWith('Scan')) {
177
+ diagnostics.push({
178
+ code: 'TABLE_MAPPING_FAILED',
179
+ severity: 'warning',
180
+ affectsCompleteness: true,
181
+ scope: 'executionPlan',
182
+ message: `Could not resolve a table for plan node ${id} (${operation}).`,
183
+ node: { id, operation },
184
+ });
185
+ }
186
+ }
187
+ const children = [];
188
+ const rawChildren = node['Plans'];
189
+ const childBitmapRelation = operation === 'Bitmap Heap Scan' && ownRelation
190
+ ? ownRelation
191
+ : operation === 'BitmapAnd' || operation === 'BitmapOr'
192
+ ? bitmapRelation
193
+ : undefined;
194
+ if (Array.isArray(rawChildren)) {
195
+ for (const child of rawChildren) {
196
+ const childNode = visit(child, id, depth + 1, childBitmapRelation);
197
+ if (childNode) {
198
+ children.push(childNode);
199
+ }
200
+ }
201
+ }
202
+ const planNode = {
203
+ id,
204
+ parentId,
205
+ depth,
206
+ operation,
207
+ relation,
208
+ indexName: indexName !== null && indexName !== void 0 ? indexName : mergedBitmapIndexName,
209
+ joinType: (0, vendorRowCoercion_1.asString)(node['Join Type']),
210
+ predicates: predicates.length > 0 ? predicates : undefined,
211
+ estimated: {
212
+ startupCost: (0, vendorRowCoercion_1.asNumber)(node['Startup Cost']),
213
+ totalCost: (0, vendorRowCoercion_1.asNumber)(node['Total Cost']),
214
+ rows: (0, vendorRowCoercion_1.asNumber)(node['Plan Rows']),
215
+ width: (0, vendorRowCoercion_1.asNumber)(node['Plan Width']),
216
+ },
217
+ actual: hasAnyKey(node, ['Actual Startup Time', 'Actual Total Time', 'Actual Rows', 'Actual Loops'])
218
+ ? {
219
+ startupMs: (0, vendorRowCoercion_1.asNumber)(node['Actual Startup Time']),
220
+ totalMs: (0, vendorRowCoercion_1.asNumber)(node['Actual Total Time']),
221
+ rows: (0, vendorRowCoercion_1.asNumber)(node['Actual Rows']),
222
+ loops: (0, vendorRowCoercion_1.asNumber)(node['Actual Loops']),
223
+ }
224
+ : undefined,
225
+ buffers: hasAnyKey(node, [
226
+ 'Shared Hit Blocks',
227
+ 'Shared Read Blocks',
228
+ 'Shared Dirtied Blocks',
229
+ 'Shared Written Blocks',
230
+ ])
231
+ ? {
232
+ hit: (0, vendorRowCoercion_1.asNumber)(node['Shared Hit Blocks']),
233
+ read: (0, vendorRowCoercion_1.asNumber)(node['Shared Read Blocks']),
234
+ dirtied: (0, vendorRowCoercion_1.asNumber)(node['Shared Dirtied Blocks']),
235
+ written: (0, vendorRowCoercion_1.asNumber)(node['Shared Written Blocks']),
236
+ }
237
+ : undefined,
238
+ temp: hasAnyKey(node, ['Temp Read Blocks', 'Temp Written Blocks'])
239
+ ? {
240
+ read: (0, vendorRowCoercion_1.asNumber)(node['Temp Read Blocks']),
241
+ written: (0, vendorRowCoercion_1.asNumber)(node['Temp Written Blocks']),
242
+ }
243
+ : undefined,
244
+ children,
245
+ };
246
+ return planNode;
247
+ };
248
+ const planNode = visit((_a = (0, vendorRowCoercion_1.asRecord)(explainRoot)) === null || _a === void 0 ? void 0 : _a['Plan'], undefined, 0);
249
+ return {
250
+ planNode: planNode !== null && planNode !== void 0 ? planNode : { id: 'n0', depth: 0, operation: 'Unknown', children: [] },
251
+ mappings,
252
+ diagnostics: planNode ? diagnostics : [...diagnostics, (0, performanceTuningDiagnosticHelpers_1.planUnresolvedDiagnostic)()],
253
+ };
254
+ }
255
+ function resolvePlanTableMappings(explainRoot) {
256
+ return parsePostgresPlan(explainRoot).mappings;
257
+ }
258
+ //# sourceMappingURL=postgresPlanParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgresPlanParser.js","sourceRoot":"","sources":["../../../../../src/drivers/providers/performance/postgresPlanParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { PlanTableMapping, RuntimeObservation } from '../../../types/drivers/performance/PerformanceTuningContext';
2
+ export type SqlServerActualPlanTableStat = {
3
+ actualRows?: number;
4
+ tableAccessRows?: number;
5
+ predicateFilterInputRows?: number;
6
+ predicateFilterOutputRows?: number;
7
+ indexName?: string;
8
+ };
9
+ export declare function resolveSqlServerActualPlanTableStats(actualPlanXml: string, planTableMappings: PlanTableMapping[]): Map<string, SqlServerActualPlanTableStat>;
10
+ export declare function extractSqlServerRuntimeObservations(actualPlanXml: string): RuntimeObservation[];