code: func eliminatePhysicalProjection(p PhysicalPlan) PhysicalPlan {
  	oldSchema := p.Schema()
  	newRoot := doPhysicalProjectionElimination(p)
  	newCols := newRoot.Schema().Columns
  	for i, oldCol := range oldSchema.Columns {
  		oldCol.Index = newCols[i].Index
  		newRoot.Schema().Columns[i] = oldCol
  	}
  	return newRoot
  }
docs: // eliminatePhysicalProjection should be called after physical optimization to
  // eliminate the redundant projection left after logical projection elimination.