deletes duplicates from existing injuredsegments table (#1781)
This commit is contained in:
parent
05732416dc
commit
37d95f164c
@ -554,6 +554,12 @@ func (db *DB) PostgresMigration() *migrate.Migration {
|
||||
Version: 16,
|
||||
Action: migrate.Func(func(log *zap.Logger, db migrate.DB, tx *sql.Tx) error {
|
||||
_, err := tx.Exec(`
|
||||
DELETE FROM injuredsegments a USING injuredsegments b WHERE a.id < b.id AND a.info = b.info;
|
||||
`)
|
||||
if err != nil {
|
||||
return ErrMigrate.Wrap(err)
|
||||
}
|
||||
_, err = tx.Exec(`
|
||||
ALTER TABLE injuredsegments ADD path text;
|
||||
ALTER TABLE injuredsegments RENAME COLUMN info TO data;
|
||||
ALTER TABLE injuredsegments ADD attempted timestamp;
|
||||
|
@ -39,6 +39,24 @@ func TestInsertSelect(t *testing.T) {
|
||||
})
|
||||
}
|
||||
|
||||
func TestInsertDuplicate(t *testing.T) {
|
||||
satellitedbtest.Run(t, func(t *testing.T, db satellite.DB) {
|
||||
ctx := testcontext.New(t)
|
||||
defer ctx.Cleanup()
|
||||
|
||||
q := db.RepairQueue()
|
||||
|
||||
seg := &pb.InjuredSegment{
|
||||
Path: "abc",
|
||||
LostPieces: []int32{int32(1), int32(3)},
|
||||
}
|
||||
err := q.Insert(ctx, seg)
|
||||
require.NoError(t, err)
|
||||
err = q.Insert(ctx, seg)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
}
|
||||
|
||||
func TestDequeueEmptyQueue(t *testing.T) {
|
||||
satellitedbtest.Run(t, func(t *testing.T, db satellite.DB) {
|
||||
ctx := testcontext.New(t)
|
||||
|
@ -236,3 +236,4 @@ INSERT INTO "bucket_storage_tallies" ("bucket_name", "project_id", "interval_sta
|
||||
INSERT INTO "injuredsegments" ("id", "info") VALUES (2, '\x0a136865726527732f612f67726561742f70617468120a0102030405060708090a');
|
||||
INSERT INTO "injuredsegments" ("id", "info") VALUES (3, '\x0a157965742f616e6f746865722f636f6f6c2f70617468120a0102030405060708090a');
|
||||
INSERT INTO "injuredsegments" ("id", "info") VALUES (4, '\x0a23736f2f6d616e792f69636f6e69632f70617468732f746f2f63686f6f73652f66726f6d120a0102030405060708090a');
|
||||
INSERT INTO "injuredsegments" ("id", "info") VALUES (5, '\x0a23736f2f6d616e792f69636f6e69632f70617468732f746f2f63686f6f73652f66726f6d120a0102030405060708090a');
|
||||
|
Loading…
Reference in New Issue
Block a user