Bug(バグ) #1978
MySQL以外のDBMS上であしあと一覧がエラーになる
Status:
New(新規)
Priority:
Normal(通常)
Assignee:
-
Start date:
2011-03-26
Due date:
% Done:
0%
3.6 で発生するか:
[QA]バグ通知済:
No
3.8 で発生するか:
Unknown (未調査)
Description
Overview (現象)¶
あしあと一覧ページをSQLite使用のOpenPNE3で実行すると、以下のようなエラーが出ます。
mod_fcgid: stderr: SQLSTATE[HY000]: General error: 1 near "DESC": syntax error. Failing Query: "SELECT a.id AS a__id, a.r_date AS a__r_date FROM ashiato a WHERE (a.member_id_to = ?) GROUP BY a.r_date DESC LIMIT 30", referer: http://sns.localhost/sqlite/
Causes (原因)¶
「GROUP BY a.r_date DESC」といった構文がMySQL依存のものであるため、他のDBMSでエラーになる。
Way to fix (修正内容)¶
PluginAshiatoTable::getAshiatoListPager() 内で実行されるクエリを修正する。
--- a/lib/model/doctrine/PluginAshiatoTable.class.php
+++ b/lib/model/doctrine/PluginAshiatoTable.class.php
@@ -23,7 +23,7 @@ class PluginAshiatoTable extends Doctrine_Table
public function getAshiatoListPager($memberId, $page = 1, $size = 20)
{
$day_list = array();
$q = $this->createQuery()
->select('id, r_date')
->where('member_id_to = ?', $memberId)
- ->groupBy('r_date DESC')
+ ->orderBy('r_date DESC')
->limit($size);