@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.
- package/README.md +68 -68
- package/cli.js +8515 -8515
- package/context-bootstrap.js +27 -27
- package/dist/src/bootstrap/state.js +3 -0
- package/dist/src/bridge/bridgeMain.js +40 -40
- package/dist/src/cli/print.js +12 -12
- package/dist/src/commands/agent/agent.js +8 -0
- package/dist/src/commands/commit-push-pr.js +55 -55
- package/dist/src/commands/createMovedToPluginCommand.js +9 -9
- package/dist/src/commands/init-verifiers.js +238 -238
- package/dist/src/commands/init.js +226 -225
- package/dist/src/commands/install.js +2 -2
- package/dist/src/commands/login/login.js +24 -10
- package/dist/src/commands/orchestrate/index.js +1 -1
- package/dist/src/commands/orchestrate/orchestrate.js +110 -24
- package/dist/src/commands/profile/profile.js +15 -1
- package/dist/src/commands/provider/index.js +1 -1
- package/dist/src/commands/provider/provider.js +34 -1
- package/dist/src/commands/review.js +22 -22
- package/dist/src/commands/run/index.js +2 -2
- package/dist/src/commands/run/run.js +63 -61
- package/dist/src/commands/team/index.js +1 -1
- package/dist/src/commands/team/team.js +84 -76
- package/dist/src/commands/team-auto/teamAuto.js +89 -29
- package/dist/src/commands/terminalSetup/terminalSetup.js +24 -24
- package/dist/src/commands/usage/index.js +7 -0
- package/dist/src/commands/usage/usage.js +5 -0
- package/dist/src/commands/workspace/workspace.js +39 -31
- package/dist/src/commands.js +0 -2
- package/dist/src/components/ConsoleOAuthFlow.js +92 -14
- package/dist/src/components/ModelPicker.js +2 -0
- package/dist/src/components/agents/AgentsList.js +9 -9
- package/dist/src/components/agents/AgentsMenu.js +3 -3
- package/dist/src/components/agents/generateAgent.js +92 -92
- package/dist/src/components/agents/utils.js +13 -9
- package/dist/src/components/grove/Grove.js +10 -10
- package/dist/src/components/permissions/AskUserQuestionPermissionRequest/AskUserQuestionPermissionRequest.js +8 -8
- package/dist/src/constants/geminiOAuth.js +13 -0
- package/dist/src/constants/github-app.js +134 -134
- package/dist/src/constants/prompts.js +123 -123
- package/dist/src/coordinator/coordinatorMode.js +252 -252
- package/dist/src/hooks/useTypeahead.js +7 -7
- package/dist/src/ink/reconciler.js +7 -7
- package/dist/src/main.js +5 -5
- package/dist/src/memdir/findRelevantMemories.js +6 -6
- package/dist/src/projectOnboardingState.js +3 -3
- package/dist/src/services/MagicDocs/prompts.js +56 -56
- package/dist/src/services/PromptSuggestion/promptSuggestion.js +29 -29
- package/dist/src/services/SessionMemory/prompts.js +66 -66
- package/dist/src/services/api/openai.js +584 -21
- package/dist/src/services/limits/adapters/ollama.js +3 -3
- package/dist/src/services/oauth/geminiCli.js +107 -0
- package/dist/src/services/orchestration/execution/AgentTaskExecutor.js +5 -3
- package/dist/src/services/orchestration/execution/OrchestrationExecutionRuntime.js +18 -18
- package/dist/src/services/orchestration/global/reporting.js +2 -2
- package/dist/src/services/toolUseSummary/toolUseSummaryGenerator.js +9 -9
- package/dist/src/skills/bundled/batch.js +78 -78
- package/dist/src/skills/bundled/claudeApi.js +34 -34
- package/dist/src/skills/bundled/claudeInChrome.js +4 -4
- package/dist/src/skills/bundled/debug.js +36 -36
- package/dist/src/skills/bundled/scheduleRemoteAgents.js +151 -151
- package/dist/src/skills/bundled/skillify.js +132 -132
- package/dist/src/skills/bundled/stuck.js +53 -53
- package/dist/src/skills/bundled/updateConfig.js +418 -418
- package/dist/src/tasks/RemoteAgentTask/RemoteAgentTask.js +26 -26
- package/dist/src/tools/AgentTool/AgentTool.js +7 -7
- package/dist/src/tools/AgentTool/agentDisplay.js +18 -10
- package/dist/src/tools/AgentTool/built-in/claudeCodeGuideAgent.js +67 -67
- package/dist/src/tools/AgentTool/built-in/exploreAgent.js +32 -32
- package/dist/src/tools/AgentTool/built-in/generalPurposeAgent.js +13 -13
- package/dist/src/tools/AgentTool/built-in/planAgent.js +49 -49
- package/dist/src/tools/AgentTool/built-in/statuslineSetup.js +129 -129
- package/dist/src/tools/AgentTool/built-in/verificationAgent.js +119 -119
- package/dist/src/tools/AgentTool/prompt.js +131 -131
- package/dist/src/tools/AgentTool/runAgent.js +9 -9
- package/dist/src/tools/BashTool/BashTool.js +10 -10
- package/dist/src/tools/BashTool/prompt.js +94 -94
- package/dist/src/tools/ConfigTool/prompt.js +29 -29
- package/dist/src/tools/EnterWorktreeTool/prompt.js +27 -27
- package/dist/src/tools/FileReadTool/prompt.js +12 -12
- package/dist/src/tools/PowerShellTool/prompt.js +82 -82
- package/dist/src/tools/RemoteTriggerTool/prompt.js +9 -9
- package/dist/src/tools/ScheduleCronTool/prompt.js +37 -37
- package/dist/src/tools/TeamCreateTool/prompt.js +110 -110
- package/dist/src/tools/TeamDeleteTool/prompt.js +13 -13
- package/dist/src/utils/advisor.js +15 -15
- package/dist/src/utils/api.js +2 -2
- package/dist/src/utils/auth.js +207 -2
- package/dist/src/utils/autoUpdater.js +18 -18
- package/dist/src/utils/bash/ShellSnapshot.js +86 -86
- package/dist/src/utils/bash/commands.js +61 -61
- package/dist/src/utils/claudeInChrome/prompt.js +53 -53
- package/dist/src/utils/claudeInChrome/setup.js +8 -8
- package/dist/src/utils/claudemd.js +19 -7
- package/dist/src/utils/databaseMcp/server/queries.js +632 -632
- package/dist/src/utils/deepLink/registerProtocol.js +35 -35
- package/dist/src/utils/deepLink/terminalLauncher.js +12 -12
- package/dist/src/utils/hooks/execAgentHook.js +7 -7
- package/dist/src/utils/hooks/execPromptHook.js +4 -4
- package/dist/src/utils/hooks/skillImprovement.js +36 -36
- package/dist/src/utils/logoV2Utils.js +1 -1
- package/dist/src/utils/mcp/dateTimeParser.js +9 -9
- package/dist/src/utils/messages.js +191 -191
- package/dist/src/utils/model/model.js +18 -0
- package/dist/src/utils/model/modelOptions.js +51 -1
- package/dist/src/utils/model/modelStrings.js +5 -1
- package/dist/src/utils/model/modelSupportOverrides.js +3 -0
- package/dist/src/utils/model/providerBaseUrls.js +6 -1
- package/dist/src/utils/model/providerCatalog.js +64 -28
- package/dist/src/utils/model/providerModels.js +88 -17
- package/dist/src/utils/model/providerProfiles.js +8 -0
- package/dist/src/utils/model/providerProfilesDb.js +578 -393
- package/dist/src/utils/model/providerSwitch.js +12 -0
- package/dist/src/utils/model/providerWorkspaces.js +2 -0
- package/dist/src/utils/model/providers.js +65 -2
- package/dist/src/utils/orchestration/store/providerWorkspaceStore.js +3 -1
- package/dist/src/utils/orchestration/store/runStore.js +47 -47
- package/dist/src/utils/orchestration/store/teamStore.js +61 -61
- package/dist/src/utils/powershell/parser.js +253 -253
- package/dist/src/utils/sessionTitle.js +12 -12
- package/dist/src/utils/sideQuestion.js +17 -17
- package/dist/src/utils/status.js +1 -1
- package/dist/src/utils/swarm/backends/registry.js +9 -9
- package/dist/src/utils/telemetry/instrumentation.js +9 -9
- package/dist/src/utils/teleport.js +15 -15
- package/dist/src/utils/undercover.js +28 -28
- 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
|
};
|