[groonga-dev,03337] Re: [Mroonga] 32bit環境で0000-00-00が1970-01-01になってテストが失敗する

Back to archive index

Masafumi Yokoyama yokoy****@clear*****
2015年 7月 1日 (水) 21:04:17 JST


横山です。

On 2015年07月01日 20:34, Susumu Yata wrote:
> 矢田です.
> 
> すみません.さきほどのメールで横山さんと書くべきところが横浜さんになっていました!

全く問題ないと思います!
横浜はすてきなところだと聞いているので、常々行きたいと思っています。


> この度は修正にご助力いただき,誠にありがとうございました!
> 今後共よろしくお願いいたします.

こちらこそ、よろしくお願いいたします!!


> 2015-07-01 20:09 GMT+09:00 Susumu Yata <susum****@gmail*****>:
>> 矢田です.
>>
>> 横浜さんの説明には納得しましたし,特に副作用があるような変更でもないので,さくっと push しちゃいました.
>> 問題があれば,そのときは再修正いたします.
>>
>> https://github.com/mroonga/mroonga/commit/93ce8ecbca8cbb794aa648c838333b629abac741
>>
>> 2015-07-01 17:08 GMT+09:00 Masafumi Yokoyama <yokoy****@clear*****>:
>>> 横山です。
>>>
>>> On 2015年07月01日 16:55, Susumu Yata wrote:
>>>> 矢田です.
>>>>
>>>> Ubuntu 14.04 32-bit 環境で試してみたところ,以下に示す結果となりました.
>>>> ただ, 1970-00-00 だとエラーで 1970-01-01 に修正されるケースも考えられるので,
>>>> 1970 は避けて 1990-00-00 とかにした方が良いと思います.
>>>
>>> ご確認ありがとうございます!確かにそうですね。
>>> 1970 は避けるようにしようと思います。
>>>
>>>
>>>
>>>> ==== 0000-00-00 の場合
>>>>
>>>> mysql> CREATE TABLE ranges (
>>>>       ->   id int PRIMARY KEY,
>>>>       ->   start datetime,
>>>>       ->   end datetime,
>>>>       ->   UNIQUE KEY range_key(start, end)
>>>>       -> ) ENGINE = Mroonga;
>>>> Query OK, 0 rows affected (0.06 sec)
>>>>
>>>> mysql> INSERT INTO ranges VALUES (1, "0000-00-00 00:00:00",
>>>> "2012-10-05 23:59:59");
>>>> Query OK, 1 row affected, 1 warning (0.03 sec)
>>>>
>>>> mysql> SELECT * FROM ranges;
>>>> +----+---------------------+---------------------+
>>>> | id | start               | end                 |
>>>> +----+---------------------+---------------------+
>>>> |  1 | 1970-01-01 00:00:00 | 2012-10-05 23:59:59 |
>>>> +----+---------------------+---------------------+
>>>> 1 row in set (0.00 sec)
>>>>
>>>> ====> 1990-00-00 の場合
>>>>
>>>> mysql> CREATE TABLE ranges (
>>>>       ->   id int PRIMARY KEY,
>>>>       ->   start datetime,
>>>>       ->   end datetime,
>>>>       ->   UNIQUE KEY range_key(start, end)
>>>>       -> ) ENGINE = Mroonga;
>>>> Query OK, 0 rows affected (0.05 sec)
>>>>
>>>> mysql> INSERT INTO ranges VALUES (1, "1990-00-00 00:00:00",
>>>> "2012-10-05 23:59:59");
>>>> Query OK, 1 row affected, 1 warning (0.03 sec)
>>>>
>>>> mysql> SELECT * FROM ranges;
>>>> +----+---------------------+---------------------+
>>>> | id | start               | end                 |
>>>> +----+---------------------+---------------------+
>>>> |  1 | 1990-01-01 00:00:00 | 2012-10-05 23:59:59 |
>>>> +----+---------------------+---------------------+
>>>> 1 row in set (0.00 sec)
>>>>
>>>> 2015-07-01 16:21 GMT+09:00 Masafumi Yokoyama <myoko****@gmail*****>:
>>>>> 横山です。
>>>>>
>>>>> 書き忘れましたが、これはストレージモードの場合です。
>>>>> ラッパーモードでは。。。どうなるんでしょうか。。。
>>>>>
>>>>>
>>>>>
>>>>> 2015年7月1日 16:17 Masafumi Yokoyama <yokoy****@clear*****>:
>>>>>> 横山です。
>>>>>>
>>>>>> 32bit環境で、Mroongaのテストが失敗するようです。
>>>>>>
>>>>>> MariaDB (10.1) バンドル作業用の自動テストが32bit環境を使っていて、
>>>>>> エラーが出るとの報告をもらいました。せっかくなので共有します。
>>>>>>
>>>>>> 失敗するのは以下のように0000年を使っているテストです。
>>>>>> https://github.com/mroonga/mroonga/blob/master/mysql-test/mroonga/storage/index/multiple_column/unique/datetime/r/insert_delete_insert_invalid_value.result
>>>>>>
>>>>>> どうやら32bit環境では0000年を扱えない(1970±68まで?)ので、
>>>>>> 上のテストだと0000-01-01を期待しているのに結果が1970-01-01に
>>>>>> なってしまいます。
>>>>>>
>>>>>> このテストは0月0日が1月1日になることをテストしていて、年は
>>>>>> 重要でないと思うので、ひとまず0000年ではなく1970年あたりを
>>>>>> 使うように修正しておきます。
>>>>>>
>>>>>>
>>>>>> --
>>>>>> 横山 昌史 <Masafumi Yokoyama>
>>>>>> E-mail: yokoy****@clear*****
>>>>>> 株式会社クリアコード
>>>>>> 〒170-0005 東京都豊島区南大塚3-29-9
>>>>>> Tel: 03-5927-9440
>>>>>> Web: http://www.clear-code.com/
>>>>>>
>>>>>> Groongaベースの全文検索システムを総合サポート:
>>>>>> http://groonga.org/ja/support/
>>>>>>
>>>>>> _______________________________________________
>>>>>> groonga-dev mailing list
>>>>>> groon****@lists*****
>>>>>> http://lists.osdn.me/mailman/listinfo/groonga-dev
>>>>> _______________________________________________
>>>>> groonga-dev mailing list
>>>>> groon****@lists*****
>>>>> http://lists.osdn.me/mailman/listinfo/groonga-dev
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> 横山 昌史 <Masafumi Yokoyama>
>>> E-mail: yokoy****@clear*****
>>> 株式会社クリアコード
>>> 〒170-0005 東京都豊島区南大塚3-29-9
>>> Tel: 03-5927-9440
>>> Web: http://www.clear-code.com/
>>>
>>> Groongaベースの全文検索システムを総合サポート:
>>> http://groonga.org/ja/support/
>>>
>>> _______________________________________________
>>> groonga-dev mailing list
>>> groon****@lists*****
>>> http://lists.osdn.me/mailman/listinfo/groonga-dev
>>
>>
>>
>> --
>> Susumu Yata <susum****@gmail*****>
> 
> 
> 


-- 
横山 昌史 <Masafumi Yokoyama>
E-mail: yokoy****@clear*****
株式会社クリアコード
〒170-0005 東京都豊島区南大塚3-29-9
Tel: 03-5927-9440
Web: http://www.clear-code.com/

Groongaベースの全文検索システムを総合サポート:
  http://groonga.org/ja/support/




groonga-dev メーリングリストの案内
Back to archive index