protected override bool InternalDefault(Program program, IRow oldRow, IRow newRow, BitArray valueFlags, string columnName, bool isDescending) { if (isDescending) { BitArray localValueFlags = newRow.GetValueFlags(); bool changed = false; if (PropagateDefaultLeft) { changed = LeftNode.Default(program, oldRow, newRow, valueFlags, columnName); } if (PropagateDefaultRight) { changed = RightNode.Default(program, oldRow, newRow, valueFlags, columnName) || changed; } if (changed) { for (int index = 0; index < newRow.DataType.Columns.Count; index++) { if (!localValueFlags[index] && newRow.HasValue(index)) { Change(program, oldRow, newRow, valueFlags, newRow.DataType.Columns[index].Name); } } } return(changed); } return(false); }
protected override bool InternalDefault(Program program, IRow oldRow, IRow newRow, BitArray valueFlags, string columnName, bool isDescending) { if (isDescending && PropagateDefaultLeft) { return(LeftNode.Default(program, oldRow, newRow, valueFlags, columnName)); } return(false); }