mirror of
https://github.com/MeshCore-Beacon/beacon-server.git
synced 2026-10-16 00:49:57 +00:00
refactor(db): move the heard-IATA lookup into sqlc
This commit is contained in:
@@ -1316,6 +1316,21 @@ func (mr *MockQuerierMockRecorder) ListDirtyRollupHours(ctx, limit any) *gomock.
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDirtyRollupHours", reflect.TypeOf((*MockQuerier)(nil).ListDirtyRollupHours), ctx, limit)
|
||||
}
|
||||
|
||||
// ListHeardIATAs mocks base method.
|
||||
func (m *MockQuerier) ListHeardIATAs(ctx context.Context) ([]string, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "ListHeardIATAs", ctx)
|
||||
ret0, _ := ret[0].([]string)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// ListHeardIATAs indicates an expected call of ListHeardIATAs.
|
||||
func (mr *MockQuerierMockRecorder) ListHeardIATAs(ctx any) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListHeardIATAs", reflect.TypeOf((*MockQuerier)(nil).ListHeardIATAs), ctx)
|
||||
}
|
||||
|
||||
// ListIATAs mocks base method.
|
||||
func (m *MockQuerier) ListIATAs(ctx context.Context) ([]db.IataCode, error) {
|
||||
m.ctrl.T.Helper()
|
||||
|
||||
@@ -200,6 +200,7 @@ type Querier interface {
|
||||
// Only complete hours whose raw rows are still intact can be re-rolled. Queued missing hours
|
||||
// wait: their first roll consumes the entry only if the entry predates its snapshot.
|
||||
ListDirtyRollupHours(ctx context.Context, limit int32) ([]pgtype.Timestamptz, error)
|
||||
ListHeardIATAs(ctx context.Context) ([]string, error)
|
||||
ListIATAs(ctx context.Context) ([]IataCode, error)
|
||||
// Only one branch runs. Keep the IATA range ordered by the composite index:
|
||||
// generic plans can otherwise prefer scanning the global timestamp index.
|
||||
|
||||
@@ -2912,6 +2912,30 @@ func (q *Queries) ListChannelsAfter(ctx context.Context, arg ListChannelsAfterPa
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const listHeardIATAs = `-- name: ListHeardIATAs :many
|
||||
SELECT DISTINCT last_iata::text AS iata FROM observers WHERE last_iata IS NOT NULL ORDER BY 1
|
||||
`
|
||||
|
||||
func (q *Queries) ListHeardIATAs(ctx context.Context) ([]string, error) {
|
||||
rows, err := q.db.Query(ctx, listHeardIATAs)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
items := []string{}
|
||||
for rows.Next() {
|
||||
var iata string
|
||||
if err := rows.Scan(&iata); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, iata)
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const listIATAs = `-- name: ListIATAs :many
|
||||
SELECT iata, display_name, approx_lat, approx_lng, added_at, border FROM iata_codes ORDER BY iata
|
||||
`
|
||||
|
||||
Reference in New Issue
Block a user