@iaforged/context-code 1.0.77 → 1.0.80

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/README.md +68 -68
  2. package/cli.js +8515 -8515
  3. package/context-bootstrap.js +27 -27
  4. package/dist/src/bootstrap/state.js +3 -0
  5. package/dist/src/bridge/bridgeMain.js +40 -40
  6. package/dist/src/cli/print.js +12 -12
  7. package/dist/src/commands/agent/agent.js +8 -0
  8. package/dist/src/commands/commit-push-pr.js +55 -55
  9. package/dist/src/commands/createMovedToPluginCommand.js +9 -9
  10. package/dist/src/commands/init-verifiers.js +238 -238
  11. package/dist/src/commands/init.js +226 -225
  12. package/dist/src/commands/install.js +2 -2
  13. package/dist/src/commands/login/login.js +24 -10
  14. package/dist/src/commands/orchestrate/index.js +1 -1
  15. package/dist/src/commands/orchestrate/orchestrate.js +110 -24
  16. package/dist/src/commands/profile/profile.js +15 -1
  17. package/dist/src/commands/provider/index.js +1 -1
  18. package/dist/src/commands/provider/provider.js +34 -1
  19. package/dist/src/commands/review.js +22 -22
  20. package/dist/src/commands/run/index.js +2 -2
  21. package/dist/src/commands/run/run.js +63 -61
  22. package/dist/src/commands/team/index.js +1 -1
  23. package/dist/src/commands/team/team.js +84 -76
  24. package/dist/src/commands/team-auto/teamAuto.js +89 -29
  25. package/dist/src/commands/terminalSetup/terminalSetup.js +24 -24
  26. package/dist/src/commands/usage/index.js +7 -0
  27. package/dist/src/commands/usage/usage.js +5 -0
  28. package/dist/src/commands/workspace/workspace.js +39 -31
  29. package/dist/src/commands.js +0 -2
  30. package/dist/src/components/ConsoleOAuthFlow.js +92 -14
  31. package/dist/src/components/ModelPicker.js +2 -0
  32. package/dist/src/components/agents/AgentsList.js +9 -9
  33. package/dist/src/components/agents/AgentsMenu.js +3 -3
  34. package/dist/src/components/agents/generateAgent.js +92 -92
  35. package/dist/src/components/agents/utils.js +13 -9
  36. package/dist/src/components/grove/Grove.js +10 -10
  37. package/dist/src/components/permissions/AskUserQuestionPermissionRequest/AskUserQuestionPermissionRequest.js +8 -8
  38. package/dist/src/constants/geminiOAuth.js +13 -0
  39. package/dist/src/constants/github-app.js +134 -134
  40. package/dist/src/constants/prompts.js +123 -123
  41. package/dist/src/coordinator/coordinatorMode.js +252 -252
  42. package/dist/src/hooks/useTypeahead.js +7 -7
  43. package/dist/src/ink/reconciler.js +7 -7
  44. package/dist/src/main.js +5 -5
  45. package/dist/src/memdir/findRelevantMemories.js +6 -6
  46. package/dist/src/projectOnboardingState.js +3 -3
  47. package/dist/src/services/MagicDocs/prompts.js +56 -56
  48. package/dist/src/services/PromptSuggestion/promptSuggestion.js +29 -29
  49. package/dist/src/services/SessionMemory/prompts.js +66 -66
  50. package/dist/src/services/api/openai.js +584 -21
  51. package/dist/src/services/limits/adapters/ollama.js +3 -3
  52. package/dist/src/services/oauth/geminiCli.js +107 -0
  53. package/dist/src/services/orchestration/execution/AgentTaskExecutor.js +5 -3
  54. package/dist/src/services/orchestration/execution/OrchestrationExecutionRuntime.js +18 -18
  55. package/dist/src/services/orchestration/global/reporting.js +2 -2
  56. package/dist/src/services/toolUseSummary/toolUseSummaryGenerator.js +9 -9
  57. package/dist/src/skills/bundled/batch.js +78 -78
  58. package/dist/src/skills/bundled/claudeApi.js +34 -34
  59. package/dist/src/skills/bundled/claudeInChrome.js +4 -4
  60. package/dist/src/skills/bundled/debug.js +36 -36
  61. package/dist/src/skills/bundled/scheduleRemoteAgents.js +151 -151
  62. package/dist/src/skills/bundled/skillify.js +132 -132
  63. package/dist/src/skills/bundled/stuck.js +53 -53
  64. package/dist/src/skills/bundled/updateConfig.js +418 -418
  65. package/dist/src/tasks/RemoteAgentTask/RemoteAgentTask.js +26 -26
  66. package/dist/src/tools/AgentTool/AgentTool.js +7 -7
  67. package/dist/src/tools/AgentTool/agentDisplay.js +18 -10
  68. package/dist/src/tools/AgentTool/built-in/claudeCodeGuideAgent.js +67 -67
  69. package/dist/src/tools/AgentTool/built-in/exploreAgent.js +32 -32
  70. package/dist/src/tools/AgentTool/built-in/generalPurposeAgent.js +13 -13
  71. package/dist/src/tools/AgentTool/built-in/planAgent.js +49 -49
  72. package/dist/src/tools/AgentTool/built-in/statuslineSetup.js +129 -129
  73. package/dist/src/tools/AgentTool/built-in/verificationAgent.js +119 -119
  74. package/dist/src/tools/AgentTool/prompt.js +131 -131
  75. package/dist/src/tools/AgentTool/runAgent.js +9 -9
  76. package/dist/src/tools/BashTool/BashTool.js +10 -10
  77. package/dist/src/tools/BashTool/prompt.js +94 -94
  78. package/dist/src/tools/ConfigTool/prompt.js +29 -29
  79. package/dist/src/tools/EnterWorktreeTool/prompt.js +27 -27
  80. package/dist/src/tools/FileReadTool/prompt.js +12 -12
  81. package/dist/src/tools/PowerShellTool/prompt.js +82 -82
  82. package/dist/src/tools/RemoteTriggerTool/prompt.js +9 -9
  83. package/dist/src/tools/ScheduleCronTool/prompt.js +37 -37
  84. package/dist/src/tools/TeamCreateTool/prompt.js +110 -110
  85. package/dist/src/tools/TeamDeleteTool/prompt.js +13 -13
  86. package/dist/src/utils/advisor.js +15 -15
  87. package/dist/src/utils/api.js +2 -2
  88. package/dist/src/utils/auth.js +207 -2
  89. package/dist/src/utils/autoUpdater.js +18 -18
  90. package/dist/src/utils/bash/ShellSnapshot.js +86 -86
  91. package/dist/src/utils/bash/commands.js +61 -61
  92. package/dist/src/utils/claudeInChrome/prompt.js +53 -53
  93. package/dist/src/utils/claudeInChrome/setup.js +8 -8
  94. package/dist/src/utils/claudemd.js +19 -7
  95. package/dist/src/utils/databaseMcp/server/queries.js +632 -632
  96. package/dist/src/utils/deepLink/registerProtocol.js +35 -35
  97. package/dist/src/utils/deepLink/terminalLauncher.js +12 -12
  98. package/dist/src/utils/hooks/execAgentHook.js +7 -7
  99. package/dist/src/utils/hooks/execPromptHook.js +4 -4
  100. package/dist/src/utils/hooks/skillImprovement.js +36 -36
  101. package/dist/src/utils/logoV2Utils.js +1 -1
  102. package/dist/src/utils/mcp/dateTimeParser.js +9 -9
  103. package/dist/src/utils/messages.js +191 -191
  104. package/dist/src/utils/model/model.js +18 -0
  105. package/dist/src/utils/model/modelOptions.js +51 -1
  106. package/dist/src/utils/model/modelStrings.js +5 -1
  107. package/dist/src/utils/model/modelSupportOverrides.js +3 -0
  108. package/dist/src/utils/model/providerBaseUrls.js +6 -1
  109. package/dist/src/utils/model/providerCatalog.js +64 -28
  110. package/dist/src/utils/model/providerModels.js +88 -17
  111. package/dist/src/utils/model/providerProfiles.js +8 -0
  112. package/dist/src/utils/model/providerProfilesDb.js +578 -393
  113. package/dist/src/utils/model/providerSwitch.js +12 -0
  114. package/dist/src/utils/model/providerWorkspaces.js +2 -0
  115. package/dist/src/utils/model/providers.js +65 -2
  116. package/dist/src/utils/orchestration/store/providerWorkspaceStore.js +3 -1
  117. package/dist/src/utils/orchestration/store/runStore.js +47 -47
  118. package/dist/src/utils/orchestration/store/teamStore.js +61 -61
  119. package/dist/src/utils/powershell/parser.js +253 -253
  120. package/dist/src/utils/sessionTitle.js +12 -12
  121. package/dist/src/utils/sideQuestion.js +17 -17
  122. package/dist/src/utils/status.js +1 -1
  123. package/dist/src/utils/swarm/backends/registry.js +9 -9
  124. package/dist/src/utils/telemetry/instrumentation.js +9 -9
  125. package/dist/src/utils/teleport.js +15 -15
  126. package/dist/src/utils/undercover.js +28 -28
  127. package/package.json +1 -1
