alibaba / alibaba/innodb-java-reader

您好请问,解析ibd文件时候如何能获取删除数据的delete-marked标记

オープン
#43 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Java
スター
496
フォーク
122
PR マージ指標
30日以内にマージされた PR はありません

説明

public static void main(String[] args) {
String createTableSql = "CREATE TABLE `tb11`\n"
+ "(`id` int(11) NOT NULL ,\n"
+ "`a` bigint(20) NOT NULL,\n"
+ "`b` varchar(64) NOT NULL,\n"
+ "PRIMARY KEY (`id`),\n"
+ "KEY `key_a` (`a`))\n"
+ "ENGINE=InnoDB;";
String ibdFilePath = "/Users/zhangfeng/Desktop/dbtest/tb11.ibd";
try (TableReader reader = new TableReaderImpl(ibdFilePath, createTableSql)) {
reader.open();
List recordList = reader.queryByPageNumber(3);
for (GenericRecord record : recordList) {
Object[] values = record.getValues();
System.out.println(Arrays.asList(values));
assert record.getPrimaryKey() == record.get("id");
RecordHeader header = record.getHeader();
System.out.println("id=" + record.get("id") + ",a=" + record.get("a")+",b=" + record.get("b") +",flag="+header.getInfoFlag());
if (!record.isLeafRecord()) {
System.out.println(record.getChildPageNumber());
}
}

}
无法获取删除的记录,以及delete-marked标记

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

まず、issue に示されている TableReaderImpl と TableReader の使用箇所を、特に queryByPageNumber(3)、GenericRecord、RecordHeader について追跡します。現在の reader が削除されたレコードをフィルタリングするかどうか、また RecordHeader が削除マーク付きの状態を公開しているかどうかを確認します。削除されたレコードとそのマーカーを reader API 経由で取得できれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java, mysql
領域
databases
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。