code: func (la *LogicalApply) PruneColumns(parentUsedCols []*expression.Column) error {
  	leftCols, rightCols := la.extractUsedCols(parentUsedCols)
  
  	err := la.children[1].PruneColumns(rightCols)
  	if err != nil {
  		return err
  	}
  
  	la.corCols = extractCorColumnsBySchema(la.children[1], la.children[0].Schema())
  	for _, col := range la.corCols {
  		leftCols = append(leftCols, &col.Column)
  	}
  
  	err = la.children[0].PruneColumns(leftCols)
  	if err != nil {
  		return err
  	}
  
  	la.mergeSchema()
  	return nil
  }
docs: // PruneColumns implements LogicalPlan interface.