Skip to content

Commit 72e6c88

Browse files
committed
add helper api for getting dirty EditionDependency edges
1 parent f457047 commit 72e6c88

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

Sources/UnidocDB/Editions/Unidoc.DB.EditionDependencies.swift

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,25 +26,25 @@ extension Unidoc.DB.EditionDependencies
2626
static let indexSourceChangedABI:Mongo.CollectionIndex = .init("SourceChangedABI",
2727
collation: SimpleCollation.spec)
2828
{
29-
$0[Unidoc.EditionDependency[.id] / Unidoc.Edge<Unidoc.Edition>[.source]] = (+)
29+
$0[Element[.id] / Unidoc.Edge<Unidoc.Edition>[.source]] = (+)
3030
}
3131
where:
3232
{
33-
$0[Unidoc.EditionDependency[.targetChanged]] = true
33+
$0[Element[.targetChanged]] = true
3434
}
3535

3636
public
3737
static let indexSource:Mongo.CollectionIndex = .init("Source",
3838
collation: SimpleCollation.spec)
3939
{
40-
$0[Unidoc.EditionDependency[.id] / Unidoc.Edge<Unidoc.Edition>[.source]] = (+)
40+
$0[Element[.id] / Unidoc.Edge<Unidoc.Edition>[.source]] = (+)
4141
}
4242

4343
public
4444
static let indexTarget:Mongo.CollectionIndex = .init("Target",
4545
collation: SimpleCollation.spec)
4646
{
47-
$0[Unidoc.EditionDependency[.id] / Unidoc.Edge<Unidoc.Edition>[.target]] = (+)
47+
$0[Element[.id] / Unidoc.Edge<Unidoc.Edition>[.target]] = (+)
4848
}
4949
}
5050
extension Unidoc.DB.EditionDependencies:Mongo.CollectionModel
@@ -67,6 +67,18 @@ extension Unidoc.DB.EditionDependencies:Mongo.CollectionModel
6767
}
6868
extension Unidoc.DB.EditionDependencies
6969
{
70+
public
71+
func dirty(limit:Int) async throws -> [Unidoc.EditionDependency]
72+
{
73+
try await session.run(
74+
command: Mongo.Find<Mongo.SingleBatch<Element>>.init(Self.name, limit: limit)
75+
{
76+
$0[.filter] { $0[Element[.targetChanged]] = true }
77+
$0[.hint] = Self.indexSourceChangedABI.id
78+
},
79+
against: self.database)
80+
}
81+
7082
func create(dependent:Unidoc.Edition,
7183
from boundaries:[Unidoc.Mesh.Boundary]) async throws
7284
{

0 commit comments

Comments
 (0)