File tree Expand file tree Collapse file tree 1 file changed +21
-1
lines changed Expand file tree Collapse file tree 1 file changed +21
-1
lines changed Original file line number Diff line number Diff line change @@ -898,12 +898,32 @@ func (co *Compiler) addSeekPredicate(sel *Select) {
898
898
switch {
899
899
case i > 0 && n != i :
900
900
f .Op = OpEquals
901
- case ob .Order == OrderDesc :
901
+ case ob .Order == OrderDesc ||
902
+ ob .Order == OrderDescNullsFirst || ob .Order == OrderDescNullsLast :
902
903
f .Op = OpLesserThan
904
+ case ob .Order == OrderAsc ||
905
+ ob .Order == OrderAscNullsLast || ob .Order == OrderAscNullsFirst :
906
+ f .Op = OpGreaterThan
903
907
default :
904
908
f .Op = OpGreaterThan
905
909
}
906
910
911
+ // could be null needs to be handled
912
+ if ! ob .Col .NotNull {
913
+ isnull1 := newExpOp (OpIsNull )
914
+ isnull1 .Left .Table = "__cur"
915
+ isnull1 .Left .Col = ob .Col
916
+
917
+ isnull2 := newExpOp (OpIsNull )
918
+ isnull2 .Left .Col = ob .Col
919
+
920
+ or1 := newExpOp (OpOr )
921
+ or1 .Children = append (or .Children , isnull1 , isnull2 , f )
922
+
923
+ // now that f is added to the above or1 we can set f to or1
924
+ f = or1
925
+ }
926
+
907
927
if and != nil {
908
928
and .Children = append (and .Children , f )
909
929
} else {
You can’t perform that action at this time.
0 commit comments