[ 
https://issues.apache.org/jira/browse/HIVE-19360?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16543360#comment-16543360
 ] 

Hive QA commented on HIVE-19360:
--------------------------------

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
|| || || || {color:brown} Prechecks {color} ||
| {color:green}+1{color} | {color:green} @author {color} | {color:green}  0m  
0s{color} | {color:green} The patch does not contain any @author tags. {color} |
|| || || || {color:brown} master Compile Tests {color} ||
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue}  1m 
46s{color} | {color:blue} Maven dependency ordering for branch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  7m 
 7s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  1m 
40s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green}  0m 
59s{color} | {color:green} master passed {color} |
| {color:blue}0{color} | {color:blue} findbugs {color} | {color:blue}  4m 
10s{color} | {color:blue} ql in master has 2289 extant Findbugs warnings. 
{color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  1m 
21s{color} | {color:green} master passed {color} |
|| || || || {color:brown} Patch Compile Tests {color} ||
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue}  0m 
28s{color} | {color:blue} Maven dependency ordering for patch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  2m 
 0s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  1m 
37s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green}  1m 
37s{color} | {color:green} the patch passed {color} |
| {color:red}-1{color} | {color:red} checkstyle {color} | {color:red}  0m 
45s{color} | {color:red} ql: The patch generated 9 new + 500 unchanged - 5 
fixed = 509 total (was 505) {color} |
| {color:green}+1{color} | {color:green} whitespace {color} | {color:green}  0m 
 0s{color} | {color:green} The patch has no whitespace issues. {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green}  4m 
27s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  1m 
21s{color} | {color:green} the patch passed {color} |
|| || || || {color:brown} Other Tests {color} ||
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green}  0m 
13s{color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black} 29m 10s{color} | 
{color:black} {color} |
\\
\\
|| Subsystem || Report/Notes ||
| Optional Tests |  asflicense  javac  javadoc  findbugs  checkstyle  compile  |
| uname | Linux hiveptest-server-upstream 3.16.0-4-amd64 #1 SMP Debian 
3.16.36-1+deb8u1 (2016-09-03) x86_64 GNU/Linux |
| Build tool | maven |
| Personality | 
/data/hiveptest/working/yetus_PreCommit-HIVE-Build-12587/dev-support/hive-personality.sh
 |
| git revision | master / d8306cf |
| Default Java | 1.8.0_111 |
| findbugs | v3.0.0 |
| checkstyle | 
http://104.198.109.242/logs//PreCommit-HIVE-Build-12587/yetus/diff-checkstyle-ql.txt
 |
| modules | C: ql itests/hive-blobstore U: . |
| Console output | 
http://104.198.109.242/logs//PreCommit-HIVE-Build-12587/yetus.txt |
| Powered by | Apache Yetus    http://yetus.apache.org |


This message was automatically generated.



