Bug(バグ) #1510
完了
opDoctrineQuery::calculateQueryCacheHash() が正常に動作しない
Shogo Kawahara さんが約14年前に追加.
約9年前に更新.
説明
Overview¶
opDoctrineQuery::calculateQueryCacheHash() が正常に動作しない
Doctrine::getTable(*)->findOneByXAndY(...);
Doctrine::getTable(*)->findOneByYAndZ(...);
とすると2回目の実行で正常な値が返されない
実際の影響箇所は以下が確認されています。
なお、APCの導入されていない環境では、本影響を受けない。
Environment¶
関連するチケット
1 (0件未完了 — 1件完了)
- 優先度 を Urgent(急いで) から High(高め) に変更
- ステータス を New(新規) から Accepted(着手) に変更
- 担当者 を Kousuke Ebihara にセット
Doctrine_Table::find() のみ特別なクエリキャッシュキーを使うようなコードになっていますが、 Doctrine_Table::find() 側で特別なクエリを発行しない限り、期待通りの挙動を実現するのは不可能です。あらゆるアプローチを検討しましたが、これに関しては Doctrine_Query::calculateQueryCacheHash() よりも高速にキャッシュキーを正しく算出するのは非常に難しいと思います。
この問題の回避のためにパフォーマンス上悪影響を及ぼすかもしれないコードを無理に入れるのではなく、 Doctrine_Table::find() で特別なクエリキャッシュキーを使うのを諦めるのがこのチケットにおいてのもっとも現実的な解決策になると思います。
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
- 3.8 で発生するか を Unknown (未調査) にセット
他の形式にエクスポート: Atom
PDF