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

Back to archive index

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


矢田です.

横浜さんの説明には納得しましたし,特に副作用があるような変更でもないので,さくっと 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*****>



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