Skip to content

Conversation

@BugsGuru
Copy link
Collaborator

@BugsGuru BugsGuru commented Dec 31, 2025

User description

关联的 issue

https://github.com/actiontech/sqle-ee/issues/2612

描述你的变更

  • 上传zip文件创建SQL工单时,默认按文件名对文件内SQL执行顺序进行排序

确认项(pr提交后操作)

Tip

请在指定复审人之前,确认并完成以下事项,完成后✅


  • 我已完成自测
  • 我已记录完整日志方便进行诊断
  • 我已在关联的issue里补充了实现方案
  • 我已在关联的issue里补充了测试影响面
  • 我已确认了变更的兼容性,如果不兼容则在issue里标记 not_compatible
  • 我已确认了是否要更新文档,如果要更新则在issue里标记 need_update_doc

assign in @LordofAvernus


Description

  • 增加对SQL与XML文件列表按文件名排序的处理

  • 确保SQL执行顺序符合预期


Diagram Walkthrough

flowchart LR
  A["获取SQL文件列表"] -- "排序" --> B["按文件名排序SQL文件"]
  C["获取XML文件列表"] -- "排序" --> D["按文件名排序XML文件"]
Loading

File Walkthrough

Relevant files
Enhancement
sql_audit_record.go
增加文件名排序确保SQL顺序                                                                                     

sqle/api/controller/v1/sql_audit_record.go

  • 引入对sqlsFromSQLFile的排序逻辑
  • 引入对sqlsFromXML的排序逻辑
  • 使用sort.Slice依据FilePath
+11/-1   

@github-actions
Copy link

PR Reviewer Guide 🔍

🎫 Ticket compliance analysis 🔶

2612 - Partially compliant

Compliant requirements:

  • 自测已完成
  • 完整日志记录
  • 实现方案已补充
  • 测试影响面已补充
  • 变更兼容性已确认
  • 文档更新已确认

Non-compliant requirements:

Requires further human verification:

⏱️ Estimated effort to review: 2 🔵🔵⚪⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

排序逻辑

新增的排序逻辑通过简单的字符串比较实现,请确认对于文件名中包含数字的情况是否能达到预期的自然排序效果,同时验证SQL和XML两类文件的排序是否完全符合业务需求。

// 按文件名排序,确保SQL按文件顺序执行
sort.Slice(sqlsFromSQLFile, func(i, j int) bool {
	return sqlsFromSQLFile[i].FilePath < sqlsFromSQLFile[j].FilePath
})
sort.Slice(sqlsFromXML, func(i, j int) bool {
	return sqlsFromXML[i].FilePath < sqlsFromXML[j].FilePath
})

@github-actions
Copy link

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
General
使用稳定、大小写不敏感排序

建议将排序函数由 sort.Slice 替换为 sort.SliceStable,并在比较时使用 strings.ToLower
处理文件名,确保在文件名相同或字母大小写不同的情况下,排序结果稳定且不受环境影响。此修改可避免因排序不稳定而引发的不确定性问题。

sqle/api/controller/v1/sql_audit_record.go [425-427]

-sort.Slice(sqlsFromSQLFile, func(i, j int) bool {
-    return sqlsFromSQLFile[i].FilePath < sqlsFromSQLFile[j].FilePath
+sort.SliceStable(sqlsFromSQLFile, func(i, j int) bool {
+    return strings.ToLower(sqlsFromSQLFile[i].FilePath) < strings.ToLower(sqlsFromSQLFile[j].FilePath)
 })
Suggestion importance[1-10]: 7

__

Why: The suggestion correctly enhances the sort by using sort.SliceStable and strings.ToLower for case-insensitive comparison, which improves stability. However, it is a minor improvement that may not be critical, hence a mid-range score.

Medium

@LordofAvernus LordofAvernus merged commit 2e08a3a into main Dec 31, 2025
4 checks passed
@BugsGuru BugsGuru deleted the feat-audit-zip-sort-by-filename branch December 31, 2025 08:47
@BugsGuru BugsGuru mentioned this pull request Jan 4, 2026
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants