Stash.BerkeleyDB.BerkeleyQueries.IntersectOperator.Execute C# (CSharp) Method

Execute() public method

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()
                    );
        }