Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions yaml-tests/src/test/resources/like.metrics.binpb
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
Ô
6
unnamed-3)EXPLAIN select * from C WHERE C2 LIKE '%'™
ÒðþÝK ´Ç­(0ß®z8&@YCOVERING(C2 <,> -> [C1: KEY[2], C2: KEY[0]]) | FILTER _.C2 LIKE @c8 ESCAPE 'null' | FETCH digraph G {
fontname=courier;
rankdir=BT;
splines=polyline;
1 [ label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="8"><tr><td align="left">Fetch Records</td></tr></table>> color="black" shape="plain" style="solid" fillcolor="black" fontname="courier" fontsize="12" tooltip="RELATION(INT AS C1, )" ];
2 [ label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="8"><tr><td align="left">Predicate Filter</td></tr><tr><td align="left">WHERE q37.C2 LIKE @c8 ESCAPE &#39;null&#39;</td></tr></table>> color="black" shape="plain" style="solid" fillcolor="black" fontname="courier" fontsize="8" tooltip="RELATION(INT AS C1, )" ];
3 [ label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="8"><tr><td align="left">Covering Index Scan</td></tr><tr><td align="left">range: &lt;-∞, ∞&gt;</td></tr></table>> color="black" shape="plain" style="solid" fillcolor="black" fontname="courier" fontsize="8" tooltip="RELATION(INT AS C1, )" ];
4 [ label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="8"><tr><td align="left">Index</td></tr><tr><td align="left">C2</td></tr></table>> color="black" shape="plain" style="filled" fillcolor="lightblue" fontname="courier" fontsize="8" tooltip="RELATION(INT AS C1, )" ];
3 -> 2 [ label=<&nbsp;q37> label="q37" color="gray20" style="bold" fontname="courier" fontsize="8" arrowhead="normal" arrowtail="none" dir="both" ];
4 -> 3 [ color="gray20" style="solid" fontname="courier" fontsize="8" arrowhead="normal" arrowtail="none" dir="both" ];
2 -> 1 [ label=<&nbsp;q39> label="q39" color="gray20" style="bold" fontname="courier" fontsize="8" arrowhead="normal" arrowtail="none" dir="both" ];
}Õ
7
unnamed-3*EXPLAIN select * from C WHERE C2 LIKE 'a%'™
Ò™þû K ÆÔú(0¯„?8&@YCOVERING(C2 <,> -> [C1: KEY[2], C2: KEY[0]]) | FILTER _.C2 LIKE @c8 ESCAPE 'null' | FETCH digraph G {
fontname=courier;
rankdir=BT;
splines=polyline;
1 [ label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="8"><tr><td align="left">Fetch Records</td></tr></table>> color="black" shape="plain" style="solid" fillcolor="black" fontname="courier" fontsize="12" tooltip="RELATION(INT AS C1, )" ];
2 [ label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="8"><tr><td align="left">Predicate Filter</td></tr><tr><td align="left">WHERE q37.C2 LIKE @c8 ESCAPE &#39;null&#39;</td></tr></table>> color="black" shape="plain" style="solid" fillcolor="black" fontname="courier" fontsize="8" tooltip="RELATION(INT AS C1, )" ];
3 [ label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="8"><tr><td align="left">Covering Index Scan</td></tr><tr><td align="left">range: &lt;-∞, ∞&gt;</td></tr></table>> color="black" shape="plain" style="solid" fillcolor="black" fontname="courier" fontsize="8" tooltip="RELATION(INT AS C1, )" ];
4 [ label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="8"><tr><td align="left">Index</td></tr><tr><td align="left">C2</td></tr></table>> color="black" shape="plain" style="filled" fillcolor="lightblue" fontname="courier" fontsize="8" tooltip="RELATION(INT AS C1, )" ];
3 -> 2 [ label=<&nbsp;q37> label="q37" color="gray20" style="bold" fontname="courier" fontsize="8" arrowhead="normal" arrowtail="none" dir="both" ];
4 -> 3 [ color="gray20" style="solid" fontname="courier" fontsize="8" arrowhead="normal" arrowtail="none" dir="both" ];
2 -> 1 [ label=<&nbsp;q39> label="q39" color="gray20" style="bold" fontname="courier" fontsize="8" arrowhead="normal" arrowtail="none" dir="both" ];
}×
8
unnamed-3+EXPLAIN select * from C WHERE C2 LIKE 'ap%'š
ÒݧÅK °Œ½(0¦”‰8&@YCOVERING(C2 <,> -> [C1: KEY[2], C2: KEY[0]]) | FILTER _.C2 LIKE @c8 ESCAPE 'null' | FETCH digraph G {
fontname=courier;
rankdir=BT;
splines=polyline;
1 [ label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="8"><tr><td align="left">Fetch Records</td></tr></table>> color="black" shape="plain" style="solid" fillcolor="black" fontname="courier" fontsize="12" tooltip="RELATION(INT AS C1, )" ];
2 [ label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="8"><tr><td align="left">Predicate Filter</td></tr><tr><td align="left">WHERE q37.C2 LIKE @c8 ESCAPE &#39;null&#39;</td></tr></table>> color="black" shape="plain" style="solid" fillcolor="black" fontname="courier" fontsize="8" tooltip="RELATION(INT AS C1, )" ];
3 [ label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="8"><tr><td align="left">Covering Index Scan</td></tr><tr><td align="left">range: &lt;-∞, ∞&gt;</td></tr></table>> color="black" shape="plain" style="solid" fillcolor="black" fontname="courier" fontsize="8" tooltip="RELATION(INT AS C1, )" ];
4 [ label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="8"><tr><td align="left">Index</td></tr><tr><td align="left">C2</td></tr></table>> color="black" shape="plain" style="filled" fillcolor="lightblue" fontname="courier" fontsize="8" tooltip="RELATION(INT AS C1, )" ];
3 -> 2 [ label=<&nbsp;q37> label="q37" color="gray20" style="bold" fontname="courier" fontsize="8" arrowhead="normal" arrowtail="none" dir="both" ];
4 -> 3 [ color="gray20" style="solid" fontname="courier" fontsize="8" arrowhead="normal" arrowtail="none" dir="both" ];
2 -> 1 [ label=<&nbsp;q39> label="q39" color="gray20" style="bold" fontname="courier" fontsize="8" arrowhead="normal" arrowtail="none" dir="both" ];
}×
9
unnamed-3,EXPLAIN select * from C WHERE C2 LIKE 'a%l%'™
Ò㏂K û¢–(0ÂÍs8&@YCOVERING(C2 <,> -> [C1: KEY[2], C2: KEY[0]]) | FILTER _.C2 LIKE @c8 ESCAPE 'null' | FETCH digraph G {
fontname=courier;
rankdir=BT;
splines=polyline;
1 [ label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="8"><tr><td align="left">Fetch Records</td></tr></table>> color="black" shape="plain" style="solid" fillcolor="black" fontname="courier" fontsize="12" tooltip="RELATION(INT AS C1, )" ];
2 [ label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="8"><tr><td align="left">Predicate Filter</td></tr><tr><td align="left">WHERE q37.C2 LIKE @c8 ESCAPE &#39;null&#39;</td></tr></table>> color="black" shape="plain" style="solid" fillcolor="black" fontname="courier" fontsize="8" tooltip="RELATION(INT AS C1, )" ];
3 [ label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="8"><tr><td align="left">Covering Index Scan</td></tr><tr><td align="left">range: &lt;-∞, ∞&gt;</td></tr></table>> color="black" shape="plain" style="solid" fillcolor="black" fontname="courier" fontsize="8" tooltip="RELATION(INT AS C1, )" ];
4 [ label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="8"><tr><td align="left">Index</td></tr><tr><td align="left">C2</td></tr></table>> color="black" shape="plain" style="filled" fillcolor="lightblue" fontname="courier" fontsize="8" tooltip="RELATION(INT AS C1, )" ];
3 -> 2 [ label=<&nbsp;q37> label="q37" color="gray20" style="bold" fontname="courier" fontsize="8" arrowhead="normal" arrowtail="none" dir="both" ];
4 -> 3 [ color="gray20" style="solid" fontname="courier" fontsize="8" arrowhead="normal" arrowtail="none" dir="both" ];
2 -> 1 [ label=<&nbsp;q39> label="q39" color="gray20" style="bold" fontname="courier" fontsize="8" arrowhead="normal" arrowtail="none" dir="both" ];
}
Expand Down
45 changes: 45 additions & 0 deletions yaml-tests/src/test/resources/like.metrics.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
unnamed-3:
- query: EXPLAIN select * from C WHERE C2 LIKE '%'
explain: 'COVERING(C2 <,> -> [C1: KEY[2], C2: KEY[0]]) | FILTER _.C2 LIKE @c8
ESCAPE ''null'' | FETCH'
task_count: 338
task_total_time_ms: 47
transform_count: 75
transform_time_ms: 13
transform_yield_count: 29
insert_time_ms: 2
insert_new_count: 38
insert_reused_count: 5
- query: EXPLAIN select * from C WHERE C2 LIKE 'a%'
explain: 'COVERING(C2 <,> -> [C1: KEY[2], C2: KEY[0]]) | FILTER _.C2 LIKE @c8
ESCAPE ''null'' | FETCH'
task_count: 338
task_total_time_ms: 20
transform_count: 75
transform_time_ms: 8
transform_yield_count: 29
insert_time_ms: 1
insert_new_count: 38
insert_reused_count: 5
- query: EXPLAIN select * from C WHERE C2 LIKE 'ap%'
explain: 'COVERING(C2 <,> -> [C1: KEY[2], C2: KEY[0]]) | FILTER _.C2 LIKE @c8
ESCAPE ''null'' | FETCH'
task_count: 338
task_total_time_ms: 47
transform_count: 75
transform_time_ms: 13
transform_yield_count: 29
insert_time_ms: 2
insert_new_count: 38
insert_reused_count: 5
- query: EXPLAIN select * from C WHERE C2 LIKE 'a%l%'
explain: 'COVERING(C2 <,> -> [C1: KEY[2], C2: KEY[0]]) | FILTER _.C2 LIKE @c8
ESCAPE ''null'' | FETCH'
task_count: 338
task_total_time_ms: 35
transform_count: 75
transform_time_ms: 12
transform_yield_count: 29
insert_time_ms: 1
insert_new_count: 38
insert_reused_count: 5
129 changes: 129 additions & 0 deletions yaml-tests/src/test/resources/like.yamsql
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@
schema_template:
create table A(a1 string, primary key(a1))
create table B(b1 integer, b2 string, primary key(b1))
create table C(c1 integer, c2 string, primary key(c1))

create index c2 as select c2 from c order by c2
---
setup:
steps:
Expand All @@ -46,6 +49,20 @@ setup:
(3, 'A'),
(4, 'Z'),
(5, 'B');
- query: insert into C values
( 1, 'alphabet'),
( 2, 'anticipation'),
( 3, 'aplomb'),
( 4, 'apple'),
( 5, 'appliance'),
( 6, 'application'),
( 7, 'awry'),
( 8, 'banal'),
( 9, 'banana'),
(10, 'bench'),
(11, 'bento'),
(12, 'canal')
;
---
test_block:
# TODO (Investigate `Missing binding for __const_CONSTANT` error with queries when using plan from cache)
Expand Down Expand Up @@ -128,6 +145,118 @@ test_block:
{'ありがとう'},
{'مدرسة'},
{'\\||%'}]
-
- query: select * from C WHERE C2 LIKE '%'
- explain: "COVERING(C2 <,> -> [C1: KEY[2], C2: KEY[0]]) | FILTER _.C2 LIKE @c8 ESCAPE 'null' | FETCH"
- result: [
{ C1: 1, C2: alphabet},
{ C1: 2, C2: anticipation},
{ C1: 3, C2: aplomb},
{ C1: 4, C2: apple},
{ C1: 5, C2: appliance},
{ C1: 6, C2: application},
{ C1: 7, C2: awry},
{ C1: 8, C2: banal},
{ C1: 9, C2: banana},
{ C1: 10, C2: bench},
{ C1: 11, C2: bento},
{ C1: 12, C2: canal},
]
-
- query: select * from C WHERE C2 LIKE 'a%'
- explain: "COVERING(C2 <,> -> [C1: KEY[2], C2: KEY[0]]) | FILTER _.C2 LIKE @c8 ESCAPE 'null' | FETCH"
- result: [
{ C1: 1, C2: alphabet},
{ C1: 2, C2: anticipation},
{ C1: 3, C2: aplomb},
{ C1: 4, C2: apple},
{ C1: 5, C2: appliance},
{ C1: 6, C2: application},
{ C1: 7, C2: awry},
]
-
- query: select * from C WHERE C2 LIKE 'ap%'
- explain: "COVERING(C2 <,> -> [C1: KEY[2], C2: KEY[0]]) | FILTER _.C2 LIKE @c8 ESCAPE 'null' | FETCH"
- result: [
{ C1: 3, C2: aplomb},
{ C1: 4, C2: apple},
{ C1: 5, C2: appliance},
{ C1: 6, C2: application},
]
-
- query: select * from C WHERE C2 LIKE 'a%l%'
- explain: "COVERING(C2 <,> -> [C1: KEY[2], C2: KEY[0]]) | FILTER _.C2 LIKE @c8 ESCAPE 'null' | FETCH"
- result: [
{ C1: 1, C2: alphabet},
{ C1: 3, C2: aplomb},
{ C1: 4, C2: apple},
{ C1: 5, C2: appliance},
{ C1: 6, C2: application},
]
-
- query: select * from C WHERE C2 LIKE 'app%'
- result: [
{ C1: 4, C2: apple},
{ C1: 5, C2: appliance},
{ C1: 6, C2: application},
]
-
- query: select * from C WHERE C2 LIKE 'b%'
- result: [
{ C1: 8, C2: banal},
{ C1: 9, C2: banana},
{ C1: 10, C2: bench},
{ C1: 11, C2: bento},
]
-
- query: select * from C WHERE C2 LIKE 'ba%'
- result: [
{ C1: 8, C2: banal},
{ C1: 9, C2: banana},
]
-
- query: select * from C WHERE C2 LIKE 'ban%'
- result: [
{ C1: 8, C2: banal},
{ C1: 9, C2: banana},
]
-
- query: select * from C WHERE C2 LIKE 'bana%'
- result: [
{ C1: 8, C2: banal},
{ C1: 9, C2: banana},
]
-
- query: select * from C WHERE C2 LIKE 'banal%'
- result: [
{ C1: 8, C2: banal},
]
-
- query: select * from C WHERE C2 LIKE 'be%'
- result: [
{ C1: 10, C2: bench},
{ C1: 11, C2: bento},
]
-
- query: select * from C WHERE C2 LIKE 'ben%'
- result: [
{ C1: 10, C2: bench},
{ C1: 11, C2: bento},
]
-
- query: select * from C WHERE C2 LIKE 'bent%'
- result: [
{ C1: 11, C2: bento},
]
-
- query: select * from C WHERE C2 LIKE 'c%'
- result: [
{ C1: 12, C2: canal},
]
-
- query: select * from C WHERE C2 LIKE 'd%'
- result: [
]
---
# TODO (Investigate `Missing binding for __const_CONSTANT` error with queries when using plan from cache)
test_block:
Expand Down
Loading