[ https://issues.apache.org/jira/browse/HIVE-26095?focusedWorklogId=751201&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-751201 ]
ASF GitHub Bot logged work on HIVE-26095: ----------------------------------------- Author: ASF GitHub Bot Created on: 31/Mar/22 20:08 Start Date: 31/Mar/22 20:08 Worklog Time Spent: 10m Work Description: zabetak commented on a change in pull request #3156: URL: https://github.com/apache/hive/pull/3156#discussion_r839977437 ########## 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: To avoid the risk we can remove the prefix check and keep only the length check. Alternatively, we can simply `assertNotNull` for the queryId and nothing more. What do you prefer? -- 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: gitbox-unsubscr...@hive.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking ------------------- Worklog Id: (was: 751201) Time Spent: 1h (was: 50m) > 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 > 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)