[MDEV-19179] Regression: SELECT ... UNION ... with inconsistent column names fails Created: 2019-04-04  Updated: 2021-02-03  Resolved: 2020-11-23

Status: Closed
Project: MariaDB Server
Component/s: Optimizer
Affects Version/s: 10.3.9, 10.3.10, 10.2, 10.3, 10.4, 10.5
Fix Version/s: 10.2.37, 10.3.28, 10.4.18, 10.5.9

Type: Bug Priority: Major
Reporter: Gisbert W. Selke Assignee: Igor Babaev
Resolution: Fixed Votes: 4
Labels: regression
Environment:

Windows 64bit


Issue Links:
Duplicate
is duplicated by MDEV-24771 Column alias in UNION with GROUP BY q... Closed

 Description   

A SELECT from a subquery containing a UNION with inconsistent result column names fails with an ill-fitting error message, but only when used with a WHERE clause.
This is a heavily striped down version of a query that fails:

select * from (
    select 1 x
    union all
    select sum(1) y
  ) t where x>0

yields: ERROR 1054 (42S22): Unknown column 'x' in 'order clause'
which is strange, because there is no order clause.

This slightly different statement, however, works fine:

select * from (
    select 1 x
    union all
    select 2 y
  ) t  where x>0

(Note: second branch of UNION has no aggregate function)
and yields, as expected:

+---+
| x |
+---+
| 1 |
| 2 |
+---+

Omitting the WHERE clause from the first query allows it to succeed, too.

This seems to be a regression. My original query (much longer) used to work with an older 10.x version, but I cannot reconstruct any more which version that was.
On an old MySQL server 5.7.9, the problem does NOT come up. SQLite also has NO problems with the query, so I assume the query is legal as such, even given the inconsistent naming of columns.

Of course, a workaround is easy: use consistent aliases:

select * from (
    select 1 x
    union all
    select sum(1) x
  ) t where x>0



 Comments   
Comment by Alice Sherepa [ 2019-04-09 ]

Thanks! Repeatable on 10.2-10.4

Comment by Oleksandr Byelkin [ 2020-11-19 ]

OK to push

Comment by Igor Babaev [ 2020-11-23 ]

A fix for this bug was pushed into 10.2

Comment by Gisbert W. Selke [ 2020-11-23 ]

A big "thank you" to everyone involved!

Generated at Thu Feb 08 08:49:39 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.