code: func (p *LogicalTableDual) PruneColumns(parentUsedCols []*expression.Column) error {
  	used, err := getUsedList(parentUsedCols, p.Schema())
  	if err != nil {
  		return err
  	}
  
  	for i := len(used) - 1; i >= 0; i-- {
  		if !used[i] {
  			p.schema.Columns = append(p.schema.Columns[:i], p.schema.Columns[i+1:]...)
  		}
  	}
  	for k, cols := range p.schema.TblID2Handle {
  		if p.schema.ColumnIndex(cols[0]) == -1 {
  			delete(p.schema.TblID2Handle, k)
  		}
  	}
  	return nil
  }
docs: // PruneColumns implements LogicalPlan interface.