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

Back to archive index

Susumu Yata susum****@gmail*****
2015年 7月 1日 (水) 20:34:58 JST


矢田です.

すみません.さきほどのメールで横山さんと書くべきところが横浜さんになっていました!

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

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*****>



-- 
Susumu Yata <susum****@gmail*****>



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