This is an automated email from the ASF dual-hosted git repository.

dkuzmenko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/master by this push:
     new d06957f254e HIVE-26480: Improve SYS.COMPACTIONS and SYS.TRANSACTIONS 
views (Laszlo Vegh, reviewed by Denys Kuzmenko)
d06957f254e is described below

commit d06957f254e026e719f30027d161264be43386b0
Author: veghlaci05 <[email protected]>
AuthorDate: Wed Aug 31 11:15:53 2022 +0200

    HIVE-26480: Improve SYS.COMPACTIONS and SYS.TRANSACTIONS views (Laszlo 
Vegh, reviewed by Denys Kuzmenko)
    
    Closes #3529
---
 .../hive/hive-schema-4.0.0-alpha-2.hive.sql        | 18 ++++----
 ...upgrade-4.0.0-alpha-1-to-4.0.0-alpha-2.hive.sql | 51 +++++++++++++++++++---
 ql/src/test/queries/clientpositive/sysdb.q         |  2 +-
 3 files changed, 54 insertions(+), 17 deletions(-)

diff --git a/metastore/scripts/upgrade/hive/hive-schema-4.0.0-alpha-2.hive.sql 
b/metastore/scripts/upgrade/hive/hive-schema-4.0.0-alpha-2.hive.sql
index c1d16486a53..815379a2479 100644
--- a/metastore/scripts/upgrade/hive/hive-schema-4.0.0-alpha-2.hive.sql
+++ b/metastore/scripts/upgrade/hive/hive-schema-4.0.0-alpha-2.hive.sql
@@ -1221,15 +1221,15 @@ SELECT
   CASE WHEN CC_WORKER_ID IS NULL THEN cast (null as string) ELSE 
split(CC_WORKER_ID,"-")[0] END,
   CASE WHEN CC_WORKER_ID IS NULL THEN cast (null as string) ELSE 
split(CC_WORKER_ID,"-")[size(split(CC_WORKER_ID,"-"))-1] END,
   CC_WORKER_VERSION,
-  CC_ENQUEUE_TIME,
-  CC_START,
+  FROM_UNIXTIME(CC_ENQUEUE_TIME DIV 1000),
+  FROM_UNIXTIME(CC_START DIV 1000),
   CASE WHEN CC_END IS NULL THEN cast (null as string) ELSE CC_END-CC_START END,
   CC_HADOOP_JOB_ID,
   CC_RUN_AS,
   CC_ERROR_MESSAGE,
   CC_NEXT_TXN_ID,
   CC_TXN_ID,
-  CC_COMMIT_TIME,
+  FROM_UNIXTIME(CC_COMMIT_TIME DIV 1000),
   CC_HIGHEST_WRITE_ID,
   CASE WHEN CC_INITIATOR_ID IS NULL THEN cast (null as string) ELSE 
split(CC_INITIATOR_ID,"-")[0] END,
   CASE WHEN CC_INITIATOR_ID IS NULL THEN cast (null as string) ELSE 
split(CC_INITIATOR_ID,"-")[size(split(CC_INITIATOR_ID,"-"))-1] END,
@@ -1249,20 +1249,20 @@ SELECT
   CASE WHEN CQ_WORKER_ID IS NULL THEN NULL ELSE split(CQ_WORKER_ID,"-")[0] END,
   CASE WHEN CQ_WORKER_ID IS NULL THEN NULL ELSE 
split(CQ_WORKER_ID,"-")[size(split(CQ_WORKER_ID,"-"))-1] END,
   CQ_WORKER_VERSION,
-  CQ_ENQUEUE_TIME,
-  CQ_START,
+  FROM_UNIXTIME(CQ_ENQUEUE_TIME DIV 1000),
+  FROM_UNIXTIME(CQ_START DIV 1000),
   cast (null as string),
   CQ_HADOOP_JOB_ID,
   CQ_RUN_AS,
   CQ_ERROR_MESSAGE,
   CQ_NEXT_TXN_ID,
   CQ_TXN_ID,
-  CQ_COMMIT_TIME,
+  FROM_UNIXTIME(CQ_COMMIT_TIME DIV 1000),
   CQ_HIGHEST_WRITE_ID,
   CASE WHEN CQ_INITIATOR_ID IS NULL THEN NULL ELSE 
split(CQ_INITIATOR_ID,"-")[0] END,
   CASE WHEN CQ_INITIATOR_ID IS NULL THEN NULL ELSE 
split(CQ_INITIATOR_ID,"-")[size(split(CQ_INITIATOR_ID,"-"))-1] END,
   CQ_INITIATOR_VERSION,
