@neverinfamous/mysql-mcp 2.3.0 → 3.0.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/.dockerignore +1 -0
- package/.gitattributes +18 -0
- package/.github/workflows/codeql.yml +2 -10
- package/.github/workflows/docker-publish.yml +15 -13
- package/CHANGELOG.md +287 -1
- package/DOCKER_README.md +100 -265
- package/Dockerfile +5 -0
- package/README.md +124 -59
- package/VERSION +1 -1
- package/dist/__tests__/mocks/adapter.d.ts.map +1 -1
- package/dist/__tests__/mocks/adapter.js +2 -0
- package/dist/__tests__/mocks/adapter.js.map +1 -1
- package/dist/adapters/DatabaseAdapter.d.ts.map +1 -1
- package/dist/adapters/DatabaseAdapter.js +50 -9
- package/dist/adapters/DatabaseAdapter.js.map +1 -1
- package/dist/adapters/mysql/MySQLAdapter.d.ts +6 -0
- package/dist/adapters/mysql/MySQLAdapter.d.ts.map +1 -1
- package/dist/adapters/mysql/MySQLAdapter.js +8 -0
- package/dist/adapters/mysql/MySQLAdapter.js.map +1 -1
- package/dist/adapters/mysql/SchemaManager.js +16 -15
- package/dist/adapters/mysql/SchemaManager.js.map +1 -1
- package/dist/adapters/mysql/prompts/index.js +10 -20
- package/dist/adapters/mysql/prompts/index.js.map +1 -1
- package/dist/adapters/mysql/prompts/proxysqlSetup.js +1 -1
- package/dist/adapters/mysql/resources/docstore.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/docstore.js +10 -7
- package/dist/adapters/mysql/resources/docstore.js.map +1 -1
- package/dist/adapters/mysql/resources/events.js +11 -8
- package/dist/adapters/mysql/resources/events.js.map +1 -1
- package/dist/adapters/mysql/resources/indexes.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/indexes.js +12 -15
- package/dist/adapters/mysql/resources/indexes.js.map +1 -1
- package/dist/adapters/mysql/resources/innodb.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/innodb.js +20 -17
- package/dist/adapters/mysql/resources/innodb.js.map +1 -1
- package/dist/adapters/mysql/resources/locks.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/locks.js +9 -6
- package/dist/adapters/mysql/resources/locks.js.map +1 -1
- package/dist/adapters/mysql/resources/performance.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/performance.js +15 -15
- package/dist/adapters/mysql/resources/performance.js.map +1 -1
- package/dist/adapters/mysql/resources/spatial.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/spatial.js +9 -6
- package/dist/adapters/mysql/resources/spatial.js.map +1 -1
- package/dist/adapters/mysql/resources/sysschema.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/sysschema.js +12 -9
- package/dist/adapters/mysql/resources/sysschema.js.map +1 -1
- package/dist/adapters/mysql/tools/admin/backup.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/admin/backup.js +170 -121
- package/dist/adapters/mysql/tools/admin/backup.js.map +1 -1
- package/dist/adapters/mysql/tools/admin/maintenance.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/admin/maintenance.js +106 -57
- package/dist/adapters/mysql/tools/admin/maintenance.js.map +1 -1
- package/dist/adapters/mysql/tools/admin/monitoring.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/admin/monitoring.js +183 -101
- package/dist/adapters/mysql/tools/admin/monitoring.js.map +1 -1
- package/dist/adapters/mysql/tools/cluster/group-replication.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/cluster/group-replication.js +164 -120
- package/dist/adapters/mysql/tools/cluster/group-replication.js.map +1 -1
- package/dist/adapters/mysql/tools/cluster/innodb-cluster.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/cluster/innodb-cluster.js +212 -145
- package/dist/adapters/mysql/tools/cluster/innodb-cluster.js.map +1 -1
- package/dist/adapters/mysql/tools/codemode/index.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/codemode/index.js +6 -4
- package/dist/adapters/mysql/tools/codemode/index.js.map +1 -1
- package/dist/adapters/mysql/tools/core.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/core.js +152 -29
- package/dist/adapters/mysql/tools/core.js.map +1 -1
- package/dist/adapters/mysql/tools/docstore.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/docstore.js +340 -163
- package/dist/adapters/mysql/tools/docstore.js.map +1 -1
- package/dist/adapters/mysql/tools/events.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/events.js +284 -198
- package/dist/adapters/mysql/tools/events.js.map +1 -1
- package/dist/adapters/mysql/tools/json/core.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/json/core.js +11 -39
- package/dist/adapters/mysql/tools/json/core.js.map +1 -1
- package/dist/adapters/mysql/tools/json/enhanced.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/json/enhanced.js +15 -33
- package/dist/adapters/mysql/tools/json/enhanced.js.map +1 -1
- package/dist/adapters/mysql/tools/json/helpers.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/json/helpers.js +13 -24
- package/dist/adapters/mysql/tools/json/helpers.js.map +1 -1
- package/dist/adapters/mysql/tools/partitioning.js +3 -0
- package/dist/adapters/mysql/tools/partitioning.js.map +1 -1
- package/dist/adapters/mysql/tools/performance/analysis.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/performance/analysis.js +89 -60
- package/dist/adapters/mysql/tools/performance/analysis.js.map +1 -1
- package/dist/adapters/mysql/tools/performance/optimization.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/performance/optimization.js +151 -127
- package/dist/adapters/mysql/tools/performance/optimization.js.map +1 -1
- package/dist/adapters/mysql/tools/proxysql.d.ts +1 -1
- package/dist/adapters/mysql/tools/proxysql.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/proxysql.js +289 -176
- package/dist/adapters/mysql/tools/proxysql.js.map +1 -1
- package/dist/adapters/mysql/tools/replication.js +75 -49
- package/dist/adapters/mysql/tools/replication.js.map +1 -1
- package/dist/adapters/mysql/tools/roles.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/roles.js +224 -182
- package/dist/adapters/mysql/tools/roles.js.map +1 -1
- package/dist/adapters/mysql/tools/router.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/router.js +168 -67
- package/dist/adapters/mysql/tools/router.js.map +1 -1
- package/dist/adapters/mysql/tools/schema/constraints.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/schema/constraints.js +21 -3
- package/dist/adapters/mysql/tools/schema/constraints.js.map +1 -1
- package/dist/adapters/mysql/tools/schema/management.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/schema/management.js +61 -14
- package/dist/adapters/mysql/tools/schema/management.js.map +1 -1
- package/dist/adapters/mysql/tools/schema/routines.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/schema/routines.js +27 -4
- package/dist/adapters/mysql/tools/schema/routines.js.map +1 -1
- package/dist/adapters/mysql/tools/schema/scheduled_events.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/schema/scheduled_events.js +24 -3
- package/dist/adapters/mysql/tools/schema/scheduled_events.js.map +1 -1
- package/dist/adapters/mysql/tools/schema/triggers.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/schema/triggers.js +23 -2
- package/dist/adapters/mysql/tools/schema/triggers.js.map +1 -1
- package/dist/adapters/mysql/tools/schema/views.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/schema/views.js +47 -7
- package/dist/adapters/mysql/tools/schema/views.js.map +1 -1
- package/dist/adapters/mysql/tools/security/audit.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/security/audit.js +102 -34
- package/dist/adapters/mysql/tools/security/audit.js.map +1 -1
- package/dist/adapters/mysql/tools/security/data-protection.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/security/data-protection.js +264 -205
- package/dist/adapters/mysql/tools/security/data-protection.js.map +1 -1
- package/dist/adapters/mysql/tools/security/encryption.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/security/encryption.js +137 -104
- package/dist/adapters/mysql/tools/security/encryption.js.map +1 -1
- package/dist/adapters/mysql/tools/shell/backup.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/shell/backup.js +71 -59
- package/dist/adapters/mysql/tools/shell/backup.js.map +1 -1
- package/dist/adapters/mysql/tools/shell/restore.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/shell/restore.js +61 -47
- package/dist/adapters/mysql/tools/shell/restore.js.map +1 -1
- package/dist/adapters/mysql/tools/spatial/geometry.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/spatial/geometry.js +19 -5
- package/dist/adapters/mysql/tools/spatial/geometry.js.map +1 -1
- package/dist/adapters/mysql/tools/spatial/operations.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/spatial/operations.js +42 -17
- package/dist/adapters/mysql/tools/spatial/operations.js.map +1 -1
- package/dist/adapters/mysql/tools/spatial/queries.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/spatial/queries.js +109 -57
- package/dist/adapters/mysql/tools/spatial/queries.js.map +1 -1
- package/dist/adapters/mysql/tools/spatial/setup.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/spatial/setup.js +103 -50
- package/dist/adapters/mysql/tools/spatial/setup.js.map +1 -1
- package/dist/adapters/mysql/tools/stats/comparative.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/stats/comparative.js +128 -79
- package/dist/adapters/mysql/tools/stats/comparative.js.map +1 -1
- package/dist/adapters/mysql/tools/stats/descriptive.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/stats/descriptive.js +174 -102
- package/dist/adapters/mysql/tools/stats/descriptive.js.map +1 -1
- package/dist/adapters/mysql/tools/sysschema/activity.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/sysschema/activity.js +50 -25
- package/dist/adapters/mysql/tools/sysschema/activity.js.map +1 -1
- package/dist/adapters/mysql/tools/sysschema/performance.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/sysschema/performance.js +121 -66
- package/dist/adapters/mysql/tools/sysschema/performance.js.map +1 -1
- package/dist/adapters/mysql/tools/sysschema/resources.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/sysschema/resources.js +101 -64
- package/dist/adapters/mysql/tools/sysschema/resources.js.map +1 -1
- package/dist/adapters/mysql/tools/text/fulltext.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/text/fulltext.js +18 -32
- package/dist/adapters/mysql/tools/text/fulltext.js.map +1 -1
- package/dist/adapters/mysql/tools/transactions.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/transactions.js +48 -23
- package/dist/adapters/mysql/tools/transactions.js.map +1 -1
- package/dist/adapters/mysql/types/proxysql-types.d.ts +15 -0
- package/dist/adapters/mysql/types/proxysql-types.d.ts.map +1 -1
- package/dist/adapters/mysql/types/proxysql-types.js +33 -1
- package/dist/adapters/mysql/types/proxysql-types.js.map +1 -1
- package/dist/adapters/mysql/types/router-types.d.ts +1 -1
- package/dist/adapters/mysql/types/router-types.js +1 -1
- package/dist/adapters/mysql/types/router-types.js.map +1 -1
- package/dist/adapters/mysql/types/shell-types.js +2 -2
- package/dist/adapters/mysql/types/shell-types.js.map +1 -1
- package/dist/adapters/mysql/types.d.ts +485 -21
- package/dist/adapters/mysql/types.d.ts.map +1 -1
- package/dist/adapters/mysql/types.js +546 -19
- package/dist/adapters/mysql/types.js.map +1 -1
- package/dist/auth/scopes.js +1 -1
- package/dist/auth/scopes.js.map +1 -1
- package/dist/codemode/api.d.ts +3 -2
- package/dist/codemode/api.d.ts.map +1 -1
- package/dist/codemode/api.js +80 -5
- package/dist/codemode/api.js.map +1 -1
- package/dist/codemode/sandbox-factory.js +1 -1
- package/dist/codemode/sandbox-factory.js.map +1 -1
- package/dist/codemode/types.d.ts +26 -0
- package/dist/codemode/types.d.ts.map +1 -1
- package/dist/codemode/types.js +2 -0
- package/dist/codemode/types.js.map +1 -1
- package/dist/codemode/worker-sandbox.d.ts +4 -2
- package/dist/codemode/worker-sandbox.d.ts.map +1 -1
- package/dist/codemode/worker-sandbox.js +66 -7
- package/dist/codemode/worker-sandbox.js.map +1 -1
- package/dist/codemode/worker-script.d.ts +3 -0
- package/dist/codemode/worker-script.d.ts.map +1 -1
- package/dist/codemode/worker-script.js +128 -75
- package/dist/codemode/worker-script.js.map +1 -1
- package/dist/constants/ServerInstructions.d.ts +1 -1
- package/dist/constants/ServerInstructions.d.ts.map +1 -1
- package/dist/constants/ServerInstructions.js +37 -31
- package/dist/constants/ServerInstructions.js.map +1 -1
- package/dist/filtering/ToolConstants.d.ts +1 -1
- package/dist/filtering/ToolConstants.d.ts.map +1 -1
- package/dist/filtering/ToolConstants.js +1 -2
- package/dist/filtering/ToolConstants.js.map +1 -1
- package/dist/pool/ConnectionPool.d.ts.map +1 -1
- package/dist/pool/ConnectionPool.js.map +1 -1
- package/dist/transports/http.d.ts.map +1 -1
- package/dist/transports/http.js +6 -0
- package/dist/transports/http.js.map +1 -1
- package/dist/utils/validators.d.ts +1 -1
- package/dist/utils/validators.d.ts.map +1 -1
- package/dist/utils/validators.js.map +1 -1
- package/package.json +4 -4
- package/releases/v2.3.0-release-notes.md +20 -20
- package/releases/v2.3.1-release-notes.md +34 -0
- package/releases/v3.0.0-release-notes.md +81 -0
- package/src/__tests__/mocks/adapter.ts +3 -0
- package/src/__tests__/perf.test.ts +6 -6
- package/src/adapters/DatabaseAdapter.ts +58 -9
- package/src/adapters/__tests__/DatabaseAdapter.test.ts +89 -8
- package/src/adapters/mysql/MySQLAdapter.ts +17 -2
- package/src/adapters/mysql/SchemaManager.ts +21 -21
- package/src/adapters/mysql/__tests__/MySQLAdapter.test.ts +1 -1
- package/src/adapters/mysql/prompts/index.ts +12 -22
- package/src/adapters/mysql/prompts/proxysqlSetup.ts +1 -1
- package/src/adapters/mysql/resources/docstore.ts +13 -10
- package/src/adapters/mysql/resources/events.ts +12 -12
- package/src/adapters/mysql/resources/indexes.ts +17 -19
- package/src/adapters/mysql/resources/innodb.ts +23 -22
- package/src/adapters/mysql/resources/locks.ts +9 -7
- package/src/adapters/mysql/resources/performance.ts +23 -18
- package/src/adapters/mysql/resources/spatial.ts +9 -7
- package/src/adapters/mysql/resources/sysschema.ts +12 -11
- package/src/adapters/mysql/tools/__tests__/core.test.ts +126 -55
- package/src/adapters/mysql/tools/__tests__/docstore.test.ts +459 -88
- package/src/adapters/mysql/tools/__tests__/events.test.ts +281 -103
- package/src/adapters/mysql/tools/__tests__/proxysql.test.ts +128 -28
- package/src/adapters/mysql/tools/__tests__/replication.test.ts +48 -2
- package/src/adapters/mysql/tools/__tests__/roles.test.ts +15 -18
- package/src/adapters/mysql/tools/__tests__/router.test.ts +32 -5
- package/src/adapters/mysql/tools/__tests__/security.test.ts +126 -2
- package/src/adapters/mysql/tools/__tests__/security_injection.test.ts +84 -76
- package/src/adapters/mysql/tools/__tests__/security_integration.test.ts +47 -50
- package/src/adapters/mysql/tools/__tests__/spatial.test.ts +11 -10
- package/src/adapters/mysql/tools/__tests__/spatial_handler.test.ts +54 -38
- package/src/adapters/mysql/tools/__tests__/stats.test.ts +285 -152
- package/src/adapters/mysql/tools/__tests__/transactions.test.ts +13 -13
- package/src/adapters/mysql/tools/admin/__tests__/backup.test.ts +171 -25
- package/src/adapters/mysql/tools/admin/__tests__/maintenance.test.ts +240 -4
- package/src/adapters/mysql/tools/admin/__tests__/monitoring-summary.test.ts +274 -0
- package/src/adapters/mysql/tools/admin/__tests__/monitoring.test.ts +94 -5
- package/src/adapters/mysql/tools/admin/backup.ts +193 -143
- package/src/adapters/mysql/tools/admin/maintenance.ts +118 -69
- package/src/adapters/mysql/tools/admin/monitoring.ts +201 -125
- package/src/adapters/mysql/tools/cluster/__tests__/group-replication.test.ts +69 -0
- package/src/adapters/mysql/tools/cluster/__tests__/innodb-cluster.test.ts +141 -0
- package/src/adapters/mysql/tools/cluster/group-replication.ts +172 -132
- package/src/adapters/mysql/tools/cluster/innodb-cluster.ts +231 -157
- package/src/adapters/mysql/tools/codemode/__tests__/codemode-tool.test.ts +227 -0
- package/src/adapters/mysql/tools/codemode/index.ts +5 -3
- package/src/adapters/mysql/tools/core.ts +152 -38
- package/src/adapters/mysql/tools/docstore.ts +422 -205
- package/src/adapters/mysql/tools/events.ts +334 -233
- package/src/adapters/mysql/tools/json/__tests__/core.test.ts +20 -0
- package/src/adapters/mysql/tools/json/__tests__/enhanced.test.ts +82 -50
- package/src/adapters/mysql/tools/json/__tests__/helpers.test.ts +42 -3
- package/src/adapters/mysql/tools/json/core.ts +21 -42
- package/src/adapters/mysql/tools/json/enhanced.ts +22 -37
- package/src/adapters/mysql/tools/json/helpers.ts +21 -25
- package/src/adapters/mysql/tools/partitioning.ts +3 -0
- package/src/adapters/mysql/tools/performance/__tests__/analysis.test.ts +98 -5
- package/src/adapters/mysql/tools/performance/__tests__/optimization-coverage.test.ts +515 -0
- package/src/adapters/mysql/tools/performance/__tests__/optimization.test.ts +187 -0
- package/src/adapters/mysql/tools/performance/analysis.ts +95 -69
- package/src/adapters/mysql/tools/performance/optimization.ts +182 -153
- package/src/adapters/mysql/tools/proxysql.ts +314 -209
- package/src/adapters/mysql/tools/replication.ts +84 -57
- package/src/adapters/mysql/tools/roles.ts +274 -226
- package/src/adapters/mysql/tools/router.ts +181 -85
- package/src/adapters/mysql/tools/schema/__tests__/constraints.test.ts +13 -0
- package/src/adapters/mysql/tools/schema/__tests__/management.test.ts +60 -25
- package/src/adapters/mysql/tools/schema/__tests__/scheduled_events.test.ts +11 -0
- package/src/adapters/mysql/tools/schema/__tests__/triggers.test.ts +25 -4
- package/src/adapters/mysql/tools/schema/__tests__/views.test.ts +46 -14
- package/src/adapters/mysql/tools/schema/constraints.ts +22 -3
- package/src/adapters/mysql/tools/schema/management.ts +60 -15
- package/src/adapters/mysql/tools/schema/routines.ts +26 -4
- package/src/adapters/mysql/tools/schema/scheduled_events.ts +25 -3
- package/src/adapters/mysql/tools/schema/triggers.ts +27 -2
- package/src/adapters/mysql/tools/schema/views.ts +46 -8
- package/src/adapters/mysql/tools/security/__tests__/audit.test.ts +90 -4
- package/src/adapters/mysql/tools/security/audit.ts +113 -39
- package/src/adapters/mysql/tools/security/data-protection.ts +293 -233
- package/src/adapters/mysql/tools/security/encryption.ts +172 -139
- package/src/adapters/mysql/tools/shell/__tests__/backup.test.ts +29 -0
- package/src/adapters/mysql/tools/shell/backup.ts +90 -73
- package/src/adapters/mysql/tools/shell/restore.ts +62 -48
- package/src/adapters/mysql/tools/spatial/__tests__/operations.test.ts +22 -14
- package/src/adapters/mysql/tools/spatial/__tests__/queries.test.ts +65 -51
- package/src/adapters/mysql/tools/spatial/geometry.ts +23 -7
- package/src/adapters/mysql/tools/spatial/operations.ts +60 -31
- package/src/adapters/mysql/tools/spatial/queries.ts +142 -65
- package/src/adapters/mysql/tools/spatial/setup.ts +121 -55
- package/src/adapters/mysql/tools/stats/__tests__/comparative.test.ts +12 -10
- package/src/adapters/mysql/tools/stats/comparative.ts +150 -98
- package/src/adapters/mysql/tools/stats/descriptive.ts +204 -127
- package/src/adapters/mysql/tools/sysschema/__tests__/error-paths.test.ts +222 -0
- package/src/adapters/mysql/tools/sysschema/__tests__/performance.test.ts +45 -0
- package/src/adapters/mysql/tools/sysschema/__tests__/resources.test.ts +6 -3
- package/src/adapters/mysql/tools/sysschema/activity.ts +52 -27
- package/src/adapters/mysql/tools/sysschema/performance.ts +132 -68
- package/src/adapters/mysql/tools/sysschema/resources.ts +105 -67
- package/src/adapters/mysql/tools/text/__tests__/fulltext.test.ts +45 -17
- package/src/adapters/mysql/tools/text/fulltext.ts +27 -38
- package/src/adapters/mysql/tools/transactions.ts +49 -24
- package/src/adapters/mysql/types/proxysql-types.ts +38 -1
- package/src/adapters/mysql/types/router-types.ts +1 -1
- package/src/adapters/mysql/types/shell-types.ts +2 -2
- package/src/adapters/mysql/types.ts +632 -19
- package/src/auth/__tests__/scopes.test.ts +2 -2
- package/src/auth/scopes.ts +1 -1
- package/src/codemode/__tests__/api.test.ts +417 -0
- package/src/codemode/__tests__/sandbox-factory.test.ts +158 -0
- package/src/codemode/__tests__/sandbox.test.ts +301 -0
- package/src/codemode/__tests__/security.test.ts +368 -0
- package/src/codemode/__tests__/worker-sandbox.test.ts +179 -0
- package/src/codemode/__tests__/worker-script.test.ts +226 -0
- package/src/codemode/api.ts +89 -5
- package/src/codemode/sandbox-factory.ts +1 -1
- package/src/codemode/types.ts +34 -0
- package/src/codemode/worker-sandbox.ts +74 -7
- package/src/codemode/worker-script.ts +157 -86
- package/src/constants/ServerInstructions.ts +37 -31
- package/src/filtering/ToolConstants.ts +1 -2
- package/src/filtering/__tests__/ToolFilter.test.ts +9 -9
- package/src/pool/ConnectionPool.ts +4 -1
- package/src/transports/__tests__/http.test.ts +15 -3
- package/src/transports/http.ts +12 -0
- package/src/utils/validators.ts +2 -1
- package/vitest.config.ts +3 -1
- package/CODE_MODE.md +0 -245
|
@@ -161,8 +161,9 @@ export class SchemaManager {
|
|
|
161
161
|
? "TABLE_SCHEMA = ?"
|
|
162
162
|
: "TABLE_SCHEMA = DATABASE()";
|
|
163
163
|
const params = schemaName ? [schemaName, shortTableName] : [shortTableName];
|
|
164
|
-
//
|
|
165
|
-
const columnsResult = await
|
|
164
|
+
// Performance optimization: run column and table queries in parallel
|
|
165
|
+
const [columnsResult, tableResult] = await Promise.all([
|
|
166
|
+
this.executor.executeQuery(`
|
|
166
167
|
SELECT
|
|
167
168
|
COLUMN_NAME as name,
|
|
168
169
|
DATA_TYPE as type,
|
|
@@ -177,7 +178,19 @@ export class SchemaManager {
|
|
|
177
178
|
WHERE ${schemaClause}
|
|
178
179
|
AND TABLE_NAME = ?
|
|
179
180
|
ORDER BY ORDINAL_POSITION
|
|
180
|
-
`, params)
|
|
181
|
+
`, params),
|
|
182
|
+
this.executor.executeQuery(`
|
|
183
|
+
SELECT
|
|
184
|
+
TABLE_TYPE as type,
|
|
185
|
+
ENGINE as engine,
|
|
186
|
+
TABLE_ROWS as rowCount,
|
|
187
|
+
TABLE_COLLATION as collation,
|
|
188
|
+
TABLE_COMMENT as comment
|
|
189
|
+
FROM information_schema.TABLES
|
|
190
|
+
WHERE ${schemaClause}
|
|
191
|
+
AND TABLE_NAME = ?
|
|
192
|
+
`, params),
|
|
193
|
+
]);
|
|
181
194
|
const columns = (columnsResult.rows ?? []).map((row) => ({
|
|
182
195
|
name: row["name"],
|
|
183
196
|
type: row["type"],
|
|
@@ -189,18 +202,6 @@ export class SchemaManager {
|
|
|
189
202
|
collation: row["collation"],
|
|
190
203
|
comment: row["comment"],
|
|
191
204
|
}));
|
|
192
|
-
// Get table info
|
|
193
|
-
const tableResult = await this.executor.executeQuery(`
|
|
194
|
-
SELECT
|
|
195
|
-
TABLE_TYPE as type,
|
|
196
|
-
ENGINE as engine,
|
|
197
|
-
TABLE_ROWS as rowCount,
|
|
198
|
-
TABLE_COLLATION as collation,
|
|
199
|
-
TABLE_COMMENT as comment
|
|
200
|
-
FROM information_schema.TABLES
|
|
201
|
-
WHERE ${schemaClause}
|
|
202
|
-
AND TABLE_NAME = ?
|
|
203
|
-
`, params);
|
|
204
205
|
const tableRow = tableResult.rows?.[0];
|
|
205
206
|
const result = {
|
|
206
207
|
name: tableName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaManager.js","sourceRoot":"","sources":["../../../src/adapters/mysql/SchemaManager.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMvD;;GAEG;AACH,MAAM,oBAAoB,GAAG,QAAQ,CACnC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,OAAO,EAC/C,EAAE,CACH,CAAC;AAOF,MAAM,OAAO,aAAa;IAIJ;IAHZ,aAAa,GAAG,IAAI,GAAG,EAA+B,CAAC;IACvD,UAAU,GAAG,oBAAoB,CAAC;IAE1C,YAAoB,QAAuB;QAAvB,aAAQ,GAAR,QAAQ,CAAe;IAAG,CAAC;IAE/C;;OAEG;IACK,SAAS,CAAC,GAAW;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACnD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,GAAW,EAAE,IAAa;QACzC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QAE5D,+EAA+E;QAC/E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAE3C,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,KAAK;YACL,OAAO;SACR,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,aAAa;QACzB,oBAAoB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAA4B,CAAC;QACxE,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;;;;;;;;;;;;;;SAc3C,CAAC,CAAC;QAEP,oCAAoC;QACpC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAqB,CAAC;QAE9C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,CAAW,CAAC;YAC7C,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAW,CAAC;YACxC,MAAM,MAAM,GAAG,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAEtC,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAW,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE;oBACnB,IAAI,EAAE,SAAS;oBACf,SAAS;oBACT,OAAO,EAAE,CAAC,GAAG,CAAC,YAAY,CAAW,CAAC;oBACtC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;oBAC9B,IAAI,EAAE,GAAG,CAAC,MAAM,CAA8C;oBAC9D,WAAW,EAAE,GAAG,CAAC,aAAa,CAAuB;iBACtD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,YAAqB;QACpC,MAAM,QAAQ,GAAG,UAAU,YAAY,IAAI,SAAS,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAA4B,CAAC;QACnE,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,YAAY,GAAG,YAAY;YAC/B,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,2BAA2B,CAAC;QAChC,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAElD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAC7C;;;;;;;;;;;;;oBAac,YAAY;;SAEvB,EACH,MAAM,CACP,CAAC;QAEF,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/C,IAAI,EAAE,GAAG,CAAC,MAAM,CAAW;YAC3B,IAAI,EACD,GAAG,CAAC,MAAM,CAAY,KAAK,MAAM;gBAChC,CAAC,CAAE,MAAgB;gBACnB,CAAC,CAAE,OAAiB;YACxB,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAuB;YAC3C,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAuB;YAC/C,UAAU,EAAE,GAAG,CAAC,YAAY,CAAuB;YACnD,WAAW,EAAE,GAAG,CAAC,aAAa,CAAuB;YACrD,UAAU,EAAE,GAAG,CAAC,YAAY,CAAqB;YACjD,UAAU,EAAE,GAAG,CAAC,YAAY,CAAqB;YACjD,SAAS,EAAE,GAAG,CAAC,WAAW,CAAuB;YACjD,OAAO,EAAE,GAAG,CAAC,SAAS,CAAuB;SAC9C,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,kDAAkD;QAClD,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,QAAQ,GAAG,YAAY,SAAS,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAA0B,CAAC;QACjE,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,UAA8B,CAAC;QACnC,IAAI,cAAsB,CAAC;QAE3B,IAAI,KAAK,EAAE,CAAC;YACV,UAAU,GAAG,KAAK,CAAC;YACnB,cAAc,GAAG,KAAK,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,cAAc,GAAG,SAAS,CAAC;QAC7B,CAAC;QAED,MAAM,YAAY,GAAG,UAAU;YAC7B,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,2BAA2B,CAAC;QAChC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAE5E,
|
|
1
|
+
{"version":3,"file":"SchemaManager.js","sourceRoot":"","sources":["../../../src/adapters/mysql/SchemaManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -222,31 +222,21 @@ function createSchemaDesignPrompt() {
|
|
|
222
222
|
],
|
|
223
223
|
handler: (args, _context) => {
|
|
224
224
|
return Promise.resolve(`
|
|
225
|
-
|
|
225
|
+
Design a MySQL schema for: ${args["entity"]}
|
|
226
226
|
|
|
227
227
|
${args["requirements"] ? `Requirements: ${args["requirements"]}` : ""}
|
|
228
228
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
- Charset: utf8mb4 (for full Unicode support)
|
|
237
|
-
|
|
238
|
-
2. Explanation of design choices
|
|
239
|
-
|
|
240
|
-
3. Sample INSERT statements
|
|
229
|
+
Provide a CREATE TABLE statement with:
|
|
230
|
+
- Appropriate data types
|
|
231
|
+
- Primary key
|
|
232
|
+
- Indexes for common queries
|
|
233
|
+
- Foreign key relationships if applicable
|
|
234
|
+
- Engine: InnoDB (for transactions)
|
|
235
|
+
- Charset: utf8mb4 (for full Unicode support)
|
|
241
236
|
|
|
242
|
-
|
|
237
|
+
Follow these conventions: underscore_case columns, created_at/updated_at timestamps, UNSIGNED for positive integers, JSON columns where appropriate.
|
|
243
238
|
|
|
244
|
-
|
|
245
|
-
- Use underscore_case for column names
|
|
246
|
-
- Include created_at and updated_at timestamps
|
|
247
|
-
- Use UNSIGNED for positive-only integers
|
|
248
|
-
- Consider JSON columns for flexible data
|
|
249
|
-
- Add appropriate indexes based on query patterns
|
|
239
|
+
Briefly explain key design decisions.
|
|
250
240
|
`);
|
|
251
241
|
},
|
|
252
242
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/mysql/prompts/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/mysql/prompts/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,7 +75,7 @@ PROXYSQL_PASSWORD=admin
|
|
|
75
75
|
Use ProxySQL tools to verify:
|
|
76
76
|
- \`proxysql_status\` - Check ProxySQL is running
|
|
77
77
|
- \`proxysql_servers\` - List configured servers
|
|
78
|
-
- \`
|
|
78
|
+
- \`proxysql_connection_pool\` - View connection pool stats (filterable by hostgroup_id)
|
|
79
79
|
- \`proxysql_query_rules\` - Review routing rules
|
|
80
80
|
- \`proxysql_query_digest\` - Analyze query patterns
|
|
81
81
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docstore.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/docstore.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,YAAY,GACpB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"docstore.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/docstore.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,YAAY,GACpB,kBAAkB,CAiEpB"}
|
|
@@ -11,12 +11,12 @@ export function createDocstoreResource(adapter) {
|
|
|
11
11
|
},
|
|
12
12
|
handler: async (_uri, _context) => {
|
|
13
13
|
try {
|
|
14
|
-
//
|
|
15
|
-
const pluginResult = await
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
// Performance optimization: run both independent queries in parallel
|
|
15
|
+
const [pluginResult, collectionsResult] = await Promise.all([
|
|
16
|
+
// Check if X Plugin is enabled
|
|
17
|
+
adapter.executeQuery("SELECT PLUGIN_STATUS FROM information_schema.PLUGINS WHERE PLUGIN_NAME = 'mysqlx'"),
|
|
18
|
+
// Get collections (tables with _id column and doc JSON column)
|
|
19
|
+
adapter.executeQuery(`
|
|
20
20
|
SELECT
|
|
21
21
|
t.TABLE_NAME as collection_name,
|
|
22
22
|
t.TABLE_ROWS as row_count,
|
|
@@ -37,7 +37,10 @@ export function createDocstoreResource(adapter) {
|
|
|
37
37
|
AND c2.COLUMN_NAME = '_id'
|
|
38
38
|
)
|
|
39
39
|
ORDER BY t.TABLE_NAME
|
|
40
|
-
`)
|
|
40
|
+
`),
|
|
41
|
+
]);
|
|
42
|
+
const pluginRow = pluginResult.rows?.[0];
|
|
43
|
+
const xPluginEnabled = pluginRow?.["PLUGIN_STATUS"] === "ACTIVE";
|
|
41
44
|
return {
|
|
42
45
|
xPluginEnabled,
|
|
43
46
|
collectionCount: collectionsResult.rows?.length ?? 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docstore.js","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/docstore.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,sBAAsB,CACpC,OAAqB;IAErB,OAAO;QACL,GAAG,EAAE,kBAAkB;QACvB,IAAI,EAAE,4BAA4B;QAClC,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,uDAAuD;QACpE,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;YAC/B,QAAQ,EAAE,GAAG;SACd;QACD,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,QAAwB,EAAE,EAAE;YACxD,IAAI,CAAC;gBACH,+BAA+B;
|
|
1
|
+
{"version":3,"file":"docstore.js","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/docstore.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,sBAAsB,CACpC,OAAqB;IAErB,OAAO;QACL,GAAG,EAAE,kBAAkB;QACvB,IAAI,EAAE,4BAA4B;QAClC,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,uDAAuD;QACpE,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;YAC/B,QAAQ,EAAE,GAAG;SACd;QACD,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,QAAwB,EAAE,EAAE;YACxD,IAAI,CAAC;gBACH,qEAAqE;gBACrE,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBAC1D,+BAA+B;oBAC/B,OAAO,CAAC,YAAY,CAClB,mFAAmF,CACpF;oBACD,+DAA+D;oBAC/D,OAAO,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;iBAqBd,CAAC;iBACT,CAAC,CAAC;gBAEH,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACzC,MAAM,cAAc,GAAG,SAAS,EAAE,CAAC,eAAe,CAAC,KAAK,QAAQ,CAAC;gBAEjE,OAAO;oBACL,cAAc;oBACd,eAAe,EAAE,iBAAiB,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;oBACpD,WAAW,EAAE,iBAAiB,CAAC,IAAI,IAAI,EAAE;oBACzC,IAAI,EAAE,cAAc;wBAClB,CAAC,CAAC,yDAAyD;wBAC3D,CAAC,CAAC,4DAA4D;iBACjE,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;oBACL,cAAc,EAAE,KAAK;oBACrB,eAAe,EAAE,CAAC;oBAClB,WAAW,EAAE,EAAE;oBACf,KAAK,EAAE,+CAA+C;iBACvD,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -10,13 +10,12 @@ export function createEventsResource(adapter) {
|
|
|
10
10
|
priority: 0.6,
|
|
11
11
|
},
|
|
12
12
|
handler: async (_uri, _context) => {
|
|
13
|
-
//
|
|
14
|
-
const schedulerResult = await
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const eventsResult = await adapter.executeQuery(`
|
|
13
|
+
// Performance optimization: run both independent queries in parallel
|
|
14
|
+
const [schedulerResult, eventsResult] = await Promise.all([
|
|
15
|
+
// Get scheduler status
|
|
16
|
+
adapter.executeQuery("SHOW VARIABLES LIKE 'event_scheduler'"),
|
|
17
|
+
// Get all events
|
|
18
|
+
adapter.executeQuery(`
|
|
20
19
|
SELECT
|
|
21
20
|
EVENT_SCHEMA as schema_name,
|
|
22
21
|
EVENT_NAME as name,
|
|
@@ -28,7 +27,11 @@ export function createEventsResource(adapter) {
|
|
|
28
27
|
LAST_EXECUTED as last_executed
|
|
29
28
|
FROM information_schema.EVENTS
|
|
30
29
|
ORDER BY EVENT_SCHEMA, EVENT_NAME
|
|
31
|
-
`)
|
|
30
|
+
`),
|
|
31
|
+
]);
|
|
32
|
+
const schedulerRow = schedulerResult.rows?.[0];
|
|
33
|
+
const schedulerVal = schedulerRow?.["Value"];
|
|
34
|
+
const schedulerStatus = typeof schedulerVal === "string" ? schedulerVal : "OFF";
|
|
32
35
|
return {
|
|
33
36
|
schedulerEnabled: schedulerStatus === "ON",
|
|
34
37
|
schedulerStatus,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/events.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,oBAAoB,CAClC,OAAqB;IAErB,OAAO;QACL,GAAG,EAAE,gBAAgB;QACrB,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,sDAAsD;QACnE,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;YAC/B,QAAQ,EAAE,GAAG;SACd;QACD,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,QAAwB,EAAE,EAAE;YACxD,
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/events.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,oBAAoB,CAClC,OAAqB;IAErB,OAAO;QACL,GAAG,EAAE,gBAAgB;QACrB,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,sDAAsD;QACnE,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;YAC/B,QAAQ,EAAE,GAAG;SACd;QACD,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,QAAwB,EAAE,EAAE;YACxD,qEAAqE;YACrE,MAAM,CAAC,eAAe,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACxD,uBAAuB;gBACvB,OAAO,CAAC,YAAY,CAAC,uCAAuC,CAAC;gBAC7D,iBAAiB;gBACjB,OAAO,CAAC,YAAY,CAAC;;;;;;;;;;;;aAYhB,CAAC;aACP,CAAC,CAAC;YACH,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,YAAY,GAAG,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,eAAe,GACnB,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;YAE1D,OAAO;gBACL,gBAAgB,EAAE,eAAe,KAAK,IAAI;gBAC1C,eAAe;gBACf,UAAU,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;gBAC1C,MAAM,EAAE,YAAY,CAAC,IAAI,IAAI,EAAE;aAChC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexes.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/indexes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,YAAY,GACpB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"indexes.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/indexes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,YAAY,GACpB,kBAAkB,CAiGpB"}
|
|
@@ -16,7 +16,7 @@ export function createIndexesResource(adapter) {
|
|
|
16
16
|
if (!database) {
|
|
17
17
|
return { error: "No database selected" };
|
|
18
18
|
}
|
|
19
|
-
// Get index statistics
|
|
19
|
+
// Get index statistics (required)
|
|
20
20
|
const indexResult = await adapter.executeQuery(`
|
|
21
21
|
SELECT
|
|
22
22
|
TABLE_NAME as table_name,
|
|
@@ -30,10 +30,13 @@ export function createIndexesResource(adapter) {
|
|
|
30
30
|
WHERE TABLE_SCHEMA = ?
|
|
31
31
|
ORDER BY TABLE_NAME, INDEX_NAME, SEQ_IN_INDEX
|
|
32
32
|
`, [database]);
|
|
33
|
-
//
|
|
33
|
+
// Performance optimization: run unused + duplicate queries in parallel
|
|
34
|
+
// Both are optional — they may fail on older MySQL versions
|
|
34
35
|
let unusedIndexes = [];
|
|
36
|
+
let duplicateIndexes = [];
|
|
35
37
|
try {
|
|
36
|
-
const unusedResult = await
|
|
38
|
+
const [unusedResult, dupResult] = await Promise.all([
|
|
39
|
+
adapter.executeQuery(`
|
|
37
40
|
SELECT
|
|
38
41
|
object_schema as schema_name,
|
|
39
42
|
object_name as table_name,
|
|
@@ -43,16 +46,8 @@ export function createIndexesResource(adapter) {
|
|
|
43
46
|
AND index_name IS NOT NULL
|
|
44
47
|
AND index_name != 'PRIMARY'
|
|
45
48
|
AND count_star = 0
|
|
46
|
-
`, [database])
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
catch {
|
|
50
|
-
// Performance schema may not be available
|
|
51
|
-
}
|
|
52
|
-
// Get duplicate/redundant indexes
|
|
53
|
-
let duplicateIndexes = [];
|
|
54
|
-
try {
|
|
55
|
-
const dupResult = await adapter.executeQuery(`
|
|
49
|
+
`, [database]),
|
|
50
|
+
adapter.executeQuery(`
|
|
56
51
|
SELECT
|
|
57
52
|
a.TABLE_NAME as table_name,
|
|
58
53
|
a.INDEX_NAME as redundant_index,
|
|
@@ -69,11 +64,13 @@ export function createIndexesResource(adapter) {
|
|
|
69
64
|
AND a.SEQ_IN_INDEX = 1
|
|
70
65
|
AND (a.INDEX_NAME != 'PRIMARY' AND b.INDEX_NAME != 'PRIMARY')
|
|
71
66
|
GROUP BY a.TABLE_NAME, a.INDEX_NAME, a.COLUMN_NAME, b.INDEX_NAME
|
|
72
|
-
`, [database])
|
|
67
|
+
`, [database]),
|
|
68
|
+
]);
|
|
69
|
+
unusedIndexes = unusedResult.rows ?? [];
|
|
73
70
|
duplicateIndexes = dupResult.rows ?? [];
|
|
74
71
|
}
|
|
75
72
|
catch {
|
|
76
|
-
//
|
|
73
|
+
// Performance schema may not be available on older MySQL versions
|
|
77
74
|
}
|
|
78
75
|
return {
|
|
79
76
|
database,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexes.js","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/indexes.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,qBAAqB,CACnC,OAAqB;IAErB,OAAO;QACL,GAAG,EAAE,iBAAiB;QACtB,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT,iEAAiE;QACnE,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;YAC/B,QAAQ,EAAE,GAAG;SACd;QACD,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,QAAwB,EAAE,EAAE;YACxD,uBAAuB;YACvB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC;YACvE,MAAM,QAAQ,GAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAY,IAAI,EAAE,CAAC;YAE9D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;YAC3C,CAAC;YAED,
|
|
1
|
+
{"version":3,"file":"indexes.js","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/indexes.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,qBAAqB,CACnC,OAAqB;IAErB,OAAO;QACL,GAAG,EAAE,iBAAiB;QACtB,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT,iEAAiE;QACnE,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;YAC/B,QAAQ,EAAE,GAAG;SACd;QACD,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,QAAwB,EAAE,EAAE;YACxD,uBAAuB;YACvB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC;YACvE,MAAM,QAAQ,GAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAY,IAAI,EAAE,CAAC;YAE9D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;YAC3C,CAAC;YAED,kCAAkC;YAClC,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,YAAY,CAC5C;;;;;;;;;;;;aAYK,EACL,CAAC,QAAQ,CAAC,CACX,CAAC;YAEF,uEAAuE;YACvE,4DAA4D;YAC5D,IAAI,aAAa,GAAc,EAAE,CAAC;YAClC,IAAI,gBAAgB,GAAc,EAAE,CAAC;YAErC,IAAI,CAAC;gBACH,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBAClD,OAAO,CAAC,YAAY,CAClB;;;;;;;;;;iBAUK,EACL,CAAC,QAAQ,CAAC,CACX;oBACD,OAAO,CAAC,YAAY,CAClB;;;;;;;;;;;;;;;;;iBAiBK,EACL,CAAC,QAAQ,CAAC,CACX;iBACF,CAAC,CAAC;gBACH,aAAa,GAAG,YAAY,CAAC,IAAI,IAAI,EAAE,CAAC;gBACxC,gBAAgB,GAAG,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;YAC1C,CAAC;YAAC,MAAM,CAAC;gBACP,kEAAkE;YACpE,CAAC;YAED,OAAO;gBACL,QAAQ;gBACR,aAAa,EAAE,CAAC,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM;gBAC9C,OAAO,EAAE,WAAW,CAAC,IAAI,IAAI,EAAE;gBAC/B,cAAc,EAAE,aAAa;gBAC7B,oBAAoB,EAAE,gBAAgB;aACvC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"innodb.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/innodb.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,YAAY,GACpB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"innodb.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/innodb.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,YAAY,GACpB,kBAAkB,CAkHpB"}
|
|
@@ -10,35 +10,38 @@ export function createInnodbResource(adapter) {
|
|
|
10
10
|
priority: 0.7,
|
|
11
11
|
},
|
|
12
12
|
handler: async (_uri, _context) => {
|
|
13
|
-
//
|
|
14
|
-
const bufferPoolResult = await
|
|
13
|
+
// Performance optimization: run all three independent queries in parallel
|
|
14
|
+
const [bufferPoolResult, configResult, opsResult] = await Promise.all([
|
|
15
|
+
// Get buffer pool status
|
|
16
|
+
adapter.executeQuery(`
|
|
15
17
|
SHOW GLOBAL STATUS WHERE Variable_name LIKE 'Innodb_buffer_pool%'
|
|
16
|
-
`)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
bufferPool[row["Variable_name"]] = parseInt(row["Value"], 10);
|
|
20
|
-
}
|
|
21
|
-
// Get buffer pool size configuration
|
|
22
|
-
const configResult = await adapter.executeQuery(`
|
|
18
|
+
`),
|
|
19
|
+
// Get buffer pool size configuration
|
|
20
|
+
adapter.executeQuery(`
|
|
23
21
|
SHOW GLOBAL VARIABLES WHERE Variable_name IN (
|
|
24
22
|
'innodb_buffer_pool_size', 'innodb_buffer_pool_instances',
|
|
25
23
|
'innodb_log_file_size', 'innodb_log_files_in_group',
|
|
26
24
|
'innodb_flush_log_at_trx_commit', 'innodb_file_per_table'
|
|
27
25
|
)
|
|
28
|
-
`)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
config[row["Variable_name"]] = row["Value"];
|
|
32
|
-
}
|
|
33
|
-
// Get row operations
|
|
34
|
-
const opsResult = await adapter.executeQuery(`
|
|
26
|
+
`),
|
|
27
|
+
// Get row operations
|
|
28
|
+
adapter.executeQuery(`
|
|
35
29
|
SHOW GLOBAL STATUS WHERE Variable_name IN (
|
|
36
30
|
'Innodb_rows_read', 'Innodb_rows_inserted',
|
|
37
31
|
'Innodb_rows_updated', 'Innodb_rows_deleted',
|
|
38
32
|
'Innodb_data_reads', 'Innodb_data_writes',
|
|
39
33
|
'Innodb_os_log_written', 'Innodb_log_writes'
|
|
40
34
|
)
|
|
41
|
-
`)
|
|
35
|
+
`),
|
|
36
|
+
]);
|
|
37
|
+
const bufferPool = {};
|
|
38
|
+
for (const row of bufferPoolResult.rows ?? []) {
|
|
39
|
+
bufferPool[row["Variable_name"]] = parseInt(row["Value"], 10);
|
|
40
|
+
}
|
|
41
|
+
const config = {};
|
|
42
|
+
for (const row of configResult.rows ?? []) {
|
|
43
|
+
config[row["Variable_name"]] = row["Value"];
|
|
44
|
+
}
|
|
42
45
|
const operations = {};
|
|
43
46
|
for (const row of opsResult.rows ?? []) {
|
|
44
47
|
operations[row["Variable_name"]] = parseInt(row["Value"], 10);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"innodb.js","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/innodb.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,oBAAoB,CAClC,OAAqB;IAErB,OAAO;QACL,GAAG,EAAE,gBAAgB;QACrB,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,iDAAiD;QAC9D,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;YAC/B,QAAQ,EAAE,GAAG;SACd;QACD,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,QAAwB,EAAE,EAAE;YACxD,
|
|
1
|
+
{"version":3,"file":"innodb.js","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/innodb.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,oBAAoB,CAClC,OAAqB;IAErB,OAAO;QACL,GAAG,EAAE,gBAAgB;QACrB,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,iDAAiD;QAC9D,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;YAC/B,QAAQ,EAAE,GAAG;SACd;QACD,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,QAAwB,EAAE,EAAE;YACxD,0EAA0E;YAC1E,MAAM,CAAC,gBAAgB,EAAE,YAAY,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACpE,yBAAyB;gBACzB,OAAO,CAAC,YAAY,CAAC;;aAEhB,CAAC;gBACN,qCAAqC;gBACrC,OAAO,CAAC,YAAY,CAAC;;;;;;aAMhB,CAAC;gBACN,qBAAqB;gBACrB,OAAO,CAAC,YAAY,CAAC;;;;;;;aAOhB,CAAC;aACP,CAAC,CAAC;YAEH,MAAM,UAAU,GAA2B,EAAE,CAAC;YAC9C,KAAK,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;gBAC9C,UAAU,CAAC,GAAG,CAAC,eAAe,CAAW,CAAC,GAAG,QAAQ,CACnD,GAAG,CAAC,OAAO,CAAW,EACtB,EAAE,CACH,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;gBAC1C,MAAM,CAAC,GAAG,CAAC,eAAe,CAAW,CAAC,GAAG,GAAG,CAAC,OAAO,CAAW,CAAC;YAClE,CAAC;YAED,MAAM,UAAU,GAA2B,EAAE,CAAC;YAC9C,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;gBACvC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAW,CAAC,GAAG,QAAQ,CACnD,GAAG,CAAC,OAAO,CAAW,EACtB,EAAE,CACH,CAAC;YACJ,CAAC;YAED,mCAAmC;YACnC,MAAM,YAAY,GAAG,UAAU,CAAC,kCAAkC,CAAC,IAAI,CAAC,CAAC;YACzE,MAAM,KAAK,GAAG,UAAU,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;YAC1D,MAAM,QAAQ,GACZ,YAAY,GAAG,CAAC;gBACd,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,YAAY,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;oBAC/D,GAAG;gBACL,CAAC,CAAC,GAAG,CAAC;YAEV,MAAM,UAAU,GAAG,UAAU,CAAC,gCAAgC,CAAC,IAAI,CAAC,CAAC;YACrE,MAAM,SAAS,GAAG,UAAU,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;YACnE,MAAM,SAAS,GAAG,UAAU,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;YACnE,MAAM,UAAU,GAAG,UAAU,CAAC,gCAAgC,CAAC,IAAI,CAAC,CAAC;YAErE,OAAO;gBACL,WAAW,EAAE;oBACX,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,yBAAyB,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;oBAClE,SAAS,EAAE,QAAQ,CACjB,MAAM,CAAC,8BAA8B,CAAC,IAAI,GAAG,EAC7C,EAAE,CACH;oBACD,iBAAiB,EAAE,QAAQ;oBAC3B,KAAK,EAAE;wBACL,KAAK,EAAE,UAAU;wBACjB,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,UAAU;wBACjB,aAAa,EACX,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;qBACnE;oBACD,aAAa,EAAE,YAAY;oBAC3B,KAAK,EAAE,KAAK;oBACZ,cAAc,EAAE,UAAU,CAAC,mCAAmC,CAAC,IAAI,CAAC;iBACrE;gBACD,aAAa,EAAE;oBACb,gBAAgB,EAAE,MAAM,CAAC,yBAAyB,CAAC;oBACnD,aAAa,EAAE,MAAM,CAAC,sBAAsB,CAAC;oBAC7C,kBAAkB,EAAE,MAAM,CAAC,2BAA2B,CAAC;oBACvD,uBAAuB,EAAE,MAAM,CAAC,gCAAgC,CAAC;oBACjE,cAAc,EAAE,MAAM,CAAC,uBAAuB,CAAC;iBAChD;gBACD,cAAc,EAAE;oBACd,KAAK,EAAE,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC;oBAC1C,OAAO,EAAE,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC;oBAChD,OAAO,EAAE,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC;oBAC/C,OAAO,EAAE,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC;iBAChD;gBACD,EAAE,EAAE;oBACF,UAAU,EAAE,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC;oBAChD,WAAW,EAAE,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC;oBAClD,UAAU,EAAE,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC;oBAChD,cAAc,EAAE,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC;iBACzD;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locks.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/locks.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,kBAAkB,
|
|
1
|
+
{"version":3,"file":"locks.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/locks.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,kBAAkB,CA2D7E"}
|
|
@@ -11,8 +11,10 @@ export function createLocksResource(adapter) {
|
|
|
11
11
|
},
|
|
12
12
|
handler: async (_uri, _context) => {
|
|
13
13
|
try {
|
|
14
|
-
//
|
|
15
|
-
const lockWaitsResult = await
|
|
14
|
+
// Performance optimization: run both independent queries in parallel
|
|
15
|
+
const [lockWaitsResult, lockStatusResult] = await Promise.all([
|
|
16
|
+
// Get current lock waits from performance_schema
|
|
17
|
+
adapter.executeQuery(`
|
|
16
18
|
SELECT
|
|
17
19
|
r.trx_id AS waiting_trx_id,
|
|
18
20
|
r.trx_mysql_thread_id AS waiting_thread,
|
|
@@ -25,11 +27,12 @@ export function createLocksResource(adapter) {
|
|
|
25
27
|
JOIN information_schema.innodb_trx r ON r.trx_id = w.REQUESTING_ENGINE_TRANSACTION_ID
|
|
26
28
|
JOIN information_schema.innodb_trx b ON b.trx_id = w.BLOCKING_ENGINE_TRANSACTION_ID
|
|
27
29
|
LIMIT 20
|
|
28
|
-
`)
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
`),
|
|
31
|
+
// Get global lock status
|
|
32
|
+
adapter.executeQuery(`
|
|
31
33
|
SHOW STATUS LIKE 'Innodb_row_lock%'
|
|
32
|
-
`)
|
|
34
|
+
`),
|
|
35
|
+
]);
|
|
33
36
|
const lockStats = {};
|
|
34
37
|
for (const row of lockStatusResult.rows ?? []) {
|
|
35
38
|
const varName = row["Variable_name"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locks.js","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/locks.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,mBAAmB,CAAC,OAAqB;IACvD,OAAO;QACL,GAAG,EAAE,eAAe;QACpB,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,qDAAqD;QAClE,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;YAC/B,QAAQ,EAAE,GAAG;SACd;QACD,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,QAAwB,EAAE,EAAE;YACxD,IAAI,CAAC;gBACH,
|
|
1
|
+
{"version":3,"file":"locks.js","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/locks.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,mBAAmB,CAAC,OAAqB;IACvD,OAAO;QACL,GAAG,EAAE,eAAe;QACpB,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,qDAAqD;QAClE,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;YAC/B,QAAQ,EAAE,GAAG;SACd;QACD,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,QAAwB,EAAE,EAAE;YACxD,IAAI,CAAC;gBACH,qEAAqE;gBACrE,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBAC5D,iDAAiD;oBACjD,OAAO,CAAC,YAAY,CAAC;;;;;;;;;;;;;iBAad,CAAC;oBACR,yBAAyB;oBACzB,OAAO,CAAC,YAAY,CAAC;;iBAEd,CAAC;iBACT,CAAC,CAAC;gBAEH,MAAM,SAAS,GAA4B,EAAE,CAAC;gBAC9C,KAAK,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;oBAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC;oBACrC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;wBAChC,SAAS,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;oBACpC,CAAC;gBACH,CAAC;gBAED,OAAO;oBACL,gBAAgB,EAAE,eAAe,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;oBACnD,SAAS,EAAE,eAAe,CAAC,IAAI,IAAI,EAAE;oBACrC,cAAc,EAAE,SAAS;iBAC1B,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;oBACL,gBAAgB,EAAE,CAAC;oBACnB,SAAS,EAAE,EAAE;oBACb,cAAc,EAAE,EAAE;oBAClB,KAAK,EAAE,qCAAqC;iBAC7C,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"performance.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/performance.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,YAAY,GACpB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"performance.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/performance.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,YAAY,GACpB,kBAAkB,CAwGpB"}
|
|
@@ -10,8 +10,9 @@ export function createPerformanceResource(adapter) {
|
|
|
10
10
|
priority: 0.8,
|
|
11
11
|
},
|
|
12
12
|
handler: async (_uri, _context) => {
|
|
13
|
-
//
|
|
14
|
-
|
|
13
|
+
// Performance optimization: run both queries in parallel
|
|
14
|
+
// The performance_schema query may fail, but we handle that gracefully
|
|
15
|
+
const statusPromise = adapter.executeQuery(`
|
|
15
16
|
SHOW GLOBAL STATUS WHERE Variable_name IN (
|
|
16
17
|
'Queries', 'Questions', 'Slow_queries',
|
|
17
18
|
'Select_full_join', 'Select_range_check', 'Select_scan',
|
|
@@ -21,14 +22,8 @@ export function createPerformanceResource(adapter) {
|
|
|
21
22
|
'Handler_read_rnd_next', 'Handler_write'
|
|
22
23
|
)
|
|
23
24
|
`);
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
status[row["Variable_name"]] = parseInt(row["Value"], 10);
|
|
27
|
-
}
|
|
28
|
-
// Get performance schema if available (MySQL 5.6+)
|
|
29
|
-
let topQueries = [];
|
|
30
|
-
try {
|
|
31
|
-
const perfResult = await adapter.executeQuery(`
|
|
25
|
+
const perfPromise = adapter
|
|
26
|
+
.executeQuery(`
|
|
32
27
|
SELECT
|
|
33
28
|
DIGEST_TEXT as query_pattern,
|
|
34
29
|
COUNT_STAR as execution_count,
|
|
@@ -41,12 +36,17 @@ export function createPerformanceResource(adapter) {
|
|
|
41
36
|
WHERE DIGEST_TEXT IS NOT NULL
|
|
42
37
|
ORDER BY SUM_TIMER_WAIT DESC
|
|
43
38
|
LIMIT 10
|
|
44
|
-
`)
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
39
|
+
`)
|
|
40
|
+
.catch(() => ({ rows: [] }));
|
|
41
|
+
const [statusResult, perfResult] = await Promise.all([
|
|
42
|
+
statusPromise,
|
|
43
|
+
perfPromise,
|
|
44
|
+
]);
|
|
45
|
+
const status = {};
|
|
46
|
+
for (const row of statusResult.rows ?? []) {
|
|
47
|
+
status[row["Variable_name"]] = parseInt(row["Value"], 10);
|
|
49
48
|
}
|
|
49
|
+
const topQueries = perfResult.rows ?? [];
|
|
50
50
|
// Calculate derived metrics
|
|
51
51
|
const tmpTablesCreated = status["Created_tmp_tables"] ?? 0;
|
|
52
52
|
const tmpDiskRatio = tmpTablesCreated > 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"performance.js","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/performance.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,yBAAyB,CACvC,OAAqB;IAErB,OAAO;QACL,GAAG,EAAE,qBAAqB;QAC1B,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,sDAAsD;QACnE,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;YAC/B,QAAQ,EAAE,GAAG;SACd;QACD,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,QAAwB,EAAE,EAAE;YACxD,
|
|
1
|
+
{"version":3,"file":"performance.js","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/performance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spatial.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/spatial.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,YAAY,GACpB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"spatial.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/spatial.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,YAAY,GACpB,kBAAkB,CAiDpB"}
|
|
@@ -10,8 +10,10 @@ export function createSpatialResource(adapter) {
|
|
|
10
10
|
priority: 0.5,
|
|
11
11
|
},
|
|
12
12
|
handler: async (_uri, _context) => {
|
|
13
|
-
//
|
|
14
|
-
const columnsResult = await
|
|
13
|
+
// Performance optimization: run both independent queries in parallel
|
|
14
|
+
const [columnsResult, indexesResult] = await Promise.all([
|
|
15
|
+
// Get spatial columns
|
|
16
|
+
adapter.executeQuery(`
|
|
15
17
|
SELECT
|
|
16
18
|
TABLE_SCHEMA as schema_name,
|
|
17
19
|
TABLE_NAME as table_name,
|
|
@@ -23,9 +25,9 @@ export function createSpatialResource(adapter) {
|
|
|
23
25
|
'multipoint', 'multilinestring', 'multipolygon', 'geometrycollection')
|
|
24
26
|
AND TABLE_SCHEMA = DATABASE()
|
|
25
27
|
ORDER BY TABLE_NAME, COLUMN_NAME
|
|
26
|
-
`)
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
`),
|
|
29
|
+
// Get spatial indexes
|
|
30
|
+
adapter.executeQuery(`
|
|
29
31
|
SELECT
|
|
30
32
|
TABLE_NAME as table_name,
|
|
31
33
|
INDEX_NAME as index_name,
|
|
@@ -34,7 +36,8 @@ export function createSpatialResource(adapter) {
|
|
|
34
36
|
WHERE INDEX_TYPE = 'SPATIAL'
|
|
35
37
|
AND TABLE_SCHEMA = DATABASE()
|
|
36
38
|
ORDER BY TABLE_NAME, INDEX_NAME
|
|
37
|
-
`)
|
|
39
|
+
`),
|
|
40
|
+
]);
|
|
38
41
|
return {
|
|
39
42
|
spatialColumnCount: columnsResult.rows?.length ?? 0,
|
|
40
43
|
spatialColumns: columnsResult.rows ?? [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spatial.js","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/spatial.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,qBAAqB,CACnC,OAAqB;IAErB,OAAO;QACL,GAAG,EAAE,iBAAiB;QACtB,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,6CAA6C;QAC1D,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;YAC/B,QAAQ,EAAE,GAAG;SACd;QACD,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,QAAwB,EAAE,EAAE;YACxD,
|
|
1
|
+
{"version":3,"file":"spatial.js","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/spatial.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,qBAAqB,CACnC,OAAqB;IAErB,OAAO;QACL,GAAG,EAAE,iBAAiB;QACtB,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,6CAA6C;QAC1D,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;YAC/B,QAAQ,EAAE,GAAG;SACd;QACD,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,QAAwB,EAAE,EAAE;YACxD,qEAAqE;YACrE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACvD,sBAAsB;gBACtB,OAAO,CAAC,YAAY,CAAC;;;;;;;;;;;;aAYhB,CAAC;gBACN,sBAAsB;gBACtB,OAAO,CAAC,YAAY,CAAC;;;;;;;;;aAShB,CAAC;aACP,CAAC,CAAC;YAEH,OAAO;gBACL,kBAAkB,EAAE,aAAa,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;gBACnD,cAAc,EAAE,aAAa,CAAC,IAAI,IAAI,EAAE;gBACxC,iBAAiB,EAAE,aAAa,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;gBAClD,cAAc,EAAE,aAAa,CAAC,IAAI,IAAI,EAAE;aACzC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sysschema.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/sysschema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,YAAY,GACpB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"sysschema.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mysql/resources/sysschema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,YAAY,GACpB,kBAAkB,CAmDpB"}
|