public static GroupingSetDescriptor deserialize(ByteBuffer byteBuffer) {
      int size = ReadWriteIOUtils.readInt(byteBuffer);
      List<Symbol> groupingKeys = new ArrayList<>(size);
      while (size-- > 0) {
        groupingKeys.add(Symbol.deserialize(byteBuffer));
      }
      int groupingSetCount = ReadWriteIOUtils.readInt(byteBuffer);
      size = ReadWriteIOUtils.readInt(byteBuffer);
      Set<Integer> globalGroupingSets = new HashSet<>(size);
      while (size-- > 0) {
        globalGroupingSets.add(ReadWriteIOUtils.readInt(byteBuffer));
      }
      return new GroupingSetDescriptor(groupingKeys, groupingSetCount, globalGroupingSets);
    }
@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