-  CQ_CLEANER_START,
+  FROM_UNIXTIME(CQ_CLEANER_START DIV 1000),
   CQ_TBLPROPERTIES
 FROM COMPACTION_QUEUE;
 
@@ -1398,8 +1398,8 @@ CREATE OR REPLACE VIEW `TRANSACTIONS` (
 SELECT DISTINCT
     T.`TXN_ID`,
     CASE WHEN T.`TXN_STATE` = 'o' THEN 'open' WHEN T.`TXN_STATE` = 'a' THEN 
'aborted' WHEN T.`TXN_STATE` = 'c' THEN 'commited' ELSE 'UNKNOWN' END  AS 
TXN_STATE,
-    FROM_UNIXTIME(T.`TXN_STARTED`) AS TXN_STARTED,
-    FROM_UNIXTIME(T.`TXN_LAST_HEARTBEAT`) AS TXN_LAST_HEARTBEAT,
+    FROM_UNIXTIME(T.`TXN_STARTED` DIV 1000) AS TXN_STARTED,
+    FROM_UNIXTIME(T.`TXN_LAST_HEARTBEAT` DIV 1000) AS TXN_LAST_HEARTBEAT,
     T.`TXN_USER`,
     T.`TXN_HOST`,
     T.`TXN_AGENT_INFO`,
diff --git 
a/metastore/scripts/upgrade/hive/upgrade-4.0.0-alpha-1-to-4.0.0-alpha-2.hive.sql
 
b/metastore/scripts/upgrade/hive/upgrade-4.0.0-alpha-1-to-4.0.0-alpha-2.hive.sql
index ac520136821..8c5f299804a 100644
--- 
a/metastore/scripts/upgrade/hive/upgrade-4.0.0-alpha-1-to-4.0.0-alpha-2.hive.sql
+++ 
b/metastore/scripts/upgrade/hive/upgrade-4.0.0-alpha-1-to-4.0.0-alpha-2.hive.sql
@@ -125,6 +125,7 @@ FROM \"COMPLETED_COMPACTIONS\"
 "
 );
 
