@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.
- package/README.md +1 -0
- package/built/schema/log-parse-config.schema.json +4 -4
- package/built/src/drivers/AwsDriver.d.ts +25 -1
- package/built/src/drivers/AwsDriver.js +189 -0
- package/built/src/drivers/AwsDriver.js.map +1 -1
- package/built/src/drivers/BaseDriver.js.map +1 -1
- package/built/src/drivers/DBDriverResolver.js.map +1 -1
- package/built/src/drivers/KeycloakDriver.js.map +1 -1
- package/built/src/drivers/MqttDriver.js.map +1 -1
- package/built/src/drivers/MySQLDriver.d.ts +10 -1
- package/built/src/drivers/MySQLDriver.js +130 -0
- package/built/src/drivers/MySQLDriver.js.map +1 -1
- package/built/src/drivers/OracleDriver.d.ts +14 -1
- package/built/src/drivers/OracleDriver.js +217 -2
- package/built/src/drivers/OracleDriver.js.map +1 -1
- package/built/src/drivers/PostgresDriver.d.ts +9 -1
- package/built/src/drivers/PostgresDriver.js +90 -2
- package/built/src/drivers/PostgresDriver.js.map +1 -1
- package/built/src/drivers/RDSBaseDriver.d.ts +26 -1
- package/built/src/drivers/RDSBaseDriver.js +601 -0
- package/built/src/drivers/RDSBaseDriver.js.map +1 -1
- package/built/src/drivers/RedisDriver.js.map +1 -1
- package/built/src/drivers/SQLServerDriver.d.ts +18 -1
- package/built/src/drivers/SQLServerDriver.js +282 -6
- package/built/src/drivers/SQLServerDriver.js.map +1 -1
- package/built/src/drivers/SQLiteDriver.d.ts +7 -1
- package/built/src/drivers/SQLiteDriver.js +33 -1
- package/built/src/drivers/SQLiteDriver.js.map +1 -1
- package/built/src/drivers/aws/AwsCloudFormationServiceClient.js.map +1 -1
- package/built/src/drivers/aws/AwsDynamoServiceClient.d.ts +61 -5
- package/built/src/drivers/aws/AwsDynamoServiceClient.js +404 -108
- package/built/src/drivers/aws/AwsDynamoServiceClient.js.map +1 -1
- package/built/src/drivers/aws/AwsS3ServiceClient.js +18 -6
- package/built/src/drivers/aws/AwsS3ServiceClient.js.map +1 -1
- package/built/src/drivers/aws/AwsSQSServiceClient.js.map +1 -1
- package/built/src/drivers/aws/AwsSecretsManagerServiceClient.js.map +1 -1
- package/built/src/drivers/aws/AwsServiceClient.js.map +1 -1
- package/built/src/drivers/aws/AwsSsmServiceClient.js.map +1 -1
- package/built/src/drivers/aws/dynamoDbRdhSummary.d.ts +16 -0
- package/built/src/drivers/aws/dynamoDbRdhSummary.js +81 -0
- package/built/src/drivers/aws/dynamoDbRdhSummary.js.map +1 -0
- package/built/src/drivers/aws/dynamoDbResultMetadata.d.ts +9 -0
- package/built/src/drivers/aws/dynamoDbResultMetadata.js +71 -0
- package/built/src/drivers/aws/dynamoDbResultMetadata.js.map +1 -0
- package/built/src/drivers/index.d.ts +1 -0
- package/built/src/drivers/index.js +1 -0
- package/built/src/drivers/index.js.map +1 -1
- package/built/src/drivers/keycloak/resourceTreeBuilder.js.map +1 -1
- package/built/src/drivers/keycloak/scanResultBuilder.js.map +1 -1
- package/built/src/drivers/memcache/helper.js.map +1 -1
- package/built/src/drivers/providers/index.d.ts +3 -0
- package/built/src/drivers/providers/index.js +7 -0
- package/built/src/drivers/providers/index.js.map +1 -0
- package/built/src/drivers/providers/metrics/adapters/dynamodb/DynamoDbMetricServiceAdapter.d.ts +8 -0
- package/built/src/drivers/providers/metrics/adapters/dynamodb/DynamoDbMetricServiceAdapter.js +421 -0
- package/built/src/drivers/providers/metrics/adapters/dynamodb/DynamoDbMetricServiceAdapter.js.map +1 -0
- package/built/src/drivers/providers/metrics/adapters/dynamodb/DynamoDbOverviewMetricServiceAdapter.d.ts +7 -0
- package/built/src/drivers/providers/metrics/adapters/dynamodb/DynamoDbOverviewMetricServiceAdapter.js +84 -0
- package/built/src/drivers/providers/metrics/adapters/dynamodb/DynamoDbOverviewMetricServiceAdapter.js.map +1 -0
- package/built/src/drivers/providers/metrics/adapters/dynamodb/index.d.ts +2 -0
- package/built/src/drivers/providers/metrics/adapters/dynamodb/index.js +6 -0
- package/built/src/drivers/providers/metrics/adapters/dynamodb/index.js.map +1 -0
- package/built/src/drivers/providers/metrics/adapters/index.d.ts +6 -0
- package/built/src/drivers/providers/metrics/adapters/index.js +10 -0
- package/built/src/drivers/providers/metrics/adapters/index.js.map +1 -0
- package/built/src/drivers/providers/metrics/adapters/logs/CloudWatchLogsMetricServiceAdapter.d.ts +7 -0
- package/built/src/drivers/providers/metrics/adapters/logs/CloudWatchLogsMetricServiceAdapter.js +132 -0
- package/built/src/drivers/providers/metrics/adapters/logs/CloudWatchLogsMetricServiceAdapter.js.map +1 -0
- package/built/src/drivers/providers/metrics/adapters/logs/index.d.ts +1 -0
- package/built/src/drivers/providers/metrics/adapters/logs/index.js +5 -0
- package/built/src/drivers/providers/metrics/adapters/logs/index.js.map +1 -0
- package/built/src/drivers/providers/metrics/adapters/overview/index.d.ts +1 -0
- package/built/src/drivers/providers/metrics/adapters/overview/index.js +5 -0
- package/built/src/drivers/providers/metrics/adapters/overview/index.js.map +1 -0
- package/built/src/drivers/providers/metrics/adapters/overview/overviewMetricAdapterUtils.d.ts +26 -0
- package/built/src/drivers/providers/metrics/adapters/overview/overviewMetricAdapterUtils.js +80 -0
- package/built/src/drivers/providers/metrics/adapters/overview/overviewMetricAdapterUtils.js.map +1 -0
- package/built/src/drivers/providers/metrics/adapters/s3/S3MetricServiceAdapter.d.ts +21 -0
- package/built/src/drivers/providers/metrics/adapters/s3/S3MetricServiceAdapter.js +478 -0
- package/built/src/drivers/providers/metrics/adapters/s3/S3MetricServiceAdapter.js.map +1 -0
- package/built/src/drivers/providers/metrics/adapters/s3/S3OverviewMetricServiceAdapter.d.ts +13 -0
- package/built/src/drivers/providers/metrics/adapters/s3/S3OverviewMetricServiceAdapter.js +172 -0
- package/built/src/drivers/providers/metrics/adapters/s3/S3OverviewMetricServiceAdapter.js.map +1 -0
- package/built/src/drivers/providers/metrics/adapters/s3/index.d.ts +2 -0
- package/built/src/drivers/providers/metrics/adapters/s3/index.js +6 -0
- package/built/src/drivers/providers/metrics/adapters/s3/index.js.map +1 -0
- package/built/src/drivers/providers/metrics/adapters/ses/SesMetricServiceAdapter.d.ts +13 -0
- package/built/src/drivers/providers/metrics/adapters/ses/SesMetricServiceAdapter.js +183 -0
- package/built/src/drivers/providers/metrics/adapters/ses/SesMetricServiceAdapter.js.map +1 -0
- package/built/src/drivers/providers/metrics/adapters/ses/index.d.ts +1 -0
- package/built/src/drivers/providers/metrics/adapters/ses/index.js +5 -0
- package/built/src/drivers/providers/metrics/adapters/ses/index.js.map +1 -0
- package/built/src/drivers/providers/metrics/adapters/sqs/SqsMetricServiceAdapter.d.ts +7 -0
- package/built/src/drivers/providers/metrics/adapters/sqs/SqsMetricServiceAdapter.js +174 -0
- package/built/src/drivers/providers/metrics/adapters/sqs/SqsMetricServiceAdapter.js.map +1 -0
- package/built/src/drivers/providers/metrics/adapters/sqs/SqsOverviewMetricServiceAdapter.d.ts +7 -0
- package/built/src/drivers/providers/metrics/adapters/sqs/SqsOverviewMetricServiceAdapter.js +81 -0
- package/built/src/drivers/providers/metrics/adapters/sqs/SqsOverviewMetricServiceAdapter.js.map +1 -0
- package/built/src/drivers/providers/metrics/adapters/sqs/index.d.ts +2 -0
- package/built/src/drivers/providers/metrics/adapters/sqs/index.js +6 -0
- package/built/src/drivers/providers/metrics/adapters/sqs/index.js.map +1 -0
- package/built/src/drivers/providers/metrics/cloudwatch/CloudWatchMetricsAvailability.d.ts +23 -0
- package/built/src/drivers/providers/metrics/cloudwatch/CloudWatchMetricsAvailability.js +69 -0
- package/built/src/drivers/providers/metrics/cloudwatch/CloudWatchMetricsAvailability.js.map +1 -0
- package/built/src/drivers/providers/metrics/cloudwatch/CloudWatchMetricsCollector.d.ts +24 -0
- package/built/src/drivers/providers/metrics/cloudwatch/CloudWatchMetricsCollector.js +49 -0
- package/built/src/drivers/providers/metrics/cloudwatch/CloudWatchMetricsCollector.js.map +1 -0
- package/built/src/drivers/providers/metrics/cloudwatch/alignSeriesByTimestamp.d.ts +2 -0
- package/built/src/drivers/providers/metrics/cloudwatch/alignSeriesByTimestamp.js +16 -0
- package/built/src/drivers/providers/metrics/cloudwatch/alignSeriesByTimestamp.js.map +1 -0
- package/built/src/drivers/providers/metrics/cloudwatch/cloudWatchMetricsTransport.d.ts +21 -0
- package/built/src/drivers/providers/metrics/cloudwatch/cloudWatchMetricsTransport.js +193 -0
- package/built/src/drivers/providers/metrics/cloudwatch/cloudWatchMetricsTransport.js.map +1 -0
- package/built/src/drivers/providers/metrics/cloudwatch/collectAcrossMetricEndpoints.d.ts +6 -0
- package/built/src/drivers/providers/metrics/cloudwatch/collectAcrossMetricEndpoints.js +99 -0
- package/built/src/drivers/providers/metrics/cloudwatch/collectAcrossMetricEndpoints.js.map +1 -0
- package/built/src/drivers/providers/metrics/cloudwatch/deriveMetricSeries.d.ts +2 -0
- package/built/src/drivers/providers/metrics/cloudwatch/deriveMetricSeries.js +100 -0
- package/built/src/drivers/providers/metrics/cloudwatch/deriveMetricSeries.js.map +1 -0
- package/built/src/drivers/providers/metrics/cloudwatch/index.d.ts +7 -0
- package/built/src/drivers/providers/metrics/cloudwatch/index.js +11 -0
- package/built/src/drivers/providers/metrics/cloudwatch/index.js.map +1 -0
- package/built/src/drivers/providers/metrics/cloudwatch/metricPeriod.d.ts +2 -0
- package/built/src/drivers/providers/metrics/cloudwatch/metricPeriod.js +16 -0
- package/built/src/drivers/providers/metrics/cloudwatch/metricPeriod.js.map +1 -0
- package/built/src/drivers/providers/metrics/index.d.ts +3 -0
- package/built/src/drivers/providers/metrics/index.js +7 -0
- package/built/src/drivers/providers/metrics/index.js.map +1 -0
- package/built/src/drivers/providers/metrics/metricServiceAdapterRegistry.d.ts +8 -0
- package/built/src/drivers/providers/metrics/metricServiceAdapterRegistry.js +27 -0
- package/built/src/drivers/providers/metrics/metricServiceAdapterRegistry.js.map +1 -0
- package/built/src/drivers/providers/performance/DynamoDbPerformanceTuningProvider.d.ts +60 -0
- package/built/src/drivers/providers/performance/DynamoDbPerformanceTuningProvider.js +751 -0
- package/built/src/drivers/providers/performance/DynamoDbPerformanceTuningProvider.js.map +1 -0
- package/built/src/drivers/providers/performance/MySQLPerformanceTuningProvider.d.ts +29 -0
- package/built/src/drivers/providers/performance/MySQLPerformanceTuningProvider.js +350 -0
- package/built/src/drivers/providers/performance/MySQLPerformanceTuningProvider.js.map +1 -0
- package/built/src/drivers/providers/performance/OraclePerformanceTuningProvider.d.ts +37 -0
- package/built/src/drivers/providers/performance/OraclePerformanceTuningProvider.js +393 -0
- package/built/src/drivers/providers/performance/OraclePerformanceTuningProvider.js.map +1 -0
- package/built/src/drivers/providers/performance/PerformanceTuningContextProvider.d.ts +57 -0
- package/built/src/drivers/providers/performance/PerformanceTuningContextProvider.js +3 -0
- package/built/src/drivers/providers/performance/PerformanceTuningContextProvider.js.map +1 -0
- package/built/src/drivers/providers/performance/PostgresPerformanceTuningProvider.d.ts +24 -0
- package/built/src/drivers/providers/performance/PostgresPerformanceTuningProvider.js +328 -0
- package/built/src/drivers/providers/performance/PostgresPerformanceTuningProvider.js.map +1 -0
- package/built/src/drivers/providers/performance/SQLServerPerformanceTuningProvider.d.ts +29 -0
- package/built/src/drivers/providers/performance/SQLServerPerformanceTuningProvider.js +420 -0
- package/built/src/drivers/providers/performance/SQLServerPerformanceTuningProvider.js.map +1 -0
- package/built/src/drivers/providers/performance/dynamoDbCapacity.d.ts +38 -0
- package/built/src/drivers/providers/performance/dynamoDbCapacity.js +111 -0
- package/built/src/drivers/providers/performance/dynamoDbCapacity.js.map +1 -0
- package/built/src/drivers/providers/performance/dynamoDbCloudWatchMetrics.d.ts +20 -0
- package/built/src/drivers/providers/performance/dynamoDbCloudWatchMetrics.js +221 -0
- package/built/src/drivers/providers/performance/dynamoDbCloudWatchMetrics.js.map +1 -0
- package/built/src/drivers/providers/performance/dynamoPartiqlAccessPattern.d.ts +18 -0
- package/built/src/drivers/providers/performance/dynamoPartiqlAccessPattern.js +736 -0
- package/built/src/drivers/providers/performance/dynamoPartiqlAccessPattern.js.map +1 -0
- package/built/src/drivers/providers/performance/index.d.ts +23 -0
- package/built/src/drivers/providers/performance/index.js +27 -0
- package/built/src/drivers/providers/performance/index.js.map +1 -0
- package/built/src/drivers/providers/performance/mysqlActualPlanTextParser.d.ts +26 -0
- package/built/src/drivers/providers/performance/mysqlActualPlanTextParser.js +181 -0
- package/built/src/drivers/providers/performance/mysqlActualPlanTextParser.js.map +1 -0
- package/built/src/drivers/providers/performance/mysqlCatalogMapper.d.ts +11 -0
- package/built/src/drivers/providers/performance/mysqlCatalogMapper.js +218 -0
- package/built/src/drivers/providers/performance/mysqlCatalogMapper.js.map +1 -0
- package/built/src/drivers/providers/performance/mysqlPlanParser.d.ts +11 -0
- package/built/src/drivers/providers/performance/mysqlPlanParser.js +209 -0
- package/built/src/drivers/providers/performance/mysqlPlanParser.js.map +1 -0
- package/built/src/drivers/providers/performance/oracleActualPlanTextParser.d.ts +10 -0
- package/built/src/drivers/providers/performance/oracleActualPlanTextParser.js +245 -0
- package/built/src/drivers/providers/performance/oracleActualPlanTextParser.js.map +1 -0
- package/built/src/drivers/providers/performance/oracleCatalogMapper.d.ts +11 -0
- package/built/src/drivers/providers/performance/oracleCatalogMapper.js +226 -0
- package/built/src/drivers/providers/performance/oracleCatalogMapper.js.map +1 -0
- package/built/src/drivers/providers/performance/oraclePlanParser.d.ts +18 -0
- package/built/src/drivers/providers/performance/oraclePlanParser.js +223 -0
- package/built/src/drivers/providers/performance/oraclePlanParser.js.map +1 -0
- package/built/src/drivers/providers/performance/performanceTuningDiagnosticHelpers.d.ts +2 -0
- package/built/src/drivers/providers/performance/performanceTuningDiagnosticHelpers.js +13 -0
- package/built/src/drivers/providers/performance/performanceTuningDiagnosticHelpers.js.map +1 -0
- package/built/src/drivers/providers/performance/planNodeMath.d.ts +20 -0
- package/built/src/drivers/providers/performance/planNodeMath.js +82 -0
- package/built/src/drivers/providers/performance/planNodeMath.js.map +1 -0
- package/built/src/drivers/providers/performance/postgresCatalogMapper.d.ts +20 -0
- package/built/src/drivers/providers/performance/postgresCatalogMapper.js +287 -0
- package/built/src/drivers/providers/performance/postgresCatalogMapper.js.map +1 -0
- package/built/src/drivers/providers/performance/postgresPlanParser.d.ts +13 -0
- package/built/src/drivers/providers/performance/postgresPlanParser.js +258 -0
- package/built/src/drivers/providers/performance/postgresPlanParser.js.map +1 -0
- package/built/src/drivers/providers/performance/sqlServerActualPlanXmlParser.d.ts +10 -0
- package/built/src/drivers/providers/performance/sqlServerActualPlanXmlParser.js +252 -0
- package/built/src/drivers/providers/performance/sqlServerActualPlanXmlParser.js.map +1 -0
- package/built/src/drivers/providers/performance/sqlServerCatalogMapper.d.ts +20 -0
- package/built/src/drivers/providers/performance/sqlServerCatalogMapper.js +254 -0
- package/built/src/drivers/providers/performance/sqlServerCatalogMapper.js.map +1 -0
- package/built/src/drivers/providers/performance/sqlServerPlanParser.d.ts +10 -0
- package/built/src/drivers/providers/performance/sqlServerPlanParser.js +199 -0
- package/built/src/drivers/providers/performance/sqlServerPlanParser.js.map +1 -0
- package/built/src/drivers/providers/performance/vendorRowCoercion.d.ts +6 -0
- package/built/src/drivers/providers/performance/vendorRowCoercion.js +42 -0
- package/built/src/drivers/providers/performance/vendorRowCoercion.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/RdbDashboardProvider.d.ts +8 -0
- package/built/src/drivers/providers/rdbDashboard/RdbDashboardProvider.js +3 -0
- package/built/src/drivers/providers/rdbDashboard/RdbDashboardProvider.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/RdbSampleAccumulator.d.ts +22 -0
- package/built/src/drivers/providers/rdbDashboard/RdbSampleAccumulator.js +331 -0
- package/built/src/drivers/providers/rdbDashboard/RdbSampleAccumulator.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/index.d.ts +9 -0
- package/built/src/drivers/providers/rdbDashboard/index.js +13 -0
- package/built/src/drivers/providers/rdbDashboard/index.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/rdbDashboardErrors.d.ts +3 -0
- package/built/src/drivers/providers/rdbDashboard/rdbDashboardErrors.js +10 -0
- package/built/src/drivers/providers/rdbDashboard/rdbDashboardErrors.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/rdbDashboardValueUtils.d.ts +7 -0
- package/built/src/drivers/providers/rdbDashboard/rdbDashboardValueUtils.js +31 -0
- package/built/src/drivers/providers/rdbDashboard/rdbDashboardValueUtils.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/validateRdbDashboard.d.ts +3 -0
- package/built/src/drivers/providers/rdbDashboard/validateRdbDashboard.js +73 -0
- package/built/src/drivers/providers/rdbDashboard/validateRdbDashboard.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/mysql/MySQLRdbDashboardProvider.d.ts +16 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/mysql/MySQLRdbDashboardProvider.js +247 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/mysql/MySQLRdbDashboardProvider.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/mysql/index.d.ts +3 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/mysql/index.js +7 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/mysql/index.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/mysql/mysqlDashboardCatalog.d.ts +4 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/mysql/mysqlDashboardCatalog.js +279 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/mysql/mysqlDashboardCatalog.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/mysql/mysqlDashboardQueries.d.ts +5 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/mysql/mysqlDashboardQueries.js +41 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/mysql/mysqlDashboardQueries.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/oracle/OracleRdbDashboardProvider.d.ts +21 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/oracle/OracleRdbDashboardProvider.js +420 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/oracle/OracleRdbDashboardProvider.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/oracle/index.d.ts +3 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/oracle/index.js +7 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/oracle/index.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/oracle/oracleDashboardCatalog.d.ts +12 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/oracle/oracleDashboardCatalog.js +117 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/oracle/oracleDashboardCatalog.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/oracle/oracleDashboardQueries.d.ts +8 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/oracle/oracleDashboardQueries.js +60 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/oracle/oracleDashboardQueries.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/postgres/PostgresRdbDashboardProvider.d.ts +13 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/postgres/PostgresRdbDashboardProvider.js +216 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/postgres/PostgresRdbDashboardProvider.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/postgres/index.d.ts +3 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/postgres/index.js +7 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/postgres/index.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/postgres/postgresDashboardCatalog.d.ts +4 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/postgres/postgresDashboardCatalog.js +218 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/postgres/postgresDashboardCatalog.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/postgres/postgresDashboardQueries.d.ts +3 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/postgres/postgresDashboardQueries.js +70 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/postgres/postgresDashboardQueries.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/SQLiteRdbDashboardProvider.d.ts +20 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/SQLiteRdbDashboardProvider.js +259 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/SQLiteRdbDashboardProvider.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/index.d.ts +3 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/index.js +7 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/index.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/sqliteDashboardCatalog.d.ts +5 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/sqliteDashboardCatalog.js +135 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/sqliteDashboardCatalog.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/sqliteDashboardQueries.d.ts +4 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/sqliteDashboardQueries.js +14 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlite/sqliteDashboardQueries.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/SQLServerRdbDashboardProvider.d.ts +16 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/SQLServerRdbDashboardProvider.js +301 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/SQLServerRdbDashboardProvider.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/index.d.ts +3 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/index.js +7 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/index.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/sqlServerDashboardCatalog.d.ts +4 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/sqlServerDashboardCatalog.js +130 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/sqlServerDashboardCatalog.js.map +1 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/sqlServerDashboardQueries.d.ts +6 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/sqlServerDashboardQueries.js +91 -0
- package/built/src/drivers/providers/rdbDashboard/vendors/sqlserver/sqlServerDashboardQueries.js.map +1 -0
- package/built/src/helpers/ProposalHelper.js.map +1 -1
- package/built/src/helpers/SQLHelper.d.ts +1 -1
- package/built/src/helpers/SQLHelper.js +3 -1
- package/built/src/helpers/SQLHelper.js.map +1 -1
- package/built/src/helpers/dynamoDbBillingMode.d.ts +6 -0
- package/built/src/helpers/dynamoDbBillingMode.js +16 -0
- package/built/src/helpers/dynamoDbBillingMode.js.map +1 -0
- package/built/src/helpers/index.d.ts +1 -0
- package/built/src/helpers/index.js +1 -0
- package/built/src/helpers/index.js.map +1 -1
- package/built/src/helpers/prompts/Auth0PromptHelper.js.map +1 -1
- package/built/src/helpers/prompts/AwsPromptHelper.js.map +1 -1
- package/built/src/helpers/prompts/KeycloakPromptHelper.js.map +1 -1
- package/built/src/helpers/prompts/MemcachePromptHelper.js.map +1 -1
- package/built/src/helpers/prompts/MqttPromptHelper.js.map +1 -1
- package/built/src/helpers/prompts/RdsPromptHelper.js.map +1 -1
- package/built/src/helpers/prompts/RedisPromptHelper.js.map +1 -1
- package/built/src/helpers/prompts/SchemaPromptHelper.js.map +1 -1
- package/built/src/helpers/prompts/promptFormatUtils.js.map +1 -1
- package/built/src/helpers/sql/mutationQuery.js.map +1 -1
- package/built/src/helpers/sql/parameterNormalizer.js +2 -2
- package/built/src/helpers/sql/parameterNormalizer.js.map +1 -1
- package/built/src/helpers/sql/queryParser.js +272 -48
- package/built/src/helpers/sql/queryParser.js.map +1 -1
- package/built/src/helpers/sql/quote.d.ts +2 -0
- package/built/src/helpers/sql/quote.js +9 -2
- package/built/src/helpers/sql/quote.js.map +1 -1
- package/built/src/helpers/sql/selectQuery.js.map +1 -1
- package/built/src/resource/aws.d.ts +2 -1
- package/built/src/resource/aws.js +76 -2
- package/built/src/resource/aws.js.map +1 -1
- package/built/src/resource/base.d.ts +2 -1
- package/built/src/resource/base.js.map +1 -1
- package/built/src/resource/fromJson.js.map +1 -1
- package/built/src/resource/iam.js.map +1 -1
- package/built/src/resource/index.js.map +1 -1
- package/built/src/resource/keyValue.js.map +1 -1
- package/built/src/types/drivers/EstimatedBindParameter.d.ts +12 -0
- package/built/src/types/drivers/EstimatedBindParameter.js +3 -0
- package/built/src/types/drivers/EstimatedBindParameter.js.map +1 -0
- package/built/src/types/drivers/StatementStatistics.d.ts +13 -0
- package/built/src/types/drivers/StatementStatistics.js +10 -0
- package/built/src/types/drivers/StatementStatistics.js.map +1 -0
- package/built/src/types/drivers/index.d.ts +5 -0
- package/built/src/types/drivers/index.js +5 -0
- package/built/src/types/drivers/index.js.map +1 -1
- package/built/src/types/drivers/metrics/CloudWatchMetrics.d.ts +168 -0
- package/built/src/types/drivers/metrics/CloudWatchMetrics.js +3 -0
- package/built/src/types/drivers/metrics/CloudWatchMetrics.js.map +1 -0
- package/built/src/types/drivers/metrics/index.d.ts +1 -0
- package/built/src/types/drivers/metrics/index.js +5 -0
- package/built/src/types/drivers/metrics/index.js.map +1 -0
- package/built/src/types/drivers/performance/DynamoDbPerformanceTuningCapabilities.d.ts +12 -0
- package/built/src/types/drivers/performance/DynamoDbPerformanceTuningCapabilities.js +3 -0
- package/built/src/types/drivers/performance/DynamoDbPerformanceTuningCapabilities.js.map +1 -0
- package/built/src/types/drivers/performance/DynamoDbPerformanceTuningContext.d.ts +302 -0
- package/built/src/types/drivers/performance/DynamoDbPerformanceTuningContext.js +7 -0
- package/built/src/types/drivers/performance/DynamoDbPerformanceTuningContext.js.map +1 -0
- package/built/src/types/drivers/performance/DynamoDbPerformanceTuningDiagnostic.d.ts +13 -0
- package/built/src/types/drivers/performance/DynamoDbPerformanceTuningDiagnostic.js +3 -0
- package/built/src/types/drivers/performance/DynamoDbPerformanceTuningDiagnostic.js.map +1 -0
- package/built/src/types/drivers/performance/PerformanceTuningCapabilities.d.ts +17 -0
- package/built/src/types/drivers/performance/PerformanceTuningCapabilities.js +3 -0
- package/built/src/types/drivers/performance/PerformanceTuningCapabilities.js.map +1 -0
- package/built/src/types/drivers/performance/PerformanceTuningContext.d.ts +263 -0
- package/built/src/types/drivers/performance/PerformanceTuningContext.js +3 -0
- package/built/src/types/drivers/performance/PerformanceTuningContext.js.map +1 -0
- package/built/src/types/drivers/performance/PerformanceTuningDiagnostic.d.ts +28 -0
- package/built/src/types/drivers/performance/PerformanceTuningDiagnostic.js +3 -0
- package/built/src/types/drivers/performance/PerformanceTuningDiagnostic.js.map +1 -0
- package/built/src/types/drivers/performance/PlanNode.d.ts +37 -0
- package/built/src/types/drivers/performance/PlanNode.js +3 -0
- package/built/src/types/drivers/performance/PlanNode.js.map +1 -0
- package/built/src/types/drivers/performance/index.d.ts +7 -0
- package/built/src/types/drivers/performance/index.js +11 -0
- package/built/src/types/drivers/performance/index.js.map +1 -0
- package/built/src/types/drivers/rdbDashboard/RdbDashboardCapabilities.d.ts +30 -0
- package/built/src/types/drivers/rdbDashboard/RdbDashboardCapabilities.js +3 -0
- package/built/src/types/drivers/rdbDashboard/RdbDashboardCapabilities.js.map +1 -0
- package/built/src/types/drivers/rdbDashboard/RdbDashboardDefinition.d.ts +134 -0
- package/built/src/types/drivers/rdbDashboard/RdbDashboardDefinition.js +14 -0
- package/built/src/types/drivers/rdbDashboard/RdbDashboardDefinition.js.map +1 -0
- package/built/src/types/drivers/rdbDashboard/RdbDashboardSample.d.ts +69 -0
- package/built/src/types/drivers/rdbDashboard/RdbDashboardSample.js +3 -0
- package/built/src/types/drivers/rdbDashboard/RdbDashboardSample.js.map +1 -0
- package/built/src/types/drivers/rdbDashboard/index.d.ts +3 -0
- package/built/src/types/drivers/rdbDashboard/index.js +7 -0
- package/built/src/types/drivers/rdbDashboard/index.js.map +1 -0
- package/built/src/types/helpers/index.js.map +1 -1
- package/built/src/types/index.d.ts +1 -0
- package/built/src/types/index.js +1 -0
- package/built/src/types/index.js.map +1 -1
- package/built/src/types/observability/dashboardLaunchCapability.d.ts +11 -0
- package/built/src/types/observability/dashboardLaunchCapability.js +22 -0
- package/built/src/types/observability/dashboardLaunchCapability.js.map +1 -0
- package/built/src/types/observability/index.d.ts +1 -0
- package/built/src/types/observability/index.js +5 -0
- package/built/src/types/observability/index.js.map +1 -0
- package/built/src/types/resource/AwsCfnStackAttributes.js.map +1 -1
- package/built/src/types/resource/AwsDynamoTableAttributes.d.ts +13 -0
- package/built/src/types/resource/AwsServiceType.d.ts +1 -1
- package/built/src/types/resource/AwsSupplyCredentialType.js.map +1 -1
- package/built/src/types/resource/ConnectionSetting.js.map +1 -1
- package/built/src/types/resource/OracleColumnType.js.map +1 -1
- package/built/src/types/resource/RedisKeyType.d.ts +1 -1
- package/built/src/types/resource/ResourceType.js.map +1 -1
- package/built/src/types/resource/SQLServerColumnType.js.map +1 -1
- package/built/src/utils/bindParameterEstimator.d.ts +22 -0
- package/built/src/utils/bindParameterEstimator.js +400 -0
- package/built/src/utils/bindParameterEstimator.js.map +1 -0
- package/built/src/utils/cfn/applicationDiagram.js.map +1 -1
- package/built/src/utils/cfn/applicationRelations.js.map +1 -1
- package/built/src/utils/cfn/cfnDependencyGraphDiagram.js.map +1 -1
- package/built/src/utils/cfn/deploymentTopology.js.map +1 -1
- package/built/src/utils/cfn/diagramFileModel.js.map +1 -1
- package/built/src/utils/cfn/drawio/cfnDependencyGraphDiagram.js.map +1 -1
- package/built/src/utils/cfn/drawio/commonCells.js.map +1 -1
- package/built/src/utils/cfn/drawio/multiAzInfrastructureDiagram.js.map +1 -1
- package/built/src/utils/cfn/drawioApplicationDiagram.js.map +1 -1
- package/built/src/utils/cfn/drawioInfrastructureDiagrams.js.map +1 -1
- package/built/src/utils/cfn/drawioXml.js.map +1 -1
- package/built/src/utils/cfn/generateDiagram.js.map +1 -1
- package/built/src/utils/cfn/icons.js.map +1 -1
- package/built/src/utils/cfn/index.js.map +1 -1
- package/built/src/utils/cfn/intrinsics.js.map +1 -1
- package/built/src/utils/cfn/multiAzDeploymentTrafficPathsAndProtection.js.map +1 -1
- package/built/src/utils/cfn/multiAzDeploymentTrafficPathsAndProtectionDiagram.js.map +1 -1
- package/built/src/utils/cfn/naming.js.map +1 -1
- package/built/src/utils/cfn/resourceDependencies.js.map +1 -1
- package/built/src/utils/cfn/templateParsing.js.map +1 -1
- package/built/src/utils/cfn/viewpoints.js.map +1 -1
- package/built/src/utils/csv.js.map +1 -1
- package/built/src/utils/dbType.js.map +1 -1
- package/built/src/utils/diagramLayout/elkLayoutEngine.js.map +1 -1
- package/built/src/utils/diagramLayout/index.js.map +1 -1
- package/built/src/utils/diagramLayout/normalizeLayout.js.map +1 -1
- package/built/src/utils/drawio/drawioXml.js.map +1 -1
- package/built/src/utils/drawio/index.js.map +1 -1
- package/built/src/utils/dynamoDbPerformanceTuningContextValidator.d.ts +3 -0
- package/built/src/utils/dynamoDbPerformanceTuningContextValidator.js +440 -0
- package/built/src/utils/dynamoDbPerformanceTuningContextValidator.js.map +1 -0
- package/built/src/utils/er/erDiagramDrawioGenerator.js.map +1 -1
- package/built/src/utils/er/erDiagramDrawioGeneratorAuto.js.map +1 -1
- package/built/src/utils/er/erDiagramGenerator.js.map +1 -1
- package/built/src/utils/er/index.d.ts +1 -0
- package/built/src/utils/er/index.js +3 -1
- package/built/src/utils/er/index.js.map +1 -1
- package/built/src/utils/er/performanceQueryDiagram.d.ts +18 -0
- package/built/src/utils/er/performanceQueryDiagram.js +381 -0
- package/built/src/utils/er/performanceQueryDiagram.js.map +1 -0
- package/built/src/utils/index.d.ts +5 -0
- package/built/src/utils/index.js +5 -0
- package/built/src/utils/index.js.map +1 -1
- package/built/src/utils/log/buildSqlExecutions.js.map +1 -1
- package/built/src/utils/log/constant/base.js.map +1 -1
- package/built/src/utils/log/constant/logEventSplitPreset.js.map +1 -1
- package/built/src/utils/log/constant/sqlLogParsePreset.js.map +1 -1
- package/built/src/utils/log/detect/presetDetector.js.map +1 -1
- package/built/src/utils/log/extract/runExtractors.js.map +1 -1
- package/built/src/utils/log/logSummary.js.map +1 -1
- package/built/src/utils/log/rdh/convertExtractedSqlRdhResult.js.map +1 -1
- package/built/src/utils/log/sql/removeSqlComments.js.map +1 -1
- package/built/src/utils/log/validator.js.map +1 -1
- package/built/src/utils/performanceTuningContext.d.ts +45 -0
- package/built/src/utils/performanceTuningContext.js +149 -0
- package/built/src/utils/performanceTuningContext.js.map +1 -0
- package/built/src/utils/performanceTuningContextValidator.d.ts +3 -0
- package/built/src/utils/performanceTuningContextValidator.js +364 -0
- package/built/src/utils/performanceTuningContextValidator.js.map +1 -0
- package/built/src/utils/statementStatistics.d.ts +11 -0
- package/built/src/utils/statementStatistics.js +39 -0
- package/built/src/utils/statementStatistics.js.map +1 -0
- 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[];
|