[pgsql-jp: 36050] slony-I で全角文字の処理が正しくない?

芋野一男 imonomail @ nbsystem.co.jp
2005年 9月 28日 (水) 17:44:18 JST


slony-I のテストをしていておかしな結果に遭遇しましたので
ご報告いたします。

テストの環境は以下の通り。

メインサーバー、スレーブサーバー共に
------------------------------------
OS:FC3
PostgreSQL:8.0.3
slony-I:1.1.0

テスト用テーブル
----------------
create table member (
id int4 primary key,
username VARCHAR(40)
);

両サーバーにテーブルを作成。
マスター側に下記データを入力。

id username
-- --------
1 ueyama
2 matsumori
3 吉田 松陰
4 田中 健二

これで slony-I を起動し正しくレプリケートされるのを確認しました。

その後マスター側にデータを追加。

id username
-- --------
1 ueyama
2 matsumori
3 吉田 松陰
4 田中 健二
5 一二三四五
6 一二三四五六
7 一二三四五六七

そしてスレーブ側を見ると

id username
-- --------
1 ueyama
2 matsumori
3 吉田 松陰
4 田中 健二
5 一二三四
6 一二三四
7 一二三四五

と、追加部分の後ろが切れて入っていました。
insert, update 共に同じ現象でした。
半角文字の場合は何も問題ありませんでした。
やはり全角文字の扱いに問題が残っているんでしょうか。

参考までに slony-I の作成用スクリプトを以下に置いておきます。

slmaster.sh
-----------
#!/bin/sh
CLUSTERNAME=slony_test
DB1=slmaster
DB2=slslave
HOST1=[メインサーバーアドレス]
HOST2=[スレーブサーバーアドレス]
RUSER=postgres
slonik <<_EOF_
cluster name = $CLUSTERNAME;
node 1 admin conninfo = 'dbname=$DB1 host=$HOST1 user=$RUSER';
node 2 admin conninfo = 'dbname=$DB2 host=$HOST2 user=$RUSER';
init cluster ( id=1, comment = 'Master');
create set (id=1, origin=1, comment='All tables');
set add table (set id=1, origin=1, id=1, fully qualified name =
'public.member', comment='member');
store node (id=2, comment = 'Slave');
store path (server = 1, client = 2, conninfo='dbname=$DB1 host=$HOST1
user=$RUSER');
store path (server = 2, client = 1, conninfo='dbname=$DB2 host=$HOST2
user=$RUSER');
store listen (origin=1, provider = 1, receiver =2);
store listen (origin=2, provider = 2, receiver =1);
_EOF_





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