Skip to content

Commit 6720a7b

Browse files
committed
add e2e test case
Signed-off-by: Joob1n <1208247864@qq.com>
1 parent 41d0ee0 commit 6720a7b

2 files changed

Lines changed: 96 additions & 12 deletions

File tree

test/sql/test_like_escape_backslash/R/test_like_escape_backslash

Lines changed: 64 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
DROP TABLE IF EXISTS t_like_escape;
33
-- result:
44
-- !result
5-
65
CREATE TABLE IF NOT EXISTS t_like_escape (
76
c0 INT NOT NULL,
87
c1 VARCHAR(200) NOT NULL
@@ -12,7 +11,6 @@ DISTRIBUTED BY HASH(c0) BUCKETS 1
1211
PROPERTIES ("replication_num" = "1");
1312
-- result:
1413
-- !result
15-
1614
INSERT INTO t_like_escape (c0, c1) VALUES
1715
(1, 'abc'),
1816
(2, 'abc\\def'),
@@ -25,7 +23,6 @@ INSERT INTO t_like_escape (c0, c1) VALUES
2523
(9, 'abc_def');
2624
-- result:
2725
-- !result
28-
2926
SELECT c0, c1 FROM t_like_escape WHERE c1 LIKE '%\\\\%' ORDER BY c0;
3027
-- result:
3128
2 abc\def
@@ -34,29 +31,24 @@ SELECT c0, c1 FROM t_like_escape WHERE c1 LIKE '%\\\\%' ORDER BY c0;
3431
7 test\asdf
3532
8 star\test
3633
-- !result
37-
3834
SELECT c0, c1 FROM t_like_escape WHERE c1 LIKE '%\\\\asdf' ORDER BY c0;
3935
-- result:
4036
6 \asdf
4137
7 test\asdf
4238
-- !result
43-
4439
SELECT c0, c1 FROM t_like_escape WHERE c1 LIKE 'star\\\\%' ORDER BY c0;
4540
-- result:
4641
3 star\
4742
8 star\test
4843
-- !result
49-
5044
SELECT c0, c1 FROM t_like_escape WHERE c1 LIKE 'star\\\\' ORDER BY c0;
5145
-- result:
5246
3 star\
5347
-- !result
54-
5548
SELECT c0, c1 FROM t_like_escape WHERE c1 LIKE 'star\\%' ORDER BY c0;
5649
-- result:
5750
4 star%
5851
-- !result
59-
6052
SELECT c0, c1 FROM t_like_escape WHERE like(c1, '%\\\\%') ORDER BY c0;
6153
-- result:
6254
2 abc\def
@@ -65,12 +57,10 @@ SELECT c0, c1 FROM t_like_escape WHERE like(c1, '%\\\\%') ORDER BY c0;
6557
7 test\asdf
6658
8 star\test
6759
-- !result
68-
6960
SELECT c0, c1 FROM t_like_escape WHERE like(c1, 'star\\\\') ORDER BY c0;
7061
-- result:
7162
3 star\
7263
-- !result
73-
7464
SELECT c0, c1 FROM t_like_escape WHERE c1 LIKE '%\\\\%' OR c1 LIKE 'star%' ORDER BY c0;
7565
-- result:
7666
2 abc\def
@@ -81,12 +71,74 @@ SELECT c0, c1 FROM t_like_escape WHERE c1 LIKE '%\\\\%' OR c1 LIKE 'star%' ORDER
8171
7 test\asdf
8272
8 star\test
8373
-- !result
84-
8574
SELECT c0, c1 FROM t_like_escape WHERE c1 LIKE 'abc\\_def' ORDER BY c0;
8675
-- result:
8776
9 abc_def
8877
-- !result
89-
9078
DROP TABLE t_like_escape;
9179
-- result:
9280
-- !result
81+
SELECT 'a\\b' LIKE 'a\\\\b';
82+
-- result:
83+
1
84+
-- !result
85+
SELECT 'a\\b' LIKE 'a\\b';
86+
-- result:
87+
0
88+
-- !result
89+
SELECT '100%' LIKE '100\\%';
90+
-- result:
91+
1
92+
-- !result
93+
SELECT '100abc' LIKE '100\\%';
94+
-- result:
95+
0
96+
-- !result
97+
SELECT 'a_b' LIKE 'a\\_b';
98+
-- result:
99+
1
100+
-- !result
101+
SELECT 'aXb' LIKE 'a\\_b';
102+
-- result:
103+
0
104+
-- !result
105+
SELECT 'abc%xyz' LIKE 'abc\\%%';
106+
-- result:
107+
1
108+
-- !result
109+
SELECT 'abcXyz' LIKE 'abc\\%%';
110+
-- result:
111+
0
112+
-- !result
113+
SELECT 'xyz%abc' LIKE '%\\%abc';
114+
-- result:
115+
1
116+
-- !result
117+
SELECT 'xa%by' LIKE '%a\\%b%';
118+
-- result:
119+
1
120+
-- !result
121+
SELECT 'xaXby' LIKE '%a\\%b%';
122+
-- result:
123+
0
124+
-- !result
125+
SELECT 'a\\xyz' LIKE 'a\\\\%';
126+
-- result:
127+
1
128+
-- !result
129+
SELECT 'abc\\' LIKE 'abc\\\\';
130+
-- result:
131+
1
132+
-- !result
133+
SELECT 'abcdef' LIKE 'abc%';
134+
-- result:
135+
1
136+
-- !result
137+
SELECT 'xyzabc' LIKE '%abc';
138+
-- result:
139+
1
140+
-- !result
141+
SELECT 'xyzabcdef' LIKE '%abc%';
142+
-- result:
143+
1
144+
-- !result

test/sql/test_like_escape_backslash/T/test_like_escape_backslash

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,35 @@ SELECT c0, c1 FROM t_like_escape WHERE c1 LIKE '%\\\\%' OR c1 LIKE 'star%' ORDER
4949
SELECT c0, c1 FROM t_like_escape WHERE c1 LIKE 'abc\\_def' ORDER BY c0;
5050

5151
DROP TABLE t_like_escape;
52+
53+
-- ============================================================================
54+
-- Constant LIKE constant: both sides literal -> folded in FE (FoldConstantsRule).
55+
-- These exercise the FE constant-folding path (the buggy path), unlike the column
56+
-- cases above which run on BE. Results must match MySQL.
57+
-- ============================================================================
58+
59+
-- C1: two-layer escaping regression ('a\b' LIKE 'a\\b' -> 1 ; 'a\b' LIKE 'a\b' -> 0)
60+
SELECT 'a\\b' LIKE 'a\\\\b';
61+
SELECT 'a\\b' LIKE 'a\\b';
62+
63+
-- C2: escaped wildcard treated as literal
64+
SELECT '100%' LIKE '100\\%';
65+
SELECT '100abc' LIKE '100\\%';
66+
SELECT 'a_b' LIKE 'a\\_b';
67+
SELECT 'aXb' LIKE 'a\\_b';
68+
69+
-- C3: escaped wildcard directly adjacent to a real wildcard (stripEnd boundary bug)
70+
SELECT 'abc%xyz' LIKE 'abc\\%%';
71+
SELECT 'abcXyz' LIKE 'abc\\%%';
72+
SELECT 'xyz%abc' LIKE '%\\%abc';
73+
SELECT 'xa%by' LIKE '%a\\%b%';
74+
SELECT 'xaXby' LIKE '%a\\%b%';
75+
76+
-- C4: double backslash + wildcard / trailing escaped backslash
77+
SELECT 'a\\xyz' LIKE 'a\\\\%';
78+
SELECT 'abc\\' LIKE 'abc\\\\';
79+
80+
-- C5: plain prefix/suffix/substring wildcards (no escape) still fold correctly
81+
SELECT 'abcdef' LIKE 'abc%';
82+
SELECT 'xyzabc' LIKE '%abc';
83+
SELECT 'xyzabcdef' LIKE '%abc%';

0 commit comments

Comments
 (0)