You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
2.5 KiB
41 lines
2.5 KiB
[
|
|
{
|
|
"name": "TestOuterJoinPropConst",
|
|
"cases": [
|
|
// Positive tests.
|
|
"explain select * from t1 left join t2 on t1.a > t2.a and t1.a = 1",
|
|
"explain select * from t1 left join t2 on t1.a > t2.a where t1.a = 1",
|
|
"explain select * from t1 left join t2 on t1.a = t2.a and t1.a > 1",
|
|
"explain select * from t1 left join t2 on t1.a = t2.a where t1.a > 1",
|
|
"explain select * from t1 right join t2 on t1.a > t2.a where t2.a = 1",
|
|
"explain select * from t1 right join t2 on t1.a = t2.a where t2.a > 1",
|
|
"explain select * from t1 right join t2 on t1.a = t2.a and t2.a > 1",
|
|
"explain select * from t1 right join t2 on t1.a > t2.a and t2.a = 1",
|
|
// Negative tests.
|
|
"explain select * from t1 left join t2 on t1.a = t2.a and t2.a > 1",
|
|
"explain select * from t1 left join t2 on t1.a > t2.a and t2.a = 1",
|
|
"explain select * from t1 right join t2 on t1.a > t2.a and t1.a = 1",
|
|
"explain select * from t1 right join t2 on t1.a = t2.a and t1.a > 1",
|
|
"explain select * from t1 left join t2 on t1.a = t1.b and t1.a > 1",
|
|
"explain select * from t1 left join t2 on t2.a = t2.b and t2.a > 1",
|
|
// Constant equal condition merge in outer join.
|
|
"explain select * from t1 left join t2 on true where t1.a = 1 and false",
|
|
"explain select * from t1 left join t2 on true where t1.a = 1 and null",
|
|
"explain select * from t1 left join t2 on true where t1.a = null",
|
|
"explain select * from t1 left join t2 on true where t1.a = 1 and t1.a = 2",
|
|
"explain select * from t1 left join t2 on true where t1.a = 1 and t1.a = 1",
|
|
"explain select * from t1 left join t2 on false",
|
|
"explain select * from t1 right join t2 on false",
|
|
"explain select * from t1 left join t2 on t1.a = 1 and t1.a = 2",
|
|
"explain select * from t1 left join t2 on t1.a =1 where t1.a = 2",
|
|
"explain select * from t1 left join t2 on t2.a = 1 and t2.a = 2",
|
|
// Constant propagation for DNF in outer join.
|
|
"explain select * from t1 left join t2 on t1.a = 1 or (t1.a = 2 and t1.a = 3)",
|
|
"explain select * from t1 left join t2 on true where t1.a = 1 or (t1.a = 2 and t1.a = 3)",
|
|
// Constant propagation over left outer semi join, filter with aux column should not be derived.
|
|
"explain select * from t1 where t1.b > 1 or t1.b in (select b from t2)",
|
|
// Don't propagate for the control function.
|
|
"explain select * from t1 left join t2 on t1.a = t2.a where ifnull(t2.b, t1.a) = 1"
|
|
]
|
|
}
|
|
]
|
|
|