@@ -2,678 +2,678 @@
2
2
  export const SQL_QUERIES = {
3
3
  postgresql: {
4
4
  // Tables
5
- listTables: `
6
- SELECT
7
- table_schema as schema,
8
- table_name as name,
9
- table_type as type
10
- FROM information_schema.tables
11
- WHERE table_schema NOT IN ('pg_catalog', 'information_schema')
12
- ORDER BY table_schema, table_name
5
+ listTables: `
6
+ SELECT
7
+ table_schema as schema,
8
+ table_name as name,
9
+ table_type as type
10
+ FROM information_schema.tables
11
+ WHERE table_schema NOT IN ('pg_catalog', 'information_schema')
12
+ ORDER BY table_schema, table_name
13
13
  `,
14
14
  // Columns
15
- listColumns: `
16
- SELECT
17
- column_name as name,
18
- data_type as "dataType",
19
- is_nullable = 'YES' as nullable,
20
- column_default as "defaultValue",
21
- character_maximum_length as "maxLength",
22
- numeric_precision as precision,
23
- numeric_scale as scale
24
- FROM information_schema.columns
25
- WHERE table_schema = $1 AND table_name = $2
26
- ORDER BY ordinal_position
15
+ listColumns: `
16
+ SELECT
17
+ column_name as name,
18
+ data_type as "dataType",
19
+ is_nullable = 'YES' as nullable,
20
+ column_default as "defaultValue",
21
+ character_maximum_length as "maxLength",
22
+ numeric_precision as precision,
23
+ numeric_scale as scale
24
+ FROM information_schema.columns
25
+ WHERE table_schema = $1 AND table_name = $2
26
+ ORDER BY ordinal_position
27
27
  `,
28
28
  // Primary Keys
29
- listPrimaryKeys: `
30
- SELECT kcu.column_name
31
- FROM information_schema.table_constraints tc
32
- JOIN information_schema.key_column_usage kcu
33
- ON tc.constraint_name = kcu.constraint_name
34
- WHERE tc.table_schema = $1
35
- AND tc.table_name = $2
36
- AND tc.constraint_type = 'PRIMARY KEY'
29
+ listPrimaryKeys: `
30
+ SELECT kcu.column_name
31
+ FROM information_schema.table_constraints tc
32
+ JOIN information_schema.key_column_usage kcu
33
+ ON tc.constraint_name = kcu.constraint_name
34
+ WHERE tc.table_schema = $1
35
+ AND tc.table_name = $2
36
+ AND tc.constraint_type = 'PRIMARY KEY'
37
37
  `,
38
38
  // Indexes
39
- listIndexes: `
40
- SELECT
41
- i.relname as name,
42
- t.relname as "tableName",
43
- array_agg(a.attname ORDER BY array_position(ix.indkey, a.attnum)) as columns,
44
- ix.indisunique as "isUnique",
45
- ix.indisprimary as "isPrimaryKey",
46
- am.amname as type
47
- FROM pg_index ix
48
- JOIN pg_class i ON i.oid = ix.indexrelid
49
- JOIN pg_class t ON t.oid = ix.indrelid
50
- JOIN pg_namespace n ON n.oid = t.relnamespace
51
- JOIN pg_am am ON am.oid = i.relam
52
- JOIN pg_attribute a ON a.attrelid = t.oid AND a.attnum = ANY(ix.indkey)
53
- WHERE n.nspname NOT IN ('pg_catalog', 'information_schema')
54
- GROUP BY i.relname, t.relname, ix.indisunique, ix.indisprimary, am.amname
55
- ORDER BY t.relname, i.relname
39
+ listIndexes: `
40
+ SELECT
41
+ i.relname as name,
42
+ t.relname as "tableName",
43
+ array_agg(a.attname ORDER BY array_position(ix.indkey, a.attnum)) as columns,
44
+ ix.indisunique as "isUnique",
45
+ ix.indisprimary as "isPrimaryKey",
46
+ am.amname as type
47
+ FROM pg_index ix
48
+ JOIN pg_class i ON i.oid = ix.indexrelid
49
+ JOIN pg_class t ON t.oid = ix.indrelid
50
+ JOIN pg_namespace n ON n.oid = t.relnamespace
51
+ JOIN pg_am am ON am.oid = i.relam
52
+ JOIN pg_attribute a ON a.attrelid = t.oid AND a.attnum = ANY(ix.indkey)
53
+ WHERE n.nspname NOT IN ('pg_catalog', 'information_schema')
54
+ GROUP BY i.relname, t.relname, ix.indisunique, ix.indisprimary, am.amname
55
+ ORDER BY t.relname, i.relname
56
56
  `,
57
57
  // Functions
58
- listFunctions: `
59
- SELECT
60
- n.nspname as schema,
61
- p.proname as name,
62
- 'FUNCTION' as type,
63
- pg_get_function_result(p.oid) as "returnType",
64
- pg_get_functiondef(p.oid) as definition
65
- FROM pg_proc p
66
- JOIN pg_namespace n ON n.oid = p.pronamespace
67
- WHERE n.nspname NOT IN ('pg_catalog', 'information_schema')
68
- AND p.prokind = 'f'
69
- ORDER BY n.nspname, p.proname
58
+ listFunctions: `
59
+ SELECT
60
+ n.nspname as schema,
61
+ p.proname as name,
62
+ 'FUNCTION' as type,
63
+ pg_get_function_result(p.oid) as "returnType",
64
+ pg_get_functiondef(p.oid) as definition
65
+ FROM pg_proc p
66
+ JOIN pg_namespace n ON n.oid = p.pronamespace
67
+ WHERE n.nspname NOT IN ('pg_catalog', 'information_schema')
68
+ AND p.prokind = 'f'
69
+ ORDER BY n.nspname, p.proname
70
70
  `,
71
71
  // Procedures
72
- listProcedures: `
73
- SELECT
74
- n.nspname as schema,
75
- p.proname as name,
76
- 'PROCEDURE' as type,
77
- pg_get_functiondef(p.oid) as definition
78
- FROM pg_proc p
79
- JOIN pg_namespace n ON n.oid = p.pronamespace
80
- WHERE n.nspname NOT IN ('pg_catalog', 'information_schema')
81
- AND p.prokind = 'p'
82
- ORDER BY n.nspname, p.proname
72
+ listProcedures: `
73
+ SELECT
74
+ n.nspname as schema,
75
+ p.proname as name,
76
+ 'PROCEDURE' as type,
77
+ pg_get_functiondef(p.oid) as definition
78
+ FROM pg_proc p
79
+ JOIN pg_namespace n ON n.oid = p.pronamespace
80
+ WHERE n.nspname NOT IN ('pg_catalog', 'information_schema')
81
+ AND p.prokind = 'p'
82
+ ORDER BY n.nspname, p.proname
83
83
  `,
84
84
  // Triggers
85
- listTriggers: `
86
- SELECT
87
- trigger_schema as schema,
88
- trigger_name as name,
89
- event_object_table as "tableName",
90
- event_manipulation as event,
91
- action_timing as timing,
92
- action_statement as definition
93
- FROM information_schema.triggers
94
- WHERE trigger_schema NOT IN ('pg_catalog', 'information_schema')
95
- ORDER BY trigger_schema, trigger_name
85
+ listTriggers: `
86
+ SELECT
87
+ trigger_schema as schema,
88
+ trigger_name as name,
89
+ event_object_table as "tableName",
90
+ event_manipulation as event,
91
+ action_timing as timing,
92
+ action_statement as definition
93
+ FROM information_schema.triggers
94
+ WHERE trigger_schema NOT IN ('pg_catalog', 'information_schema')
95
+ ORDER BY trigger_schema, trigger_name
96
96
  `,
97
97
  // Constraints
98
- listConstraints: `
99
- SELECT
100
- tc.constraint_name as name,
101
- tc.table_name as "tableName",
102
- tc.constraint_type as type,
103
- array_agg(kcu.column_name) as columns,
104
- ccu.table_name as "referencedTable",
105
- array_agg(ccu.column_name) as "referencedColumns"
106
- FROM information_schema.table_constraints tc
107
- LEFT JOIN information_schema.key_column_usage kcu
108
- ON tc.constraint_name = kcu.constraint_name
109
- LEFT JOIN information_schema.constraint_column_usage ccu
110
- ON tc.constraint_name = ccu.constraint_name
111
- WHERE tc.table_schema = $1 AND tc.table_name = $2
112
- GROUP BY tc.constraint_name, tc.table_name, tc.constraint_type, ccu.table_name
98
+ listConstraints: `
99
+ SELECT
100
+ tc.constraint_name as name,
101
+ tc.table_name as "tableName",
102
+ tc.constraint_type as type,
103
+ array_agg(kcu.column_name) as columns,
104
+ ccu.table_name as "referencedTable",
105
+ array_agg(ccu.column_name) as "referencedColumns"
106
+ FROM information_schema.table_constraints tc
107
+ LEFT JOIN information_schema.key_column_usage kcu
108
+ ON tc.constraint_name = kcu.constraint_name
109
+ LEFT JOIN information_schema.constraint_column_usage ccu
110
+ ON tc.constraint_name = ccu.constraint_name
111
+ WHERE tc.table_schema = $1 AND tc.table_name = $2
112
+ GROUP BY tc.constraint_name, tc.table_name, tc.constraint_type, ccu.table_name
113
113
  `,
114
114
  // Users/Roles
115
- listUsers: `
116
- SELECT
117
- rolname as name,
118
- ARRAY(SELECT b.rolname FROM pg_auth_members m
119
- JOIN pg_roles b ON m.roleid = b.oid
120
- WHERE m.member = r.oid) as roles,
121
- rolcanlogin as "canLogin"
122
- FROM pg_roles r
123
- WHERE rolname NOT LIKE 'pg_%'
124
- ORDER BY rolname
115
+ listUsers: `
116
+ SELECT
117
+ rolname as name,
118
+ ARRAY(SELECT b.rolname FROM pg_auth_members m
119
+ JOIN pg_roles b ON m.roleid = b.oid
120
+ WHERE m.member = r.oid) as roles,
121
+ rolcanlogin as "canLogin"
122
+ FROM pg_roles r
123
+ WHERE rolname NOT LIKE 'pg_%'
124
+ ORDER BY rolname
125
125
  `,
126
126
  // Sessions
127
- listSessions: `
128
- SELECT
129
- pid as "sessionId",
130
- usename as user,
131
- client_addr as host,
132
- datname as database,
133
- state as status,
134
- backend_start as "startTime",
135
- query as command
136
- FROM pg_stat_activity
137
- WHERE pid <> pg_backend_pid()
138
- ORDER BY backend_start
127
+ listSessions: `
128
+ SELECT
129
+ pid as "sessionId",
130
+ usename as user,
131
+ client_addr as host,
132
+ datname as database,
133
+ state as status,
134
+ backend_start as "startTime",
135
+ query as command
136
+ FROM pg_stat_activity
137
+ WHERE pid <> pg_backend_pid()
138
+ ORDER BY backend_start
139
139
  `,
140
140
  // Locks
141
- listLocks: `
142
- SELECT
143
- locktype as "lockType",
144
- relation::regclass as "tableName",
145
- mode,
146
- granted::text as status,
147
- pid as "sessionId"
148
- FROM pg_locks
149
- WHERE relation IS NOT NULL
150
- ORDER BY relation
141
+ listLocks: `
142
+ SELECT
143
+ locktype as "lockType",
144
+ relation::regclass as "tableName",
145
+ mode,
146
+ granted::text as status,
147
+ pid as "sessionId"
148
+ FROM pg_locks
149
+ WHERE relation IS NOT NULL
150
+ ORDER BY relation
151
151
  `,
152
152
  // Database Size
153
- databaseSize: `
154
- SELECT pg_size_pretty(pg_database_size(current_database())) as size
153
+ databaseSize: `
154
+ SELECT pg_size_pretty(pg_database_size(current_database())) as size
155
155
  `,
156
156
  // Table Size
157
- tableSize: `
158
- SELECT
159
- pg_size_pretty(pg_total_relation_size($1)) as "totalSize",
160
- pg_size_pretty(pg_relation_size($1)) as "dataSize",
161
- pg_size_pretty(pg_indexes_size($1)) as "indexSize"
157
+ tableSize: `
158
+ SELECT
159
+ pg_size_pretty(pg_total_relation_size($1)) as "totalSize",
160
+ pg_size_pretty(pg_relation_size($1)) as "dataSize",
161
+ pg_size_pretty(pg_indexes_size($1)) as "indexSize"
162
162
  `,
163
163
  // Views
164
- listViews: `
165
- SELECT
166
- table_schema as schema,
167
- table_name as name,
168
- view_definition as definition
169
- FROM information_schema.views
170
- WHERE table_schema NOT IN ('pg_catalog', 'information_schema')
171
- ORDER BY table_schema, table_name
164
+ listViews: `
165
+ SELECT
166
+ table_schema as schema,
167
+ table_name as name,
168
+ view_definition as definition
169
+ FROM information_schema.views
170
+ WHERE table_schema NOT IN ('pg_catalog', 'information_schema')
171
+ ORDER BY table_schema, table_name
172
172
  `,
173
173
  // Schemas
174
- listSchemas: `
175
- SELECT schema_name as name
176
- FROM information_schema.schemata
177
- WHERE schema_name NOT IN ('pg_catalog', 'information_schema', 'pg_toast')
178
- ORDER BY schema_name
174
+ listSchemas: `
175
+ SELECT schema_name as name
176
+ FROM information_schema.schemata
177
+ WHERE schema_name NOT IN ('pg_catalog', 'information_schema', 'pg_toast')
178
+ ORDER BY schema_name
179
179
  `,
180
180
  // Sequences
181
- listSequences: `
182
- SELECT
183
- sequence_schema as schema,
184
- sequence_name as name,
185
- data_type as "dataType",
186
- start_value as "startValue",
187
- minimum_value as "minValue",
188
- maximum_value as "maxValue",
189
- increment as increment
190
- FROM information_schema.sequences
191
- WHERE sequence_schema NOT IN ('pg_catalog', 'information_schema')
192
- ORDER BY sequence_schema, sequence_name
181
+ listSequences: `
182
+ SELECT
183
+ sequence_schema as schema,
184
+ sequence_name as name,
185
+ data_type as "dataType",
186
+ start_value as "startValue",
187
+ minimum_value as "minValue",
188
+ maximum_value as "maxValue",
189
+ increment as increment
190
+ FROM information_schema.sequences
191
+ WHERE sequence_schema NOT IN ('pg_catalog', 'information_schema')
192
+ ORDER BY sequence_schema, sequence_name
193
193
  `
194
194
  },
195
195
  mysql: {
196
- listTables: `
197
- SELECT
198
- TABLE_SCHEMA as 'schema',
199
- TABLE_NAME as name,
200
- TABLE_TYPE as type
201
- FROM information_schema.TABLES
202
- WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys')
203
- ORDER BY TABLE_SCHEMA, TABLE_NAME
204
- `,
205
- listColumns: `
206
- SELECT
207
- COLUMN_NAME as name,
208
- DATA_TYPE as dataType,
209
- IS_NULLABLE = 'YES' as nullable,
210
- COLUMN_DEFAULT as defaultValue,
211
- CHARACTER_MAXIMUM_LENGTH as maxLength,
212
- NUMERIC_PRECISION as \`precision\`,
213
- NUMERIC_SCALE as scale,
214
- COLUMN_KEY = 'PRI' as isPrimaryKey
215
- FROM information_schema.COLUMNS
216
- WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?
217
- ORDER BY ORDINAL_POSITION
218
- `,
219
- listPrimaryKeys: `
220
- SELECT COLUMN_NAME
221
- FROM information_schema.KEY_COLUMN_USAGE
222
- WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ? AND CONSTRAINT_NAME = 'PRIMARY'
223
- `,
224
- listIndexes: `
225
- SELECT
226
- INDEX_NAME as name,
227
- TABLE_NAME as tableName,
228
- GROUP_CONCAT(COLUMN_NAME ORDER BY SEQ_IN_INDEX) as columns,
229
- NOT NON_UNIQUE as isUnique,
230
- INDEX_NAME = 'PRIMARY' as isPrimaryKey,
231
- INDEX_TYPE as type
232
- FROM information_schema.STATISTICS
233
- WHERE TABLE_SCHEMA = DATABASE()
234
- GROUP BY INDEX_NAME, TABLE_NAME, NON_UNIQUE, INDEX_TYPE
235
- ORDER BY TABLE_NAME, INDEX_NAME
236
- `,
237
- listFunctions: `
238
- SELECT
239
- ROUTINE_SCHEMA as 'schema',
240
- ROUTINE_NAME as name,
241
- 'FUNCTION' as type,
242
- DTD_IDENTIFIER as returnType,
243
- ROUTINE_DEFINITION as definition
244
- FROM information_schema.ROUTINES
245
- WHERE ROUTINE_TYPE = 'FUNCTION'
246
- AND ROUTINE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys')
247
- ORDER BY ROUTINE_SCHEMA, ROUTINE_NAME
248
- `,
249
- listProcedures: `
250
- SELECT
251
- ROUTINE_SCHEMA as 'schema',
252
- ROUTINE_NAME as name,
253
- 'PROCEDURE' as type,
254
- ROUTINE_DEFINITION as definition
255
- FROM information_schema.ROUTINES
256
- WHERE ROUTINE_TYPE = 'PROCEDURE'
257
- AND ROUTINE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys')
258
- ORDER BY ROUTINE_SCHEMA, ROUTINE_NAME
259
- `,
260
- listTriggers: `
261
- SELECT
262
- TRIGGER_SCHEMA as 'schema',
263
- TRIGGER_NAME as name,
264
- EVENT_OBJECT_TABLE as tableName,
265
- EVENT_MANIPULATION as event,
266
- ACTION_TIMING as timing,
267
- ACTION_STATEMENT as definition
268
- FROM information_schema.TRIGGERS
269
- WHERE TRIGGER_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys')
270
- ORDER BY TRIGGER_SCHEMA, TRIGGER_NAME
271
- `,
272
- listConstraints: `
273
- SELECT
274
- CONSTRAINT_NAME as name,
275
- TABLE_NAME as tableName,
276
- CONSTRAINT_TYPE as type
277
- FROM information_schema.TABLE_CONSTRAINTS
278
- WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?
279
- `,
280
- listUsers: `
281
- SELECT
282
- User as name,
283
- Host as host
284
- FROM mysql.user
285
- ORDER BY User
286
- `,
287
- listSessions: `
288
- SELECT
289
- ID as sessionId,
290
- USER as user,
291
- HOST as host,
292
- DB as database,
293
- COMMAND as status,
294
- TIME as duration,
295
- INFO as command
296
- FROM information_schema.PROCESSLIST
297
- ORDER BY TIME DESC
298
- `,
299
- listLocks: `
300
- SELECT
301
- lock_type as lockType,
302
- object_name as tableName,
303
- lock_mode as mode,
304
- lock_status as status,
305
- owner_thread_id as sessionId
306
- FROM performance_schema.data_locks
307
- ORDER BY object_name
308
- `,
309
- databaseSize: `
310
- SELECT
311
- ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) as sizeMB
312
- FROM information_schema.TABLES
313
- WHERE TABLE_SCHEMA = DATABASE()
314
- `,
315
- tableSize: `
316
- SELECT
317
- ROUND((data_length + index_length) / 1024 / 1024, 2) as totalSizeMB,
318
- ROUND(data_length / 1024 / 1024, 2) as dataSizeMB,
319
- ROUND(index_length / 1024 / 1024, 2) as indexSizeMB
320
- FROM information_schema.TABLES
321
- WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = ?
322
- `,
323
- listViews: `
324
- SELECT
325
- TABLE_SCHEMA as 'schema',
326
- TABLE_NAME as name,
327
- VIEW_DEFINITION as definition
328
- FROM information_schema.VIEWS
329
- WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys')
330
- ORDER BY TABLE_SCHEMA, TABLE_NAME
331
- `,
332
- listSchemas: `
333
- SELECT SCHEMA_NAME as name
334
- FROM information_schema.SCHEMATA
335
- WHERE SCHEMA_NAME NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys')
336
- ORDER BY SCHEMA_NAME
196
+ listTables: `
197
+ SELECT
198
+ TABLE_SCHEMA as 'schema',
199
+ TABLE_NAME as name,
200
+ TABLE_TYPE as type
201
+ FROM information_schema.TABLES
202
+ WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys')
203
+ ORDER BY TABLE_SCHEMA, TABLE_NAME
204
+ `,
205
+ listColumns: `
206
+ SELECT
207
+ COLUMN_NAME as name,
208
+ DATA_TYPE as dataType,
209
+ IS_NULLABLE = 'YES' as nullable,
210
+ COLUMN_DEFAULT as defaultValue,
211
+ CHARACTER_MAXIMUM_LENGTH as maxLength,
212
+ NUMERIC_PRECISION as \`precision\`,
213
+ NUMERIC_SCALE as scale,
214
+ COLUMN_KEY = 'PRI' as isPrimaryKey
215
+ FROM information_schema.COLUMNS
216
+ WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?
217
+ ORDER BY ORDINAL_POSITION
218
+ `,
219
+ listPrimaryKeys: `
220
+ SELECT COLUMN_NAME
221
+ FROM information_schema.KEY_COLUMN_USAGE
222
+ WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ? AND CONSTRAINT_NAME = 'PRIMARY'
223
+ `,
224
+ listIndexes: `
225
+ SELECT
226
+ INDEX_NAME as name,
227
+ TABLE_NAME as tableName,
228
+ GROUP_CONCAT(COLUMN_NAME ORDER BY SEQ_IN_INDEX) as columns,
229
+ NOT NON_UNIQUE as isUnique,
230
+ INDEX_NAME = 'PRIMARY' as isPrimaryKey,
231
+ INDEX_TYPE as type
232
+ FROM information_schema.STATISTICS
233
+ WHERE TABLE_SCHEMA = DATABASE()
234
+ GROUP BY INDEX_NAME, TABLE_NAME, NON_UNIQUE, INDEX_TYPE
235
+ ORDER BY TABLE_NAME, INDEX_NAME
236
+ `,
237
+ listFunctions: `
238
+ SELECT
239
+ ROUTINE_SCHEMA as 'schema',
240
+ ROUTINE_NAME as name,
241
+ 'FUNCTION' as type,
242
+ DTD_IDENTIFIER as returnType,
243
+ ROUTINE_DEFINITION as definition
244
+ FROM information_schema.ROUTINES
245
+ WHERE ROUTINE_TYPE = 'FUNCTION'
246
+ AND ROUTINE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys')
247
+ ORDER BY ROUTINE_SCHEMA, ROUTINE_NAME
248
+ `,
249
+ listProcedures: `
250
+ SELECT
251
+ ROUTINE_SCHEMA as 'schema',
252
+ ROUTINE_NAME as name,
253
+ 'PROCEDURE' as type,
254
+ ROUTINE_DEFINITION as definition
255
+ FROM information_schema.ROUTINES
256
+ WHERE ROUTINE_TYPE = 'PROCEDURE'
257
+ AND ROUTINE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys')
258
+ ORDER BY ROUTINE_SCHEMA, ROUTINE_NAME
259
+ `,
260
+ listTriggers: `
261
+ SELECT
262
+ TRIGGER_SCHEMA as 'schema',
263
+ TRIGGER_NAME as name,
264
+ EVENT_OBJECT_TABLE as tableName,
265
+ EVENT_MANIPULATION as event,
266
+ ACTION_TIMING as timing,
267
+ ACTION_STATEMENT as definition
268
+ FROM information_schema.TRIGGERS
269
+ WHERE TRIGGER_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys')
270
+ ORDER BY TRIGGER_SCHEMA, TRIGGER_NAME
271
+ `,
272
+ listConstraints: `
273
+ SELECT
274
+ CONSTRAINT_NAME as name,
275
+ TABLE_NAME as tableName,
276
+ CONSTRAINT_TYPE as type
277
+ FROM information_schema.TABLE_CONSTRAINTS
278
+ WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?
279
+ `,
280
+ listUsers: `
281
+ SELECT
282
+ User as name,
283
+ Host as host
284
+ FROM mysql.user
285
+ ORDER BY User
286
+ `,
287
+ listSessions: `
288
+ SELECT
289
+ ID as sessionId,
290
+ USER as user,
291
+ HOST as host,
292
+ DB as database,
293
+ COMMAND as status,
294
+ TIME as duration,
295
+ INFO as command
296
+ FROM information_schema.PROCESSLIST
297
+ ORDER BY TIME DESC
298
+ `,
299
+ listLocks: `
300
+ SELECT
301
+ lock_type as lockType,
302
+ object_name as tableName,
303
+ lock_mode as mode,
304
+ lock_status as status,
305
+ owner_thread_id as sessionId
306
+ FROM performance_schema.data_locks
307
+ ORDER BY object_name
308
+ `,
309
+ databaseSize: `
310
+ SELECT
311
+ ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) as sizeMB
312
+ FROM information_schema.TABLES
313
+ WHERE TABLE_SCHEMA = DATABASE()
314
+ `,
315
+ tableSize: `
316
+ SELECT
317
+ ROUND((data_length + index_length) / 1024 / 1024, 2) as totalSizeMB,
318
+ ROUND(data_length / 1024 / 1024, 2) as dataSizeMB,
319
+ ROUND(index_length / 1024 / 1024, 2) as indexSizeMB
320
+ FROM information_schema.TABLES
321
+ WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = ?
322
+ `,
323
+ listViews: `
324
+ SELECT
325
+ TABLE_SCHEMA as 'schema',
326
+ TABLE_NAME as name,
327
+ VIEW_DEFINITION as definition
328
+ FROM information_schema.VIEWS
329
+ WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys')
330
+ ORDER BY TABLE_SCHEMA, TABLE_NAME
331
+ `,
332
+ listSchemas: `
333
+ SELECT SCHEMA_NAME as name
334
+ FROM information_schema.SCHEMATA
335
+ WHERE SCHEMA_NAME NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys')
336
+ ORDER BY SCHEMA_NAME
337
337
  `,
338
338
  listSequences: `SELECT 'MySQL does not support sequences' as message`
339
339
  },
340
340
  sqlserver: {
341
- listTables: `
342
- SELECT
343
- SCHEMA_NAME(schema_id) as [schema],
344
- name,
345
- CASE WHEN type = 'U' THEN 'TABLE' ELSE 'VIEW' END as type
346
- FROM sys.objects
347
- WHERE type IN ('U', 'V')
348
- ORDER BY SCHEMA_NAME(schema_id), name
349
- `,
350
- listColumns: `
351
- SELECT
352
- c.name,
353
- t.name as dataType,
354
- c.is_nullable as nullable,
355
- OBJECT_DEFINITION(c.default_object_id) as defaultValue,
356
- c.max_length as maxLength,
357
- c.precision,
358
- c.scale
359
- FROM sys.columns c
360
- JOIN sys.types t ON c.user_type_id = t.user_type_id
361
- WHERE c.object_id = OBJECT_ID(?)
362
- ORDER BY c.column_id
363
- `,
364
- listPrimaryKeys: `
365
- SELECT c.name as column_name
366
- FROM sys.indexes i
367
- JOIN sys.index_columns ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id
368
- JOIN sys.columns c ON ic.object_id = c.object_id AND ic.column_id = c.column_id
369
- WHERE i.is_primary_key = 1 AND i.object_id = OBJECT_ID(?)
370
- `,
371
- listIndexes: `
372
- SELECT
373
- i.name,
374
- OBJECT_NAME(i.object_id) as tableName,
375
- STRING_AGG(c.name, ', ') WITHIN GROUP (ORDER BY ic.key_ordinal) as columns,
376
- i.is_unique as isUnique,
377
- i.is_primary_key as isPrimaryKey,
378
- i.type_desc as type
379
- FROM sys.indexes i
380
- JOIN sys.index_columns ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id
381
- JOIN sys.columns c ON ic.object_id = c.object_id AND ic.column_id = c.column_id
382
- WHERE i.name IS NOT NULL
383
- GROUP BY i.name, i.object_id, i.is_unique, i.is_primary_key, i.type_desc
384
- ORDER BY OBJECT_NAME(i.object_id), i.name
385
- `,
386
- listFunctions: `
387
- SELECT
388
- SCHEMA_NAME(schema_id) as [schema],
389
- name,
390
- 'FUNCTION' as type,
391
- TYPE_NAME(ISNULL(so.return_type, 0)) as returnType,
392
- OBJECT_DEFINITION(object_id) as definition
393
- FROM sys.objects so
394
- WHERE type IN ('FN', 'IF', 'TF')
395
- ORDER BY SCHEMA_NAME(schema_id), name
396
- `,
397
- listProcedures: `
398
- SELECT
399
- SCHEMA_NAME(schema_id) as [schema],
400
- name,
401
- 'PROCEDURE' as type,
402
- OBJECT_DEFINITION(object_id) as definition
403
- FROM sys.procedures
404
- ORDER BY SCHEMA_NAME(schema_id), name
405
- `,
406
- listTriggers: `
407
- SELECT
408
- SCHEMA_NAME(o.schema_id) as [schema],
409
- t.name,
410
- OBJECT_NAME(t.parent_id) as tableName,
411
- CASE WHEN t.is_instead_of_trigger = 1 THEN 'INSTEAD OF' ELSE 'AFTER' END as timing,
412
- OBJECT_DEFINITION(t.object_id) as definition
413
- FROM sys.triggers t
414
- JOIN sys.objects o ON t.parent_id = o.object_id
415
- ORDER BY SCHEMA_NAME(o.schema_id), t.name
416
- `,
417
- listConstraints: `
418
- SELECT
419
- name,
420
- OBJECT_NAME(parent_object_id) as tableName,
421
- type_desc as type
422
- FROM sys.objects
423
- WHERE type IN ('PK', 'FK', 'UQ', 'C')
424
- AND parent_object_id = OBJECT_ID(?)
425
- `,
426
- listUsers: `
427
- SELECT
428
- name,
429
- type_desc as type,
430
- create_date as createdAt
431
- FROM sys.database_principals
432
- WHERE type IN ('S', 'U', 'G')
433
- AND name NOT IN ('dbo', 'guest', 'INFORMATION_SCHEMA', 'sys')
434
- ORDER BY name
435
- `,
436
- listSessions: `
437
- SELECT
438
- session_id as sessionId,
439
- login_name as [user],
440
- host_name as host,
441
- DB_NAME(database_id) as [database],
442
- status,
443
- login_time as startTime
444
- FROM sys.dm_exec_sessions
445
- WHERE is_user_process = 1
446
- ORDER BY login_time
447
- `,
448
- listLocks: `
449
- SELECT
450
- resource_type as lockType,
451
- OBJECT_NAME(resource_associated_entity_id) as tableName,
452
- request_mode as mode,
453
- request_status as status,
454
- request_session_id as sessionId
455
- FROM sys.dm_tran_locks
456
- WHERE resource_database_id = DB_ID()
457
- ORDER BY resource_type
458
- `,
459
- databaseSize: `
460
- SELECT
461
- CAST(SUM(size * 8.0 / 1024) AS DECIMAL(10,2)) as sizeMB
462
- FROM sys.database_files
463
- `,
464
- tableSize: `
465
- SELECT
466
- CAST(SUM(a.total_pages) * 8.0 / 1024 AS DECIMAL(10,2)) as totalSizeMB,
467
- CAST(SUM(a.used_pages) * 8.0 / 1024 AS DECIMAL(10,2)) as usedSizeMB
468
- FROM sys.tables t
469
- JOIN sys.indexes i ON t.object_id = i.object_id
470
- JOIN sys.partitions p ON i.object_id = p.object_id AND i.index_id = p.index_id
471
- JOIN sys.allocation_units a ON p.partition_id = a.container_id
472
- WHERE t.object_id = OBJECT_ID(?)
473
- `,
474
- listViews: `
475
- SELECT
476
- SCHEMA_NAME(schema_id) as [schema],
477
- name,
478
- OBJECT_DEFINITION(object_id) as definition
479
- FROM sys.views
480
- ORDER BY SCHEMA_NAME(schema_id), name
481
- `,
482
- listSchemas: `
483
- SELECT name
484
- FROM sys.schemas
485
- WHERE schema_id < 16384
486
- AND name NOT IN ('dbo', 'guest', 'INFORMATION_SCHEMA', 'sys', 'db_owner', 'db_accessadmin',
487
- 'db_securityadmin', 'db_ddladmin', 'db_backupoperator', 'db_datareader',
488
- 'db_datawriter', 'db_denydatareader', 'db_denydatawriter')
489
- ORDER BY name
490
- `,
491
- listSequences: `
492
- SELECT
493
- SCHEMA_NAME(schema_id) as [schema],
494
- name,
495
- TYPE_NAME(user_type_id) as dataType,
496
- start_value as startValue,
497
- minimum_value as minValue,
498
- maximum_value as maxValue,
499
- increment
500
- FROM sys.sequences
501
- ORDER BY SCHEMA_NAME(schema_id), name
341
+ listTables: `
342
+ SELECT
343
+ SCHEMA_NAME(schema_id) as [schema],
344
+ name,
345
+ CASE WHEN type = 'U' THEN 'TABLE' ELSE 'VIEW' END as type
346
+ FROM sys.objects
347
+ WHERE type IN ('U', 'V')
348
+ ORDER BY SCHEMA_NAME(schema_id), name
349
+ `,
350
+ listColumns: `
351
+ SELECT
352
+ c.name,
353
+ t.name as dataType,
354
+ c.is_nullable as nullable,
355
+ OBJECT_DEFINITION(c.default_object_id) as defaultValue,
356
+ c.max_length as maxLength,
357
+ c.precision,
358
+ c.scale
359
+ FROM sys.columns c
360
+ JOIN sys.types t ON c.user_type_id = t.user_type_id
361
+ WHERE c.object_id = OBJECT_ID(?)
362
+ ORDER BY c.column_id
363
+ `,
364
+ listPrimaryKeys: `
365
+ SELECT c.name as column_name
366
+ FROM sys.indexes i
367
+ JOIN sys.index_columns ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id
368
+ JOIN sys.columns c ON ic.object_id = c.object_id AND ic.column_id = c.column_id
369
+ WHERE i.is_primary_key = 1 AND i.object_id = OBJECT_ID(?)
370
+ `,
371
+ listIndexes: `
372
+ SELECT
373
+ i.name,
374
+ OBJECT_NAME(i.object_id) as tableName,
375
+ STRING_AGG(c.name, ', ') WITHIN GROUP (ORDER BY ic.key_ordinal) as columns,
376
+ i.is_unique as isUnique,
377
+ i.is_primary_key as isPrimaryKey,
378
+ i.type_desc as type
379
+ FROM sys.indexes i
380
+ JOIN sys.index_columns ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id
381
+ JOIN sys.columns c ON ic.object_id = c.object_id AND ic.column_id = c.column_id
382
+ WHERE i.name IS NOT NULL
383
+ GROUP BY i.name, i.object_id, i.is_unique, i.is_primary_key, i.type_desc
384
+ ORDER BY OBJECT_NAME(i.object_id), i.name
385
+ `,
386
+ listFunctions: `
387
+ SELECT
388
+ SCHEMA_NAME(schema_id) as [schema],
389
+ name,
390
+ 'FUNCTION' as type,
391
+ TYPE_NAME(ISNULL(so.return_type, 0)) as returnType,
392
+ OBJECT_DEFINITION(object_id) as definition
393
+ FROM sys.objects so
394
+ WHERE type IN ('FN', 'IF', 'TF')
395
+ ORDER BY SCHEMA_NAME(schema_id), name
396
+ `,
397
+ listProcedures: `
398
+ SELECT
399
+ SCHEMA_NAME(schema_id) as [schema],
400
+ name,
401
+ 'PROCEDURE' as type,
402
+ OBJECT_DEFINITION(object_id) as definition
403
+ FROM sys.procedures
404
+ ORDER BY SCHEMA_NAME(schema_id), name
405
+ `,
406
+ listTriggers: `
407
+ SELECT
408
+ SCHEMA_NAME(o.schema_id) as [schema],
409
+ t.name,
410
+ OBJECT_NAME(t.parent_id) as tableName,
411
+ CASE WHEN t.is_instead_of_trigger = 1 THEN 'INSTEAD OF' ELSE 'AFTER' END as timing,
412
+ OBJECT_DEFINITION(t.object_id) as definition
413
+ FROM sys.triggers t
414
+ JOIN sys.objects o ON t.parent_id = o.object_id
415
+ ORDER BY SCHEMA_NAME(o.schema_id), t.name
416
+ `,
417
+ listConstraints: `
418
+ SELECT
419
+ name,
420
+ OBJECT_NAME(parent_object_id) as tableName,
421
+ type_desc as type
422
+ FROM sys.objects
423
+ WHERE type IN ('PK', 'FK', 'UQ', 'C')
424
+ AND parent_object_id = OBJECT_ID(?)
425
+ `,
426
+ listUsers: `
427
+ SELECT
428
+ name,
429
+ type_desc as type,
430
+ create_date as createdAt
431
+ FROM sys.database_principals
432
+ WHERE type IN ('S', 'U', 'G')
433
+ AND name NOT IN ('dbo', 'guest', 'INFORMATION_SCHEMA', 'sys')
434
+ ORDER BY name
435
+ `,
436
+ listSessions: `
437
+ SELECT
438
+ session_id as sessionId,
439
+ login_name as [user],
440
+ host_name as host,
441
+ DB_NAME(database_id) as [database],
442
+ status,
443
+ login_time as startTime
444
+ FROM sys.dm_exec_sessions
445
+ WHERE is_user_process = 1
446
+ ORDER BY login_time
447
+ `,
448
+ listLocks: `
449
+ SELECT
450
+ resource_type as lockType,
451
+ OBJECT_NAME(resource_associated_entity_id) as tableName,
452
+ request_mode as mode,
453
+ request_status as status,
454
+ request_session_id as sessionId
455
+ FROM sys.dm_tran_locks
456
+ WHERE resource_database_id = DB_ID()
457
+ ORDER BY resource_type
458
+ `,
459
+ databaseSize: `
460
+ SELECT
461
+ CAST(SUM(size * 8.0 / 1024) AS DECIMAL(10,2)) as sizeMB
462
+ FROM sys.database_files
463
+ `,
464
+ tableSize: `
465
+ SELECT
466
+ CAST(SUM(a.total_pages) * 8.0 / 1024 AS DECIMAL(10,2)) as totalSizeMB,
467
+ CAST(SUM(a.used_pages) * 8.0 / 1024 AS DECIMAL(10,2)) as usedSizeMB
468
+ FROM sys.tables t
469
+ JOIN sys.indexes i ON t.object_id = i.object_id
470
+ JOIN sys.partitions p ON i.object_id = p.object_id AND i.index_id = p.index_id
471
+ JOIN sys.allocation_units a ON p.partition_id = a.container_id
472
+ WHERE t.object_id = OBJECT_ID(?)
473
+ `,
474
+ listViews: `
475
+ SELECT
476
+ SCHEMA_NAME(schema_id) as [schema],
477
+ name,
478
+ OBJECT_DEFINITION(object_id) as definition
479
+ FROM sys.views
480
+ ORDER BY SCHEMA_NAME(schema_id), name
481
+ `,
482
+ listSchemas: `
483
+ SELECT name
484
+ FROM sys.schemas
485
+ WHERE schema_id < 16384
486
+ AND name NOT IN ('dbo', 'guest', 'INFORMATION_SCHEMA', 'sys', 'db_owner', 'db_accessadmin',
487
+ 'db_securityadmin', 'db_ddladmin', 'db_backupoperator', 'db_datareader',
488
+ 'db_datawriter', 'db_denydatareader', 'db_denydatawriter')
489
+ ORDER BY name
490
+ `,
491
+ listSequences: `
492
+ SELECT
493
+ SCHEMA_NAME(schema_id) as [schema],
494
+ name,
495
+ TYPE_NAME(user_type_id) as dataType,
496
+ start_value as startValue,
497
+ minimum_value as minValue,
498
+ maximum_value as maxValue,
499
+ increment
500
+ FROM sys.sequences
501
+ ORDER BY SCHEMA_NAME(schema_id), name
502
502
  `
503
503
  },
504
504
  oracle: {
505
- listTables: `
506
- SELECT
507
- OWNER as "schema",
508
- TABLE_NAME as "name",
509
- 'TABLE' as "type"
510
- FROM ALL_TABLES
511
- WHERE OWNER NOT IN ('SYS', 'SYSTEM', 'OUTLN', 'DIP', 'ORACLE_OCM', 'DBSNMP', 'APPQOSSYS',
512
- 'WMSYS', 'EXFSYS', 'CTXSYS', 'XDB', 'ORDDATA', 'ORDSYS', 'MDSYS', 'OLAPSYS')
513
- ORDER BY OWNER, TABLE_NAME
514
- `,
515
- listColumns: `
516
- SELECT
517
- COLUMN_NAME as "name",
518
- DATA_TYPE as "dataType",
519
- CASE WHEN NULLABLE = 'Y' THEN 1 ELSE 0 END as "nullable",
520
- DATA_DEFAULT as "defaultValue",
521
- DATA_LENGTH as "maxLength",
522
- DATA_PRECISION as "precision",
523
- DATA_SCALE as "scale"
524
- FROM ALL_TAB_COLUMNS
525
- WHERE OWNER = :1 AND TABLE_NAME = :2
526
- ORDER BY COLUMN_ID
527
- `,
528
- listPrimaryKeys: `
529
- SELECT cc.COLUMN_NAME
530
- FROM ALL_CONSTRAINTS c
531
- JOIN ALL_CONS_COLUMNS cc ON c.CONSTRAINT_NAME = cc.CONSTRAINT_NAME AND c.OWNER = cc.OWNER
532
- WHERE c.OWNER = :1 AND c.TABLE_NAME = :2 AND c.CONSTRAINT_TYPE = 'P'
533
- `,
534
- listIndexes: `
535
- SELECT
536
- i.INDEX_NAME as "name",
537
- i.TABLE_NAME as "tableName",
538
- LISTAGG(ic.COLUMN_NAME, ', ') WITHIN GROUP (ORDER BY ic.COLUMN_POSITION) as "columns",
539
- CASE WHEN i.UNIQUENESS = 'UNIQUE' THEN 1 ELSE 0 END as "isUnique",
540
- i.INDEX_TYPE as "type"
541
- FROM ALL_INDEXES i
542
- JOIN ALL_IND_COLUMNS ic ON i.INDEX_NAME = ic.INDEX_NAME AND i.OWNER = ic.INDEX_OWNER
543
- WHERE i.OWNER NOT IN ('SYS', 'SYSTEM')
544
- GROUP BY i.INDEX_NAME, i.TABLE_NAME, i.UNIQUENESS, i.INDEX_TYPE
545
- ORDER BY i.TABLE_NAME, i.INDEX_NAME
546
- `,
547
- listFunctions: `
548
- SELECT
549
- OWNER as "schema",
550
- OBJECT_NAME as "name",
551
- 'FUNCTION' as "type"
552
- FROM ALL_OBJECTS
553
- WHERE OBJECT_TYPE = 'FUNCTION'
554
- AND OWNER NOT IN ('SYS', 'SYSTEM', 'OUTLN', 'DIP', 'ORACLE_OCM', 'DBSNMP', 'APPQOSSYS')
555
- ORDER BY OWNER, OBJECT_NAME
556
- `,
557
- listProcedures: `
558
- SELECT
559
- OWNER as "schema",
560
- OBJECT_NAME as "name",
561
- 'PROCEDURE' as "type"
562
- FROM ALL_OBJECTS
563
- WHERE OBJECT_TYPE = 'PROCEDURE'
564
- AND OWNER NOT IN ('SYS', 'SYSTEM', 'OUTLN', 'DIP', 'ORACLE_OCM', 'DBSNMP', 'APPQOSSYS')
565
- ORDER BY OWNER, OBJECT_NAME
566
- `,
567
- listTriggers: `
568
- SELECT
569
- OWNER as "schema",
570
- TRIGGER_NAME as "name",
571
- TABLE_NAME as "tableName",
572
- TRIGGERING_EVENT as "event",
573
- TRIGGER_TYPE as "timing",
574
- TRIGGER_BODY as "definition"
575
- FROM ALL_TRIGGERS
576
- WHERE OWNER NOT IN ('SYS', 'SYSTEM')
577
- ORDER BY OWNER, TRIGGER_NAME
578
- `,
579
- listConstraints: `
580
- SELECT
581
- CONSTRAINT_NAME as "name",
582
- TABLE_NAME as "tableName",
583
- CONSTRAINT_TYPE as "type",
584
- SEARCH_CONDITION as "definition"
585
- FROM ALL_CONSTRAINTS
586
- WHERE OWNER = :1 AND TABLE_NAME = :2
587
- `,
588
- listUsers: `
589
- SELECT
590
- USERNAME as "name",
591
- ACCOUNT_STATUS as "status",
592
- CREATED as "createdAt"
593
- FROM ALL_USERS
594
- WHERE USERNAME NOT IN ('SYS', 'SYSTEM', 'OUTLN', 'DIP', 'ORACLE_OCM', 'DBSNMP', 'APPQOSSYS')
595
- ORDER BY USERNAME
596
- `,
597
- listSessions: `
598
- SELECT
599
- SID as "sessionId",
600
- USERNAME as "user",
601
- MACHINE as "host",
602
- STATUS as "status",
603
- LOGON_TIME as "startTime"
604
- FROM V$SESSION
605
- WHERE TYPE = 'USER'
606
- ORDER BY LOGON_TIME
607
- `,
608
- listLocks: `
609
- SELECT
610
- l.TYPE as "lockType",
611
- o.OBJECT_NAME as "tableName",
612
- l.LMODE as "mode",
613
- l.REQUEST as "status",
614
- l.SID as "sessionId"
615
- FROM V$LOCK l
616
- LEFT JOIN DBA_OBJECTS o ON l.ID1 = o.OBJECT_ID
617
- WHERE l.TYPE != 'AE'
618
- ORDER BY o.OBJECT_NAME
619
- `,
620
- databaseSize: `
621
- SELECT
622
- ROUND(SUM(bytes) / 1024 / 1024 / 1024, 2) as "sizeGB"
623
- FROM DBA_DATA_FILES
624
- `,
625
- tableSize: `
626
- SELECT
627
- ROUND(SUM(bytes) / 1024 / 1024, 2) as "sizeMB"
628
- FROM DBA_SEGMENTS
629
- WHERE OWNER = :1 AND SEGMENT_NAME = :2
630
- `,
631
- listViews: `
632
- SELECT
633
- OWNER as "schema",
634
- VIEW_NAME as "name",
635
- TEXT as "definition"
636
- FROM ALL_VIEWS
637
- WHERE OWNER NOT IN ('SYS', 'SYSTEM')
638
- ORDER BY OWNER, VIEW_NAME
639
- `,
640
- listSchemas: `
641
- SELECT USERNAME as "name"
642
- FROM ALL_USERS
643
- WHERE USERNAME NOT IN ('SYS', 'SYSTEM', 'OUTLN', 'DIP', 'ORACLE_OCM', 'DBSNMP', 'APPQOSSYS',
644
- 'WMSYS', 'EXFSYS', 'CTXSYS', 'XDB', 'ORDDATA', 'ORDSYS', 'MDSYS', 'OLAPSYS')
645
- ORDER BY USERNAME
646
- `,
647
- listSequences: `
648
- SELECT
649
- SEQUENCE_OWNER as "schema",
650
- SEQUENCE_NAME as "name",
651
- MIN_VALUE as "minValue",
652
- MAX_VALUE as "maxValue",
653
- INCREMENT_BY as "increment",
654
- LAST_NUMBER as "lastValue"
655
- FROM ALL_SEQUENCES
656
- WHERE SEQUENCE_OWNER NOT IN ('SYS', 'SYSTEM')
657
- ORDER BY SEQUENCE_OWNER, SEQUENCE_NAME
658
- `,
659
- listTablespaces: `
660
- SELECT
661
- TABLESPACE_NAME as "name",
662
- ROUND(SUM(BYTES) / 1024 / 1024, 2) as "totalMB",
663
- ROUND(SUM(BYTES - NVL(FREE_SPACE, 0)) / 1024 / 1024, 2) as "usedMB"
664
- FROM (
665
- SELECT df.TABLESPACE_NAME, df.BYTES, fs.BYTES as FREE_SPACE
666
- FROM DBA_DATA_FILES df
667
- LEFT JOIN DBA_FREE_SPACE fs ON df.TABLESPACE_NAME = fs.TABLESPACE_NAME
668
- )
669
- GROUP BY TABLESPACE_NAME
670
- ORDER BY TABLESPACE_NAME
671
- `,
672
- getProcedureSource: `
673
- SELECT TEXT as "line"
674
- FROM ALL_SOURCE
675
- WHERE OWNER = :1 AND NAME = :2 AND TYPE = :3
676
- ORDER BY LINE
505
+ listTables: `
506
+ SELECT
507
+ OWNER as "schema",
508
+ TABLE_NAME as "name",
509
+ 'TABLE' as "type"
510
+ FROM ALL_TABLES
511
+ WHERE OWNER NOT IN ('SYS', 'SYSTEM', 'OUTLN', 'DIP', 'ORACLE_OCM', 'DBSNMP', 'APPQOSSYS',
512
+ 'WMSYS', 'EXFSYS', 'CTXSYS', 'XDB', 'ORDDATA', 'ORDSYS', 'MDSYS', 'OLAPSYS')
513
+ ORDER BY OWNER, TABLE_NAME
514
+ `,
515
+ listColumns: `
516
+ SELECT
517
+ COLUMN_NAME as "name",
518
+ DATA_TYPE as "dataType",
519
+ CASE WHEN NULLABLE = 'Y' THEN 1 ELSE 0 END as "nullable",
520
+ DATA_DEFAULT as "defaultValue",
521
+ DATA_LENGTH as "maxLength",
522
+ DATA_PRECISION as "precision",
523
+ DATA_SCALE as "scale"
524
+ FROM ALL_TAB_COLUMNS
525
+ WHERE OWNER = :1 AND TABLE_NAME = :2
526
+ ORDER BY COLUMN_ID
527
+ `,
528
+ listPrimaryKeys: `
529
+ SELECT cc.COLUMN_NAME
530
+ FROM ALL_CONSTRAINTS c
531
+ JOIN ALL_CONS_COLUMNS cc ON c.CONSTRAINT_NAME = cc.CONSTRAINT_NAME AND c.OWNER = cc.OWNER
532
+ WHERE c.OWNER = :1 AND c.TABLE_NAME = :2 AND c.CONSTRAINT_TYPE = 'P'
533
+ `,
534
+ listIndexes: `
535
+ SELECT
536
+ i.INDEX_NAME as "name",
537
+ i.TABLE_NAME as "tableName",
538
+ LISTAGG(ic.COLUMN_NAME, ', ') WITHIN GROUP (ORDER BY ic.COLUMN_POSITION) as "columns",
539
+ CASE WHEN i.UNIQUENESS = 'UNIQUE' THEN 1 ELSE 0 END as "isUnique",
540
+ i.INDEX_TYPE as "type"
541
+ FROM ALL_INDEXES i
542
+ JOIN ALL_IND_COLUMNS ic ON i.INDEX_NAME = ic.INDEX_NAME AND i.OWNER = ic.INDEX_OWNER
543
+ WHERE i.OWNER NOT IN ('SYS', 'SYSTEM')
544
+ GROUP BY i.INDEX_NAME, i.TABLE_NAME, i.UNIQUENESS, i.INDEX_TYPE
545
+ ORDER BY i.TABLE_NAME, i.INDEX_NAME
546
+ `,
547
+ listFunctions: `
548
+ SELECT
549
+ OWNER as "schema",
550
+ OBJECT_NAME as "name",
551
+ 'FUNCTION' as "type"
552
+ FROM ALL_OBJECTS
553
+ WHERE OBJECT_TYPE = 'FUNCTION'
554
+ AND OWNER NOT IN ('SYS', 'SYSTEM', 'OUTLN', 'DIP', 'ORACLE_OCM', 'DBSNMP', 'APPQOSSYS')
555
+ ORDER BY OWNER, OBJECT_NAME
556
+ `,
557
+ listProcedures: `
558
+ SELECT
559
+ OWNER as "schema",
560
+ OBJECT_NAME as "name",
561
+ 'PROCEDURE' as "type"
562
+ FROM ALL_OBJECTS
563
+ WHERE OBJECT_TYPE = 'PROCEDURE'
564
+ AND OWNER NOT IN ('SYS', 'SYSTEM', 'OUTLN', 'DIP', 'ORACLE_OCM', 'DBSNMP', 'APPQOSSYS')
565
+ ORDER BY OWNER, OBJECT_NAME
566
+ `,
567
+ listTriggers: `
568
+ SELECT
569
+ OWNER as "schema",
570
+ TRIGGER_NAME as "name",
571
+ TABLE_NAME as "tableName",
572
+ TRIGGERING_EVENT as "event",
573
+ TRIGGER_TYPE as "timing",
574
+ TRIGGER_BODY as "definition"
575
+ FROM ALL_TRIGGERS
576
+ WHERE OWNER NOT IN ('SYS', 'SYSTEM')
577
+ ORDER BY OWNER, TRIGGER_NAME
578
+ `,
579
+ listConstraints: `
580
+ SELECT
581
+ CONSTRAINT_NAME as "name",
582
+ TABLE_NAME as "tableName",
583
+ CONSTRAINT_TYPE as "type",
584
+ SEARCH_CONDITION as "definition"
585
+ FROM ALL_CONSTRAINTS
586
+ WHERE OWNER = :1 AND TABLE_NAME = :2
587
+ `,
588
+ listUsers: `
589
+ SELECT
590
+ USERNAME as "name",
591
+ ACCOUNT_STATUS as "status",
592
+ CREATED as "createdAt"
593
+ FROM ALL_USERS
594
+ WHERE USERNAME NOT IN ('SYS', 'SYSTEM', 'OUTLN', 'DIP', 'ORACLE_OCM', 'DBSNMP', 'APPQOSSYS')
595
+ ORDER BY USERNAME
596
+ `,
597
+ listSessions: `
598
+ SELECT
599
+ SID as "sessionId",
600
+ USERNAME as "user",
601
+ MACHINE as "host",
602
+ STATUS as "status",
603
+ LOGON_TIME as "startTime"
604
+ FROM V$SESSION
605
+ WHERE TYPE = 'USER'
606
+ ORDER BY LOGON_TIME
607
+ `,
608
+ listLocks: `
609
+ SELECT
610
+ l.TYPE as "lockType",
611
+ o.OBJECT_NAME as "tableName",
612
+ l.LMODE as "mode",
613
+ l.REQUEST as "status",
614
+ l.SID as "sessionId"
615
+ FROM V$LOCK l
616
+ LEFT JOIN DBA_OBJECTS o ON l.ID1 = o.OBJECT_ID
617
+ WHERE l.TYPE != 'AE'
618
+ ORDER BY o.OBJECT_NAME
619
+ `,
620
+ databaseSize: `
621
+ SELECT
622
+ ROUND(SUM(bytes) / 1024 / 1024 / 1024, 2) as "sizeGB"
623
+ FROM DBA_DATA_FILES
624
+ `,
625
+ tableSize: `
626
+ SELECT
627
+ ROUND(SUM(bytes) / 1024 / 1024, 2) as "sizeMB"
628
+ FROM DBA_SEGMENTS
629
+ WHERE OWNER = :1 AND SEGMENT_NAME = :2
630
+ `,
631
+ listViews: `
632
+ SELECT
633
+ OWNER as "schema",
634
+ VIEW_NAME as "name",
635
+ TEXT as "definition"
636
+ FROM ALL_VIEWS
637
+ WHERE OWNER NOT IN ('SYS', 'SYSTEM')
638
+ ORDER BY OWNER, VIEW_NAME
639
+ `,
640
+ listSchemas: `
641
+ SELECT USERNAME as "name"
642
+ FROM ALL_USERS
643
+ WHERE USERNAME NOT IN ('SYS', 'SYSTEM', 'OUTLN', 'DIP', 'ORACLE_OCM', 'DBSNMP', 'APPQOSSYS',
644
+ 'WMSYS', 'EXFSYS', 'CTXSYS', 'XDB', 'ORDDATA', 'ORDSYS', 'MDSYS', 'OLAPSYS')
645
+ ORDER BY USERNAME
646
+ `,
647
+ listSequences: `
648
+ SELECT
649
+ SEQUENCE_OWNER as "schema",
650
+ SEQUENCE_NAME as "name",
651
+ MIN_VALUE as "minValue",
652
+ MAX_VALUE as "maxValue",
653
+ INCREMENT_BY as "increment",
654
+ LAST_NUMBER as "lastValue"
655
+ FROM ALL_SEQUENCES
656
+ WHERE SEQUENCE_OWNER NOT IN ('SYS', 'SYSTEM')
657
+ ORDER BY SEQUENCE_OWNER, SEQUENCE_NAME
658
+ `,
659
+ listTablespaces: `
660
+ SELECT
661
+ TABLESPACE_NAME as "name",
662
+ ROUND(SUM(BYTES) / 1024 / 1024, 2) as "totalMB",
663
+ ROUND(SUM(BYTES - NVL(FREE_SPACE, 0)) / 1024 / 1024, 2) as "usedMB"
664
+ FROM (
665
+ SELECT df.TABLESPACE_NAME, df.BYTES, fs.BYTES as FREE_SPACE
666
+ FROM DBA_DATA_FILES df
667
+ LEFT JOIN DBA_FREE_SPACE fs ON df.TABLESPACE_NAME = fs.TABLESPACE_NAME
668
+ )
669
+ GROUP BY TABLESPACE_NAME
670
+ ORDER BY TABLESPACE_NAME
671
+ `,
672
+ getProcedureSource: `
673
+ SELECT TEXT as "line"
674
+ FROM ALL_SOURCE
675
+ WHERE OWNER = :1 AND NAME = :2 AND TYPE = :3
676
+ ORDER BY LINE
677
677
  `
678
678
  }
679
679
  };