Я использую стандартный пакет go sql для взаимодействия с AWS Афиной. Мой запрос возвращает для каждой записи uuid (строку) и массив писем.
Вот код:
package main
import (
"fmt"
"database/sql"
_ "github.com/segmentio/go-athena"
_"encoding/json"
)
type Contact struct {
userid string
emails []string
}
func main() {
fmt.Println("hello")
db, err := sql.Open("athena", "db=example")
if err != nil {
panic(err)
}
rows, err := db.Query("SELECT userid, transform(value.emails, x -> x.value) from database LIMIT 10")
// Returns
// Row 1: "abc-123", ["email1@gmail.com", "email2@gmail.com"]
// Row 2: "def-456", ["email3@gmail.com"]
if err != nil {
panic(err)
}
for rows.Next() {
var contact Contact
rows.Scan(&contact.userid, &contact.emails)
fmt.Println(contact)
}
}
Однако я получаю эту ошибку в for
l oop:
panic: unknown type `array` with value [email1@gmail.com]
Я озадачен упомянутым типом array
и не могу понять ошибку. Как я могу сопоставить список сообщений электронной почты, возвращенных к фрагменту строк в структуре контактов?