Use our common SortAndUnique

This commit is contained in:
Till Faelligen 2023-05-30 17:40:27 +02:00
parent 7466d179d5
commit 02ff5ab606
No known key found for this signature in database
GPG key ID: ACCDC9606D472758
2 changed files with 4 additions and 8 deletions

View file

@ -18,11 +18,10 @@ import (
"context" "context"
"database/sql" "database/sql"
"fmt" "fmt"
"sort"
"github.com/lib/pq" "github.com/lib/pq"
"github.com/matrix-org/dendrite/internal" "github.com/matrix-org/dendrite/internal"
"golang.org/x/exp/slices" "github.com/matrix-org/util"
) )
func UpDropEventReferenceSHAEvents(ctx context.Context, tx *sql.Tx) error { func UpDropEventReferenceSHAEvents(ctx context.Context, tx *sql.Tx) error {
@ -83,8 +82,7 @@ func UpDropEventReferenceSHAPrevEvents(ctx context.Context, tx *sql.Tx) error {
return dupeNIDsRows.Err() return dupeNIDsRows.Err()
} }
// dedupe NIDs // dedupe NIDs
sort.Sort(nids(dupeNIDs)) dupeNIDs = dupeNIDs[:util.SortAndUnique(nids(dupeNIDs))]
dupeNIDs = slices.Compact(dupeNIDs)
// now that we have all NIDs, check which room they belong to // now that we have all NIDs, check which room they belong to
var roomCount int var roomCount int
err = tx.QueryRowContext(ctx, `SELECT count(distinct room_nid) FROM roomserver_events WHERE event_nid = ANY($1)`, pq.Array(dupeNIDs)).Scan(&roomCount) err = tx.QueryRowContext(ctx, `SELECT count(distinct room_nid) FROM roomserver_events WHERE event_nid = ANY($1)`, pq.Array(dupeNIDs)).Scan(&roomCount)

View file

@ -18,11 +18,10 @@ import (
"context" "context"
"database/sql" "database/sql"
"fmt" "fmt"
"sort"
"github.com/lib/pq" "github.com/lib/pq"
"github.com/matrix-org/dendrite/internal" "github.com/matrix-org/dendrite/internal"
"golang.org/x/exp/slices" "github.com/matrix-org/util"
) )
func UpDropEventReferenceSHA(ctx context.Context, tx *sql.Tx) error { func UpDropEventReferenceSHA(ctx context.Context, tx *sql.Tx) error {
@ -97,8 +96,7 @@ func UpDropEventReferenceSHAPrevEvents(ctx context.Context, tx *sql.Tx) error {
return dupeNIDsRows.Err() return dupeNIDsRows.Err()
} }
// dedupe NIDs // dedupe NIDs
sort.Sort(nids(dupeNIDs)) dupeNIDs = dupeNIDs[:util.SortAndUnique(nids(dupeNIDs))]
dupeNIDs = slices.Compact(dupeNIDs)
// now that we have all NIDs, check which room they belong to // now that we have all NIDs, check which room they belong to
var roomCount int var roomCount int
err = tx.QueryRowContext(ctx, `SELECT count(distinct room_nid) FROM roomserver_events WHERE event_nid IN ($1)`, pq.Array(dupeNIDs)).Scan(&roomCount) err = tx.QueryRowContext(ctx, `SELECT count(distinct room_nid) FROM roomserver_events WHERE event_nid IN ($1)`, pq.Array(dupeNIDs)).Scan(&roomCount)