プロジェクト

全般

プロフィール

Defect #330

完了

環境によって、前回のスコアが取れない場合がある。

Takashi Takebayashi さんが約14年前に追加. ほぼ14年前に更新.

ステータス:
終了(Closed)
優先度:
通常(Normal)
対象バージョン:
開始日:
2010/04/15
期日:
進捗率:

100%

予定工数:
8:00時間
作業時間:

説明

開発環境とHudsonでSQLの取得結果が異なる。
双方同じDB(sqlite)、同じSQL、同じデータ、同じコマンドでテストを行っているが、結果が異なる為、Hudsonでのテスト結果がNGとなる。
joel_test_scoresというテーブルには以下のデータが入っている。

id user_id score created_on answers
1 1 1 2010-04-08 21:42:28 1
2 1 5 2010-04-09 21:42:28 31
3 1 3 2010-04-10 21:42:28 7
4 1 12 2010-04-07 21:42:28 4095

列はそれぞれ
id :integer
user_id :integer
score :integer
created_on:datetime
answers :integer
となっている。

上記のテーブルに対して、
SELECT joel.* FROM (SELECT * FROM joel_test_scores order by created_on) as joel group by user_id
というSQLを実行すると、開発環境では、

id user_id score created_on answers
3 1 3 2010-04-10 21:42:28 7

という、最後に作成された(ことになっている)行が正しく取得される。
しかし、Hudsonでは、

id user_id score created_on answers
4 1 12 2010-04-07 21:42:28 4095

idが最も新しいこの行を取得してしまう。

結果、assert部分で想定と異なる結果を検知し、NGとなっている。
直接SQLを弄らなければこの様なデータは作成されないが、何故不一致になっているか調査する必要がある。

他の形式にエクスポート: Atom PDF