public void runPostAnalyzeHooks(HiveSemanticAnalyzerHookContext hookCtx,
      List<Task<?>> allRootTasks) throws HiveException {
    try {
      for (HiveSemanticAnalyzerHook hook :
          hooks.getHooks(SEMANTIC_ANALYZER_HOOK, HiveSemanticAnalyzerHook.class)) {
        hook.postAnalyze(hookCtx, allRootTasks);
      }
    } catch (HiveException e) {
      throw e;
    } catch (Exception e) {
      throw new HiveException("Error while invoking PostAnalyzeHooks:" + HiveStringUtils.stringifyException(e), e);
    }

  }
Dispatches {@link QueryLifeTimeHook#afterExecution(QueryLifeTimeHookContext, boolean)}.

@param command the Hive command that is being run
@param hookContext the {@link HookContext} of the command being run
@param executionError true if there was an error while executing the command, false otherwise
ql/src/java/org/apache/hadoop/hive/ql/HookRunner.java