Details
-
Bug
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.3(EOL), 10.4(EOL), 10.5, 10.6, 10.7(EOL), 10.8(EOL), 10.9(EOL), 10.10(EOL), 10.11
-
None
Description
If an unresolvalble column reference occurs in ORDER BY clause of an union contained in an EXISTs subquery of in the left part of a subquery predicand then it is ignored and no error message is reported.
Here is a test case demonstrating the problem:
create table t1 (a int, b int); |
insert into t1 values (3,8), (7,2), (1,4), (5,9); |
|
create table t2 (a int, b int); |
insert into t2 values (9,1), (7,3), (2,6); |
|
create table t3 (c int, d int); |
insert into t3 values (7,8), (1,2), (3,8), (9,1); |
|
select * from t3 as t |
where |
(t.c,t.d) in |
(
|
select a,b from t1 where t1.a > 3 |
union |
select a,b from t2 where t2.b < 6 |
order by (a - b/x) |
)
|
;
|
|
drop table t1,t2,t3; |
When executing the above query we have
MariaDB [test]> select * from t3 as t
|
-> where
|
-> (t.c,t.d) in
|
-> (
|
-> select a,b from t1 where t1.a > 3
|
-> union
|
-> select a,b from t2 where t2.b < 6
|
-> order by (a - b/x)
|
-> )
|
-> ;
|
+------+------+
|
| c | d |
|
+------+------+
|
| 9 | 1 |
|
+------+------+
|
However the same error message as from the query
select a,b from t1 where t1.a > 3 |
union |
select a,b from t2 where t2.b < 6 |
order by (a - b/x) |
is expected
MariaDB [test]> select a,b from t1 where t1.a > 3
|
-> union
|
-> select a,b from t2 where t2.b < 6
|
-> order by (a - b/x)
|
-> ;
|
ERROR 1054 (42S22): Unknown column 'x' in 'order clause'
|