code: public static List<DataSinkNode> createPreOptimizedPlan(Plan program) {
  		GraphCreatingVisitor graphCreator = new GraphCreatingVisitor(1, null);
  		program.accept(graphCreator);
  		return graphCreator.getSinks();
  	}
docs: This function performs only the first step to the compilation process - the creation of the optimizer
  representation of the plan. No estimations or enumerations of alternatives are done here.
  
  @param program The plan to generate the optimizer representation for.
  @return The optimizer representation of the plan, as a collection of all data sinks
  from the plan can be traversed.