【秘密】関係者外秘 To:堀本様、須藤様 渡部@国際ソフトウェアと申します。 次のMroongaのリリースで解決の件、承知いたしました。 ご対応、感謝申し上げます。 以上、よろしくお願いいたします。 On 2021/09/09 13:43, Horimoto Yasuhiro wrote: > 堀本です。 > > すみません。あの後、須藤さんが修正してくれました。([groonga-dev,04889]) > なので、次のMroongaのリリースで、この問題は解決します。 > > From: 渡部克仁 <watan****@ksw*****> > Subject: [groonga-dev,04890] Mroongaバグ報告(9) > Date: Thu, 9 Sep 2021 13:12:29 +0900 > >> 【秘密】関係者外秘 >> To:堀本様 >> >> 渡部@国際ソフトウェアと申します。 >> >> 早速のご回答ありがとうございます。 >> 先延ばしになっている件、承知いたしました。 >> >> お手数をおかけしますが、よろしくお願いいたします。 >> >> >> On 2021/09/09 12:00, groon****@lists***** wrote: >>> groonga-dev >>> メーリングリストへの投稿は以下のアドレスに送ってください. >>> groon****@lists***** >>> Webブラウザを使って入退会するには以下のURLにどうぞ. >>> https://lists.osdn.me/mailman/listinfo/groonga-dev >>> メールを使う場合,件名(Subject:)または本文に help >>> と書いて以下の アドレスに送信してください. >>> groon****@lists***** >>> メーリングリストの管理者への連絡は,以下のアドレスにお願いします. >>> groon****@lists***** >>> 返信する場合,件名を書き直して内容がわかるようにしてください. >>> そのままだと,以下のようになってしまいます. >>> "Re: groonga-dev まとめ読み, XX 巻 XX 号" >>> 本日の話題: >>> 1. [groonga-dev,04888] Re: Mroongaバグ報告(8) (Horimoto Yasuhiro) >>> 2. [groonga-dev,04889] Re: Mroongaバグ報告(8) (Sutou Kouhei) >>> ---------------------------------------------------------------------- >>> Message: 1 >>> Date: Wed, 08 Sep 2021 13:12:15 +0900 (JST) >>> From: Horimoto Yasuhiro <horim****@clear*****> >>> To: groon****@lists***** >>> Subject: [groonga-dev,04888] Re: Mroongaバグ報告(8) >>> Message-ID: >>> <20210****@clear*****> >>> Content-Type: Text/Plain; charset=utf-8 >>> 堀本です。 >>> 対応する予定ではいるのですが、ここ数ヶ月、手が空かないので >>> 先延ばしになっています。すみません。。。 >>> もうしばらくお待ちいただければと思います。 >>> 以上です。失礼いたします。 >>> From: 渡部克仁 <watan****@ksw*****> >>> Subject: [groonga-dev,04887] Mroongaバグ報告(8) >>> Date: Wed, 8 Sep 2021 09:45:25 +0900 >>> >>>> 【秘密】関係者外秘 >>>> To:堀本様 >>>> >>>> 渡部@国際ソフトウェアと申します。 >>>> >>>> 下記バグについて、今後の対応計画などはありますでしょうか。 >>>> >>>> 2021-07-30にリリースされたMroonga 11.05、 >>>> 2021-08-29にリリースされたMroonga 11.06、 >>>> 共にリリースノートを拝見しましたが、該当する改良が見当たら >>>> なかったため、確認させていただいている次第です。 >>>> >>>> 以上、よろしくお願いいたします。 >>>> >>>> >>>> On 2021/07/07 12:13, 渡部克仁 wrote: >>>>> 【秘密】関係者外秘 >>>>> To:堀本様 >>>>> 渡部@国際ソフトウェアと申します。 >>>>> ご報告ありがとうございます。 >>>>> 原因が判明して安堵いたしました。 >>>>> ご丁寧に調査いただき感謝申し上げます。 >>>>> Mroongaの修正については、引き続きご対応よろしくお願いいたします。 >>>>> On 2021/07/07 12:00, groon****@lists***** wrote: >>>>>> groonga-dev >>>>>> メーリングリストへの投稿は以下のアドレスに送ってください. >>>>>> >>>>>> groon****@lists***** >>>>>> >>>>>> Webブラウザを使って入退会するには以下のURLにどうぞ. >>>>>> >>>>>> https://lists.osdn.me/mailman/listinfo/groonga-dev >>>>>> メールを使う場合,件名(Subject:)または本文に help >>>>>> と書いて以下の アドレスに送信してください. >>>>>> groon****@lists***** >>>>>> >>>>>> メーリングリストの管理者への連絡は,以下のアドレスにお願いします. >>>>>> >>>>>> groon****@lists***** >>>>>> >>>>>> 返信する場合,件名を書き直して内容がわかるようにしてください. >>>>>> そのままだと,以下のようになってしまいます. >>>>>> "Re: groonga-dev まとめ読み, XX 巻 XX 号" >>>>>> >>>>>> >>>>>> 本日の話題: >>>>>> >>>>>> 1. [groonga-dev,04876] Re: Mroongaバグ報告(6) (Horimoto Yasuhiro) >>>>>> >>>>>> >>>>>> >>>> ---------------------------------------------------------------------- >>>>>> >>>>>> Message: 1 >>>>>> Date: Tue, 06 Jul 2021 16:28:20 +0900 (JST) >>>>>> From: Horimoto Yasuhiro <horim****@clear*****> >>>>>> To: groon****@lists***** >>>>>> Subject: [groonga-dev,04876] Re: Mroongaバグ報告(6) >>>>>> Message-ID: >>>>>> <20210****@clear*****> >>>>>> Content-Type: Text/Plain; charset=utf-8 >>>>>> >>>>>> 堀本です。 >>>>>> >>>>>> 原因と対処方法がわかったので、報告いたします。 >>>>>> 原因はMroongaのバグでした。 >>>>>> >>>>>> 以下の提示いただいたクエリーを実行した際 >>>>>> MariaDBのオプティマイザーは、IN句内のサブクエリーを実行した結果のテー >>>>>> ブルと >>>>>> IN句の外側のテーブル(Posts)テーブルをSEMI JOINで結合します。 >>>>>> >>>>>> SELECT Id, ChannelId, RootId >>>>>> FROM Posts p3 >>>>>> WHERE Id IN ( >>>>>> SELECT * FROM >>>>>> (SELECT RootId >>>>>> FROM Posts >>>>>> WHERE UpdateAt > 1617352409099 AND >>>>>> ChannelId = 'i9rsh6im4ffepfpdgm51hjze3a' >>>>>> LIMIT 1000) >>>>>> temp_tab); >>>>>> >>>>>> IN句の中のサブクエリーの結果は以下のようになり、 >>>>>> 以下の表の値と、Posts.Idの値が同じレコードを抽出します。 >>>>>> >>>>>> つまり、''(空文字)と"twn3smcaei8wjbqsm8bcmo8qah"と一致する >>>>>> Posts.Idを持つレコードを抽出します。 >>>>>> >>>>>> +----------------------------+ >>>>>> | RootId | >>>>>> +----------------------------+ >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | twn3smcaei8wjbqsm8bcmo8qah | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> +----------------------------+ >>>>>> 20 rows in set (0.001 sec) >>>>>> >>>>>> この時、Mroongaを使用していると、''と一致するレコードとして >>>>>> 任意のIDを持つレコードを抽出してしまい、意図しないIDのレコードが結果に >>>>>> 含まれてしまいます。 >>>>>> InnoDBでは、再現しないため、Mroonga特有の問題です。 >>>>>> >>>>>> Mroongaを修正しますが、さしあたっては以下の対処方法で >>>>>> 正しい結果が得られます。 >>>>>> >>>>>> 今回の問題は、''のような空文字のレコードを持つ表との結合 >>>>>> で発生します。したがって、''のようなレコードが含まれないように >>>>>> することで現象の発生を防げます。 >>>>>> >>>>>> RootIdはIdと比較しており、IdはNOT NULL属性なので、RootIdが''なレコード >>>>>> は除外しても問題ないと考えます。 >>>>>> >>>>>> そのため、問題のクエリーのIN句の中のサブクエリーに >>>>>> 以下のように、RootId <> ''を追加してRootIdが''なレコードを除外します。 >>>>>> このようにすることで、期待する結果が得られます。 >>>>>> >>>>>> SELECT Id, ChannelId, RootId >>>>>> FROM Posts p3 >>>>>> WHERE Id IN ( >>>>>> SELECT * FROM >>>>>> (SELECT RootId >>>>>> FROM Posts >>>>>> WHERE UpdateAt > 1617352409099 AND >>>>>> ChannelId = 'i9rsh6im4ffepfpdgm51hjze3a' AND >>>>>> RootId <> '' >>>>>> LIMIT 1000) >>>>>> temp_tab); >>>>>> >>>>>> Mroongaの修正が完了しましたら、また改めて連絡します。 >>>>>> >>>>>> 以上です。失礼いたします。 >>>>>> >>>> >>>> _______________________________________________ >>>> groonga-dev mailing list >>>> groon****@lists***** >>>> https://lists.osdn.me/mailman/listinfo/groonga-dev >>> ------------------------------ >>> Message: 2 >>> Date: Wed, 08 Sep 2021 15:37:32 +0900 (JST) >>> From: Sutou Kouhei <kou****@clear*****> >>> To: groon****@lists***** >>> Subject: [groonga-dev,04889] Re: Mroongaバグ報告(8) >>> Message-ID: <20210****@clear*****> >>> Content-Type: Text/Plain; charset=utf-8 >>> 須藤です。 >>> おまたせしました。ようやく直しました。 >>> 今月末のリリースにはこの修正が含まれます。 >>> In <d5608****@ksw*****> >>> "[groonga-dev,04887] Mroongaバグ報告(8)" on Wed, 8 Sep 2021 09:45:25 >>> +0900, >>> 渡部克仁 <watan****@ksw*****> wrote: >>> >>>> 【秘密】関係者外秘 >>>> To:堀本様 >>>> >>>> 渡部@国際ソフトウェアと申します。 >>>> >>>> 下記バグについて、今後の対応計画などはありますでしょうか。 >>>> >>>> 2021-07-30にリリースされたMroonga 11.05、 >>>> 2021-08-29にリリースされたMroonga 11.06、 >>>> 共にリリースノートを拝見しましたが、該当する改良が見当たら >>>> なかったため、確認させていただいている次第です。 >>>> >>>> 以上、よろしくお願いいたします。 >>>> >>>> >>>> On 2021/07/07 12:13, 渡部克仁 wrote: >>>>> 【秘密】関係者外秘 >>>>> To:堀本様 >>>>> 渡部@国際ソフトウェアと申します。 >>>>> ご報告ありがとうございます。 >>>>> 原因が判明して安堵いたしました。 >>>>> ご丁寧に調査いただき感謝申し上げます。 >>>>> Mroongaの修正については、引き続きご対応よろしくお願いいたします。 >>>>> On 2021/07/07 12:00, groon****@lists***** wrote: >>>>>> groonga-dev >>>>>> メーリングリストへの投稿は以下のアドレスに送ってください. >>>>>> >>>>>> groon****@lists***** >>>>>> >>>>>> Webブラウザを使って入退会するには以下のURLにどうぞ. >>>>>> >>>>>> https://lists.osdn.me/mailman/listinfo/groonga-dev >>>>>> メールを使う場合,件名(Subject:)または本文に help >>>>>> と書いて以下の アドレスに送信してください. >>>>>> groon****@lists***** >>>>>> >>>>>> メーリングリストの管理者への連絡は,以下のアドレスにお願いします. >>>>>> >>>>>> groon****@lists***** >>>>>> >>>>>> 返信する場合,件名を書き直して内容がわかるようにしてください. >>>>>> そのままだと,以下のようになってしまいます. >>>>>> "Re: groonga-dev まとめ読み, XX 巻 XX 号" >>>>>> >>>>>> >>>>>> 本日の話題: >>>>>> >>>>>> 1. [groonga-dev,04876] Re: Mroongaバグ報告(6) (Horimoto Yasuhiro) >>>>>> >>>>>> >>>>>> >>>> ---------------------------------------------------------------------- >>>>>> >>>>>> Message: 1 >>>>>> Date: Tue, 06 Jul 2021 16:28:20 +0900 (JST) >>>>>> From: Horimoto Yasuhiro <horim****@clear*****> >>>>>> To: groon****@lists***** >>>>>> Subject: [groonga-dev,04876] Re: Mroongaバグ報告(6) >>>>>> Message-ID: >>>>>> <20210****@clear*****> >>>>>> Content-Type: Text/Plain; charset=utf-8 >>>>>> >>>>>> 堀本です。 >>>>>> >>>>>> 原因と対処方法がわかったので、報告いたします。 >>>>>> 原因はMroongaのバグでした。 >>>>>> >>>>>> 以下の提示いただいたクエリーを実行した際 >>>>>> MariaDBのオプティマイザーは、IN句内のサブクエリーを実行した結果のテー >>>>>> ブルと >>>>>> IN句の外側のテーブル(Posts)テーブルをSEMI JOINで結合します。 >>>>>> >>>>>> SELECT Id, ChannelId, RootId >>>>>> FROM Posts p3 >>>>>> WHERE Id IN ( >>>>>> SELECT * FROM >>>>>> (SELECT RootId >>>>>> FROM Posts >>>>>> WHERE UpdateAt > 1617352409099 AND >>>>>> ChannelId = 'i9rsh6im4ffepfpdgm51hjze3a' >>>>>> LIMIT 1000) >>>>>> temp_tab); >>>>>> >>>>>> IN句の中のサブクエリーの結果は以下のようになり、 >>>>>> 以下の表の値と、Posts.Idの値が同じレコードを抽出します。 >>>>>> >>>>>> つまり、''(空文字)と"twn3smcaei8wjbqsm8bcmo8qah"と一致する >>>>>> Posts.Idを持つレコードを抽出します。 >>>>>> >>>>>> +----------------------------+ >>>>>> | RootId | >>>>>> +----------------------------+ >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | twn3smcaei8wjbqsm8bcmo8qah | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> | | >>>>>> +----------------------------+ >>>>>> 20 rows in set (0.001 sec) >>>>>> >>>>>> この時、Mroongaを使用していると、''と一致するレコードとして >>>>>> 任意のIDを持つレコードを抽出してしまい、意図しないIDのレコードが結果に >>>>>> 含まれてしまいます。 >>>>>> InnoDBでは、再現しないため、Mroonga特有の問題です。 >>>>>> >>>>>> Mroongaを修正しますが、さしあたっては以下の対処方法で >>>>>> 正しい結果が得られます。 >>>>>> >>>>>> 今回の問題は、''のような空文字のレコードを持つ表との結合 >>>>>> で発生します。したがって、''のようなレコードが含まれないように >>>>>> することで現象の発生を防げます。 >>>>>> >>>>>> RootIdはIdと比較しており、IdはNOT NULL属性なので、RootIdが''なレコード >>>>>> は除外しても問題ないと考えます。 >>>>>> >>>>>> そのため、問題のクエリーのIN句の中のサブクエリーに >>>>>> 以下のように、RootId <> ''を追加してRootIdが''なレコードを除外します。 >>>>>> このようにすることで、期待する結果が得られます。 >>>>>> >>>>>> SELECT Id, ChannelId, RootId >>>>>> FROM Posts p3 >>>>>> WHERE Id IN ( >>>>>> SELECT * FROM >>>>>> (SELECT RootId >>>>>> FROM Posts >>>>>> WHERE UpdateAt > 1617352409099 AND >>>>>> ChannelId = 'i9rsh6im4ffepfpdgm51hjze3a' AND >>>>>> RootId <> '' >>>>>> LIMIT 1000) >>>>>> temp_tab); >>>>>> >>>>>> Mroongaの修正が完了しましたら、また改めて連絡します。 >>>>>> >>>>>> 以上です。失礼いたします。 >>>>>> >>>> >>>> _______________________________________________ >>>> groonga-dev mailing list >>>> groon****@lists***** >>>> https://lists.osdn.me/mailman/listinfo/groonga-dev >>> ------------------------------ >>> Subject: まとめ読みフッタ >>> _______________________________________________ >>> groonga-dev mailing list >>> groon****@lists***** >>> https://lists.osdn.me/mailman/listinfo/groonga-dev >>> ------------------------------ >>> 以上: groonga-dev まとめ読み, 151 巻, 3 号 >>> *************************************************** >>> >> >> _______________________________________________ >> groonga-dev mailing list >> groon****@lists***** >> https://lists.osdn.me/mailman/listinfo/groonga-dev