修复:统一查询方法的返回顺序为索引递增

重要变更:
- QueryOldest 和 QueryNewest 现在都返回按索引递增排序的结果
- 移除了 QueryNewest 中的结果反转操作(line 184-187)

方法行为说明:
- QueryOldest(startIndex, count): 从 startIndex 向索引递增方向查询
- QueryNewest(endIndex, count): 从 endIndex 向索引递减方向查询
- 两者返回结果都按索引递增方向排序(一致性)

更新内容:
1. query.go:
   - 移除 QueryNewest 的反转操作
   - 更新两个方法的注释
2. topic_processor.go: 更新注释与实现一致
3. seqlog_test.go: 更新测试预期结果
4. example/index/main.go: 更新注释和输出说明

测试验证:
- 所有测试通过(go test ./... -short)
- 示例编译成功

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-10-04 11:55:44 +08:00
parent 9b7a9c2734
commit dfdc27c67f
4 changed files with 26 additions and 34 deletions

View File

@@ -1246,7 +1246,7 @@ func TestRecordQuery(t *testing.T) {
t.Errorf("expected status Processing, got %s", status)
}
// 测试向后查询(查询更早的记录,返回序)
// 测试向后查询(查询更早的记录,返回按索引递增排序)
backResults, err := query.QueryNewest(startIdx-1, 3)
if err != nil {
t.Fatalf("failed to query backward: %v", err)
@@ -1254,14 +1254,14 @@ func TestRecordQuery(t *testing.T) {
if len(backResults) != 3 {
t.Errorf("expected 3 backward results, got %d", len(backResults))
}
// 向后查询返回倒序结果newest first
expectedBack := []string{"message 4", "message 3", "message 2"}
// 向后查询返回按索引递增排序的结果
expectedBack := []string{"message 2", "message 3", "message 4"}
for i, rec := range backResults {
if string(rec.Data) != expectedBack[i] {
t.Errorf("backward[%d]: expected '%s', got '%s'", i, expectedBack[i], string(rec.Data))
}
// 手动判断状态:索引 4, 3, 2
recStatus := GetRecordStatus(startIdx-1-i, startIdx, endIdx)
// 手动判断状态:索引 2, 3, 4
recStatus := GetRecordStatus(startIdx-3+i, startIdx, endIdx)
if recStatus != StatusProcessed {
t.Errorf("backward[%d]: expected status Processed, got %s", i, recStatus)
}
@@ -1799,9 +1799,9 @@ func TestQueryOldestNewest(t *testing.T) {
if len(newest) != 3 {
t.Errorf("expected 3 records, got %d", len(newest))
}
// 验证顺序:应该是 9, 8, 7倒序
// 验证顺序:应该是 7, 8, 9按索引递增
for i := 0; i < 3; i++ {
expected := fmt.Sprintf("message %d", 9-i)
expected := fmt.Sprintf("message %d", 7+i)
if string(newest[i].Record.Data) != expected {
t.Errorf("newest[%d]: expected %s, got %s", i, expected, string(newest[i].Record.Data))
}