public void serialize(ByteBuffer buffer) {
    ReadWriteIOUtils.write(originalParts.size(), buffer);
    for (Identifier identifier : originalParts) {
      Expression.serialize(identifier, buffer);
    }

    ReadWriteIOUtils.write(parts.size(), buffer);
    for (String part : parts) {
      ReadWriteIOUtils.write(part, buffer);
    }

    ReadWriteIOUtils.write(name, buffer);

    if (prefix != null) {
      ReadWriteIOUtils.write((byte) 1, buffer);
      prefix.serialize(buffer);
    } else {
      ReadWriteIOUtils.write((byte) 0, buffer);
    }

    ReadWriteIOUtils.write(suffix, buffer);
  }
For an identifier of the form "a.b.c.d", returns "a.b.c", For an identifier of the form "a",
returns absent
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/QualifiedName.java