プロジェクト

全般

プロフィール

Defect #330

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

Takashi Takebayashi約8年前に追加. 約8年前に更新.

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

関係しているリビジョン

リビジョン 28:583c2caa3167 (差分)
Takashi Takebayashi約8年前に追加

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

履歴

#1 Takashi Takebayashi約8年前に更新

  • ステータス担当(Assigned) から 終了(Closed) に変更
  • 対象バージョンSome distant future から 0.0.4 に変更

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

#2 Takashi Takebayashi約8年前に更新

  • 進捗率0 から 100 に変更

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

#3 Takashi Takebayashi約8年前に更新

  • 予定工数8.00時間 にセット

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