[
https://issues.apache.org/jira/browse/HIVE-26095?focusedWorklogId=751484&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-751484
]
ASF GitHub Bot logged work on HIVE-26095:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 01/Apr/22 09:42
Start Date: 01/Apr/22 09:42
Worklog Time Spent: 10m
Work Description: kasakrisz commented on a change in pull request #3156:
URL: https://github.com/apache/hive/pull/3156#discussion_r840413959
##########
File path:
service/src/test/org/apache/hive/service/cli/operation/TestQueryLifeTimeHooksWithSQLOperation.java
##########
@@ -110,6 +118,45 @@ public void afterExecution(QueryLifeTimeHookContext ctx,
boolean hasError) {
assertNull(ctx.getHookContext().getException());
assertNotNull(ctx.getHookContext().getQueryInfo());
assertNotNull(ctx.getHookContext().getQueryInfo().getQueryDisplay());
+ assertQueryId(ctx.getQueryId());
}
}
+
+ /**
+ * Asserts that the specified query id exists and has the expected prefix
and size.
+ *
+ * <p>
+ * A query id looks like below:
+ * <pre>
+ * username_20220330093338_dab90f30-5e79-463d-8359-0d2fff57effa
+ * </pre>
+ * and we can accurately predict how the prefix should look like. T
+ * </p>
+ *
+ * @param actualQueryId the query id to verify
+ */
+ private static void assertQueryId(String actualQueryId) {
+ assertNotNull(actualQueryId);
+ String expectedIdPrefix = makeQueryIdStablePrefix();
+ String actualIdPrefix = actualQueryId.substring(0,
expectedIdPrefix.length());
+ assertEquals(expectedIdPrefix, actualIdPrefix);
+ assertEquals(expectedIdPrefix.length() + 41, actualQueryId.length());
+ }
+
+ /**
+ * Makes a query id prefix that is stable for an hour. The prefix changes
every hour but this is enough to guarantee
Review comment:
If getting the queryId from conf is sufficient the new API is not
necessarily needed. I think sharing data via config between modules is not a
nice solution but that would be a different project to get rid of that.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 751484)
Time Spent: 1h 50m (was: 1h 40m)
> Add queryid in QueryLifeTimeHookContext
> ---------------------------------------
>
> Key: HIVE-26095
> URL: https://issues.apache.org/jira/browse/HIVE-26095
> Project: Hive
> Issue Type: New Feature
> Components: Hooks
> Reporter: Stamatis Zampetakis
> Assignee: Stamatis Zampetakis
> Priority: Major
> Labels: pull-request-available
> Fix For: 4.0.0-alpha-2
>
> Time Spent: 1h 50m
> Remaining Estimate: 0h
>
> A
> [QueryLifeTimeHook|https://github.com/apache/hive/blob/6c0b86ef0cfc67c5acb3468408e1d46fa6ef8024/ql/src/java/org/apache/hadoop/hive/ql/hooks/QueryLifeTimeHook.java]
> is executed various times in the life-cycle of a query but it is not always
> possible to obtain the id of the query. The query id is inside the
> {{HookContext}} but the latter is not always available notably during
> compilation.
> The query id is useful for many purposes as it is the only way to uniquely
> identify the query/command that is currently running. It is also the only way
> to match together events appearing in before and after methods.
> The goal of this jira is to add the query id in
> [QueryLifeTimeHookContext|https://github.com/apache/hive/blob/6c0b86ef0cfc67c5acb3468408e1d46fa6ef8024/ql/src/java/org/apache/hadoop/hive/ql/hooks/QueryLifeTimeHookContext.java]
> and make it available during all life-cycle events.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)