Skip to content

Commit 9e60e80

Browse files
authored
Revert "Unwrap inputs to REGEXP_LIKE, REPLACE, and RPAD/LPAD functions."
1 parent 4ae8110 commit 9e60e80

File tree

9 files changed

+15
-73
lines changed

9 files changed

+15
-73
lines changed

enginetest/engine_only_test.go

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -717,14 +717,7 @@ func TestCollationCoercion(t *testing.T) {
717717

718718
func TestRegex(t *testing.T) {
719719
harness := enginetest.NewDefaultMemoryHarness()
720-
regexSetup := []setup.SetupScript{
721-
{
722-
"CREATE TABLE tests(pk int primary key, str text, pattern text, flags text);",
723-
"INSERT INTO tests VALUES (1, 'testing', 'TESTING', 'ci');",
724-
},
725-
}
726-
setupsScripts := append(setup.SimpleSetup, regexSetup)
727-
harness.Setup(setupsScripts...)
720+
harness.Setup(setup.SimpleSetup...)
728721
engine, err := harness.NewEngine(t)
729722
require.NoError(t, err)
730723
defer engine.Close()

enginetest/enginetests.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3046,7 +3046,7 @@ func TestRenameColumn(t *testing.T, harness Harness) {
30463046
TestQueryWithContext(t, ctx, e, harness, "ALTER TABLE mydb.tabletest RENAME COLUMN s TO i1", []sql.Row{{types.NewOkResult(0)}}, nil, nil, nil)
30473047
TestQueryWithContext(t, ctx, e, harness, "SHOW FULL COLUMNS FROM mydb.tabletest", []sql.Row{
30483048
{"i", "int", nil, "NO", "PRI", nil, "", "", ""},
3049-
{"i1", "text", "utf8mb4_0900_bin", "NO", "", nil, "", "", ""},
3049+
{"i1", "varchar(20)", "utf8mb4_0900_bin", "NO", "", nil, "", "", ""},
30503050
}, nil, nil, nil)
30513051
})
30523052
}

