public Execute ( Transaction transaction ) : IEnumerable |
||
transaction | Transaction | |
return | IEnumerable |
public IEnumerable<InternalId> Execute(Transaction transaction)
{
var queriesByCost = queries.OrderBy(_ => _.EstimatedQueryCost(transaction));
return
queriesByCost
.Skip(1)
.Aggregate(
queriesByCost.First().Execute(transaction).Materialize(),
(matching, query) => matching.Intersect(query.ExecuteInsideIntersect(transaction, matching)).Materialize()
);
}