Skip to content

Commit 918ea5e

Browse files
committed
feat(sql_flash): enhance index advice structure and add rewrite task types
1 parent 458b782 commit 918ea5e

File tree

1 file changed

+56
-3
lines changed

1 file changed

+56
-3
lines changed

sqle/server/optimization/sql_flash/sql_flash_types.go

Lines changed: 56 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -180,9 +180,10 @@ func (q *TotalAnalysis) Scan(value interface{}) error {
180180

181181
// 索引建议
182182
type AdvisedIndex struct {
183-
State string `json:"state"`
184-
Message string `json:"message"`
185-
Indexes []*IndexInfo `json:"indexes"`
183+
State string `json:"state"`
184+
HasAdvice bool `json:"has_advice"`
185+
OtherAdvice string `json:"other_advice"`
186+
Indexes []*IndexInfo `json:"indexes"`
186187
}
187188

188189
// Value impl sql.driver.Valuer interface
@@ -217,3 +218,55 @@ type IndexInfo struct {
217218
CreateIndexStatement string `json:"create_index_statement"`
218219
Reason string `json:"reason"`
219220
}
221+
222+
// ========== 重写任务相关结构 ==========
223+
224+
// 创建重写任务请求
225+
type CreateRewriteTaskReq struct {
226+
Type string `json:"type"` // SQL类型:SQL 或 MyBatis
227+
Content string `json:"content"` // SQL内容(文本形式)
228+
Metadata string `json:"metadata"` // 数据库元数据信息
229+
Explain string `json:"explain"` // 执行计划信息
230+
}
231+
232+
// 创建重写任务响应
233+
type CreateRewriteTaskResp struct {
234+
Code json.Number `json:"code"`
235+
Message string `json:"message"`
236+
Data struct {
237+
TaskID string `json:"task_id"`
238+
} `json:"data"`
239+
}
240+
241+
// 重写任务结果
242+
type RewriteResult struct {
243+
ID string `json:"id"`
244+
TaskID string `json:"task_id"`
245+
OriginSQL string `json:"origin_sql"`
246+
Metadata string `json:"metadata"`
247+
OptimizeState string `json:"optimize_state"` // 优化状态:running, rewrite_done, failed等
248+
OptimizeSteps []*OptimizeStep `json:"optimize_steps"` // 优化步骤
249+
}
250+
251+
// 获取重写任务结果响应
252+
type GetRewriteResultResp struct {
253+
Code json.Number `json:"code"`
254+
Message string `json:"message"`
255+
Data *RewriteResult `json:"data"`
256+
}
257+
258+
// ========== 索引推荐任务相关结构 ==========
259+
260+
// 创建索引推荐任务请求
261+
type CreateAdviseIndexTaskReq struct {
262+
Explain string `json:"explain"` // 执行计划信息
263+
}
264+
265+
// 创建索引推荐任务响应
266+
type CreateAdviseIndexTaskResp struct {
267+
Code json.Number `json:"code"`
268+
Message string `json:"message"`
269+
Data struct {
270+
Message string `json:"message"`
271+
} `json:"data"`
272+
}

0 commit comments

Comments
 (0)