Project

General

Profile

Defect #330

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

Added by Takashi Takebayashi about 9 years ago. Updated almost 9 years ago.

Status:
終了(Closed)
Priority:
通常(Normal)
Target version:
Start date:
04/15/2010
Due date:
% Done:

100%

Estimated time:
8.00 h
Spent time:

Description

開発環境と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を弄らなければこの様なデータは作成されないが、何故不一致になっているか調査する必要がある。

Associated revisions

Revision 28:583c2caa3167 (diff)
Added by Takashi Takebayashi about 9 years ago

refs #330
find_last_score_by_user の処理内容を変更

History

#1

Updated by Takashi Takebayashi about 9 years ago

  • Status changed from 担当(Assigned) to 終了(Closed)
  • Target version changed from Some distant future to 0.0.4

根本的な原因は排除していませんが、環境に依存しない様に処理の流れ自体を変更しました。

#2

Updated by Takashi Takebayashi about 9 years ago

  • % Done changed from 0 to 100

一旦、クローズにします。

#3

Updated by Takashi Takebayashi almost 9 years ago

  • Estimated time set to 8.00 h

Also available in: Atom PDF