> CBO: Add an "optimizedSQL" to QueryPlan object 
> -----------------------------------------------
>
>                 Key: HIVE-19360
>                 URL: https://issues.apache.org/jira/browse/HIVE-19360
>             Project: Hive
>          Issue Type: Improvement
>          Components: CBO, Diagnosability
>    Affects Versions: 3.1.0
>            Reporter: Gopal V
>            Assignee: Jesus Camacho Rodriguez
>            Priority: Major
>         Attachments: HIVE-19360.1.patch, HIVE-19360.2.patch, 
> HIVE-19360.3.patch, HIVE-19360.4.patch, HIVE-19360.5.patch, HIVE-19360.6.patch
>
>
> Calcite RelNodes can be converted back into SQL (as the new JDBC storage 
> handler does), which allows Hive to print out the post CBO plan as a SQL 
> query instead of having to guess the join orders from the subsequent Tez plan.
> The query generated might not be always valid SQL at this point, but is a 
> world ahead of DAG plans in readability.
> Eg. tpc-ds Query4 CTEs gets expanded to
> {code}
> SELECT t16.$f3 customer_preferred_cust_flag
> FROM
>   (SELECT t0.c_customer_id $f0,
>                            SUM((t2.ws_ext_list_price - 
> t2.ws_ext_wholesale_cost - t2.ws_ext_discount_amt + t2.ws_ext_sales_price) / 
> CAST(2 AS DECIMAL(10, 0))) $f8
>    FROM
>      (SELECT c_customer_sk,
>              c_customer_id,
>              c_first_name,
>              c_last_name,
>              c_preferred_cust_flag,
>              c_birth_country,
>              c_login,
>              c_email_address
>       FROM default.customer
>       WHERE c_customer_sk IS NOT NULL
>         AND c_customer_id IS NOT NULL) t0
>    INNER JOIN (
>                  (SELECT ws_sold_date_sk,
>                          ws_bill_customer_sk,
>                          ws_ext_discount_amt,
>                          ws_ext_sales_price,
>                          ws_ext_wholesale_cost,
>                          ws_ext_list_price
>                   FROM default.web_sales
>                   WHERE ws_bill_customer_sk IS NOT NULL
>                     AND ws_sold_date_sk IS NOT NULL) t2
>                INNER JOIN
>                  (SELECT d_date_sk,
>                          CAST(2002 AS INTEGER) d_year
>                   FROM default.date_dim
>                   WHERE d_year = 2002
>                     AND d_date_sk IS NOT NULL) t4 ON t2.ws_sold_date_sk = 
> t4.d_date_sk) ON t0.c_customer_sk = t2.ws_bill_customer_sk
>    GROUP BY t0.c_customer_id,
>             t0.c_first_name,
>             t0.c_last_name,
>             t0.c_preferred_cust_flag,
>             t0.c_birth_country,
>             t0.c_login,
>             t0.c_email_address) t7
> INNER JOIN (
>               (SELECT t9.c_customer_id $f0,
>                                        t9.c_preferred_cust_flag $f3,
>                                                                 
> SUM((t11.ss_ext_list_price - t11.ss_ext_wholesale_cost - 
> t11.ss_ext_discount_amt + t11.ss_ext_sales_price) / CAST(2 AS DECIMAL(10, 
> 0))) $f8
>                FROM
>                  (SELECT c_customer_sk,
>                          c_customer_id,
>                          c_first_name,
>                          c_last_name,
>                          c_preferred_cust_flag,
>                          c_birth_country,
>                          c_login,
>                          c_email_address
>                   FROM default.customer
>                   WHERE c_customer_sk IS NOT NULL
>                     AND c_customer_id IS NOT NULL) t9
>                INNER JOIN (
>                              (SELECT ss_sold_date_sk,
>                                      ss_customer_sk,
>                                      ss_ext_discount_amt,
>                                      ss_ext_sales_price,
>                                      ss_ext_wholesale_cost,
>                                      ss_ext_list_price
>                               FROM default.store_sales
>                               WHERE ss_customer_sk IS NOT NULL
>                                 AND ss_sold_date_sk IS NOT NULL) t11
>                            INNER JOIN
>                              (SELECT d_date_sk,
>                                      CAST(2002 AS INTEGER) d_year
>                               FROM default.date_dim
>                               WHERE d_year = 2002
>                                 AND d_date_sk IS NOT NULL) t13 ON 
> t11.ss_sold_date_sk = t13.d_date_sk) ON t9.c_customer_sk = t11.ss_customer_sk
>                GROUP BY t9.c_customer_id,
>                         t9.c_first_name,
>                         t9.c_last_name,
>                         t9.c_preferred_cust_flag,
>                         t9.c_birth_country,
>                         t9.c_login,
>                         t9.c_email_address) t16
>             INNER JOIN (
>                           (SELECT t18.c_customer_id $f0,
>                                                     
> SUM((t20.cs_ext_list_price - t20.cs_ext_wholesale_cost - 
> t20.cs_ext_discount_amt + t20.cs_ext_sales_price) / CAST(2 AS DECIMAL(10, 
> 0))) $f8
>                            FROM
>                              (SELECT c_customer_sk,
>                                      c_customer_id,
>                                      c_first_name,
>                                      c_last_name,
>                                      c_preferred_cust_flag,
>                                      c_birth_country,
>                                      c_login,
>                                      c_email_address
>                               FROM default.customer
>                               WHERE c_customer_sk IS NOT NULL
>                                 AND c_customer_id IS NOT NULL) t18
>                            INNER JOIN (
>                                          (SELECT cs_sold_date_sk,
>                                                  cs_bill_customer_sk,
>                                                  cs_ext_discount_amt,
>                                                  cs_ext_sales_price,
>                                                  cs_ext_wholesale_cost,
>                                                  cs_ext_list_price
>                                           FROM default.catalog_sales
>                                           WHERE cs_bill_customer_sk IS NOT 
> NULL
>                                             AND cs_sold_date_sk IS NOT NULL) 
> t20
>                                        INNER JOIN
>                                          (SELECT d_date_sk,
>                                                  CAST(2002 AS INTEGER) d_year
>                                           FROM default.date_dim
>                                           WHERE d_year = 2002
>                                             AND d_date_sk IS NOT NULL) t22 ON 
> t20.cs_sold_date_sk = t22.d_date_sk) ON t18.c_customer_sk = 
> t20.cs_bill_customer_sk
>                            GROUP BY t18.c_customer_id,
>                                     t18.c_first_name,
>                                     t18.c_last_name,
>                                     t18.c_preferred_cust_flag,
>                                     t18.c_birth_country,
>                                     t18.c_login,
>                                     t18.c_email_address) t25
>                         INNER JOIN
>                           (SELECT t27.c_customer_id $f0,
>                                                     
> SUM((t29.ss_ext_list_price - t29.ss_ext_wholesale_cost - 
> t29.ss_ext_discount_amt + t29.ss_ext_sales_price) / CAST(2 AS DECIMAL(10, 
> 0))) $f8
>                            FROM
>                              (SELECT c_customer_sk,
>                                      c_customer_id,
>                                      c_first_name,
>                                      c_last_name,
>                                      c_preferred_cust_flag,
>                                      c_birth_country,
>                                      c_login,
>                                      c_email_address
>                               FROM default.customer
>                               WHERE c_customer_sk IS NOT NULL
>                                 AND c_customer_id IS NOT NULL) t27
>                            INNER JOIN (
>                                          (SELECT ss_sold_date_sk,
>                                                  ss_customer_sk,
>                                                  ss_ext_discount_amt,
>                                                  ss_ext_sales_price,
>                                                  ss_ext_wholesale_cost,
>                                                  ss_ext_list_price
>                                           FROM default.store_sales
>                                           WHERE ss_customer_sk IS NOT NULL
>                                             AND ss_sold_date_sk IS NOT NULL) 
> t29
>                                        INNER JOIN
>                                          (SELECT d_date_sk,
>                                                  CAST(2001 AS INTEGER) d_year
>                                           FROM default.date_dim
>                                           WHERE d_year = 2001
>                                             AND d_date_sk IS NOT NULL) t31 ON 
> t29.ss_sold_date_sk = t31.d_date_sk) ON t27.c_customer_sk = t29.ss_customer_sk
>                            GROUP BY t27.c_customer_id,
>                                     t27.c_first_name,
>                                     t27.c_last_name,
>                                     t27.c_preferred_cust_flag,
>                                     t27.c_birth_country,
>                                     t27.c_login,
>                                     t27.c_email_address
>                            HAVING SUM((t29.ss_ext_list_price - 
> t29.ss_ext_wholesale_cost - t29.ss_ext_discount_amt + t29.ss_ext_sales_price) 
> / CAST(2 AS DECIMAL(10, 0))) > 0) t35 ON t25.$f0 = t35.$f0) ON t16.$f0 = 
> t35.$f0
>             INNER JOIN
>               (SELECT t37.c_customer_id $f0,
>                                         SUM((t39.cs_ext_list_price - 
> t39.cs_ext_wholesale_cost - t39.cs_ext_discount_amt + t39.cs_ext_sales_price) 
> / CAST(2 AS DECIMAL(10, 0))) $f8
>                FROM
>                  (SELECT c_customer_sk,
>                          c_customer_id,
>                          c_first_name,
>                          c_last_name,
>                          c_preferred_cust_flag,
>                          c_birth_country,
>                          c_login,
>                          c_email_address
>                   FROM default.customer
>                   WHERE c_customer_sk IS NOT NULL
>                     AND c_customer_id IS NOT NULL) t37
>                INNER JOIN (
>                              (SELECT cs_sold_date_sk,
>                                      cs_bill_customer_sk,
>                                      cs_ext_discount_amt,
>                                      cs_ext_sales_price,
>                                      cs_ext_wholesale_cost,
>                                      cs_ext_list_price
>                               FROM default.catalog_sales
>                               WHERE cs_bill_customer_sk IS NOT NULL
>                                 AND cs_sold_date_sk IS NOT NULL) t39
>                            INNER JOIN
>                              (SELECT d_date_sk,
>                                      CAST(2001 AS INTEGER) d_year
>                               FROM default.date_dim
>                               WHERE d_year = 2001
>                                 AND d_date_sk IS NOT NULL) t41 ON 
> t39.cs_sold_date_sk = t41.d_date_sk) ON t37.c_customer_sk = 
> t39.cs_bill_customer_sk
>                GROUP BY t37.c_customer_id,
>                         t37.c_first_name,
>                         t37.c_last_name,
>                         t37.c_preferred_cust_flag,
>                         t37.c_birth_country,
>                         t37.c_login,
>                         t37.c_email_address
>                HAVING SUM((t39.cs_ext_list_price - t39.cs_ext_wholesale_cost 
> - t39.cs_ext_discount_amt + t39.cs_ext_sales_price) / CAST(2 AS DECIMAL(10, 
> 0))) > 0) t45 ON t25.$f8 / t45.$f8 > t16.$f8 / t35.$f8
>             AND t35.$f0 = t45.$f0) ON t7.$f0 = t35.$f0
> INNER JOIN
>   (SELECT t47.c_customer_id $f0,
>                             SUM((t49.ws_ext_list_price - 
> t49.ws_ext_wholesale_cost - t49.ws_ext_discount_amt + t49.ws_ext_sales_price) 
> / CAST(2 AS DECIMAL(10, 0))) $f8
>    FROM
>      (SELECT c_customer_sk,
>              c_customer_id,
>              c_first_name,
>              c_last_name,
>              c_preferred_cust_flag,
>              c_birth_country,
>              c_login,
>              c_email_address
>       FROM default.customer
>       WHERE c_customer_sk IS NOT NULL
>         AND c_customer_id IS NOT NULL) t47
>    INNER JOIN (
>                  (SELECT ws_sold_date_sk,
>                          ws_bill_customer_sk,
>                          ws_ext_discount_amt,
>                          ws_ext_sales_price,
>                          ws_ext_wholesale_cost,
>                          ws_ext_list_price
>                   FROM default.web_sales
>                   WHERE ws_bill_customer_sk IS NOT NULL
>                     AND ws_sold_date_sk IS NOT NULL) t49
>                INNER JOIN
>                  (SELECT d_date_sk,
>                          CAST(2001 AS INTEGER) d_year
>                   FROM default.date_dim
>                   WHERE d_year = 2001
>                     AND d_date_sk IS NOT NULL) t51 ON t49.ws_sold_date_sk = 
> t51.d_date_sk) ON t47.c_customer_sk = t49.ws_bill_customer_sk
>    GROUP BY t47.c_customer_id,
>             t47.c_first_name,
>             t47.c_last_name,
>             t47.c_preferred_cust_flag,
>             t47.c_birth_country,
>             t47.c_login,
>             t47.c_email_address
>    HAVING SUM((t49.ws_ext_list_price - t49.ws_ext_wholesale_cost - 
> t49.ws_ext_discount_amt + t49.ws_ext_sales_price) / CAST(2 AS DECIMAL(10, 
> 0))) > 0) t55 ON t25.$f8 / t45.$f8 > t7.$f8 / t55.$f8
> AND t35.$f0 = t55.$f0
> ORDER BY t16.$f3 IS NULL DESC, t16.$f3
> LIMIT 100
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to