Version
latest
Component
API (Backend)
Bug Description
get v1/files接口 在遇到多个file的ctime相同且传了limit的情况下,有可能会触发bug导致查询结果不符合预期
假设数据库中存在以下四条数据,它们的 CTIME(创建时间)完全相同:
id file_id ctime
1 f1 2025-11-14 00:00:00
2 f2 2025-11-14 00:00:00
3 f3 2025-11-14 00:00:00
4 f4 2025-11-14 00:00:00
操作步骤与结果分析:(假指定order 我asc)
-
第一次查询 (获取第一页数据)
- 请求参数:limit = 2 (期望获取 2 条数据)
- 数据库执行:由于所有数据的 CTIME 相同,且 ORDER BY 子句中没有其排序条件,数据库可能会以任意顺序返回前两条数据。
- 可能返回结果:[f1, f2]
after :f2 的 FILE_ID 作为下一页的 after 游标。
-
第二次查询 (获取第二页数据)
- 请求参数:limit = 2, after = f2
- 程序处理:
- 根据 after = f2,查询数据库获取 f2 的 CTIME,即 2025-11-14 00:00:00。
- 构建查询条件:WHERE CTIME > '2025-11-14 00:00:00' (假设是升序排列)。
- 数据库执行:数据库会查找 CTIME 严格大于 2025-11-14 00:00:00 的记录。
- 实际返回结果:空列表 []。
Steps to Reproduce
同上面的描述
Expected Behavior
同上面的描述
Environment
Error Logs
Additional Context
No response
Version
latest
Component
API (Backend)
Bug Description
get v1/files接口 在遇到多个file的ctime相同且传了limit的情况下,有可能会触发bug导致查询结果不符合预期
假设数据库中存在以下四条数据,它们的 CTIME(创建时间)完全相同:
id file_id ctime
1 f1 2025-11-14 00:00:00
2 f2 2025-11-14 00:00:00
3 f3 2025-11-14 00:00:00
4 f4 2025-11-14 00:00:00
操作步骤与结果分析:(假指定order 我asc)
第一次查询 (获取第一页数据)
after:f2 的 FILE_ID 作为下一页的 after 游标。第二次查询 (获取第二页数据)
Steps to Reproduce
同上面的描述
Expected Behavior
同上面的描述
Environment
Error Logs
Additional Context
No response