Cache column names in stdlib Rows

pull/784/head
zikaeroh 2020-06-28 16:18:13 -07:00
parent 3568b908c0
commit 84510c4590
1 changed files with 10 additions and 5 deletions

View File

@ -412,15 +412,20 @@ type Rows struct {
valueFuncs []rowValueFunc
skipNext bool
skipNextMore bool
columnNames []string
}
func (r *Rows) Columns() []string {
fieldDescriptions := r.rows.FieldDescriptions()
names := make([]string, 0, len(fieldDescriptions))
for _, fd := range fieldDescriptions {
names = append(names, string(fd.Name))
if r.columnNames == nil {
fields := r.rows.FieldDescriptions()
r.columnNames = make([]string, len(fields))
for i, fd := range fields {
r.columnNames[i] = string(fd.Name)
}
return names
}
return r.columnNames
}
// ColumnTypeDatabaseTypeName returns the database system type name. If the name is unknown the OID is returned.