[ 
https://issues.apache.org/jira/browse/HIVE-26446?focusedWorklogId=801252&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-801252
 ]

ASF GitHub Bot logged work on HIVE-26446:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 17/Aug/22 08:08
            Start Date: 17/Aug/22 08:08
    Worklog Time Spent: 10m 
      Work Description: deniskuzZ commented on code in PR #3499:
URL: https://github.com/apache/hive/pull/3499#discussion_r947584718


##########
ql/src/test/org/apache/hadoop/hive/ql/hooks/TestHiveProtoLoggingHook.java:
##########
@@ -322,4 +338,63 @@ private void assertOtherInfo(HiveHookEventProto event, 
OtherInfoType key, String
       Assert.assertEquals(value, val);
     }
   }
+
+  private void testTablesWritten(WriteEntity we, boolean isPartitioned) throws 
Exception {
+    String query = isPartitioned ?
+            "insert into test_partition partition(dt = '20220102', lable = 
'test1') values('20220103', 'banana');" :
+            "insert into default.testTable1 values('ab')";
+    HashSet<WriteEntity> tableWritten = new HashSet<>();
+    tableWritten.add(we);
+    QueryState state = new QueryState.Builder().withHiveConf(conf).build();
+    @SuppressWarnings("serial")
+    QueryPlan queryPlan = new QueryPlan(HiveOperation.QUERY) {
+    };
+    queryPlan.setQueryId("test_queryId");
+    queryPlan.setQueryStartTime(1234L);
+    queryPlan.setQueryString(query);
+    queryPlan.setRootTasks(new ArrayList<>());
+    queryPlan.setInputs(new HashSet<>());
+    queryPlan.setOutputs(tableWritten);
+    PerfLogger perf = PerfLogger.getPerfLogger(conf, true);
+    HookContext ctx = new HookContext(queryPlan, state, null, "test_user", 
"192.168.10.11",
+            "hive_addr", "test_op_id", "test_session_id", "test_thread_id", 
true, perf, null);
+
+    ctx.setHookType(HookType.PRE_EXEC_HOOK);
+    EventLogger evtLogger = new EventLogger(conf, SystemClock.getInstance());
+    evtLogger.handle(ctx);
+    evtLogger.shutdown();
+
+    HiveHookEventProto event = loadEvent(conf, tmpFolder);
+
+    Assert.assertEquals(EventType.QUERY_SUBMITTED.name(), 
event.getEventType());
+    Assert.assertEquals(we.getTable().getFullyQualifiedName(), 
event.getTablesWritten(0));
+  }
+
+  private Table newTable(boolean isPartitioned) {

Review Comment:
   sure





Issue Time Tracking
-------------------

    Worklog Id:     (was: 801252)
    Time Spent: 1h 10m  (was: 1h)

> HiveProtoLoggingHook fails to populate TablesWritten field for partitioned 
> tables.
> ----------------------------------------------------------------------------------
>
>                 Key: HIVE-26446
>                 URL: https://issues.apache.org/jira/browse/HIVE-26446
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Simhadri Govindappa
>            Assignee: Simhadri Govindappa
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 1h 10m
>  Remaining Estimate: 0h
>
> From 
> [here|https://github.com/apache/hive/blob/master/ql/src/java/org/apache/hadoop/hive/ql/hooks/HiveProtoLoggingHook.java#L490]
>   :
> {code:java}
> if (entity.getType() == Entity.Type.TABLE) {code}
> entity.getType() returns the value as  "PARTITION" for partitioned tables 
> instead of "TABLE" as a result the above check returns false and the 
> tablesWritten field in the hiveProtologger is left unpopulated for 
> partitioned tables.
>  



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

Reply via email to