Ejemplo n.º 1
0
        protected override BoundRelation RewriteUnionRelation(BoundUnionRelation node)
        {
            if (node.IsUnionAll)
            {
                var definedValues = RemoveUnusedSlots(node.DefinedValues, d => d.ValueSlot);
                node = node.Update(node.IsUnionAll, node.Inputs, definedValues, node.Comparers);
            }

            _recorder.Record(node.DefinedValues);

            return(base.RewriteUnionRelation(node));
        }
        protected override BoundRelation RewriteUnionRelation(BoundUnionRelation node)
        {
            var inputs        = RewriteRelations(node.Inputs);
            var values        = node.DefinedValues;
            var concatenation = new BoundConcatenationRelation(inputs, values);

            if (node.IsUnionAll)
            {
                return(concatenation);
            }

            var sortedValues = values.Zip(node.Comparers, (v, c) => new BoundComparedValue(v.ValueSlot, c));

            return(new BoundSortRelation(true, concatenation, sortedValues));
        }
Ejemplo n.º 3
0
 private static CardinalityEstimate EstimateUnionRelation(BoundUnionRelation relation)
 {
     return(CardinalityEstimate.Unknown);
 }