Warning: リポジトリと同期できません (サポートされていないバージョンコントロールシステム "svn です。 Python のライブラリに "svn" が正しくインストールされているか確認してください。)

チケット #187 (new 感想・要望)

登録: 17 年

最終更新: 17 年

ERROR: For SELECT DISTINCT, ORDER BY expressions must appear in target list

報告者: anonymous 担当者: weekbuild
優先度: q(^-^q) コンポーネント: MailArchivePlugin
バージョン: Trac0.10 キーワード: PostgreSQL
関係者:

説明

DBにPostgreSQL 8.2.5を使っています。Tracは、0.10.3.1です。r111をいれてしまったのですが、以下のエラーが発生します。

ERROR:  For SELECT DISTINCT, ORDER BY expressions must appear in target list

手元でソースを変更させていただき、とりあえず動作していますが、PostgreSQLのユーザのためにも対応いただければ助かります。

チケットの履歴

↑ 説明 への返信   更新者: hirobe (17 年 前)

手元でソースを変更させていただき、とりあえず動作していますが、PostgreSQLのユーザのためにも対応いただければ助かります。

もしよろしければ、どのように変更されたかお教えいただけますでしょうか。

ソースに盛り込みたいところです。

  更新者: anonymous (17 年 前)

utcdateをSELECT文に加えただけなのですが... ; たしか、昔のrevisionには、あったようでした。以下、差分です。

--- mailarchive.py.orig Sat Jun  9 16:36:58 2007
+++ mailarchive.py      Wed Nov 21 20:17:59 2007
@@ -383,8 +383,8 @@
                 req.hdf[prefix + '.href'] = self._get_category_href(category)
 
         attachments_list = {}
-        cursor.execute("SELECT DISTINCT attachment.id as id ,mailarc.id as id2 FROM mailarc,attachment WHERE mailarc.category=%s AND mailarc.id = attachment.id AND attachment.type='mailarchive' ORDER BY utcdate",(target_category.encode('utf-8'),))
-        for id,id2 in cursor:
+        cursor.execute("SELECT DISTINCT attachment.id as id ,mailarc.id as id2, utcdate FROM mailarc,attachment WHERE mailarc.category=%s AND mailarc.id = attachment.id AND attachment.type='mailarchive' ORDER BY utcdate",(target_category.encode('utf-8'),))
+        for id,id2,utcdate in cursor:
             attachments_list[str(id)] = 1
 
         row_idx = 0

  更新者: hirobe (17 年 前)

ありがとうございます。 修正しました。Shibuya.tracにコミットしていますので、 最新版が必要でしたらそちらから取得してください。 まあ、ご指摘そのまんまの修正ですが。

Note: チケットについてのヘルプは TracTickets を参照 して下さい。