3 ms·
It needs reflect in order to translate struct field names into column names at the very least
by arwineap 5y ago
It needs reflect in order to translate struct field names into column names at the very least
- benhoyt 5y agosqlc doesn't quite work that way (though "sqlx" and other packages do). sqlc generates code at build time that avoids reflect by using database/sql's Rows.Scan() with pointers to fields (see the link above): var i Author if err := rows.Scan(&i.ID, &i.Bio, &i.BirthYear); ... This generated code is exactly what you'd write by hand if you were using database/sql directly. As earthboundkid points out, database/sql itself may use reflection under the hood to convert the individual fields (though the common cases are done without reflect, using ordinary type switches: https://github.com/golang/go/blob/d62866ef793872779c9011161e51b9c805fcb73d/src/database/sql/convert.go#L220 https://github.com/golang/go/blob/d62866ef793872779c9011161e...).