use of io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.SelectDistinctRequest in project deephaven-core by deephaven.
the class JsTable method selectDistinct.
@JsMethod
public Promise<JsTable> selectDistinct(Column[] columns) {
final ClientTableState state = state();
// We are going to forget all configuration for the current state
// by just creating a new, fresh state. This should be an optional flatten()/copy() step instead.
String[] columnNames = Arrays.stream(columns).map(Column::getName).toArray(String[]::new);
final ClientTableState distinct = workerConnection.newState((c, cts, metadata) -> {
SelectDistinctRequest request = new SelectDistinctRequest();
request.setSourceId(state.getHandle().makeTableReference());
request.setResultId(cts.getHandle().makeTicket());
request.setColumnNamesList(columnNames);
workerConnection.tableServiceClient().selectDistinct(request, metadata, c::apply);
}, "selectDistinct " + Arrays.toString(columnNames));
return distinct.refetch(this, workerConnection.metadata()).then(cts -> Promise.resolve(new JsTable(workerConnection, cts)));
}
Aggregations