Skip to content

Commit

Permalink
TreeTable.promoteOrphans: Drop sentinel column (#3373)
Browse files Browse the repository at this point in the history
  • Loading branch information
rcaudy authored and devinrsmith committed Jan 27, 2023
1 parent 8dd1978 commit 4826774
Showing 1 changed file with 9 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import io.deephaven.api.*;
import io.deephaven.api.filter.Filter;
import io.deephaven.engine.liveness.LivenessScopeStack;
import io.deephaven.engine.table.ColumnDefinition;
import io.deephaven.engine.table.Table;
import io.deephaven.engine.table.TableDefinition;
import io.deephaven.engine.updategraph.DynamicNode;
Expand Down Expand Up @@ -126,13 +127,19 @@ static Table promoteOrphans(
final ColumnName parent = ColumnName.of(parentColumn);
final ColumnName identifier = ColumnName.of(idColumn);
final ColumnName sentinel = ColumnName.of("__MATCHED_PARENT_IDENTIFIER__");
final Selectable[] viewColumns = source.getDefinition().getColumnStream()
.map(ColumnDefinition::getName)
.map((final String columnName) -> columnName.equals(parent.name())
? Selectable.of(parent,
RawString.of("isNull(" + sentinel.name() + ") ? null : " + parent.name()))
: ColumnName.of(columnName))
.toArray(Selectable[]::new);
return LivenessScopeStack.computeEnclosed(
() -> source
.naturalJoin(source,
List.of(JoinMatch.of(parent, identifier)),
List.of(JoinAddition.of(sentinel, identifier)))
.updateView(Selectable.of(parent,
RawString.of("isNull(" + sentinel.name() + ") ? null : " + parent.name()))),
.view(viewColumns),
source::isRefreshing,
DynamicNode::isRefreshing);
}
Expand Down

0 comments on commit 4826774

Please sign in to comment.