Skip to content

Commit a1b9bef

Browse files
author
James Cor
committed
simplify in comparison
1 parent 10d4574 commit a1b9bef

File tree

2 files changed

+6
-11
lines changed

2 files changed

+6
-11
lines changed

sql/expression/comparison.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ func (c *comparison) Compare(ctx *sql.Context, row sql.Row) (int, error) {
141141
return c.Left().Type().Compare(ctx, left, right)
142142
}
143143

144-
l, r, compareType, err := c.CastLeftAndRight(ctx, left, right)
144+
l, r, compareType, err := c.castLeftAndRight(ctx, left, right)
145145
if err != nil {
146146
return 0, err
147147
}
@@ -171,7 +171,7 @@ func (c *comparison) evalLeftAndRight(ctx *sql.Context, row sql.Row) (interface{
171171
return left, right, nil
172172
}
173173

174-
func (c *comparison) CastLeftAndRight(ctx *sql.Context, left, right interface{}) (interface{}, interface{}, sql.Type, error) {
174+
func (c *comparison) castLeftAndRight(ctx *sql.Context, left, right interface{}) (interface{}, interface{}, sql.Type, error) {
175175
leftType := c.Left().Type()
176176
rightType := c.Right().Type()
177177

@@ -452,7 +452,7 @@ func (e *NullSafeEquals) Compare(ctx *sql.Context, row sql.Row) (int, error) {
452452
}
453453

454454
var compareType sql.Type
455-
left, right, compareType, err = e.CastLeftAndRight(ctx, left, right)
455+
left, right, compareType, err = e.castLeftAndRight(ctx, left, right)
456456
if err != nil {
457457
return 0, err
458458
}

sql/expression/in.go

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ func (in *InTuple) Eval(ctx *sql.Context, row sql.Row) (interface{}, error) {
6666
if err != nil {
6767
return nil, err
6868
}
69-
7069
if originalLeft == nil {
7170
return nil, nil
7271
}
@@ -85,6 +84,7 @@ func (in *InTuple) Eval(ctx *sql.Context, row sql.Row) (interface{}, error) {
8584
}
8685
}
8786

87+
leftLit := NewLiteral(originalLeft, in.Left().Type())
8888
for _, el := range right {
8989
originalRight, err := el.Eval(ctx, row)
9090
if err != nil {
@@ -96,16 +96,11 @@ func (in *InTuple) Eval(ctx *sql.Context, row sql.Row) (interface{}, error) {
9696
continue
9797
}
9898

99-
comp := newComparison(NewLiteral(originalLeft, in.Left().Type()), NewLiteral(originalRight, el.Type()))
100-
l, r, compareType, err := comp.CastLeftAndRight(ctx, originalLeft, originalRight)
99+
comp := newComparison(leftLit, NewLiteral(originalRight, el.Type()))
100+
cmp, err := comp.Compare(ctx, row)
101101
if err != nil {
102102
return nil, err
103103
}
104-
cmp, err := compareType.Compare(ctx, l, r)
105-
if err != nil {
106-
return nil, err
107-
}
108-
109104
if cmp == 0 {
110105
return true, nil
111106
}

0 commit comments

Comments
 (0)