@@ -14,7 +14,7 @@ type Reverse struct {
14
14
expression.UnaryExpression
15
15
}
16
16
17
- // NewLower creates a new Lower expression.
17
+ // NewReverse creates a new Reverse expression.
18
18
func NewReverse (e sql.Expression ) sql.Expression {
19
19
return & Reverse {expression.UnaryExpression {Child : e }}
20
20
}
@@ -25,14 +25,10 @@ func (r *Reverse) Eval(
25
25
row sql.Row ,
26
26
) (interface {}, error ) {
27
27
v , err := r .Child .Eval (ctx , row )
28
- if err != nil {
28
+ if v == nil || err != nil {
29
29
return nil , err
30
30
}
31
31
32
- if v == nil {
33
- return nil , nil
34
- }
35
-
36
32
v , err = sql .Text .Convert (v )
37
33
if err != nil {
38
34
return nil , err
@@ -43,9 +39,7 @@ func (r *Reverse) Eval(
43
39
44
40
func reverseString (s string ) string {
45
41
r := []rune (s )
46
- l := len (r )
47
- l2 := l / 2
48
- for i , j := 0 , l - 1 ; i < l2 ; i , j = i + 1 , j - 1 {
42
+ for i , j := 0 , len (r ) - 1 ; i < j ; i , j = i + 1 , j - 1 {
49
43
r [i ], r [j ] = r [j ], r [i ]
50
44
}
51
45
return string (r )
@@ -110,28 +104,20 @@ func (r *Repeat) Eval(
110
104
row sql.Row ,
111
105
) (interface {}, error ) {
112
106
str , err := r .Left .Eval (ctx , row )
113
- if err != nil {
107
+ if str == nil || err != nil {
114
108
return nil , err
115
109
}
116
110
117
- if str == nil {
118
- return nil , nil
119
- }
120
-
121
111
str , err = sql .Text .Convert (str )
122
112
if err != nil {
123
113
return nil , err
124
114
}
125
115
126
116
count , err := r .Right .Eval (ctx , row )
127
- if err != nil {
117
+ if count == nil || err != nil {
128
118
return nil , err
129
119
}
130
120
131
- if count == nil {
132
- return nil , nil
133
- }
134
-
135
121
count , err = sql .Int32 .Convert (count )
136
122
if err != nil {
137
123
return nil , err
@@ -204,42 +190,30 @@ func (r *Replace) Eval(
204
190
row sql.Row ,
205
191
) (interface {}, error ) {
206
192
str , err := r .str .Eval (ctx , row )
207
- if err != nil {
193
+ if str == nil || err != nil {
208
194
return nil , err
209
195
}
210
196
211
- if str == nil {
212
- return nil , nil
213
- }
214
-
215
197
str , err = sql .Text .Convert (str )
216
198
if err != nil {
217
199
return nil , err
218
200
}
219
201
220
202
fromStr , err := r .fromStr .Eval (ctx , row )
221
- if err != nil {
203
+ if fromStr == nil || err != nil {
222
204
return nil , err
223
205
}
224
206
225
- if fromStr == nil {
226
- return nil , nil
227
- }
228
-
229
207
fromStr , err = sql .Text .Convert (fromStr )
230
208
if err != nil {
231
209
return nil , err
232
210
}
233
211
234
212
toStr , err := r .toStr .Eval (ctx , row )
235
- if err != nil {
213
+ if toStr == nil || err != nil {
236
214
return nil , err
237
215
}
238
216
239
- if toStr == nil {
240
- return nil , nil
241
- }
242
-
243
217
toStr , err = sql .Text .Convert (toStr )
244
218
if err != nil {
245
219
return nil , err
0 commit comments