diff options
author | Meng-Ying Yang <garfield@dexon.org> | 2019-05-09 16:03:36 +0800 |
---|---|---|
committer | Meng-Ying Yang <garfield@dexon.org> | 2019-05-09 16:03:36 +0800 |
commit | 376628842e0200b80a4726b6beffb6ff57c9911d (patch) | |
tree | 596e53f8f07d7d2f18b201219107a67296adeb59 | |
parent | 49511b72aa5e8bca65f11c240356707b3450de75 (diff) | |
download | dexon-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.go | 2 | ||||
-rw-r--r-- | core/vm/sqlvm/runtime/instructions_op_test.go | 8 | ||||
-rw-r--r-- | core/vm/sqlvm/runtime/instructions_tmpl_data.go | 10 |
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, |