Project

General

Profile

Bug(バグ) #1978

MySQL以外のDBMS上であしあと一覧がエラーになる

Added by Youichi Kimura about 8 years ago.

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);

Also available in: Atom PDF