public void mergeDependency(Operator<? extends OperatorDesc> op,
        ColumnInfo ci, Dependency dep) {
      Dependency old_dep = getDependency(op, ci);
      if (old_dep == null) {
        putDependency(op, ci, dep);
      } else {
        LineageInfo.DependencyType new_type =
          LineageCtx.getNewDependencyType(old_dep.getType(),
              LineageInfo.DependencyType.EXPRESSION);
        old_dep.setType(new_type);
        Set<BaseColumnInfo> bci_set = new LinkedHashSet<BaseColumnInfo>(old_dep.getBaseCols());
        bci_set.addAll(dep.getBaseCols());
        old_dep.setBaseCols(bci_set);
        // TODO: Fix the expressions later.
        old_dep.setExpr(null);
      }
    }
Merges the new dependencies in dep to the existing dependencies
of (op, ci).

@param op The operator of the column whose dependency is being modified.
@param ci The column info of the associated column.
@param dep The new dependency.
ql/src/java/org/apache/hadoop/hive/ql/optimizer/lineage/LineageCtx.java