Ticket #2854 (closed defect: fixed)

Opened 9 years ago

Last modified 8 years ago

PostgresSQLにて、ID=1だけ登録時間がマイクロ秒まで記録される

Reported by: pnetan Assigned to: mori
Priority: minor Milestone: OpenPNE2.13.4
Component: 指定しない Version: 2.14.x
Keywords: Cc:

Description (Last modified by kudo)

■現象

PostgreSQLのセットアップSQLを実行すると、登録された時刻がマイクロ秒を含んでしまう。

■原因

PostgreSQL の NOW() 関数をそのまま使用しているため。

■修正内容

既にDBに登録されている、以下のフィールドに含まれる時刻をマイクロ秒を含まない形に変換するためのアップデートSQLを追加。

  • c_image.filename が 'skin_no_image.gif', 'skin_no_logo.gif', 'skin_no_ logo_small.gif', 'r_1_regular.gif', 'r_2_silver.gif', 'r_3_gold.gif', 'r_4_platinum.gif' のいずれかであるレコードの c_image.r_datetime
  • c_member.c_member_id が 1 であるレコードの c_member.r_date と c_member.u_datetime

新規セットアップ用のSQLについては、別チケットで作成するもののため、ここでは修正しない。

■関連情報

元のDescription

http://sns.openpne.jp/?m=pc&a=page_fh_diary&target_c_diary_id=18110 より転記

OpenPNE2.10.7(?)で、Postgresで運用。

ID=1だけ、c_memberの日時がマイクロ秒まで登録されます

SELECT r_date, u_datetime FROM c_member;
r_date | u_datetime
----------------------------+----------------------------
2008-07-23 17:58:44.257311 | 2008-07-23 17:58:44.257311
2008-07-24 09:15:07 | 2008-07-24 09:15:07
2008-07-24 11:35:10 | 2008-07-24 11:35:10
2008-07-24 11:45:01 | 2008-07-24 11:45:01

登録日を時間まで表示させたらおかしなことになって気がつきました・・・・

管理画面メンバー一覧では、年月日までしか出さないから?問題ないようです。

SETUPモジュールで登録すると、こうなるのでしょうか。。(ID=1は未ログインです)

Change History

07/24/08 18:58:30 changed by cake

c_memberにID=1の情報は、セットアップSQLで入るようになっていました

setup/sql/postgre74/install-212-insert_data.sql 39行目

INSERT INTO c_member VALUES (nextval('c_member_c_member_id_seq'),'OpenPNE君',0,0,0,'private','public',,,,,'0000-01-01 00:00:00',NOW(),'',0,1,1,1,0,1,'public',0,0,0,0,NOW());

07/29/08 17:25:00 changed by kiwa

  • keywords deleted.

Cakeさんの検証があるので、修正に回してよいとおもいます。

07/29/08 17:33:31 changed by kiwa

念のためMySQL版のインストールSQLを試したところ、問題はありませんでした。

mysql> SELECT r_date, u_datetime FROM c_member;
+---------------------+---------------------+
| r_date              | u_datetime          |
+---------------------+---------------------+
| 2008-06-13 10:52:03 | 2008-06-13 10:52:03 |
+---------------------+---------------------+
1 row in set (0.00 sec)

10/31/08 12:12:59 changed by mori

  • owner changed from nobody to mori.
  • status changed from new to assigned.

担当します。

10/31/08 12:28:31 changed by mori

  • keywords set to 確認中.
  • version changed from 2.10.x & 2.12.x & 2.13.x to 2.13.x.
  • description changed.

以下のリビジョンで修正しました。

10/31/08 14:54:02 changed by mori

  • keywords changed from 確認中 to OpenPNE2.10.12 OpenPNE2.13.4 確認中.
  • milestone set to OpenPNE2.12.6.

10/31/08 14:55:21 changed by ebihara

  • keywords deleted.
  • milestone changed from OpenPNE2.12.6 to OpenPNE2.13.4.

開発版のみの対応なのでマイルストンを変更します。

10/31/08 14:55:54 changed by ebihara

  • keywords set to 確認中.

間違ってキーワード消しちゃってました。

10/31/08 14:58:21 changed by mori

  • milestone changed from OpenPNE2.13.4 to OpenPNE2.12.6.

10/31/08 14:58:45 changed by mori

  • keywords changed from 確認中 to OpenPNE2.10.12 OpenPNE2.13.4 確認中.

10/31/08 15:44:49 changed by ebihara

  • keywords changed from OpenPNE2.10.12 OpenPNE2.13.4 確認中 to 確認中.
  • milestone changed from OpenPNE2.12.6 to OpenPNE2.13.4.

11/04/08 15:29:59 changed by ebihara

  • keywords changed from 確認中 to 差し戻し.
  • owner changed from mori to nobody.
  • status changed from assigned to new.

既存の c_member_id = 1 のメンバーに対しても対応をおこなうべきかと思います。

11/04/08 16:32:59 changed by ebihara

  • owner changed from nobody to ebihara.
  • status changed from new to assigned.

修正に関しては海老原が引き受けます。修正後、 mori さんに再度アサインします。

11/04/08 19:54:02 changed by ebihara

  • keywords changed from 差し戻し to 確認中.
  • owner changed from ebihara to mori.
  • status changed from assigned to new.
  • description changed.

インストール用のSQLは別に作成するため、 r8900 は取り消しました。

r8946 で、DBに既に登録された、マイクロ秒を含む時刻を修正するためのアップデートSQLを追加しました。

11/06/08 20:16:00 changed by ogawa

  • keywords changed from 確認中 to 差し戻し.

c_siteadmin.r_date は timestamp 型ではなく、date 型ですが問題ないでしょうか。

11/06/08 20:50:33 changed by ebihara

  • keywords changed from 差し戻し to 確認中.
  • description changed.

date型に対して NOW() の結果を挿入しても、 TO_TIMESTAMP() の結果を挿入しても、 date型として適正な値に丸められるようでした。

従って、r8946 の c_siteadmin.r_date に対するSQL文は実行しても実行しなくてもいいようなので、r9016 で削除しました。

11/06/08 21:19:50 changed by ogawa

  • keywords changed from 確認中 to テスト待ち.

11/06/08 23:26:33 changed by kiwa

  • keywords deleted.
  • status changed from new to closed.
  • resolution set to fixed.

確認しました。問題ありません。

11/11/08 18:38:34 changed by kiwa

  • summary changed from 【Postgres】ID=1だけ、登録時間がマイクロ秒まで記録 to PostgresSQLにて、ID=1だけ登録時間がマイクロ秒まで記録される.

05/25/09 14:20:41 changed by kudo

  • description changed.