@neverinfamous/postgres-mcp 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +515 -0
- package/dist/__tests__/mocks/adapter.d.ts +80 -0
- package/dist/__tests__/mocks/adapter.d.ts.map +1 -0
- package/dist/__tests__/mocks/adapter.js +225 -0
- package/dist/__tests__/mocks/adapter.js.map +1 -0
- package/dist/__tests__/mocks/index.d.ts +11 -0
- package/dist/__tests__/mocks/index.d.ts.map +1 -0
- package/dist/__tests__/mocks/index.js +11 -0
- package/dist/__tests__/mocks/index.js.map +1 -0
- package/dist/__tests__/mocks/pool.d.ts +43 -0
- package/dist/__tests__/mocks/pool.d.ts.map +1 -0
- package/dist/__tests__/mocks/pool.js +71 -0
- package/dist/__tests__/mocks/pool.js.map +1 -0
- package/dist/adapters/DatabaseAdapter.d.ts +139 -0
- package/dist/adapters/DatabaseAdapter.d.ts.map +1 -0
- package/dist/adapters/DatabaseAdapter.js +250 -0
- package/dist/adapters/DatabaseAdapter.js.map +1 -0
- package/dist/adapters/postgresql/PostgresAdapter.d.ts +119 -0
- package/dist/adapters/postgresql/PostgresAdapter.d.ts.map +1 -0
- package/dist/adapters/postgresql/PostgresAdapter.js +902 -0
- package/dist/adapters/postgresql/PostgresAdapter.js.map +1 -0
- package/dist/adapters/postgresql/index.d.ts +5 -0
- package/dist/adapters/postgresql/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/index.js +5 -0
- package/dist/adapters/postgresql/index.js.map +1 -0
- package/dist/adapters/postgresql/prompts/backup.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/backup.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/backup.js +132 -0
- package/dist/adapters/postgresql/prompts/backup.js.map +1 -0
- package/dist/adapters/postgresql/prompts/citext.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/citext.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/citext.js +227 -0
- package/dist/adapters/postgresql/prompts/citext.js.map +1 -0
- package/dist/adapters/postgresql/prompts/extensionSetup.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/extensionSetup.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/extensionSetup.js +282 -0
- package/dist/adapters/postgresql/prompts/extensionSetup.js.map +1 -0
- package/dist/adapters/postgresql/prompts/health.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/health.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/health.js +118 -0
- package/dist/adapters/postgresql/prompts/health.js.map +1 -0
- package/dist/adapters/postgresql/prompts/index.d.ts +13 -0
- package/dist/adapters/postgresql/prompts/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/index.js +308 -0
- package/dist/adapters/postgresql/prompts/index.js.map +1 -0
- package/dist/adapters/postgresql/prompts/indexTuning.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/indexTuning.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/indexTuning.js +130 -0
- package/dist/adapters/postgresql/prompts/indexTuning.js.map +1 -0
- package/dist/adapters/postgresql/prompts/kcache.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/kcache.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/kcache.js +227 -0
- package/dist/adapters/postgresql/prompts/kcache.js.map +1 -0
- package/dist/adapters/postgresql/prompts/ltree.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/ltree.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/ltree.js +286 -0
- package/dist/adapters/postgresql/prompts/ltree.js.map +1 -0
- package/dist/adapters/postgresql/prompts/partman.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/partman.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/partman.js +211 -0
- package/dist/adapters/postgresql/prompts/partman.js.map +1 -0
- package/dist/adapters/postgresql/prompts/pgcron.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/pgcron.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/pgcron.js +233 -0
- package/dist/adapters/postgresql/prompts/pgcron.js.map +1 -0
- package/dist/adapters/postgresql/prompts/pgcrypto.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/pgcrypto.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/pgcrypto.js +299 -0
- package/dist/adapters/postgresql/prompts/pgcrypto.js.map +1 -0
- package/dist/adapters/postgresql/prompts/pgvector.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/pgvector.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/pgvector.js +148 -0
- package/dist/adapters/postgresql/prompts/pgvector.js.map +1 -0
- package/dist/adapters/postgresql/prompts/postgis.d.ts +8 -0
- package/dist/adapters/postgresql/prompts/postgis.d.ts.map +1 -0
- package/dist/adapters/postgresql/prompts/postgis.js +200 -0
- package/dist/adapters/postgresql/prompts/postgis.js.map +1 -0
- package/dist/adapters/postgresql/resources/activity.d.ts +9 -0
- package/dist/adapters/postgresql/resources/activity.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/activity.js +118 -0
- package/dist/adapters/postgresql/resources/activity.js.map +1 -0
- package/dist/adapters/postgresql/resources/capabilities.d.ts +9 -0
- package/dist/adapters/postgresql/resources/capabilities.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/capabilities.js +182 -0
- package/dist/adapters/postgresql/resources/capabilities.js.map +1 -0
- package/dist/adapters/postgresql/resources/cron.d.ts +9 -0
- package/dist/adapters/postgresql/resources/cron.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/cron.js +156 -0
- package/dist/adapters/postgresql/resources/cron.js.map +1 -0
- package/dist/adapters/postgresql/resources/crypto.d.ts +9 -0
- package/dist/adapters/postgresql/resources/crypto.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/crypto.js +191 -0
- package/dist/adapters/postgresql/resources/crypto.js.map +1 -0
- package/dist/adapters/postgresql/resources/extensions.d.ts +9 -0
- package/dist/adapters/postgresql/resources/extensions.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/extensions.js +85 -0
- package/dist/adapters/postgresql/resources/extensions.js.map +1 -0
- package/dist/adapters/postgresql/resources/health.d.ts +9 -0
- package/dist/adapters/postgresql/resources/health.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/health.js +185 -0
- package/dist/adapters/postgresql/resources/health.js.map +1 -0
- package/dist/adapters/postgresql/resources/index.d.ts +40 -0
- package/dist/adapters/postgresql/resources/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/index.js +87 -0
- package/dist/adapters/postgresql/resources/index.js.map +1 -0
- package/dist/adapters/postgresql/resources/indexes.d.ts +9 -0
- package/dist/adapters/postgresql/resources/indexes.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/indexes.js +130 -0
- package/dist/adapters/postgresql/resources/indexes.js.map +1 -0
- package/dist/adapters/postgresql/resources/kcache.d.ts +9 -0
- package/dist/adapters/postgresql/resources/kcache.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/kcache.js +219 -0
- package/dist/adapters/postgresql/resources/kcache.js.map +1 -0
- package/dist/adapters/postgresql/resources/locks.d.ts +9 -0
- package/dist/adapters/postgresql/resources/locks.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/locks.js +89 -0
- package/dist/adapters/postgresql/resources/locks.js.map +1 -0
- package/dist/adapters/postgresql/resources/partman.d.ts +9 -0
- package/dist/adapters/postgresql/resources/partman.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/partman.js +149 -0
- package/dist/adapters/postgresql/resources/partman.js.map +1 -0
- package/dist/adapters/postgresql/resources/performance.d.ts +9 -0
- package/dist/adapters/postgresql/resources/performance.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/performance.js +170 -0
- package/dist/adapters/postgresql/resources/performance.js.map +1 -0
- package/dist/adapters/postgresql/resources/pool.d.ts +9 -0
- package/dist/adapters/postgresql/resources/pool.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/pool.js +93 -0
- package/dist/adapters/postgresql/resources/pool.js.map +1 -0
- package/dist/adapters/postgresql/resources/postgis.d.ts +9 -0
- package/dist/adapters/postgresql/resources/postgis.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/postgis.js +232 -0
- package/dist/adapters/postgresql/resources/postgis.js.map +1 -0
- package/dist/adapters/postgresql/resources/replication.d.ts +9 -0
- package/dist/adapters/postgresql/resources/replication.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/replication.js +126 -0
- package/dist/adapters/postgresql/resources/replication.js.map +1 -0
- package/dist/adapters/postgresql/resources/schema.d.ts +10 -0
- package/dist/adapters/postgresql/resources/schema.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/schema.js +80 -0
- package/dist/adapters/postgresql/resources/schema.js.map +1 -0
- package/dist/adapters/postgresql/resources/settings.d.ts +9 -0
- package/dist/adapters/postgresql/resources/settings.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/settings.js +184 -0
- package/dist/adapters/postgresql/resources/settings.js.map +1 -0
- package/dist/adapters/postgresql/resources/stats.d.ts +10 -0
- package/dist/adapters/postgresql/resources/stats.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/stats.js +124 -0
- package/dist/adapters/postgresql/resources/stats.js.map +1 -0
- package/dist/adapters/postgresql/resources/tables.d.ts +9 -0
- package/dist/adapters/postgresql/resources/tables.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/tables.js +20 -0
- package/dist/adapters/postgresql/resources/tables.js.map +1 -0
- package/dist/adapters/postgresql/resources/vacuum.d.ts +9 -0
- package/dist/adapters/postgresql/resources/vacuum.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/vacuum.js +122 -0
- package/dist/adapters/postgresql/resources/vacuum.js.map +1 -0
- package/dist/adapters/postgresql/resources/vector.d.ts +9 -0
- package/dist/adapters/postgresql/resources/vector.d.ts.map +1 -0
- package/dist/adapters/postgresql/resources/vector.js +185 -0
- package/dist/adapters/postgresql/resources/vector.js.map +1 -0
- package/dist/adapters/postgresql/schemas/admin.d.ts +74 -0
- package/dist/adapters/postgresql/schemas/admin.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/admin.js +180 -0
- package/dist/adapters/postgresql/schemas/admin.js.map +1 -0
- package/dist/adapters/postgresql/schemas/backup.d.ts +68 -0
- package/dist/adapters/postgresql/schemas/backup.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/backup.js +114 -0
- package/dist/adapters/postgresql/schemas/backup.js.map +1 -0
- package/dist/adapters/postgresql/schemas/core.d.ts +443 -0
- package/dist/adapters/postgresql/schemas/core.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/core.js +628 -0
- package/dist/adapters/postgresql/schemas/core.js.map +1 -0
- package/dist/adapters/postgresql/schemas/cron.d.ts +131 -0
- package/dist/adapters/postgresql/schemas/cron.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/cron.js +218 -0
- package/dist/adapters/postgresql/schemas/cron.js.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions.d.ts +403 -0
- package/dist/adapters/postgresql/schemas/extensions.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/extensions.js +600 -0
- package/dist/adapters/postgresql/schemas/extensions.js.map +1 -0
- package/dist/adapters/postgresql/schemas/index.d.ts +21 -0
- package/dist/adapters/postgresql/schemas/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/index.js +72 -0
- package/dist/adapters/postgresql/schemas/index.js.map +1 -0
- package/dist/adapters/postgresql/schemas/jsonb.d.ts +94 -0
- package/dist/adapters/postgresql/schemas/jsonb.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/jsonb.js +198 -0
- package/dist/adapters/postgresql/schemas/jsonb.js.map +1 -0
- package/dist/adapters/postgresql/schemas/monitoring.d.ts +28 -0
- package/dist/adapters/postgresql/schemas/monitoring.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/monitoring.js +45 -0
- package/dist/adapters/postgresql/schemas/monitoring.js.map +1 -0
- package/dist/adapters/postgresql/schemas/partitioning.d.ts +152 -0
- package/dist/adapters/postgresql/schemas/partitioning.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/partitioning.js +399 -0
- package/dist/adapters/postgresql/schemas/partitioning.js.map +1 -0
- package/dist/adapters/postgresql/schemas/partman.d.ts +94 -0
- package/dist/adapters/postgresql/schemas/partman.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/partman.js +264 -0
- package/dist/adapters/postgresql/schemas/partman.js.map +1 -0
- package/dist/adapters/postgresql/schemas/performance.d.ts +52 -0
- package/dist/adapters/postgresql/schemas/performance.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/performance.js +57 -0
- package/dist/adapters/postgresql/schemas/performance.js.map +1 -0
- package/dist/adapters/postgresql/schemas/postgis.d.ts +693 -0
- package/dist/adapters/postgresql/schemas/postgis.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/postgis.js +662 -0
- package/dist/adapters/postgresql/schemas/postgis.js.map +1 -0
- package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts +171 -0
- package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/schema-mgmt.js +235 -0
- package/dist/adapters/postgresql/schemas/schema-mgmt.js.map +1 -0
- package/dist/adapters/postgresql/schemas/stats.d.ts +229 -0
- package/dist/adapters/postgresql/schemas/stats.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/stats.js +587 -0
- package/dist/adapters/postgresql/schemas/stats.js.map +1 -0
- package/dist/adapters/postgresql/schemas/text-search.d.ts +83 -0
- package/dist/adapters/postgresql/schemas/text-search.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/text-search.js +132 -0
- package/dist/adapters/postgresql/schemas/text-search.js.map +1 -0
- package/dist/adapters/postgresql/schemas/vector.d.ts +143 -0
- package/dist/adapters/postgresql/schemas/vector.d.ts.map +1 -0
- package/dist/adapters/postgresql/schemas/vector.js +123 -0
- package/dist/adapters/postgresql/schemas/vector.js.map +1 -0
- package/dist/adapters/postgresql/tools/admin.d.ts +13 -0
- package/dist/adapters/postgresql/tools/admin.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/admin.js +417 -0
- package/dist/adapters/postgresql/tools/admin.js.map +1 -0
- package/dist/adapters/postgresql/tools/backup/dump.d.ts +12 -0
- package/dist/adapters/postgresql/tools/backup/dump.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/backup/dump.js +546 -0
- package/dist/adapters/postgresql/tools/backup/dump.js.map +1 -0
- package/dist/adapters/postgresql/tools/backup/index.d.ts +16 -0
- package/dist/adapters/postgresql/tools/backup/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/backup/index.js +29 -0
- package/dist/adapters/postgresql/tools/backup/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/backup/planning.d.ts +22 -0
- package/dist/adapters/postgresql/tools/backup/planning.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/backup/planning.js +411 -0
- package/dist/adapters/postgresql/tools/backup/planning.js.map +1 -0
- package/dist/adapters/postgresql/tools/citext.d.ts +18 -0
- package/dist/adapters/postgresql/tools/citext.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/citext.js +568 -0
- package/dist/adapters/postgresql/tools/citext.js.map +1 -0
- package/dist/adapters/postgresql/tools/codemode/index.d.ts +27 -0
- package/dist/adapters/postgresql/tools/codemode/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/codemode/index.js +171 -0
- package/dist/adapters/postgresql/tools/codemode/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/core/convenience.d.ts +192 -0
- package/dist/adapters/postgresql/tools/core/convenience.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/core/convenience.js +617 -0
- package/dist/adapters/postgresql/tools/core/convenience.js.map +1 -0
- package/dist/adapters/postgresql/tools/core/health.d.ts +20 -0
- package/dist/adapters/postgresql/tools/core/health.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/core/health.js +360 -0
- package/dist/adapters/postgresql/tools/core/health.js.map +1 -0
- package/dist/adapters/postgresql/tools/core/index.d.ts +15 -0
- package/dist/adapters/postgresql/tools/core/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/core/index.js +40 -0
- package/dist/adapters/postgresql/tools/core/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/core/indexes.d.ts +30 -0
- package/dist/adapters/postgresql/tools/core/indexes.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/core/indexes.js +232 -0
- package/dist/adapters/postgresql/tools/core/indexes.js.map +1 -0
- package/dist/adapters/postgresql/tools/core/objects.d.ts +20 -0
- package/dist/adapters/postgresql/tools/core/objects.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/core/objects.js +361 -0
- package/dist/adapters/postgresql/tools/core/objects.js.map +1 -0
- package/dist/adapters/postgresql/tools/core/query.d.ts +16 -0
- package/dist/adapters/postgresql/tools/core/query.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/core/query.js +87 -0
- package/dist/adapters/postgresql/tools/core/query.js.map +1 -0
- package/dist/adapters/postgresql/tools/core/schemas.d.ts +135 -0
- package/dist/adapters/postgresql/tools/core/schemas.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/core/schemas.js +221 -0
- package/dist/adapters/postgresql/tools/core/schemas.js.map +1 -0
- package/dist/adapters/postgresql/tools/core/tables.d.ts +24 -0
- package/dist/adapters/postgresql/tools/core/tables.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/core/tables.js +219 -0
- package/dist/adapters/postgresql/tools/core/tables.js.map +1 -0
- package/dist/adapters/postgresql/tools/cron.d.ts +16 -0
- package/dist/adapters/postgresql/tools/cron.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/cron.js +440 -0
- package/dist/adapters/postgresql/tools/cron.js.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/advanced.d.ts +33 -0
- package/dist/adapters/postgresql/tools/jsonb/advanced.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/advanced.js +681 -0
- package/dist/adapters/postgresql/tools/jsonb/advanced.js.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/basic.d.ts +20 -0
- package/dist/adapters/postgresql/tools/jsonb/basic.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/basic.js +654 -0
- package/dist/adapters/postgresql/tools/jsonb/basic.js.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/index.d.ts +16 -0
- package/dist/adapters/postgresql/tools/jsonb/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/jsonb/index.js +39 -0
- package/dist/adapters/postgresql/tools/jsonb/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/kcache.d.ts +20 -0
- package/dist/adapters/postgresql/tools/kcache.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/kcache.js +574 -0
- package/dist/adapters/postgresql/tools/kcache.js.map +1 -0
- package/dist/adapters/postgresql/tools/ltree.d.ts +8 -0
- package/dist/adapters/postgresql/tools/ltree.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/ltree.js +390 -0
- package/dist/adapters/postgresql/tools/ltree.js.map +1 -0
- package/dist/adapters/postgresql/tools/monitoring.d.ts +13 -0
- package/dist/adapters/postgresql/tools/monitoring.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/monitoring.js +753 -0
- package/dist/adapters/postgresql/tools/monitoring.js.map +1 -0
- package/dist/adapters/postgresql/tools/partitioning.d.ts +13 -0
- package/dist/adapters/postgresql/tools/partitioning.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/partitioning.js +500 -0
- package/dist/adapters/postgresql/tools/partitioning.js.map +1 -0
- package/dist/adapters/postgresql/tools/partman/index.d.ts +19 -0
- package/dist/adapters/postgresql/tools/partman/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/partman/index.js +33 -0
- package/dist/adapters/postgresql/tools/partman/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/partman/management.d.ts +28 -0
- package/dist/adapters/postgresql/tools/partman/management.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/partman/management.js +563 -0
- package/dist/adapters/postgresql/tools/partman/management.js.map +1 -0
- package/dist/adapters/postgresql/tools/partman/operations.d.ts +28 -0
- package/dist/adapters/postgresql/tools/partman/operations.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/partman/operations.js +632 -0
- package/dist/adapters/postgresql/tools/partman/operations.js.map +1 -0
- package/dist/adapters/postgresql/tools/performance/analysis.d.ts +9 -0
- package/dist/adapters/postgresql/tools/performance/analysis.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/performance/analysis.js +383 -0
- package/dist/adapters/postgresql/tools/performance/analysis.js.map +1 -0
- package/dist/adapters/postgresql/tools/performance/explain.d.ts +13 -0
- package/dist/adapters/postgresql/tools/performance/explain.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/performance/explain.js +71 -0
- package/dist/adapters/postgresql/tools/performance/explain.js.map +1 -0
- package/dist/adapters/postgresql/tools/performance/index.d.ts +13 -0
- package/dist/adapters/postgresql/tools/performance/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/performance/index.js +40 -0
- package/dist/adapters/postgresql/tools/performance/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/performance/monitoring.d.ts +9 -0
- package/dist/adapters/postgresql/tools/performance/monitoring.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/performance/monitoring.js +122 -0
- package/dist/adapters/postgresql/tools/performance/monitoring.js.map +1 -0
- package/dist/adapters/postgresql/tools/performance/optimization.d.ts +9 -0
- package/dist/adapters/postgresql/tools/performance/optimization.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/performance/optimization.js +315 -0
- package/dist/adapters/postgresql/tools/performance/optimization.js.map +1 -0
- package/dist/adapters/postgresql/tools/performance/stats.d.ts +14 -0
- package/dist/adapters/postgresql/tools/performance/stats.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/performance/stats.js +559 -0
- package/dist/adapters/postgresql/tools/performance/stats.js.map +1 -0
- package/dist/adapters/postgresql/tools/pgcrypto.d.ts +8 -0
- package/dist/adapters/postgresql/tools/pgcrypto.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/pgcrypto.js +239 -0
- package/dist/adapters/postgresql/tools/pgcrypto.js.map +1 -0
- package/dist/adapters/postgresql/tools/postgis/advanced.d.ts +21 -0
- package/dist/adapters/postgresql/tools/postgis/advanced.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/postgis/advanced.js +383 -0
- package/dist/adapters/postgresql/tools/postgis/advanced.js.map +1 -0
- package/dist/adapters/postgresql/tools/postgis/basic.d.ts +16 -0
- package/dist/adapters/postgresql/tools/postgis/basic.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/postgis/basic.js +479 -0
- package/dist/adapters/postgresql/tools/postgis/basic.js.map +1 -0
- package/dist/adapters/postgresql/tools/postgis/index.d.ts +17 -0
- package/dist/adapters/postgresql/tools/postgis/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/postgis/index.js +46 -0
- package/dist/adapters/postgresql/tools/postgis/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/postgis/standalone.d.ts +21 -0
- package/dist/adapters/postgresql/tools/postgis/standalone.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/postgis/standalone.js +150 -0
- package/dist/adapters/postgresql/tools/postgis/standalone.js.map +1 -0
- package/dist/adapters/postgresql/tools/schema.d.ts +13 -0
- package/dist/adapters/postgresql/tools/schema.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/schema.js +515 -0
- package/dist/adapters/postgresql/tools/schema.js.map +1 -0
- package/dist/adapters/postgresql/tools/stats/advanced.d.ts +24 -0
- package/dist/adapters/postgresql/tools/stats/advanced.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/stats/advanced.js +876 -0
- package/dist/adapters/postgresql/tools/stats/advanced.js.map +1 -0
- package/dist/adapters/postgresql/tools/stats/basic.d.ts +24 -0
- package/dist/adapters/postgresql/tools/stats/basic.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/stats/basic.js +501 -0
- package/dist/adapters/postgresql/tools/stats/basic.js.map +1 -0
- package/dist/adapters/postgresql/tools/stats/index.d.ts +17 -0
- package/dist/adapters/postgresql/tools/stats/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/stats/index.js +30 -0
- package/dist/adapters/postgresql/tools/stats/index.js.map +1 -0
- package/dist/adapters/postgresql/tools/text.d.ts +13 -0
- package/dist/adapters/postgresql/tools/text.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/text.js +708 -0
- package/dist/adapters/postgresql/tools/text.js.map +1 -0
- package/dist/adapters/postgresql/tools/transactions.d.ts +13 -0
- package/dist/adapters/postgresql/tools/transactions.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/transactions.js +201 -0
- package/dist/adapters/postgresql/tools/transactions.js.map +1 -0
- package/dist/adapters/postgresql/tools/vector/advanced.d.ts +12 -0
- package/dist/adapters/postgresql/tools/vector/advanced.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/vector/advanced.js +902 -0
- package/dist/adapters/postgresql/tools/vector/advanced.js.map +1 -0
- package/dist/adapters/postgresql/tools/vector/basic.d.ts +25 -0
- package/dist/adapters/postgresql/tools/vector/basic.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/vector/basic.js +1000 -0
- package/dist/adapters/postgresql/tools/vector/basic.js.map +1 -0
- package/dist/adapters/postgresql/tools/vector/index.d.ts +13 -0
- package/dist/adapters/postgresql/tools/vector/index.d.ts.map +1 -0
- package/dist/adapters/postgresql/tools/vector/index.js +33 -0
- package/dist/adapters/postgresql/tools/vector/index.js.map +1 -0
- package/dist/auth/AuthorizationServerDiscovery.d.ts +44 -0
- package/dist/auth/AuthorizationServerDiscovery.d.ts.map +1 -0
- package/dist/auth/AuthorizationServerDiscovery.js +117 -0
- package/dist/auth/AuthorizationServerDiscovery.js.map +1 -0
- package/dist/auth/OAuthResourceServer.d.ts +42 -0
- package/dist/auth/OAuthResourceServer.d.ts.map +1 -0
- package/dist/auth/OAuthResourceServer.js +80 -0
- package/dist/auth/OAuthResourceServer.js.map +1 -0
- package/dist/auth/TokenValidator.d.ts +36 -0
- package/dist/auth/TokenValidator.d.ts.map +1 -0
- package/dist/auth/TokenValidator.js +139 -0
- package/dist/auth/TokenValidator.js.map +1 -0
- package/dist/auth/errors.d.ts +63 -0
- package/dist/auth/errors.d.ts.map +1 -0
- package/dist/auth/errors.js +102 -0
- package/dist/auth/errors.js.map +1 -0
- package/dist/auth/index.d.ts +15 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +16 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/middleware.d.ts +61 -0
- package/dist/auth/middleware.d.ts.map +1 -0
- package/dist/auth/middleware.js +156 -0
- package/dist/auth/middleware.js.map +1 -0
- package/dist/auth/scopes.d.ts +65 -0
- package/dist/auth/scopes.d.ts.map +1 -0
- package/dist/auth/scopes.js +189 -0
- package/dist/auth/scopes.js.map +1 -0
- package/dist/auth/types.d.ts +208 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +8 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/cli/args.d.ts +34 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +308 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +7 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli.d.ts +9 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +341 -0
- package/dist/cli.js.map +1 -0
- package/dist/codemode/api.d.ts +62 -0
- package/dist/codemode/api.d.ts.map +1 -0
- package/dist/codemode/api.js +1505 -0
- package/dist/codemode/api.js.map +1 -0
- package/dist/codemode/index.d.ts +13 -0
- package/dist/codemode/index.d.ts.map +1 -0
- package/dist/codemode/index.js +17 -0
- package/dist/codemode/index.js.map +1 -0
- package/dist/codemode/sandbox-factory.d.ts +72 -0
- package/dist/codemode/sandbox-factory.d.ts.map +1 -0
- package/dist/codemode/sandbox-factory.js +88 -0
- package/dist/codemode/sandbox-factory.js.map +1 -0
- package/dist/codemode/sandbox.d.ts +96 -0
- package/dist/codemode/sandbox.d.ts.map +1 -0
- package/dist/codemode/sandbox.js +345 -0
- package/dist/codemode/sandbox.js.map +1 -0
- package/dist/codemode/security.d.ts +44 -0
- package/dist/codemode/security.d.ts.map +1 -0
- package/dist/codemode/security.js +149 -0
- package/dist/codemode/security.js.map +1 -0
- package/dist/codemode/types.d.ts +137 -0
- package/dist/codemode/types.d.ts.map +1 -0
- package/dist/codemode/types.js +46 -0
- package/dist/codemode/types.js.map +1 -0
- package/dist/codemode/worker-sandbox.d.ts +82 -0
- package/dist/codemode/worker-sandbox.d.ts.map +1 -0
- package/dist/codemode/worker-sandbox.js +244 -0
- package/dist/codemode/worker-sandbox.js.map +1 -0
- package/dist/codemode/worker-script.d.ts +8 -0
- package/dist/codemode/worker-script.d.ts.map +1 -0
- package/dist/codemode/worker-script.js +113 -0
- package/dist/codemode/worker-script.js.map +1 -0
- package/dist/constants/ServerInstructions.d.ts +13 -0
- package/dist/constants/ServerInstructions.d.ts.map +1 -0
- package/dist/constants/ServerInstructions.js +405 -0
- package/dist/constants/ServerInstructions.js.map +1 -0
- package/dist/filtering/ToolConstants.d.ts +43 -0
- package/dist/filtering/ToolConstants.d.ts.map +1 -0
- package/dist/filtering/ToolConstants.js +352 -0
- package/dist/filtering/ToolConstants.js.map +1 -0
- package/dist/filtering/ToolFilter.d.ts +90 -0
- package/dist/filtering/ToolFilter.d.ts.map +1 -0
- package/dist/filtering/ToolFilter.js +315 -0
- package/dist/filtering/ToolFilter.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/pool/ConnectionPool.d.ts +70 -0
- package/dist/pool/ConnectionPool.d.ts.map +1 -0
- package/dist/pool/ConnectionPool.js +254 -0
- package/dist/pool/ConnectionPool.js.map +1 -0
- package/dist/server/McpServer.d.ts +50 -0
- package/dist/server/McpServer.d.ts.map +1 -0
- package/dist/server/McpServer.js +108 -0
- package/dist/server/McpServer.js.map +1 -0
- package/dist/transports/http.d.ts +126 -0
- package/dist/transports/http.d.ts.map +1 -0
- package/dist/transports/http.js +303 -0
- package/dist/transports/http.js.map +1 -0
- package/dist/transports/index.d.ts +8 -0
- package/dist/transports/index.d.ts.map +1 -0
- package/dist/transports/index.js +7 -0
- package/dist/transports/index.js.map +1 -0
- package/dist/types/adapters.d.ts +136 -0
- package/dist/types/adapters.d.ts.map +1 -0
- package/dist/types/adapters.js +7 -0
- package/dist/types/adapters.js.map +1 -0
- package/dist/types/database.d.ts +204 -0
- package/dist/types/database.d.ts.map +1 -0
- package/dist/types/database.js +7 -0
- package/dist/types/database.js.map +1 -0
- package/dist/types/errors.d.ts +62 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +91 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/filtering.d.ts +39 -0
- package/dist/types/filtering.d.ts.map +1 -0
- package/dist/types/filtering.js +7 -0
- package/dist/types/filtering.js.map +1 -0
- package/dist/types/index.d.ts +16 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +11 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/mcp.d.ts +31 -0
- package/dist/types/mcp.d.ts.map +1 -0
- package/dist/types/mcp.js +7 -0
- package/dist/types/mcp.js.map +1 -0
- package/dist/types/oauth.d.ts +65 -0
- package/dist/types/oauth.d.ts.map +1 -0
- package/dist/types/oauth.js +7 -0
- package/dist/types/oauth.js.map +1 -0
- package/dist/types/schema.d.ts +110 -0
- package/dist/types/schema.d.ts.map +1 -0
- package/dist/types/schema.js +7 -0
- package/dist/types/schema.js.map +1 -0
- package/dist/utils/annotations.d.ts +42 -0
- package/dist/utils/annotations.d.ts.map +1 -0
- package/dist/utils/annotations.js +75 -0
- package/dist/utils/annotations.js.map +1 -0
- package/dist/utils/icons.d.ts +25 -0
- package/dist/utils/icons.d.ts.map +1 -0
- package/dist/utils/icons.js +212 -0
- package/dist/utils/icons.js.map +1 -0
- package/dist/utils/identifiers.d.ts +111 -0
- package/dist/utils/identifiers.d.ts.map +1 -0
- package/dist/utils/identifiers.js +270 -0
- package/dist/utils/identifiers.js.map +1 -0
- package/dist/utils/logger.d.ts +141 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +304 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/promptGenerator.d.ts +20 -0
- package/dist/utils/promptGenerator.d.ts.map +1 -0
- package/dist/utils/promptGenerator.js +81 -0
- package/dist/utils/promptGenerator.js.map +1 -0
- package/dist/utils/resourceAnnotations.d.ts +36 -0
- package/dist/utils/resourceAnnotations.d.ts.map +1 -0
- package/dist/utils/resourceAnnotations.js +57 -0
- package/dist/utils/resourceAnnotations.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pg_partman Setup Prompt
|
|
3
|
+
*
|
|
4
|
+
* Complete guide for setting up automated partition management with pg_partman.
|
|
5
|
+
*/
|
|
6
|
+
export function createSetupPartmanPrompt() {
|
|
7
|
+
return {
|
|
8
|
+
name: "pg_setup_partman",
|
|
9
|
+
description: "Complete guide for setting up automated partition lifecycle management with pg_partman including time-based and serial partitioning.",
|
|
10
|
+
arguments: [
|
|
11
|
+
{
|
|
12
|
+
name: "partitionType",
|
|
13
|
+
description: "Partition type: time, serial, id",
|
|
14
|
+
required: false,
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: "interval",
|
|
18
|
+
description: "Partition interval: daily, weekly, monthly, yearly",
|
|
19
|
+
required: false,
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
23
|
+
handler: async (args, _context) => {
|
|
24
|
+
const partitionType = args["partitionType"] ?? "time";
|
|
25
|
+
const interval = args["interval"] ?? "daily";
|
|
26
|
+
let content = `# pg_partman Setup Guide - ${partitionType.charAt(0).toUpperCase() + partitionType.slice(1)} Partitioning
|
|
27
|
+
|
|
28
|
+
## pg_partman Overview
|
|
29
|
+
|
|
30
|
+
pg_partman automates partition lifecycle management:
|
|
31
|
+
- Automatic child partition creation
|
|
32
|
+
- Retention policy enforcement
|
|
33
|
+
- Background maintenance
|
|
34
|
+
- Native partitioning support (PostgreSQL 10+)
|
|
35
|
+
|
|
36
|
+
## Setup Steps
|
|
37
|
+
|
|
38
|
+
### 1. Install pg_partman
|
|
39
|
+
|
|
40
|
+
\`\`\`sql
|
|
41
|
+
CREATE EXTENSION IF NOT EXISTS pg_partman;
|
|
42
|
+
SELECT * FROM pg_extension WHERE extname = 'pg_partman';
|
|
43
|
+
\`\`\`
|
|
44
|
+
|
|
45
|
+
### 2. Create Parent Table
|
|
46
|
+
|
|
47
|
+
**Important:** Create the parent as a native partitioned table first.
|
|
48
|
+
|
|
49
|
+
`;
|
|
50
|
+
if (partitionType === "time") {
|
|
51
|
+
content += `\`\`\`sql
|
|
52
|
+
-- Time-based partitioning (${interval})
|
|
53
|
+
CREATE TABLE events (
|
|
54
|
+
id BIGSERIAL,
|
|
55
|
+
event_time TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
56
|
+
event_type VARCHAR(50),
|
|
57
|
+
payload JSONB,
|
|
58
|
+
PRIMARY KEY (id, event_time)
|
|
59
|
+
) PARTITION BY RANGE (event_time);
|
|
60
|
+
|
|
61
|
+
-- Create default partition for safety
|
|
62
|
+
CREATE TABLE events_default PARTITION OF events DEFAULT;
|
|
63
|
+
\`\`\`
|
|
64
|
+
|
|
65
|
+
### 3. Configure pg_partman
|
|
66
|
+
|
|
67
|
+
\`\`\`sql
|
|
68
|
+
SELECT partman.create_parent(
|
|
69
|
+
p_parent_table => 'public.events',
|
|
70
|
+
p_control => 'event_time',
|
|
71
|
+
p_type => 'native',
|
|
72
|
+
p_interval => '${interval === "daily" ? "1 day" : interval === "weekly" ? "1 week" : interval === "monthly" ? "1 month" : "1 year"}',
|
|
73
|
+
p_premake => 4, -- Create 4 future partitions
|
|
74
|
+
p_start_partition => (NOW() - INTERVAL '1 month')::text
|
|
75
|
+
);
|
|
76
|
+
\`\`\`
|
|
77
|
+
`;
|
|
78
|
+
}
|
|
79
|
+
else if (partitionType === "serial" || partitionType === "id") {
|
|
80
|
+
content += `\`\`\`sql
|
|
81
|
+
-- ID/Serial-based partitioning
|
|
82
|
+
CREATE TABLE orders (
|
|
83
|
+
id BIGSERIAL,
|
|
84
|
+
order_date TIMESTAMPTZ DEFAULT NOW(),
|
|
85
|
+
customer_id INTEGER,
|
|
86
|
+
total DECIMAL(10,2),
|
|
87
|
+
PRIMARY KEY (id)
|
|
88
|
+
) PARTITION BY RANGE (id);
|
|
89
|
+
|
|
90
|
+
-- Create default partition
|
|
91
|
+
CREATE TABLE orders_default PARTITION OF orders DEFAULT;
|
|
92
|
+
\`\`\`
|
|
93
|
+
|
|
94
|
+
### 3. Configure pg_partman
|
|
95
|
+
|
|
96
|
+
\`\`\`sql
|
|
97
|
+
SELECT partman.create_parent(
|
|
98
|
+
p_parent_table => 'public.orders',
|
|
99
|
+
p_control => 'id',
|
|
100
|
+
p_type => 'native',
|
|
101
|
+
p_interval => '1000000', -- 1 million rows per partition
|
|
102
|
+
p_premake => 4
|
|
103
|
+
);
|
|
104
|
+
\`\`\`
|
|
105
|
+
`;
|
|
106
|
+
}
|
|
107
|
+
content += `
|
|
108
|
+
### 4. Set Retention Policy
|
|
109
|
+
|
|
110
|
+
\`\`\`sql
|
|
111
|
+
UPDATE partman.part_config
|
|
112
|
+
SET retention = '${interval === "daily" ? "90 days" : interval === "weekly" ? "52 weeks" : interval === "monthly" ? "24 months" : "5 years"}',
|
|
113
|
+
retention_keep_table = false, -- Drop old partitions
|
|
114
|
+
retention_keep_index = false
|
|
115
|
+
WHERE parent_table = 'public.events';
|
|
116
|
+
\`\`\`
|
|
117
|
+
|
|
118
|
+
Or use the tool: \`pg_partman_set_retention\`
|
|
119
|
+
|
|
120
|
+
### 5. Schedule Maintenance
|
|
121
|
+
|
|
122
|
+
**Option A: Using pg_cron (recommended)**
|
|
123
|
+
\`\`\`sql
|
|
124
|
+
-- Run maintenance every hour
|
|
125
|
+
SELECT cron.schedule('partman-maintenance', '0 * * * *',
|
|
126
|
+
$$CALL partman.run_maintenance_proc()$$);
|
|
127
|
+
\`\`\`
|
|
128
|
+
|
|
129
|
+
**Option B: External scheduler**
|
|
130
|
+
\`\`\`bash
|
|
131
|
+
# Add to crontab
|
|
132
|
+
0 * * * * psql -d mydb -c "CALL partman.run_maintenance_proc()"
|
|
133
|
+
\`\`\`
|
|
134
|
+
|
|
135
|
+
### 6. View Configuration
|
|
136
|
+
|
|
137
|
+
Use \`pg_partman_show_config\` or:
|
|
138
|
+
\`\`\`sql
|
|
139
|
+
SELECT * FROM partman.part_config
|
|
140
|
+
WHERE parent_table = 'public.events';
|
|
141
|
+
\`\`\`
|
|
142
|
+
|
|
143
|
+
### 7. Monitor Partitions
|
|
144
|
+
|
|
145
|
+
Use \`pg_partman_show_partitions\` or:
|
|
146
|
+
\`\`\`sql
|
|
147
|
+
SELECT * FROM partman.show_partitions('public.events');
|
|
148
|
+
\`\`\`
|
|
149
|
+
|
|
150
|
+
### 8. Check for Data in Default Partition
|
|
151
|
+
|
|
152
|
+
Use \`pg_partman_check_default\` — data in default means partitions need adjustment.
|
|
153
|
+
|
|
154
|
+
## Available Tools
|
|
155
|
+
|
|
156
|
+
| Tool | Purpose |
|
|
157
|
+
|------|---------|
|
|
158
|
+
| \`pg_partman_create_parent\` | Create managed partition set |
|
|
159
|
+
| \`pg_partman_run_maintenance\` | Execute maintenance |
|
|
160
|
+
| \`pg_partman_show_partitions\` | List partitions |
|
|
161
|
+
| \`pg_partman_show_config\` | View configuration |
|
|
162
|
+
| \`pg_partman_check_default\` | Check default partition |
|
|
163
|
+
| \`pg_partman_partition_data\` | Move data to partitions |
|
|
164
|
+
| \`pg_partman_set_retention\` | Configure retention |
|
|
165
|
+
| \`pg_partman_undo_partition\` | Convert back to regular table |
|
|
166
|
+
| \`pg_partman_analyze_partition_health\` | Health check |
|
|
167
|
+
|
|
168
|
+
## Best Practices
|
|
169
|
+
|
|
170
|
+
1. **Always create a default partition** — Catches data that doesn't match ranges
|
|
171
|
+
2. **Pre-create future partitions** — Avoid write failures
|
|
172
|
+
3. **Schedule regular maintenance** — At least hourly for active tables
|
|
173
|
+
4. **Monitor default partition** — Data there indicates problems
|
|
174
|
+
5. **Use appropriate retention** — Balance storage vs query history needs
|
|
175
|
+
6. **Add indexes to parent** — They propagate to children
|
|
176
|
+
|
|
177
|
+
## Common Pitfalls
|
|
178
|
+
|
|
179
|
+
- ❌ Forgetting to schedule maintenance
|
|
180
|
+
- ❌ Not creating default partition
|
|
181
|
+
- ❌ Ignoring data in default partition
|
|
182
|
+
- ❌ Retention too aggressive (losing needed data)
|
|
183
|
+
- ❌ Not considering query patterns when choosing partition key
|
|
184
|
+
|
|
185
|
+
## Migration: Converting Existing Table
|
|
186
|
+
|
|
187
|
+
\`\`\`sql
|
|
188
|
+
-- 1. Rename existing table
|
|
189
|
+
ALTER TABLE events RENAME TO events_old;
|
|
190
|
+
|
|
191
|
+
-- 2. Create new partitioned table
|
|
192
|
+
CREATE TABLE events (...) PARTITION BY RANGE (event_time);
|
|
193
|
+
|
|
194
|
+
-- 3. Configure pg_partman
|
|
195
|
+
SELECT partman.create_parent(...);
|
|
196
|
+
|
|
197
|
+
-- 4. Migrate data in batches
|
|
198
|
+
INSERT INTO events SELECT * FROM events_old
|
|
199
|
+
WHERE event_time >= '2024-01-01' AND event_time < '2024-02-01';
|
|
200
|
+
-- Repeat for each period
|
|
201
|
+
|
|
202
|
+
-- 5. Drop old table when complete
|
|
203
|
+
DROP TABLE events_old;
|
|
204
|
+
\`\`\`
|
|
205
|
+
|
|
206
|
+
**Pro Tip:** pg_partman + pg_cron = fully automated partition lifecycle!`;
|
|
207
|
+
return content;
|
|
208
|
+
},
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=partman.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partman.js","sourceRoot":"","sources":["../../../../src/adapters/postgresql/prompts/partman.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,sIAAsI;QACxI,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,eAAe;gBACrB,WAAW,EAAE,kCAAkC;gBAC/C,QAAQ,EAAE,KAAK;aAChB;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,oDAAoD;gBACjE,QAAQ,EAAE,KAAK;aAChB;SACF;QACD,4DAA4D;QAC5D,OAAO,EAAE,KAAK,EACZ,IAA4B,EAC5B,QAAwB,EACP,EAAE;YACnB,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC;YACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC;YAE7C,IAAI,OAAO,GAAG,8BAA8B,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;CAuB/G,CAAC;YAEI,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;gBAC7B,OAAO,IAAI;8BACW,QAAQ;;;;;;;;;;;;;;;;;;;;qBAoBjB,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;;;;;CAKrI,CAAC;YACI,CAAC;iBAAM,IAAI,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;gBAChE,OAAO,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;CAyBlB,CAAC;YACI,CAAC;YAED,OAAO,IAAI;;;;;mBAKE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yEA8FlE,CAAC;YAEpE,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pg_cron Setup Prompt
|
|
3
|
+
*
|
|
4
|
+
* Complete guide for setting up job scheduling with pg_cron.
|
|
5
|
+
*/
|
|
6
|
+
import type { PromptDefinition } from "../../../types/index.js";
|
|
7
|
+
export declare function createSetupPgcronPrompt(): PromptDefinition;
|
|
8
|
+
//# sourceMappingURL=pgcron.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pgcron.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/prompts/pgcron.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,yBAAyB,CAAC;AAEhF,wBAAgB,uBAAuB,IAAI,gBAAgB,CAsO1D"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pg_cron Setup Prompt
|
|
3
|
+
*
|
|
4
|
+
* Complete guide for setting up job scheduling with pg_cron.
|
|
5
|
+
*/
|
|
6
|
+
export function createSetupPgcronPrompt() {
|
|
7
|
+
return {
|
|
8
|
+
name: "pg_setup_pgcron",
|
|
9
|
+
description: "Complete guide for setting up job scheduling with pg_cron including cron syntax, common patterns, and monitoring.",
|
|
10
|
+
arguments: [
|
|
11
|
+
{
|
|
12
|
+
name: "useCase",
|
|
13
|
+
description: "Use case: maintenance, cleanup, reporting, etl, backup",
|
|
14
|
+
required: false,
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
18
|
+
handler: async (args, _context) => {
|
|
19
|
+
const useCase = args["useCase"] ?? "maintenance";
|
|
20
|
+
let content = `# pg_cron Setup Guide - ${useCase.charAt(0).toUpperCase() + useCase.slice(1)}
|
|
21
|
+
|
|
22
|
+
## pg_cron Overview
|
|
23
|
+
|
|
24
|
+
pg_cron enables scheduling SQL commands using familiar cron syntax directly in PostgreSQL:
|
|
25
|
+
- No external scheduler needed
|
|
26
|
+
- Jobs run as database superuser
|
|
27
|
+
- Supports cross-database scheduling
|
|
28
|
+
- Persistent job history
|
|
29
|
+
|
|
30
|
+
## Setup Steps
|
|
31
|
+
|
|
32
|
+
### 1. Install pg_cron
|
|
33
|
+
|
|
34
|
+
\`\`\`sql
|
|
35
|
+
-- Requires shared_preload_libraries configuration
|
|
36
|
+
CREATE EXTENSION IF NOT EXISTS pg_cron;
|
|
37
|
+
SELECT * FROM pg_extension WHERE extname = 'pg_cron';
|
|
38
|
+
\`\`\`
|
|
39
|
+
|
|
40
|
+
**postgresql.conf:**
|
|
41
|
+
\`\`\`
|
|
42
|
+
shared_preload_libraries = 'pg_cron'
|
|
43
|
+
cron.database_name = 'postgres' -- Database where cron runs
|
|
44
|
+
\`\`\`
|
|
45
|
+
|
|
46
|
+
**Restart PostgreSQL after configuration!**
|
|
47
|
+
|
|
48
|
+
### 2. Cron Expression Syntax
|
|
49
|
+
|
|
50
|
+
\`\`\`
|
|
51
|
+
┌───────────── minute (0 - 59)
|
|
52
|
+
│ ┌───────────── hour (0 - 23)
|
|
53
|
+
│ │ ┌───────────── day of month (1 - 31)
|
|
54
|
+
│ │ │ ┌───────────── month (1 - 12)
|
|
55
|
+
│ │ │ │ ┌───────────── day of week (0 - 6) (Sunday = 0)
|
|
56
|
+
│ │ │ │ │
|
|
57
|
+
* * * * *
|
|
58
|
+
\`\`\`
|
|
59
|
+
|
|
60
|
+
**Common patterns:**
|
|
61
|
+
- \`0 * * * *\` — Every hour at minute 0
|
|
62
|
+
- \`0 0 * * *\` — Daily at midnight
|
|
63
|
+
- \`0 0 * * 0\` — Weekly on Sunday at midnight
|
|
64
|
+
- \`0 0 1 * *\` — Monthly on the 1st at midnight
|
|
65
|
+
- \`*/5 * * * *\` — Every 5 minutes
|
|
66
|
+
- \`0 2 * * 1-5\` — Weekdays at 2 AM
|
|
67
|
+
|
|
68
|
+
`;
|
|
69
|
+
if (useCase === "maintenance") {
|
|
70
|
+
content += `### 3. Maintenance Jobs
|
|
71
|
+
|
|
72
|
+
\`\`\`sql
|
|
73
|
+
-- Daily VACUUM ANALYZE at 3 AM
|
|
74
|
+
SELECT cron.schedule('vacuum-analyze', '0 3 * * *',
|
|
75
|
+
'VACUUM ANALYZE');
|
|
76
|
+
|
|
77
|
+
-- Weekly REINDEX on weekends
|
|
78
|
+
SELECT cron.schedule('weekend-reindex', '0 4 * * 0',
|
|
79
|
+
'REINDEX DATABASE CONCURRENTLY current_database()');
|
|
80
|
+
|
|
81
|
+
-- Hourly statistics refresh
|
|
82
|
+
SELECT cron.schedule('refresh-stats', '0 * * * *',
|
|
83
|
+
'ANALYZE');
|
|
84
|
+
\`\`\`
|
|
85
|
+
`;
|
|
86
|
+
}
|
|
87
|
+
else if (useCase === "cleanup") {
|
|
88
|
+
content += `### 3. Cleanup Jobs
|
|
89
|
+
|
|
90
|
+
\`\`\`sql
|
|
91
|
+
-- Delete old logs daily at 2 AM
|
|
92
|
+
SELECT cron.schedule('cleanup-logs', '0 2 * * *',
|
|
93
|
+
$$DELETE FROM logs WHERE created_at < NOW() - INTERVAL '30 days'$$);
|
|
94
|
+
|
|
95
|
+
-- Purge expired sessions hourly
|
|
96
|
+
SELECT cron.schedule('purge-sessions', '0 * * * *',
|
|
97
|
+
$$DELETE FROM sessions WHERE expires_at < NOW()$$);
|
|
98
|
+
|
|
99
|
+
-- Clean pg_cron history weekly
|
|
100
|
+
SELECT cron.schedule('cleanup-cron-history', '0 5 * * 0',
|
|
101
|
+
$$DELETE FROM cron.job_run_details
|
|
102
|
+
WHERE end_time < NOW() - INTERVAL '7 days'$$);
|
|
103
|
+
\`\`\`
|
|
104
|
+
`;
|
|
105
|
+
}
|
|
106
|
+
else if (useCase === "reporting") {
|
|
107
|
+
content += `### 3. Reporting Jobs
|
|
108
|
+
|
|
109
|
+
\`\`\`sql
|
|
110
|
+
-- Daily summary at 6 AM
|
|
111
|
+
SELECT cron.schedule('daily-summary', '0 6 * * *',
|
|
112
|
+
$$INSERT INTO daily_reports (report_date, total_orders, revenue)
|
|
113
|
+
SELECT CURRENT_DATE - 1, COUNT(*), SUM(amount)
|
|
114
|
+
FROM orders WHERE created_at::date = CURRENT_DATE - 1$$);
|
|
115
|
+
|
|
116
|
+
-- Weekly aggregation on Monday
|
|
117
|
+
SELECT cron.schedule('weekly-rollup', '0 1 * * 1',
|
|
118
|
+
$$REFRESH MATERIALIZED VIEW CONCURRENTLY weekly_metrics$$);
|
|
119
|
+
|
|
120
|
+
-- Monthly report on 1st at midnight
|
|
121
|
+
SELECT cron.schedule('monthly-report', '0 0 1 * *',
|
|
122
|
+
$$CALL generate_monthly_report()$$);
|
|
123
|
+
\`\`\`
|
|
124
|
+
`;
|
|
125
|
+
}
|
|
126
|
+
else if (useCase === "etl") {
|
|
127
|
+
content += `### 3. ETL Jobs
|
|
128
|
+
|
|
129
|
+
\`\`\`sql
|
|
130
|
+
-- Incremental data load every 15 minutes
|
|
131
|
+
SELECT cron.schedule('incremental-load', '*/15 * * * *',
|
|
132
|
+
$$CALL load_incremental_data()$$);
|
|
133
|
+
|
|
134
|
+
-- Full data sync daily at 1 AM
|
|
135
|
+
SELECT cron.schedule('full-sync', '0 1 * * *',
|
|
136
|
+
$$CALL full_data_sync()$$);
|
|
137
|
+
|
|
138
|
+
-- Refresh staging tables before business hours
|
|
139
|
+
SELECT cron.schedule('refresh-staging', '0 5 * * 1-5',
|
|
140
|
+
$$TRUNCATE staging_tables; CALL populate_staging()$$);
|
|
141
|
+
\`\`\`
|
|
142
|
+
`;
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
content += `### 3. Backup Jobs
|
|
146
|
+
|
|
147
|
+
\`\`\`sql
|
|
148
|
+
-- Note: pg_cron runs SQL, not shell commands
|
|
149
|
+
-- For backup, schedule a function that logs backup requests
|
|
150
|
+
|
|
151
|
+
SELECT cron.schedule('backup-checkpoint', '0 2 * * *',
|
|
152
|
+
$$CHECKPOINT; SELECT pg_switch_wal()$$);
|
|
153
|
+
|
|
154
|
+
-- Log backup request for external pickup
|
|
155
|
+
SELECT cron.schedule('request-backup', '0 3 * * *',
|
|
156
|
+
$$INSERT INTO backup_requests (requested_at, status)
|
|
157
|
+
VALUES (NOW(), 'pending')$$);
|
|
158
|
+
\`\`\`
|
|
159
|
+
`;
|
|
160
|
+
}
|
|
161
|
+
content += `
|
|
162
|
+
### 4. Managing Jobs
|
|
163
|
+
|
|
164
|
+
**List jobs:** Use \`pg_cron_list_jobs\`
|
|
165
|
+
|
|
166
|
+
**View history:** Use \`pg_cron_job_run_details\`
|
|
167
|
+
|
|
168
|
+
**Modify job:** Use \`pg_cron_alter_job\`
|
|
169
|
+
|
|
170
|
+
**Remove job:** Use \`pg_cron_unschedule\`
|
|
171
|
+
|
|
172
|
+
### 5. Cross-Database Scheduling
|
|
173
|
+
|
|
174
|
+
\`\`\`sql
|
|
175
|
+
-- Schedule job in another database
|
|
176
|
+
SELECT cron.schedule_in_database(
|
|
177
|
+
'other-db-cleanup',
|
|
178
|
+
'0 4 * * *',
|
|
179
|
+
$$DELETE FROM logs WHERE age > INTERVAL '30 days'$$,
|
|
180
|
+
'other_database'
|
|
181
|
+
);
|
|
182
|
+
\`\`\`
|
|
183
|
+
|
|
184
|
+
### 6. Monitoring Best Practices
|
|
185
|
+
|
|
186
|
+
1. **Check job history regularly:**
|
|
187
|
+
\`\`\`sql
|
|
188
|
+
SELECT * FROM cron.job_run_details
|
|
189
|
+
WHERE status = 'failed'
|
|
190
|
+
ORDER BY end_time DESC LIMIT 10;
|
|
191
|
+
\`\`\`
|
|
192
|
+
|
|
193
|
+
2. **Set up alerts for failed jobs**
|
|
194
|
+
|
|
195
|
+
3. **Clean up old history to prevent bloat**
|
|
196
|
+
|
|
197
|
+
4. **Monitor job duration trends**
|
|
198
|
+
|
|
199
|
+
## Available Tools
|
|
200
|
+
|
|
201
|
+
| Tool | Purpose |
|
|
202
|
+
|------|---------|
|
|
203
|
+
| \`pg_cron_create_extension\` | Enable pg_cron extension |
|
|
204
|
+
| \`pg_cron_schedule\` | Schedule a new job |
|
|
205
|
+
| \`pg_cron_schedule_in_database\` | Schedule job in another database |
|
|
206
|
+
| \`pg_cron_unschedule\` | Remove a scheduled job |
|
|
207
|
+
| \`pg_cron_alter_job\` | Modify job schedule or command |
|
|
208
|
+
| \`pg_cron_list_jobs\` | List all scheduled jobs |
|
|
209
|
+
| \`pg_cron_job_run_details\` | View job execution history |
|
|
210
|
+
| \`pg_cron_enable_job\` | Enable a disabled job |
|
|
211
|
+
| \`pg_cron_disable_job\` | Disable a job without removing |
|
|
212
|
+
|
|
213
|
+
## Best Practices
|
|
214
|
+
|
|
215
|
+
1. **Use descriptive job names** — Makes management easier
|
|
216
|
+
2. **Schedule during low-traffic periods**
|
|
217
|
+
3. **Add CONCURRENTLY for maintenance on production**
|
|
218
|
+
4. **Wrap multi-statement jobs in transactions**
|
|
219
|
+
5. **Monitor the cron.job_run_details table size**
|
|
220
|
+
|
|
221
|
+
## Common Pitfalls
|
|
222
|
+
|
|
223
|
+
- ❌ Running heavy jobs during peak hours
|
|
224
|
+
- ❌ Forgetting to clean up job history
|
|
225
|
+
- ❌ Not checking job failure status
|
|
226
|
+
- ❌ Overlapping job schedules causing conflicts
|
|
227
|
+
|
|
228
|
+
**Pro Tip:** Combine pg_cron with pg_partman for automatic partition maintenance!`;
|
|
229
|
+
return content;
|
|
230
|
+
},
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=pgcron.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pgcron.js","sourceRoot":"","sources":["../../../../src/adapters/postgresql/prompts/pgcron.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,mHAAmH;QACrH,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,wDAAwD;gBACrE,QAAQ,EAAE,KAAK;aAChB;SACF;QACD,4DAA4D;QAC5D,OAAO,EAAE,KAAK,EACZ,IAA4B,EAC5B,QAAwB,EACP,EAAE;YACnB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC;YAEjD,IAAI,OAAO,GAAG,2BAA2B,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDhG,CAAC;YAEI,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;gBAC9B,OAAO,IAAI;;;;;;;;;;;;;;;CAelB,CAAC;YACI,CAAC;iBAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,IAAI;;;;;;;;;;;;;;;;CAgBlB,CAAC;YACI,CAAC;iBAAM,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;gBACnC,OAAO,IAAI;;;;;;;;;;;;;;;;;CAiBlB,CAAC;YACI,CAAC;iBAAM,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;gBAC7B,OAAO,IAAI;;;;;;;;;;;;;;;CAelB,CAAC;YACI,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI;;;;;;;;;;;;;;CAclB,CAAC;YACI,CAAC;YAED,OAAO,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kFAmEiE,CAAC;YAE7E,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pgcrypto Setup Prompt
|
|
3
|
+
*
|
|
4
|
+
* Complete guide for setting up cryptographic functions with pgcrypto.
|
|
5
|
+
*/
|
|
6
|
+
import type { PromptDefinition } from "../../../types/index.js";
|
|
7
|
+
export declare function createSetupPgcryptoPrompt(): PromptDefinition;
|
|
8
|
+
//# sourceMappingURL=pgcrypto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pgcrypto.d.ts","sourceRoot":"","sources":["../../../../src/adapters/postgresql/prompts/pgcrypto.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,yBAAyB,CAAC;AAEhF,wBAAgB,yBAAyB,IAAI,gBAAgB,CA2S5D"}
|