{{- define "signature" -}} Get_{{ .Suffix }}({{ ctxparam .Args }}) ( {{ param .Row }}, err error) {{- end -}} {{- define "invoke" -}} Get_{{ .Suffix }}({{ ctxarg .Args }}) {{- end -}} {{- define "body" }} {{ embedplaceholders .Info }} {{ embedsql .Info "__embed_stmt" }} var __values []interface{} {{ embedvalues .Args "__values" }} var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt) obj.logStmt(__stmt, __values...) __rows, err := obj.driver.QueryContext(ctx, __stmt, __values...) if err != nil { return nil, obj.makeErr(err) } defer __rows.Close() if !__rows.Next() { if err := __rows.Err(); err != nil { return nil, obj.makeErr(err) } return nil, makeErr(sql.ErrNoRows) } {{ init .Row }} err = __rows.Scan({{ addrof (flatten .Row) }}) if err != nil { return nil, obj.makeErr(err) } if __rows.Next() { return nil, tooManyRows({{ printf "%q" .Suffix }}) } if err := __rows.Err(); err != nil { return nil, obj.makeErr(err) } return {{ arg .Row }}, nil {{ end -}}