PostgreSQLパッチ

「PostgreSQLパッチ」の編集履歴(バックアップ)一覧に戻る

PostgreSQLパッチ - (2005/10/15 (土) 18:12:28) の編集履歴(バックアップ)


PostgreSQLパッチ

  • RoundCubeは、MySQLが開発のメインとなっているようです。
  • PostgreSQLで使うには、いわゆるMyGresパッチ作業が必要です(注:MyGresは桑村さんから教えていただきました)。
  • RoundCubeは、エラーの内容が、logsディレクトリにerrorsファイルへ吐き出される。PHPのログファイルも合わせてデバッグ作業をおこなう。
  • もちろん、PostgreSQLのログファイルもチェックしよう。

PostgreSQLパッチ情報


PostgreSQLパッチの数々

UNIX_TIMESTAMP()関数の問題 (2005-10-14)

  • PostgreSQLのデフォルトではUNIX_TIMESTAMP関数は無い。
  • ディスカッションサイトでは2通り紹介されている。
  • 1. PHPソースをパッチ
 -  SELECT vars, ip, UNIX_TIMESTAMP(changed) AS changed
 +  SELECT vars, ip, extract(epoch from changed) AS changed
  • 2. 無ければ、RoundCube用に関数を作る(力技)
  create or replace function unix_timestamp
  (timestamp with time zone) time zoneがある場合
 
returns int as ' 
   declare 
   date alias for $1; 
   timezero timestamp; 
   offset interval; 
   begin 
     timezero := timestamp ''1970-1-1 00:00'' at time zone ''utc''; 
     offset := date-timezero; 
      
     return (
       extract(''days'' from offset)*86400+ 
       extract(''hours'' from offset)*3600+ 
       extract(''minutes'' from offset)*60+ 
       extract(''seconds'' from offset))::int; 
   end; 
' language 'plpgsql'; 

エスケープ文字が無いバグ(2005-10-15)

 - SELECT identity_id, name, email
     FROM identities 
    WHERE user_id=1 AND del!='1'
    ORDER BY "default" DESC, name ASC
 + SELECT identity_id, name, email 
     FROM identities 
    WHERE user_id=1 AND del!='1' 
    ORDER BY \"default\" DESC, name ASC  
  • パッチは2箇所
 program\steps\mail\compose.inc(94): ORDER BY `default` DESC, name ASC", 
 program\steps\settings\func.inc(151): ORDER BY `default` DESC, name ASC", 

PHP文法ミス

  • roundcubemail/program/include/rcube_db.inc
@@ -169,7 +169,7 @@
 - $result =& $this->db_handle->getOne("SELECT CURRVAL('" .$sequence. "')");
 + $result =& $this->db_handle->getOne("SELECT CURRVAL('$sequence')");
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。