public IEnumerable<InternalId> ExecuteInsideIntersect(Transaction transaction, IEnumerable<InternalId> joinConstraint) { return queries .OrderBy(_ => _.EstimatedQueryCost(transaction)) .Aggregate( joinConstraint.Materialize(), (matching, query) => matching.Intersect(query.ExecuteInsideIntersect(transaction, matching)) ); }