public void serialize(DataOutputStream stream) throws IOException {
      resolvedFunction.serialize(stream);
      ReadWriteIOUtils.write(arguments.size(), stream);
      for (Expression argument : arguments) {
        Expression.serialize(argument, stream);
      }
      ReadWriteIOUtils.write(distinct, stream);
      ReadWriteIOUtils.write(filter.isPresent(), stream);
      if (filter.isPresent()) {
        Symbol.serialize(filter.get(), stream);
      }
      ReadWriteIOUtils.write(orderingScheme.isPresent(), stream);
      if (orderingScheme.isPresent()) {
        orderingScheme.get().serialize(stream);
      }
      ReadWriteIOUtils.write(mask.isPresent(), stream);
      if (mask.isPresent()) {
        Symbol.serialize(mask.get(), stream);
      }
    }
@return whether this node should produce default output in case of no input pages. For example
    for query:
    <p>SELECT count(*) FROM nation WHERE nationkey < 0
    <p>A default output of "0" is expected to be produced by FINAL aggregation operator.
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationNode.java