Skip to content

Commit 876441a

Browse files
committed
UIEXT-1996: Compute basic statistics for all column types
UIEXT-1996 ("Statistics" view in node monitor does not show metadata for columns having a "non-native" data type)
1 parent 94f2ccf commit 876441a

File tree

1 file changed

+6
-12
lines changed

1 file changed

+6
-12
lines changed

org.knime.core/src/eclipse/org/knime/core/data/statistics/UnivariateStatistics.java

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -319,33 +319,27 @@ public static BufferedDataTable computeStatisticsTable(final BufferedDataTable i
319319
final String[] selectedColumns, final ExecutionContext executionContext,
320320
final Collection<Statistic> selectedStatistics)
321321
throws CanceledExecutionException {
322-
final var eligibleCols = Arrays.stream(selectedColumns)//
323-
.filter(name -> {
324-
var type = inputTable.getDataTableSpec().getColumnSpec(name).getType();
325-
return type.isCompatible(DoubleValue.class) || type.isCompatible(StringValue.class);
326-
})//
327-
.toArray(String[]::new);
328322

329323
// trivial case -- nothing to do
330324
final var statisticsTable = executionContext.createDataContainer(getStatisticsTableSpec(selectedStatistics));
331-
if (eligibleCols.length == 0) {
325+
if (selectedColumns.length == 0) {
332326
statisticsTable.close();
333327
return statisticsTable.getTable();
334328
}
335329

336330
// compute statistics for each column individually
337331
final var selectedColumnTables =
338-
StatisticsTableUtil.splitTableByColumnNames(inputTable, eligibleCols, true, true, executionContext);
332+
StatisticsTableUtil.splitTableByColumnNames(inputTable, selectedColumns, true, true, executionContext);
339333
final var selectedColumnTablesWithMissingValues =
340-
StatisticsTableUtil.splitTableByColumnNames(inputTable, eligibleCols, false, true, executionContext);
341-
for (var columnName : eligibleCols) {
334+
StatisticsTableUtil.splitTableByColumnNames(inputTable, selectedColumns, false, true, executionContext);
335+
for (var columnName : selectedColumns) {
342336
final var allColumnStatistics = new UnivariateStatistics();
343337
final var sortedTable =
344338
BufferedDataTableSorter.sortTable(selectedColumnTables.get(columnName), 0, executionContext);
345339
final var tableWithMissingValues = selectedColumnTablesWithMissingValues.get(columnName);
346340
allColumnStatistics.performStatisticsCalculationForAllColumns(sortedTable, executionContext);
347-
boolean isStringColumn = sortedTable.getSpec().getColumnSpec(0).getType().isCompatible(StringValue.class);
348-
if (!isStringColumn) {
341+
boolean isNumericColumn = sortedTable.getSpec().getColumnSpec(0).getType().isCompatible(DoubleValue.class);
342+
if (isNumericColumn) {
349343
allColumnStatistics.performStatisticsCalculationForNumericColumns(sortedTable, executionContext);
350344
}
351345
allColumnStatistics.performMissingValuesComputation(tableWithMissingValues, executionContext);

0 commit comments

Comments
 (0)