aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMeng-Ying Yang <garfield@dexon.org>2019-05-09 16:03:36 +0800
committerMeng-Ying Yang <garfield@dexon.org>2019-05-09 16:03:36 +0800
commit376628842e0200b80a4726b6beffb6ff57c9911d (patch)
tree596e53f8f07d7d2f18b201219107a67296adeb59
parent49511b72aa5e8bca65f11c240356707b3450de75 (diff)
downloaddexon-376628842e0200b80a4726b6beffb6ff57c9911d.tar.gz
dexon-376628842e0200b80a4726b6beffb6ff57c9911d.tar.zst
dexon-376628842e0200b80a4726b6beffb6ff57c9911d.zip
core: vm: sqlvm: add regexp flag to match new line
-rw-r--r--core/vm/sqlvm/runtime/instructions.go2
-rw-r--r--core/vm/sqlvm/runtime/instructions_op_test.go8
-rw-r--r--core/vm/sqlvm/runtime/instructions_tmpl_data.go10
3 files changed, 11 insertions, 9 deletions
diff --git a/core/vm/sqlvm/runtime/instructions.go b/core/vm/sqlvm/runtime/instructions.go
index 033ad3080..e1612b1d3 100644
--- a/core/vm/sqlvm/runtime/instructions.go
+++ b/core/vm/sqlvm/runtime/instructions.go
@@ -1266,6 +1266,8 @@ func like2regexp(pattern []byte, escape []byte) (reg *regexp.Regexp, err error)
rPattern = append(rPattern, bytesEnd...)
}
+ rPattern = append([]byte("(?s)"), rPattern...)
+
reg, err = regexp.Compile(string(rPattern))
return
}
diff --git a/core/vm/sqlvm/runtime/instructions_op_test.go b/core/vm/sqlvm/runtime/instructions_op_test.go
index 979adf5f6..0ff93a482 100644
--- a/core/vm/sqlvm/runtime/instructions_op_test.go
+++ b/core/vm/sqlvm/runtime/instructions_op_test.go
@@ -2339,7 +2339,7 @@ func (s *instructionSuite) TestOpLike() {
ast.ComposeDataType(ast.DataTypeMajorDynamicBytes, 0), ast.ComposeDataType(ast.DataTypeMajorDynamicBytes, 0),
},
[]Tuple{
- {&Raw{Bytes: []byte("a%bcdefg")}, &Raw{Bytes: []byte("gfedcba")}},
+ {&Raw{Bytes: []byte("a%bcdefg\n")}, &Raw{Bytes: []byte("gfedcba")}},
},
),
makeOperand(
@@ -2385,8 +2385,8 @@ func (s *instructionSuite) TestOpLike() {
ast.ComposeDataType(ast.DataTypeMajorDynamicBytes, 0),
},
[]Tuple{
- {&Raw{Bytes: []byte("a%bcdefg")}},
- {&Raw{Bytes: []byte("gfedcba")}},
+ {&Raw{Bytes: []byte("a%bcdefg\n")}},
+ {&Raw{Bytes: []byte("\ngfedcba")}},
},
),
makeOperand(
@@ -2419,7 +2419,7 @@ func (s *instructionSuite) TestOpLike() {
},
[]Tuple{
{rawTrue},
- {rawTrue},
+ {rawFalse},
},
),
nil,
diff --git a/core/vm/sqlvm/runtime/instructions_tmpl_data.go b/core/vm/sqlvm/runtime/instructions_tmpl_data.go
index 1917b8c64..62774d289 100644
--- a/core/vm/sqlvm/runtime/instructions_tmpl_data.go
+++ b/core/vm/sqlvm/runtime/instructions_tmpl_data.go
@@ -1450,7 +1450,7 @@ var testData = &tmplData{
{Major: "DynamicBytes", Minor: 0},
},
Data: []string{
- `{B: "a%bcdefg", B: "gfedcba"}`,
+ `{B: "a%bcdefg\n", B: "gfedcba"}`,
},
},
{
@@ -1484,8 +1484,8 @@ var testData = &tmplData{
{Major: "DynamicBytes", Minor: 0},
},
Data: []string{
- `{B: "a%bcdefg"}`,
- `{B: "gfedcba"}`,
+ `{B: "a%bcdefg\n"}`,
+ `{B: "\ngfedcba"}`,
},
},
{
@@ -1516,7 +1516,7 @@ var testData = &tmplData{
},
Data: []string{
"{T}",
- "{T}",
+ "{F}",
},
},
},
@@ -2894,7 +2894,7 @@ var testData = &tmplData{
Metas: []*tmplOpMeta{
{Major: "Uint", Minor: 0},
},
- Data: []string{`{V: 2}`},
+ Data: []string{`{V: 1}`},
},
{
Im: true,