public void run(HookContext hookContext) {
    LogHelper console = SessionState.getConsole();

    if (console == null) {
      return;
    }

    QueryProperties queryProps = hookContext.getQueryPlan().getQueryProperties();

    if (queryProps != null) {
      console.printError("Has Join: " + queryProps.hasJoin());
      console.printError("Has Group By: " + queryProps.hasGroupBy());
      console.printError("Has Sort By: " + queryProps.hasSortBy());
      console.printError("Has Order By: " + queryProps.hasOrderBy());
      console.printError("Has Group By After Join: " + queryProps.hasJoinFollowedByGroupBy());
      console.printError("Uses Script: " + queryProps.usesScript());
      console.printError("Has Distribute By: " + queryProps.hasDistributeBy());
      console.printError("Has Cluster By: " + queryProps.hasClusterBy());
    }
  }
CheckQueryPropertiesHook.

This hook prints the values in the QueryProperties object contained in the QueryPlan
in the HookContext passed to the hook.
itests/util/src/main/java/org/apache/hadoop/hive/ql/hooks/CheckQueryPropertiesHook.java