enginetest/queries/queries.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6772,10 +6772,6 @@ SELECT * FROM cte WHERE d = 2;`,
67726772
Query: "select replace(s, 'row', '') from mytable order by i",
67736773
Expected: []sql.Row{{"first "}, {"second "}, {"third "}},
67746774
},
6775-
{
6776-
Query: "select replace(s, 'row', '') from tabletest order by i",
6777-
Expected: []sql.Row{{"first "}, {"second "}, {"third "}},
6778-
},
67796775
{
67806776
Query: "select rpad(s, 13, ' ') from mytable order by i",
67816777
Expected: []sql.Row{{"first row "}, {"second row "}, {"third row "}},
@@ -6784,10 +6780,6 @@ SELECT * FROM cte WHERE d = 2;`,
67846780
Query: "select lpad(s, 13, ' ') from mytable order by i",
67856781
Expected: []sql.Row{{" first row"}, {" second row"}, {" third row"}},
67866782
},
6787-
{
6788-
Query: "select lpad(s, 13, ' ') from tabletest order by i",
6789-
Expected: []sql.Row{{" first row"}, {" second row"}, {" third row"}},
6790-
},
67916783
{
67926784
Query: "select sqrt(i) from mytable order by i",
67936785
Expected: []sql.Row{{1.0}, {1.4142135623730951}, {1.7320508075688772}},

enginetest/queries/regex_queries.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@
2121
package queries
2222

2323
import (
24-
regex "github.com/dolthub/go-icu-regex"
2524
"gopkg.in/src-d/go-errors.v1"
2625

26+
regex "github.com/dolthub/go-icu-regex"
27+
2728
"github.com/dolthub/go-mysql-server/sql"
2829
)
2930

@@ -54,10 +55,6 @@ var RegexTests = []RegexTest{
5455
Query: "SELECT REGEXP_LIKE('testing', 'TESTING', 'ic');",
5556
Expected: []sql.Row{{0}},
5657
},
57-
{
58-
Query: "SELECT REGEXP_LIKE(str, pattern, flags) from tests;",
59-
Expected: []sql.Row{{1}},
60-
},
6158
{
6259
Query: "SELECT REGEXP_LIKE('testing', 'TESTING' COLLATE utf8mb4_0900_ai_ci);",
6360
Expected: []sql.Row{{1}},

enginetest/scriptgen/setup/scripts/tabletest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
exec
22
create table tabletest (
33
i int primary key,
4-
s text not null
4+
s varchar(20) not null
55
)
66
----
77

enginetest/scriptgen/setup/setup_data.sg.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sql/expression/function/regexp_like.go

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -179,12 +179,8 @@ func (r *RegexpLike) Eval(ctx *sql.Context, row sql.Row) (interface{}, error) {
179179
if err != nil {
180180
return nil, err
181181
}
182-
textStr, _, err := sql.Unwrap[string](ctx, text)
183-
if err != nil {
184-
return nil, err
185-
}
186182

187-
err = r.re.SetMatchString(ctx, textStr)
183+
err = r.re.SetMatchString(ctx, text.(string))
188184
if err != nil {
189185
return nil, err
190186
}
@@ -224,13 +220,9 @@ func compileRegex(ctx *sql.Context, pattern, text, flags sql.Expression, funcNam
224220
if err != nil {
225221
return nil, err
226222
}
227-
patternValStr, _, err := sql.Unwrap[string](ctx, patternVal)
228-
if err != nil {
229-
return nil, err
230-
}
231223

232224
// Empty regex, throw illegal argument
233-
if len(patternValStr) == 0 {
225+
if len(patternVal.(string)) == 0 {
234226
return nil, errors.NewKind("Illegal argument to regular expression.").New()
235227
}
236228

@@ -258,10 +250,7 @@ func compileRegex(ctx *sql.Context, pattern, text, flags sql.Expression, funcNam
258250
return nil, err
259251
}
260252

261-
flagsStr, _, err = sql.Unwrap[string](ctx, f)
262-
if err != nil {
263-
return nil, err
264-
}
253+
flagsStr = f.(string)
265254
flagsStr, err = consolidateRegexpFlags(flagsStr, funcName)
266255
if err != nil {
267256
return nil, err
@@ -290,7 +279,7 @@ func compileRegex(ctx *sql.Context, pattern, text, flags sql.Expression, funcNam
290279
ctx.Warn(1193, `System variable for regular expressions "regexp_buffer_size" is missing`)
291280
}
292281
re := regex.CreateRegex(bufferSize)
293-
if err = re.SetRegexString(ctx, patternValStr, regexFlags); err != nil {
282+
if err = re.SetRegexString(ctx, patternVal.(string), regexFlags); err != nil {
294283
_ = re.Close()
295284
return nil, err
296285
}

sql/expression/function/reverse_repeat_replace.go

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -280,26 +280,9 @@ func (r *Replace) Eval(
280280
return nil, err
281281
}
282282

283-
{
284-
str, _, err := sql.Unwrap[string](ctx, str)
285-
if err != nil {
286-
return nil, err
287-
}
288-
289-
fromStr, _, err := sql.Unwrap[string](ctx, fromStr)
290-
if err != nil {
291-
return nil, err
292-
}
293-
294-
toStr, _, err := sql.Unwrap[string](ctx, toStr)
295-
if err != nil {
296-
return nil, err
297-
}
298-
299-
if fromStr == "" {
300-
return str, nil
301-
}
302-
303-
return strings.Replace(str, fromStr, toStr, -1), nil
283+
if fromStr.(string) == "" {
284+
return str, nil
304285
}
286+
287+
return strings.Replace(str.(string), fromStr.(string), toStr.(string), -1), nil
305288
}

sql/expression/function/rpad_lpad.go

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -169,19 +169,7 @@ func (p *Pad) Eval(
169169
return nil, err
170170
}
171171

172-
{
173-
str, _, err := sql.Unwrap[string](ctx, str)
174-
if err != nil {
175-
return nil, err
176-
}
177-
178-
padStr, _, err := sql.Unwrap[string](ctx, padStr)
179-
if err != nil {
180-
return nil, err
181-
}
182-
183-
return padString(str, length.(int64), padStr, p.padType)
184-
}
172+
return padString(str.(string), length.(int64), padStr.(string), p.padType)
185173
}
186174

187175
func padString(str string, length int64, padStr string, padType padType) (string, error) {

0 commit comments

Comments
 (0)