sqlite: Ensure we return exactly the number of events found in the database

Previously we would return exactly the number of *requested* events, which
meant that several zero-initialised events would bubble through the system,
failing at JSON serialisation time.
This commit is contained in:
Kegan Dougal 2020-02-19 17:03:18 +00:00
parent 07128b8423
commit 18b0889a25

View file

@ -253,12 +253,13 @@ func (d *Database) Events(
) ([]types.Event, error) {
var eventJSONs []eventJSONPair
var err error
results := make([]types.Event, len(eventNIDs))
var results []types.Event
err = common.WithTransaction(d.db, func(txn *sql.Tx) error {
eventJSONs, err = d.statements.bulkSelectEventJSON(ctx, txn, eventNIDs)
if err != nil || len(eventJSONs) == 0 {
return nil
}
results = make([]types.Event, len(eventJSONs))
for i, eventJSON := range eventJSONs {
result := &results[i]
result.EventNID = eventJSON.EventNID