Использование go -pg для извлечения виртуальных столбцов из Postgres - PullRequest
0 голосов
/ 28 февраля 2020

Я использую go-pg (https://github.com/go-pg/pg) и этот код:

type Book struct {
  id   int
  name string
}

var books []Book
err := db.Model(&books).Select()

и все работает хорошо, но мне нужно добавить «виртуальный» столбец, подобный этому :

concat ('info:', 'id:', id, '...') AS info

и я пытался использовать:

query.ColumnExpr("concat ('info:', 'id:', id, '...') AS info")

, но:

  1. go -pg жалуется на: error="pg: can't find column=info in model=Book (try discard_unknown_columns)"

  2. go -pg больше не включает столбцы id и name в запросе: concat... ONLY!

Я могу это понять, потому что теперь go -pg не знает, как связывать данные, но мне действительно нужна та строка, которую я могу извлечь только из БД.

Есть ли способ?

Могу ли я использовать пользовательский тип, подобный приведенному ниже?

type CustomBook struct {
  Info string
  Book
}

Имеет ли это смысл?

...