diff --git a/hbrdd/dbf/indexer.go b/hbrdd/dbf/indexer.go index 3932386..7ae0bcf 100644 --- a/hbrdd/dbf/indexer.go +++ b/hbrdd/dbf/indexer.go @@ -91,8 +91,12 @@ func (a *DBFArea) OrderCreate(params hbrdd.OrderCreateParams) error { } // Sort keys before building index + // Harbour: equal keys ordered by RecNo ascending (stable by record number) sort.Slice(keys, func(i, j int) bool { cmp := bytes.Compare(keys[i].Key, keys[j].Key) + if cmp == 0 { + return keys[i].RecNo < keys[j].RecNo + } if params.Descending { return cmp > 0 }