From fa0079c02006d196d97456955ec83c36325885ce Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Sun, 13 Feb 2022 10:15:39 -0300 Subject: [PATCH] fix sql scanning without sqlx magic. --- basic/query.go | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/basic/query.go b/basic/query.go index ebdc0dc..bd3fda7 100644 --- a/basic/query.go +++ b/basic/query.go @@ -134,12 +134,22 @@ func (b *BasicRelay) QueryEvents(filter *nostr.Filter) (events []nostr.Event, er strings.Join(conditions, " AND ") + " ORDER BY created_at LIMIT 100") - err = b.DB.Select(&events, query, params...) + rows, err := b.DB.Query(query, params...) if err != nil && err != sql.ErrNoRows { log.Warn().Err(err).Interface("filter", filter).Str("query", query). Msg("failed to fetch events") - err = fmt.Errorf("failed to fetch events: %w", err) + return nil, fmt.Errorf("failed to fetch events: %w", err) } - return + for rows.Next() { + var evt nostr.Event + err := rows.Scan(&evt.ID, &evt.PubKey, &evt.CreatedAt, + &evt.Kind, &evt.Tags, &evt.Content, &evt.Sig) + if err != nil { + return nil, fmt.Errorf("failed to scan row: %w", err) + } + events = append(events, evt) + } + + return events, nil }