public void deriveLlap(Configuration conf, boolean isExecDriver) {
    boolean hasLlap = false, hasNonLlap = false, hasAcid = false, hasCacheOnly = false;
    // Assume the IO is enabled on the daemon by default. We cannot reasonably check it here.
    boolean isLlapOn = HiveConf.getBoolVar(conf, ConfVars.LLAP_IO_ENABLED, llapMode);
    boolean canWrapAny = false, doCheckIfs = false;
    if (isLlapOn) {
      // We can wrap inputs if the execution is vectorized, or if we use a wrapper.
      canWrapAny = Utilities.getIsVectorized(conf, this);
      // ExecDriver has no plan path, so we cannot derive VRB stuff for the wrapper.
      if (!canWrapAny && !isExecDriver) {
        canWrapAny = HiveConf.getBoolVar(conf, ConfVars.LLAP_IO_NONVECTOR_WRAPPER_ENABLED);
        doCheckIfs = true;
      }
    }
    boolean hasPathToPartInfo = (pathToPartitionInfo != null && !pathToPartitionInfo.isEmpty());
    if (hasPathToPartInfo) {
      for (PartitionDesc part : pathToPartitionInfo.values()) {
        Class<? extends InputFormat> inputFormatClass = part.getInputFileFormatClass();
        boolean isUsingLlapIo = canWrapAny && (HiveInputFormat.canWrapForLlap(inputFormatClass, doCheckIfs)
                || HiveInputFormat.checkInputFormatForLlapEncode(conf, inputFormatClass.getCanonicalName()));
        if (isUsingLlapIo) {
          if (part.getTableDesc() != null &&
              AcidUtils.isTablePropertyTransactional(part.getTableDesc().getProperties())) {
            hasAcid = true;
          } else {
            hasLlap = true;
          }
        } else if (isLlapOn && HiveInputFormat.canInjectCaches(inputFormatClass,
            Utilities.getIsVectorized(conf, this))) {
          hasCacheOnly = true;
        } else {
          hasNonLlap = true;
        }
      }
    }

    llapIoDesc = deriveLlapIoDescString(
        isLlapOn, canWrapAny, hasPathToPartInfo, hasLlap, hasNonLlap, hasAcid, hasCacheOnly);
  }
Derive additional attributes to be rendered by EXPLAIN.
TODO: this method is relied upon by custom input formats to set jobconf properties.
      This is madness? - This is Hive Storage Handlers!
ql/src/java/org/apache/hadoop/hive/ql/plan/MapWork.java