From c63d021db880477b220b81550795648d9f8d54f5 Mon Sep 17 00:00:00 2001 From: chrislu Date: Fri, 7 Nov 2025 00:15:30 -0800 Subject: [PATCH] fix build --- weed/filer/foundationdb/foundationdb_store.go | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/weed/filer/foundationdb/foundationdb_store.go b/weed/filer/foundationdb/foundationdb_store.go index 6443ba27f..db8f3b2ed 100644 --- a/weed/filer/foundationdb/foundationdb_store.go +++ b/weed/filer/foundationdb/foundationdb_store.go @@ -377,23 +377,26 @@ func (store *FoundationDBStore) ListDirectoryPrefixedEntries(ctx context.Context // Determine the key range for the scan // Use FDB's range capabilities to only fetch keys matching the prefix - var keyRange fdb.Range + var beginKey, endKey fdb.Key + dirBeginConv, dirEndConv := dirRange.FDBRangeKeys() + dirBegin := dirBeginConv.FDBKey() + dirEnd := dirEndConv.FDBKey() + if prefix != "" { // Build range by bracketing the filename component // Start at Pack(dirPath, prefix) and end at Pack(dirPath, nextPrefix) // where nextPrefix is the next lexicographic string - startKey := store.seaweedfsDir.Pack(tuple.Tuple{string(dirPath), prefix}) - endKey := dirRange.End + beginKey = store.seaweedfsDir.Pack(tuple.Tuple{string(dirPath), prefix}) + endKey = dirEnd // Use Strinc to get the next string for proper prefix range if nextPrefix, strincErr := fdb.Strinc([]byte(prefix)); strincErr == nil { endKey = store.seaweedfsDir.Pack(tuple.Tuple{string(dirPath), string(nextPrefix)}) } - - keyRange = fdb.KeyRange{Begin: startKey, End: endKey} } else { // Use entire directory range - keyRange = dirRange + beginKey = dirBegin + endKey = dirEnd } // Determine start key and selector based on startFileName @@ -407,16 +410,16 @@ func (store *FoundationDBStore) ListDirectoryPrefixedEntries(ctx context.Context beginSelector = fdb.FirstGreaterThan(startKey) } // Ensure beginSelector is within our desired range - if bytes.Compare(beginSelector.Key, keyRange.Begin) < 0 { - beginSelector = fdb.FirstGreaterOrEqual(keyRange.Begin) + if bytes.Compare(beginSelector.Key.FDBKey(), beginKey.FDBKey()) < 0 { + beginSelector = fdb.FirstGreaterOrEqual(beginKey) } } else { // Start from beginning of the range - beginSelector = fdb.FirstGreaterOrEqual(keyRange.Begin) + beginSelector = fdb.FirstGreaterOrEqual(beginKey) } // End selector is the end of our calculated range - endSelector := fdb.FirstGreaterOrEqual(keyRange.End) + endSelector := fdb.FirstGreaterOrEqual(endKey) var kvs []fdb.KeyValue var rangeErr error