presto-main/src/main/java/io/prestosql/sql/planner/optimizations/PropertyDerivations.java/PropertyDerivations/visitUnnest
class PropertyDerivations:        @Override
        public ActualProperties visitUnnest(UnnestNode node, List<ActualProperties> inputProperties)
        {
            Set<Symbol> passThroughInputs = ImmutableSet.copyOf(node.getReplicateSymbols());

            ActualProperties translatedProperties = Iterables.getOnlyElement(inputProperties).translate(column -> {
                if (passThroughInputs.contains(column)) {
                    return Optional.of(column);
                }
                return Optional.empty();
            });

            switch (node.getJoinType()) {
                case INNER:
                case LEFT:
                    return translatedProperties;
                case RIGHT:
                case FULL:
                    return ActualProperties.builderFrom(translatedProperties)
                            .local(ImmutableList.of())
                            .build();
                default:
                    throw new UnsupportedOperationException("Unknown UNNEST join type: " + node.getJoinType());
            }
        }