code: func (p *LogicalJoin) PruneColumns(parentUsedCols []*expression.Column) error {
  	leftCols, rightCols := p.extractUsedCols(parentUsedCols)
  
  	err := p.children[0].PruneColumns(leftCols)
  	if err != nil {
  		return err
  	}
  
  	err = p.children[1].PruneColumns(rightCols)
  	if err != nil {
  		return err
  	}
  
  	p.mergeSchema()
  	return nil
  }
docs: // PruneColumns implements LogicalPlan interface.