Project

General

Profile

Actions

Backport(バックポート) #3081

closed

activity/community.json 実行時にDoctrineでエラーが発生する場合がある

Added by Yuya Watanabe over 12 years ago. Updated over 12 years ago.

Status:
Fixed(完了)
Priority:
Normal(通常)
Assignee:
Target version:
Start date:
2012-05-10
Due date:
% Done:

100%

Estimated time:

Description

現象

activity/community.json 呼び出し時に下記のようなエラーがhttpdのエラーログに出力されて500エラーとなる。

SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens

is_active: 0 のメンバー(仮登録中のメンバー)が1人以上いる場合に発生する。

原因

マイフレンドまで公開のアクティビティを取得するための条件の中で、is_active: 0 のメンバーを対象外とするためにサブクエリ内に member_id_to NOT IN ? を追加していたが、この形式の DQL を Doctrine が正しくパースできず、最終的にパラメーター数が一致しない SQL とパラメーターの組が生成されていたためにエラーとなっていた。

inactiveIds が空の場合は opDoctrineQuery::andWhereIn() により ->andWhere('0 = 1'); に書き換えられるため問題が発生しない。

修正内容

問題箇所のクエリでは Member モデルを必ず leftJoin しているため、opActivateListener により is_active のチェックが自動的に追加される。

このクエリにおいて is_active: 0 のメンバーを除外するには Member に対する絞り込みのみで十分であるため、マイフレンドまで公開のアクティビティを抽出する部分からは is_active: 0 を除外する条件を冗長と判断し削除した。


Related issues 1 (0 open1 closed)

Related to OpenPNE 3 - Bug(バグ) #3052: activity/community.json 実行時にDoctrineでエラーが発生する場合があるWon't fix(対応せず)Rimpei Ogawa2012-05-10

Actions
Actions #1

Updated by Yuma Sakata over 12 years ago

  • Target version changed from OpenPNE 3.8.1 to OpenPNE 3.8.x

3.8.2 以降で対応します。

Actions #2

Updated by Yuma Sakata over 12 years ago

  • Target version changed from OpenPNE 3.8.x to OpenPNE 3.8.1

3.8.1 で対応します。

Actions #3

Updated by Rimpei Ogawa over 12 years ago

  • Assignee set to Rimpei Ogawa

原因がはっきりしていないとのことだったので、調査から引き受けます。

Actions #4

Updated by Rimpei Ogawa over 12 years ago

  • Status changed from New(新規) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

更新履歴 9e16f3e18af59095f2fc2dcd2be4a9c757439d2f で適用されました。

Actions #5

Updated by Rimpei Ogawa over 12 years ago

  • Description updated (diff)

Description を親チケットと同じ内容に更新。

Actions #6

Updated by Yuya Watanabe over 12 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70
Actions #7

Updated by 開 石切山 over 12 years ago

  • Status changed from Pending Testing(テスト待ち) to Fixed(完了)
  • % Done changed from 70 to 100
Actions

Also available in: Atom PDF