Taraka Rama Rao Lethavadla created HIVE-28263:
-------------------------------------------------

             Summary: Metastore scripts : Update query getting stuck when 
sub-query of in-clause is returning empty results
                 Key: HIVE-28263
                 URL: https://issues.apache.org/jira/browse/HIVE-28263
             Project: Hive
          Issue Type: Bug
          Components: Hive
            Reporter: Taraka Rama Rao Lethavadla


As part of fix HIVE-27457

below query is added to 
[upgrade-4.0.0-alpha-2-to-4.0.0-beta-1.mysql.sql|https://github.com/apache/hive/blob/0e84fe2000c026afd0a49f4e7c7dd5f54fe7b1ec/standalone-metastore/metastore-server/src/main/sql/mysql/upgrade-4.0.0-alpha-2-to-4.0.0-beta-1.mysql.sql#L43]
{noformat}
UPDATE SERDES
SET SERDES.SLIB = "org.apache.hadoop.hive.kudu.KuduSerDe"
WHERE SERDE_ID IN (
SELECT SDS.SERDE_ID
FROM TBLS
INNER JOIN SDS ON TBLS.SD_ID = SDS.SD_ID
WHERE TBLS.TBL_ID IN (SELECT TBL_ID FROM TABLE_PARAMS WHERE PARAM_VALUE LIKE 
'%KuduStorageHandler%')
);{noformat}
This query is getting hung when sub-query is returning empty results in MySQL
 

 
{noformat}
MariaDB [test]> SELECT TBL_ID FROM table_params WHERE PARAM_VALUE LIKE 
'%KuduStorageHandler%';
Empty set (0.33 sec)
MariaDB [test]> SELECT sds.SERDE_ID FROM tbls LEFT JOIN sds ON tbls.SD_ID = 
sds.SD_ID WHERE tbls.TBL_ID IN (SELECT TBL_ID FROM table_params WHERE 
PARAM_VALUE LIKE '%KuduStorageHandler%');
Empty set (0.44 sec)
{noformat}
And the query kept on running for more than 20 minutes
{noformat}
MariaDB [test]> UPDATE serdes SET serdes.SLIB = 
"org.apache.hadoop.hive.kudu.KuduSerDe" WHERE SERDE_ID IN ( SELECT sds.SERDE_ID 
FROM tbls LEFT JOIN sds ON tbls.SD_ID = sds.SD_ID WHERE tbls.TBL_ID IN (SELECT 
TBL_ID FROM table_params WHERE PARAM_VALUE LIKE '%KuduStorageHandler%'));
^CCtrl-C -- query killed. Continuing normally.
ERROR 1317 (70100): Query execution was interrupted{noformat}
The explain extended looks like
{noformat}
MariaDB [test]> explain extended UPDATE serdes SET serdes.SLIB = 
"org.apache.hadoop.hive.kudu.KuduSerDe" WHERE SERDE_ID IN ( SELECT sds.SERDE_ID 
FROM tbls LEFT JOIN sds ON tbls.SD_ID = sds.SD_ID WHERE tbls.TBL_ID IN (SELECT 
TBL_ID FROM table_params WHERE PARAM_VALUE LIKE '%KuduStorageHandler%'));
+------+--------------------+--------------+--------+---------------------------+--------------+---------+-----------------+--------+----------+-------------+
| id   | select_type        | table        | type   | possible_keys             
| key          | key_len | ref             | rows   | filtered | Extra       |
+------+--------------------+--------------+--------+---------------------------+--------------+---------+-----------------+--------+----------+-------------+
|    1 | PRIMARY            | serdes       | index  | NULL                      
| PRIMARY      | 8       | NULL            | 401267 |   100.00 | Using where |
|    2 | DEPENDENT SUBQUERY | tbls         | index  | PRIMARY,TBLS_N50,TBLS_N49 
| TBLS_N50     | 9       | NULL            |  50921 |   100.00 | Using index |
|    2 | DEPENDENT SUBQUERY | <subquery3>  | eq_ref | distinct_key              
| distinct_key | 8       | func            |      1 |   100.00 |             |
|    2 | DEPENDENT SUBQUERY | sds          | eq_ref | PRIMARY                   
| PRIMARY      | 8       | test.tbls.SD_ID |      1 |   100.00 | Using where |
|    3 | MATERIALIZED       | table_params | ALL    | PRIMARY,TABLE_PARAMS_N49  
| NULL         | NULL    | NULL            | 356593 |   100.00 | Using where |
+------+--------------------+--------------+--------+---------------------------+--------------+---------+-----------------+--------+----------+-------------+
5 rows in set (0.00 sec){noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to