Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-24771

Column alias in UNION with GROUP BY query

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Duplicate
    • 10.3.25
    • N/A
    • N/A
    • Ubuntu 20.04.1

    Description

      Simplified sample query
      SELECT greet FROM (SELECT 'hi' AS greet
      UNION SELECT 'hello'
      FROM (SELECT '') AS _ GROUP BY NULL) AS tbl WHERE greet != ''

      Actual result
      [mysqli: 1054] Unknown column 'greet' in 'order clause'

      Expected result
      Query passes (returns 'hihello')

      Additional info
      The following changes each make the query pass:

      • Change line 2 to UNION SELECT 'hello' AS greet
      • Remove the GROUP BY NULL clause

      Attachments

        Issue Links

          Activity

            alice Alice Sherepa added a comment - - edited

            Thank you for the report!
            It was fixed by commit 1248c654c494df6d (MDEV-19179, the patch is in 10.3.28), on current 10.2-10.5 results are as expected. A temporary workaround for the issue:

            MariaDB [test]> SELECT greet FROM (SELECT 'hi' AS greet
                -> UNION SELECT 'hello'
                -> FROM (SELECT '') AS _ GROUP BY NULL) AS tbl WHERE greet != ''
                -> ;
            ERROR 1054 (42S22): Unknown column 'greet' in 'order clause'
            MariaDB [test]> set optimizer_switch='condition_pushdown_for_derived=off';
            Query OK, 0 rows affected (0.000 sec)
             
            MariaDB [test]> SELECT greet FROM (SELECT 'hi' AS greet UNION SELECT 'hello' FROM (SELECT '') AS _ GROUP BY NULL) AS tbl WHERE greet != '';
            +-------+
            | greet |
            +-------+
            | hi    |
            | hello |
            +-------+
            2 rows in set (0.000 sec)
            
            

            alice Alice Sherepa added a comment - - edited Thank you for the report! It was fixed by commit 1248c654c494df6d ( MDEV-19179 , the patch is in 10.3.28), on current 10.2-10.5 results are as expected. A temporary workaround for the issue: MariaDB [test]> SELECT greet FROM (SELECT 'hi' AS greet -> UNION SELECT 'hello' -> FROM (SELECT '') AS _ GROUP BY NULL) AS tbl WHERE greet != '' -> ; ERROR 1054 (42S22): Unknown column 'greet' in 'order clause' MariaDB [test]> set optimizer_switch='condition_pushdown_for_derived=off'; Query OK, 0 rows affected (0.000 sec)   MariaDB [test]> SELECT greet FROM (SELECT 'hi' AS greet UNION SELECT 'hello' FROM (SELECT '') AS _ GROUP BY NULL) AS tbl WHERE greet != ''; +-------+ | greet | +-------+ | hi | | hello | +-------+ 2 rows in set (0.000 sec)

            People

              Unassigned Unassigned
              evilliger Elias Villiger
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.