fix: Redis查询核心bug修复 — 命令拆分+HGETALL结构化+DB号+插入换行
1. executeRedisQuery: client.Do()没传命令名导致ERR unknown command 2. HGETALL结果用reflect处理map类型,结构化输出field/value表格 3. 支持指定Redis DB号(之前固定DB=0) 4. 前端Redis命令插入用换行分隔,MySQL保持空格 5. cost_ms到execution_time_ms字段映射修复
This commit is contained in:
1 parent
6b5d8bede4
commit
828a0597c5
2 files changed
+97
-17
No files matched your search
@@ -210,13 +210,14 @@ export default function QueriesPage() {
|
||||
setExecuting(true); setError(''); setResult(null);
|
||||
try {
|
||||
const res = await queryApi.execute({ instance_id: Number(instanceId), database: database || undefined, sql }) as unknown as QueryResult;
|
||||
if (res.error) {
|
||||
setError(res.error);
|
||||
const normalized = { ...res, execution_time_ms: res.execution_time_ms || res.cost_ms || 0 };
|
||||
if (normalized.error) {
|
||||
setError(normalized.error);
|
||||
setResult(null);
|
||||
} else {
|
||||
setResult(res);
|
||||
setResult(normalized);
|
||||
}
|
||||
setHistory(prev => [{ id: Date.now(), sql, instance_id: Number(instanceId), database, db_type: dbType, status: 'success', execution_time_ms: res.execution_time_ms || 0, result_preview: JSON.stringify(res.rows?.[0] || {}).substring(0, 100), created_at: new Date().toISOString(), favorite: false }, ...prev]);
|
||||
setHistory(prev => [{ id: Date.now(), sql, instance_id: Number(instanceId), database, db_type: dbType, status: 'success', execution_time_ms: normalized.execution_time_ms, result_preview: JSON.stringify(normalized.rows?.[0] || {}).substring(0, 100), created_at: new Date().toISOString(), favorite: false }, ...prev]);
|
||||
} catch (e: unknown) {
|
||||
const raw = (e as { response?: { data?: { detail?: string | Array<{ msg: string }> } } })?.response?.data?.detail;
|
||||
const msg = Array.isArray(raw) ? raw.map(v => v.msg).join('; ') : (raw || '查询失败');
|
||||
@@ -394,7 +395,10 @@ export default function QueriesPage() {
|
||||
{showSidebar && instanceId && (
|
||||
<div className="w-[280px] shrink-0">
|
||||
<SchemaSidebar instanceId={instanceId} database={database} dbType={dbType}
|
||||
onInsert={(text) => setSql(prev => prev + (prev.trim() ? ' ' : '') + text + ' ')} />
|
||||
onInsert={(text) => {
|
||||
const sep = dbType === 'redis' ? (sql.trim() ? '\n' : '') : (sql.trim() ? ' ' : '');
|
||||
setSql(prev => prev + sep + text + (dbType === 'redis' ? '' : ' '));
|
||||
}} />
|
||||
</div>
|
||||
)}
|
||||
|
||||
|
||||
Reference in new issue
Block a user