@@ -116,23 +116,13 @@ pub struct ByteArray {
116
116
117
117
impl PartialOrd for ByteArray {
118
118
fn partial_cmp ( & self , other : & ByteArray ) -> Option < Ordering > {
119
- if self . data . is_some ( ) && other. data . is_some ( ) {
120
- match self . len ( ) . cmp ( & other. len ( ) ) {
121
- Ordering :: Greater => Some ( Ordering :: Greater ) ,
122
- Ordering :: Less => Some ( Ordering :: Less ) ,
123
- Ordering :: Equal => {
124
- for ( v1, v2) in self . data ( ) . iter ( ) . zip ( other. data ( ) . iter ( ) ) {
125
- match v1. cmp ( v2) {
126
- Ordering :: Greater => return Some ( Ordering :: Greater ) ,
127
- Ordering :: Less => return Some ( Ordering :: Less ) ,
128
- _ => { }
129
- }
130
- }
131
- Some ( Ordering :: Equal )
132
- }
133
- }
134
- } else {
135
- None
119
+ // Changed in CubeStore fork: we want to compare lexicographically (we store strings here).
120
+ // Original code uses other comparisons.
121
+ match ( & self . data , & other. data ) {
122
+ ( None , None ) => Some ( Ordering :: Equal ) ,
123
+ ( None , Some ( _) ) => Some ( Ordering :: Less ) ,
124
+ ( Some ( _) , None ) => Some ( Ordering :: Greater ) ,
125
+ ( Some ( a) , Some ( b) ) => Some ( a. data ( ) . cmp ( b. data ( ) ) ) ,
136
126
}
137
127
}
138
128
}
@@ -1356,7 +1346,7 @@ mod tests {
1356
1346
let ba4 = ByteArray :: from ( vec ! [ ] ) ;
1357
1347
let ba5 = ByteArray :: from ( vec ! [ 2 , 2 , 3 ] ) ;
1358
1348
1359
- assert ! ( ba1 > ba2 ) ;
1349
+ assert ! ( ba2 > ba1 ) ;
1360
1350
assert ! ( ba3 > ba1) ;
1361
1351
assert ! ( ba1 > ba4) ;
1362
1352
assert_eq ! ( ba1, ba11) ;
0 commit comments