[pgpool-general-jp: 881] Re: DML対象テーブルにレイアウト変更があった場合

松崎学 matsumana @ gmail.com
2011年 1月 11日 (火) 12:04:03 JST


石井様

松崎です。お世話になります。

> すみません。今のところ、できないです。
了解しました。
現在開発中のシステムは長く使うことになるので、
システム運用中にテーブルレイアウト変更などが発生する事もあると思い質問させていただきました。
とりあえずはpgpoolの再起動を行う運用にします。

> もちろん、パッチも大歓迎です:-)
CやLinuxの知識レベルは低いのですが、そのうちチャレンジしてみたいです。。。(汗)

以上、よろしくお願いいたします。

2011年1月8日12:59 Tatsuo Ishii <ishii @ sraoss.co.jp>:
> すみません。今のところ、できないです。
>
> キャッシュはpgpool子プロセスのプライベートメモリ内にあるので、たとえば
> child_life_time が有効になっていて、タイマーがexpireして子プロセスが再
> 起動された場合には、結果としてキャッシュがクリアされますが...
>
> 手動でキャッシュをクリアできるようにするとか、キャッシュの寿命を指定で
> きるようにするとか、そんなに難しいことではないので、将来の課題にします。
> もちろん、パッチも大歓迎です:-)
> --
> Tatsuo Ishii
> SRA OSS, Inc. Japan
> English: http://www.sraoss.co.jp/index_en.php
> Japanese: http://www.sraoss.co.jp
>
>> 松崎です。
>>
>> お世話になります。
>>
>> レプリケーションモードでCURRENT_TIMESTAMPや
>> DEFAULT値を使うINSERT文を実行したあと、
>> そのテーブルから項目が追加・削除された場合、
>> 変更前のテーブルレイアウトでSQL文が組み立てられてしまいました。
>>
>> pgpoolを再起動したら最新のテーブルレイアウトでSQL文が組み立てられたのですが、
>> 起動したままでこのキャッシュ(?)をクリアする事は出来ますか?
>>
>> ■テストしたテーブルのレイアウト
>> DROP TABLE IF EXISTS MATSUZ_TEST_TIMESTAMP CASCADE
>> ;
>>
>> CREATE TABLE MATSUZ_TEST_TIMESTAMP
>> (
>>     COL1                            VARCHAR(128) NOT NULL,
>>     DTTM_DEFAULT                    TIMESTAMP DEFAULT LOCALTIMESTAMP
>> NOT NULL,  -- DEFAULT値で自動セット
>>     DTTM_TRRIGER                    TIMESTAMP NOT NULL,
>>          -- トリガーで自動セット
>>     DTTM_INSERT_STATEMENT           TIMESTAMP NOT NULL,
>>          -- INSERT文で明示的にセット
>>     CONSTRAINT PK_MATSUZ_TEST_TIMESTAMP PRIMARY KEY (COL1) USING INDEX
>>         TABLESPACE MST_INDEX
>> )
>> TABLESPACE MST_DATA
>> ;
>>
>> CREATE OR REPLACE FUNCTION TRG_MATSUZ_TEST_TIMESTAMP_TS()
>> RETURNS TRIGGER
>> AS
>> $$
>> BEGIN
>>
>>     -- トリガーで自動セット
>>     NEW.DTTM_TRRIGER := CURRENT_TIMESTAMP;
>>
>>     RETURN NEW;
>>
>> END;
>> $$
>> LANGUAGE plpgsql
>> ;
>>
>> CREATE TRIGGER MATSUZ_TEST_TIMESTAMP_TS
>>     BEFORE INSERT OR UPDATE
>>     ON MATSUZ_TEST_TIMESTAMP
>>     FOR EACH ROW
>>     EXECUTE PROCEDURE TRG_MATSUZ_TEST_TIMESTAMP_TS()
>> ;
>>
>> ■テストした更新SQL
>> insert into MATSUZ_TEST_TIMESTAMP
>> (
>>   COL1
>> , DTTM_INSERT_STATEMENT
>> )
>> values
>> (
>>   'a'
>> , CURRENT_TIMESTAMP
>> )
>> ;
>>
>> 以上、よろしくお願いいたします。
>>
>> --
>> 松崎 学 <matsumana @ gmail.com>
>> _______________________________________________
>> pgpool-general-jp mailing list
>> pgpool-general-jp @ sraoss.jp
>> http://www.sraoss.jp/mailman/listinfo/pgpool-general-jp
>



-- 
松崎 学 <matsumana @ gmail.com>


pgpool-general-jp メーリングリストの案内