[
https://issues.apache.org/jira/browse/HIVE-26446?focusedWorklogId=797985&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-797985
]
ASF GitHub Bot logged work on HIVE-26446:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 04/Aug/22 12:41
Start Date: 04/Aug/22 12:41
Worklog Time Spent: 10m
Work Description: deniskuzZ commented on code in PR #3499:
URL: https://github.com/apache/hive/pull/3499#discussion_r937732530
##########
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:
would it be better to use builder:
````
TableBuilder builder =
new
TableBuilder().setDbName(DB_NAME).setTableName(tableName).addCol("test_id",
"int", "test col id")
.addCol("test_value", "string", "test col
value").setPartCols(partCols)
.setType(tableType).setLocation(location).setTemporary(true);
if (tableParams != null) {
builder.setTableParams(tableParams);
}
builder.build(conf);
````
Issue Time Tracking
-------------------
Worklog Id: (was: 797985)
Time Spent: 20m (was: 10m)
> 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: 20m
> 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)