presto-main/src/main/java/io/prestosql/sql/planner/plan/MarkDistinctNode.java/MarkDistinctNode/MarkDistinctNode
class MarkDistinctNode:    @JsonCreator
    public MarkDistinctNode(@JsonProperty("id") PlanNodeId id,
            @JsonProperty("source") PlanNode source,
            @JsonProperty("markerSymbol") Symbol markerSymbol,
            @JsonProperty("distinctSymbols") List<Symbol> distinctSymbols,
            @JsonProperty("hashSymbol") Optional<Symbol> hashSymbol)
    {
        super(id);
        this.source = source;
        this.markerSymbol = markerSymbol;
        this.hashSymbol = requireNonNull(hashSymbol, "hashSymbol is null");
        requireNonNull(distinctSymbols, "distinctSymbols is null");
        checkArgument(!distinctSymbols.isEmpty(), "distinctSymbols cannot be empty");
        this.distinctSymbols = ImmutableList.copyOf(distinctSymbols);
    }