You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Sheng Wang (Jira)" <ji...@apache.org> on 2021/12/01 02:49:00 UTC

[jira] [Created] (IMPALA-11040) Query get stuck when containing multiple union in reAnalyze phase

Sheng Wang created IMPALA-11040:
-----------------------------------

             Summary: Query get stuck when containing multiple union in reAnalyze phase
                 Key: IMPALA-11040
                 URL: https://issues.apache.org/jira/browse/IMPALA-11040
             Project: IMPALA
          Issue Type: Question
          Components: Frontend
    Affects Versions: Impala 4.0.0
            Reporter: Sheng Wang
            Assignee: Sheng Wang


When query contains multiple union, and encounter a expr rewrite. Then this query will do 'reAnalyze', and get stuck in 'reset' method. Here is the example to reproduce this bug:

{code:java}
SELECT `t1`.`dt`
FROM
  (SELECT *
   FROM
     (SELECT *
      FROM
        (SELECT *
         FROM
           (SELECT *
            FROM
              (SELECT *
               FROM
                 (SELECT *
                  FROM
                    (SELECT *
                     FROM
                       (SELECT *
                        FROM
                          (SELECT *
                           FROM
                             (SELECT *
                              FROM
                                (SELECT *
                                 FROM
                                   (SELECT *
                                    FROM
                                      (SELECT *
                                       FROM
                                         (SELECT *
                                          FROM
                                            (SELECT *
                                             FROM
                                               (SELECT *
                                                FROM
                                                  (SELECT *
                                                   FROM
                                                     (SELECT *
                                                      FROM
                                                        (SELECT *
                                                         FROM
                                                           (SELECT *
                                                            FROM
                                                              (SELECT *
                                                               FROM
                                                                 (SELECT *
                                                                  FROM
                                                                    (SELECT *
                                                                     FROM
                                                                       (SELECT *
                                                                        FROM
                                                                          (SELECT *
                                                                           FROM
                                                                             (SELECT *
                                                                              FROM
                                                                                (SELECT *
                                                                                 FROM
                                                                                   (SELECT *
                                                                                    FROM
                                                                                      (SELECT *
                                                                                       FROM
                                                                                         (SELECT *
                                                                                          FROM
                                                                                            (SELECT '20211020' AS `dt`
                                                                                             UNION ALL SELECT '20211021' AS `dt`) AS `t`
                                                                                          UNION ALL SELECT '20211022' AS `dt`) AS `t`
                                                                                       UNION ALL SELECT '20211023' AS `dt`) AS `t`
                                                                                    UNION ALL SELECT '20211024' AS `dt`) AS `t`
                                                                                 UNION ALL SELECT '20211025' AS `dt`) AS `t`
                                                                              UNION ALL SELECT '20211026' AS `dt`) AS `t`
                                                                           UNION ALL SELECT '20211027' AS `dt`) AS `t`
                                                                        UNION ALL SELECT '20211028' AS `dt`) AS `t`
                                                                     UNION ALL SELECT '20211029' AS `dt`) AS `t`
                                                                  UNION ALL SELECT '20211030' AS `dt`) AS `t`
                                                               UNION ALL SELECT '20211031' AS `dt`) AS `t`
                                                            UNION ALL SELECT '20211101' AS `dt`) AS `t`
                                                         UNION ALL SELECT '20211102' AS `dt`) AS `t`
                                                      UNION ALL SELECT '20211103' AS `dt`) AS `t`
                                                   UNION ALL SELECT '20211104' AS `dt`) AS `t`
                                                UNION ALL SELECT '20211105' AS `dt`) AS `t`
                                             UNION ALL SELECT '20211106' AS `dt`) AS `t`
                                          UNION ALL SELECT '20211107' AS `dt`) AS `t`
                                       UNION ALL SELECT '20211108' AS `dt`) AS `t`
                                    UNION ALL SELECT '20211109' AS `dt`) AS `t`
                                 UNION ALL SELECT '20211110' AS `dt`) AS `t`
                              UNION ALL SELECT '20211111' AS `dt`) AS `t`
                           UNION ALL SELECT '20211112' AS `dt`) AS `t`
                        UNION ALL SELECT '20211113' AS `dt`) AS `t`
                     UNION ALL SELECT '20211114' AS `dt`) AS `t`
                  UNION ALL SELECT '20211115' AS `dt`) AS `t`
               UNION ALL SELECT '20211116' AS `dt`) AS `t`
            UNION ALL SELECT '20211117' AS `dt`) AS `t`
         UNION ALL SELECT '20211118' AS `dt`) AS `t`
      UNION ALL SELECT '20211119' AS `dt`) AS `t`
   UNION ALL SELECT '20211120' AS `dt`) AS `t1`
CROSS JOIN
  (SELECT 1000+1000) AS `t2`
GROUP BY `t1`.`dt`;
{code}
This query may take long time to execute, such as ten minutes. If we reduce 'UNION', the query will execute quickly.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)