private List filterTimescaleColumns()

in timescaledb-connector/src/main/java/com/epam/deltix/timebase/connector/service/timebase/TimebaseDescriptorService.java [157:185]


    private List<TimescaleColumn> filterTimescaleColumns(List<TimescaleColumn> columns) {
        return columns.stream()
                .distinct()
                .collect(Collectors.groupingBy(TimescaleColumn::getName))
                .entrySet()
                .stream()
                .map(entry -> {
                    List<TimescaleColumn> columnList = entry.getValue();
                    TimescaleColumn firstColumn = columnList.get(0);

                    if (columnList.size() == 1) {
                        return firstColumn;
                    } else {
                        List<String> relatedDescriptors = columnList.stream()
                                .map(TimescaleColumn::getRelatedDescriptors)
                                .flatMap(List::stream)
                                .collect(Collectors.toList());

                        return TimescaleColumn.builder()
                                .dataType(firstColumn.getDataType())
                                .relatedDescriptors(relatedDescriptors)
                                .name(entry.getKey())
                                .isArray(firstColumn.isArray())
                                .isNotNull(firstColumn.isNotNull())
                                .isUnique(firstColumn.isUnique())
                                .build();
                    }
                }).collect(Collectors.toList());
    }