+--HIVE-26480
 CREATE OR REPLACE VIEW `COMPACTIONS`
 (
   `C_ID`,
@@ -165,15 +166,15 @@ SELECT
     CASE WHEN CC_WORKER_ID IS NULL THEN cast (null as string) ELSE 
split(CC_WORKER_ID,"-")[0] END,
     CASE WHEN CC_WORKER_ID IS NULL THEN cast (null as string) ELSE 
split(CC_WORKER_ID,"-")[size(split(CC_WORKER_ID,"-"))-1] END,
     CC_WORKER_VERSION,
-    CC_ENQUEUE_TIME,
-    CC_START,
+    FROM_UNIXTIME(CC_ENQUEUE_TIME DIV 1000),
+    FROM_UNIXTIME(CC_START DIV 1000),
     CASE WHEN CC_END IS NULL THEN cast (null as string) ELSE CC_END-CC_START 
END,
   CC_HADOOP_JOB_ID,
   CC_RUN_AS,
   CC_ERROR_MESSAGE,
   CC_NEXT_TXN_ID,
   CC_TXN_ID,
-  CC_COMMIT_TIME,
+  FROM_UNIXTIME(CC_COMMIT_TIME DIV 1000),
   CC_HIGHEST_WRITE_ID,
   CASE WHEN CC_INITIATOR_ID IS NULL THEN cast (null as string) ELSE 
split(CC_INITIATOR_ID,"-")[0] END,
   CASE WHEN CC_INITIATOR_ID IS NULL THEN cast (null as string) ELSE 
split(CC_INITIATOR_ID,"-")[size(split(CC_INITIATOR_ID,"-"))-1] END,
@@ -193,23 +194,59 @@ SELECT
     CASE WHEN CQ_WORKER_ID IS NULL THEN NULL ELSE split(CQ_WORKER_ID,"-")[0] 
END,
     CASE WHEN CQ_WORKER_ID IS NULL THEN NULL ELSE 
split(CQ_WORKER_ID,"-")[size(split(CQ_WORKER_ID,"-"))-1] END,
     CQ_WORKER_VERSION,
-    CQ_ENQUEUE_TIME,
-    CQ_START,
+    FROM_UNIXTIME(CQ_ENQUEUE_TIME DIV 1000),
+    FROM_UNIXTIME(CQ_START DIV 1000),
     cast (null as string),
     CQ_HADOOP_JOB_ID,
     CQ_RUN_AS,
     CQ_ERROR_MESSAGE,
     CQ_NEXT_TXN_ID,
     CQ_TXN_ID,
-    CQ_COMMIT_TIME,
+    FROM_UNIXTIME(CQ_COMMIT_TIME DIV 1000),
     CQ_HIGHEST_WRITE_ID,
     CASE WHEN CQ_INITIATOR_ID IS NULL THEN NULL ELSE 
split(CQ_INITIATOR_ID,"-")[0] END,
   CASE WHEN CQ_INITIATOR_ID IS NULL THEN NULL ELSE 
split(CQ_INITIATOR_ID,"-")[size(split(CQ_INITIATOR_ID,"-"))-1] END,
   CQ_INITIATOR_VERSION,
-  CQ_CLEANER_START,
+  FROM_UNIXTIME(CQ_CLEANER_START DIV 1000),
   CQ_TBLPROPERTIES
 FROM COMPACTION_QUEUE;
 
+CREATE OR REPLACE VIEW `TRANSACTIONS` (
+   `TXN_ID`,
+   `STATE`,
+   `STARTED`,
+   `LAST_HEARTBEAT`,
+   `USER`,
+   `HOST`,
+   `AGENT_INFO`,
+   `META_INFO`,
+   `HEARTBEAT_COUNT`,
+   `TYPE`,
+   `TC_DATABASE`,
+   `TC_TABLE`,
+   `TC_PARTITION`,
+   `TC_OPERATION_TYPE`,
+   `TC_WRITEID`
+) AS
+SELECT DISTINCT
+    T.`TXN_ID`,
+    CASE WHEN T.`TXN_STATE` = 'o' THEN 'open' WHEN T.`TXN_STATE` = 'a' THEN 
'aborted' WHEN T.`TXN_STATE` = 'c' THEN 'commited' ELSE 'UNKNOWN' END  AS 
TXN_STATE,
+    FROM_UNIXTIME(T.`TXN_STARTED` DIV 1000) AS TXN_STARTED,
+    FROM_UNIXTIME(T.`TXN_LAST_HEARTBEAT` DIV 1000) AS TXN_LAST_HEARTBEAT,
+    T.`TXN_USER`,
+    T.`TXN_HOST`,
+    T.`TXN_AGENT_INFO`,
+    T.`TXN_META_INFO`,
+    T.`TXN_HEARTBEAT_COUNT`,
+    CASE WHEN T.`TXN_TYPE` = 0 THEN 'DEFAULT' WHEN T.`TXN_TYPE` = 1 THEN 
'REPL_CREATED' WHEN T.`TXN_TYPE` = 2 THEN 'READ_ONLY' WHEN T.`TXN_TYPE` = 3 
THEN 'COMPACTION' END AS TXN_TYPE,
+    TC.`TC_DATABASE`,
+    TC.`TC_TABLE`,
+    TC.`TC_PARTITION`,
+    CASE WHEN TC.`TC_OPERATION_TYPE` = 's' THEN 'SELECT' WHEN 
TC.`TC_OPERATION_TYPE` = 'i' THEN 'INSERT' WHEN TC.`TC_OPERATION_TYPE` = 'u' 
THEN 'UPDATE' WHEN TC.`TC_OPERATION_TYPE` = 'c' THEN 'COMPACT' END AS 
OPERATION_TYPE,
+    TC.`TC_WRITEID`
+FROM `SYS`.`TXNS` AS T
+    LEFT JOIN `SYS`.`TXN_COMPONENTS` AS TC ON T.`TXN_ID` = TC.`TC_TXNID`;
+
 USE INFORMATION_SCHEMA;
 
 create or replace view SCHEDULED_EXECUTIONS as
diff --git a/ql/src/test/queries/clientpositive/sysdb.q 
b/ql/src/test/queries/clientpositive/sysdb.q
index 4495a2e6ce0..cec1819a27f 100644
--- a/ql/src/test/queries/clientpositive/sysdb.q
+++ b/ql/src/test/queries/clientpositive/sysdb.q
@@ -1,7 +1,7 @@
 --! qt:dataset:src,part,srcbucket:ONLY
 --! qt:sysdb
 -- Mask the enqueue time which is based on current time
---! 
qt:replace:/(initiated\s+NULL\s+NULL\s+NULL\s+)[0-9]*(\s+NULL)/$1#Masked#$2/
+--! qt:replace:/(initiated\s+NULL\s+NULL\s+NULL\s+)[0-9\-]* 
[0-9:]*(\s+NULL)/$1#Masked#$2/
 -- Mask the hostname in compaction view
 --! qt:replace:/(NULL\s+)[\S]*(\s+manual)/$1#Masked#$2/
 

Reply via email to