Example #1
0
		private static AlgebraNode PadLeftWithNullsOnRightSide(JoinAlgebraNode node, RowBufferCreationMode rowBufferCreationMode)
		{
			ComputeScalarAlgebraNode computeScalarAlgebraNode = new ComputeScalarAlgebraNode();
			computeScalarAlgebraNode.Input = node.Left;

			List<RowBufferEntry> outputList = new List<RowBufferEntry>();
			outputList.AddRange(node.Left.OutputList);

			List<ComputedValueDefinition> definedValues = new List<ComputedValueDefinition>();
			foreach (RowBufferEntry rowBufferEntry in node.Right.OutputList)
			{
				ComputedValueDefinition definedValue = new ComputedValueDefinition();

				if (rowBufferCreationMode == RowBufferCreationMode.KeepExisting)
				{
					definedValue.Target = rowBufferEntry;
				}
				else
				{
					definedValue.Target = new RowBufferEntry(rowBufferEntry.DataType);
				}

				definedValue.Expression = LiteralExpression.FromTypedNull(rowBufferEntry.DataType);
				definedValues.Add(definedValue);
				outputList.Add(definedValue.Target);
			}

			computeScalarAlgebraNode.DefinedValues = definedValues.ToArray();
			computeScalarAlgebraNode.OutputList = outputList.ToArray();

			return computeScalarAlgebraNode;
		}
Example #2
0
        private static AlgebraNode PadLeftWithNullsOnRightSide(JoinAlgebraNode node, RowBufferCreationMode rowBufferCreationMode)
        {
            ComputeScalarAlgebraNode computeScalarAlgebraNode = new ComputeScalarAlgebraNode();

            computeScalarAlgebraNode.Input = node.Left;

            List <RowBufferEntry> outputList = new List <RowBufferEntry>();

            outputList.AddRange(node.Left.OutputList);

            List <ComputedValueDefinition> definedValues = new List <ComputedValueDefinition>();

            foreach (RowBufferEntry rowBufferEntry in node.Right.OutputList)
            {
                ComputedValueDefinition definedValue = new ComputedValueDefinition();

                if (rowBufferCreationMode == RowBufferCreationMode.KeepExisting)
                {
                    definedValue.Target = rowBufferEntry;
                }
                else
                {
                    definedValue.Target = new RowBufferEntry(rowBufferEntry.DataType);
                }

                definedValue.Expression = LiteralExpression.FromTypedNull(rowBufferEntry.DataType);
                definedValues.Add(definedValue);
                outputList.Add(definedValue.Target);
            }

            computeScalarAlgebraNode.DefinedValues = definedValues.ToArray();
            computeScalarAlgebraNode.OutputList    = outputList.ToArray();

            return(computeScalarAlgebraNode);
        }