Kouhei Sutou
kou****@clear*****
2015年 9月 25日 (金) 22:30:09 JST
須藤です。 In <20150****@domai*****> "[groonga-dev,03515] Mroonga で data truncated for primary key column: <id> が発生する" on Fri, 25 Sep 2015 19:39:31 +0900, 各務 洋 <kagam****@outwa*****> wrote: > 再現性は確立していないのですが、Mroonga のテーブルに UPDATE 文発行時に > warning で data truncated for primary key column: <id> が発生します。 報告ありがとうございます! > 環境は > CentOS 6.5 x64 > groonga-libs.x86_64 5.0.7-1.el6 > mysql-community-mroonga.x86_64 5.06-1.el6 > mysql-community-server.x86_64 5.6.26-2.el6 > になります。 > > id は int8 の AUTO_INCREMENT の PRIMARY KEY です。 > > UPDATE tbl_test_pat_0005 SET t_text = uuid() WHERE t_text ='' ORDER BY id LIMIT 1; > ですので、id は変更しません。 情報ありがとうございます! 手元でも試してみたいので、実際のテーブル定義を教えてもらうこ とはできないでしょうか!? > そこで、ご相談なのですが。 > > 1.上記の発生理由はなにか当たりがつきますでしょうか? > (mysqld のkill 等、検証環境で色々試していました) すみません。 どういう状況になっているかわからないとわからないです。。。 > 2.前回教えていただきました、 > grndb check /var/lib/mysql/db_test2.mrn > を行ってみたところ、終了ステータスが 0 でした。 > DB名は「db_test2」なのですが、使い方はこれで正しいでしょうか? はい、正しいです。 > 正しいのであれば、上記の現象は検知できないものなのでしょうか? > (実はこちらの確認が目的で色々していました) どういう状況になっているかわかっていないのですが、検知できな いと思います。 grndb checkは「ロックが残留しているかどうか」を壊れているか どうかの判断に使っています。ロックが残留していると「中途半端 な状態でクラッシュした」はずなのでデータベース内に不整合 (極端な例だと"Hello"のうち"Hel"までしか書き込まれていないと か)がある可能性が高い、という判断です。 今回のケースはそういう理由ではないような気がするので検知でき ないと思います。 Groonga的には「データベースに指示されたものをちゃんと書いた よ!」となっていて、MroongaからGroongaへの指示が間違っている んじゃないかと思います。 -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> Groongaベースの全文検索システムを総合サポート: http://groonga.org/ja/support/ パッチ採用 - プログラミングが楽しい人向けの採用プロセス: http://www.clear-code.com/recruitment/ コードリーダー育成支援 - 自然とリーダブルコードを書くチームへ: http://www.clear-code.com/services/code-reader/