private void printTsFileMetadata()

in java/tsfile/src/main/java/org/apache/tsfile/utils/TsFileSketchTool.java [179:268]


  private void printTsFileMetadata(TsFileMetadata tsFileMetaData) {
    try {
      long pos = reader.getFileMetadataPos();
      printlnBoth(pw, splitStr + " [TsFileMetadata] begins");

      // metadataIndex
      printlnBoth(
          pw,
          String.format("%20s", pos)
              + "|\tTableIndexRootCnt="
              + tsFileMetaData.getTableMetadataIndexNodeMap().size());
      pos += Integer.BYTES;
      for (Entry<String, MetadataIndexNode> entry :
          tsFileMetaData.getTableMetadataIndexNodeMap().entrySet()) {
        printlnBoth(
            pw,
            String.format("%20s", pos)
                + "|\t[Table Name] "
                + entry.getKey()
                + ", size="
                + ReadWriteForEncodingUtils.intStringSize(entry.getKey()));
        pos += ReadWriteForEncodingUtils.intStringSize(entry.getKey());
        pos = printIndexOfTimerseriesIndex(pos, entry.getValue());
      }

      // table schema
      Map<String, TableSchema> tableSchemaMap = reader.getTableSchemaMap();
      printlnBoth(pw, String.format("%20s", pos) + "|\tTableSchemaCnt=" + tableSchemaMap.size());
      pos += Integer.BYTES;
      for (Entry<String, TableSchema> entry : tableSchemaMap.entrySet()) {
        final String tableName = entry.getKey();
        final TableSchema tableSchema = entry.getValue();

        final int serializedSize = tableSchema.serializedSize();
        printlnBoth(
            pw,
            String.format("%20s", pos)
                + "|\t[TableSchema] "
                + tableSchema
                + ", size="
                + serializedSize);
        pos += ReadWriteForEncodingUtils.intStringSize(tableName) + serializedSize;
      }

      // metaOffset
      printlnBoth(
          pw, String.format("%20s", pos) + "|\t[Meta Offset] " + tsFileMetaData.getMetaOffset());
      pos += Long.BYTES;

      // bloom filter

      BloomFilter bloomFilter = tsFileMetaData.getBloomFilter();
      if (bloomFilter != null) {
        final int length = bloomFilter.serialize().length;
        printlnBoth(
            pw,
            String.format("%20s", pos)
                + "|\t[Bloom Filter Size] "
                + "bit vector byte array length="
                + length
                + bloomFilter.getHashFunctionSize());
        pos += Integer.BYTES;
        printlnBoth(
            pw,
            String.format("%20s", pos)
                + "|\t[Bloom Filter] "
                + ", filterCapacity="
                + bloomFilter.getSize()
                + ", hashFunctionSize="
                + bloomFilter.getHashFunctionSize());
        pos += length;
      }

      printlnBoth(pw, splitStr + " [TsFileMetadata] ends");

      printlnBoth(
          pw,
          String.format("%20s", (reader.getFileMetadataPos() + reader.getTsFileMetadataSize()))
              + "|\t[TsFileMetadataSize] "
              + reader.getTsFileMetadataSize());

      printlnBoth(
          pw,
          String.format("%20s", reader.getFileMetadataPos() + reader.getTsFileMetadataSize() + 4)
              + "|\t[magic tail] "
              + reader.readTailMagic());
    } catch (IOException e) {
      e.printStackTrace();
    }
  }