[pgpool-general-jp: 1280] Re: pgpool-IIについて質問です。

Yugo Nagata nagata @ sraoss.co.jp
2014年 5月 30日 (金) 18:25:49 JST


長田です。


On Mon, 26 May 2014 19:16:33 +0900
Inoue Takuma <sessat7 @ gmail.com> wrote:

> よろしくお願いいたします。井上です。この内容を見て少しでもわかる方おられましたら、ご教授願います。
>  
> pgpool-IIのパラレルクエリが、geometry型を含むデータベースに、対応しているのか。ということです。
> system_db.sql
> dblink.sql
> user.sql(これは自分で作る。)
> を、PostGISテンプレートから作った、データベースに適用して、usr.sqlの中に定義したデータベースを、pgpool経由で、データベースを作り、接続します。そして、geometry項目を含む、テーブルを、user.sqlに定義したように作ろうとすると、geometry型が存在しない。dist_defテーブルに、geometry型はない。というエラーになり、テーブルが作れません。
> パラレルクエリのシステムデータベースに、PostGISの、テンプレート作成時の手順で設定してもダメでした。やはり対応していないのでしょうか。またこの場合、UPDATEが必要なのですが、それも対応しているのかよろしくお願いいたします。

特に geometry 型だとダメだという制限はありません。
実際に使った *.sql ファイルと、実際に行った操作、および出力されたエラーメッセージを提示いただければ、
解析させていただくことが可能です。

>  
>  
> 次に、INSERTするデータに、空白(つまりカラムが空)の場合、パラレルクエリでは、INSERTできなかったのですが、空白がないデータしか対応していないのでしょうか。

具体的にはどのようなSQLクエリでしょうか。

>  
> それと、ANYELEMENTのところですが、CHARACTER VARINGを使って、最初の質問の、
>  
> $$ SELECT $1 % 2 $$

character varing 型に % 演算子はないのでできません。

>  
> というのはできるのでしょうか。
>  
>  
> 最後に、
>  
> CREATE OR REPLACE FUNCTION pgpool_catalog.dist_def_rule (val CHARACTER VARING(8))RETURN INTEGER AS'
> SELECT CASE WHEN $1=pgpool THEN 0
> WHEN $1=Postgres THEN 1
> ELSE 2
> END'LANGUAGE SQL;
>  
> というのは、ありでしょうか。これも3分割できると思うのです。よろしくお願いいたします。

あり、です。ただし文字列の比較なので

 SELECT CASE WHEN $1='pgpool' THEN 0
 WHEN $1='Postgres' THEN 1

と、シングルクォーテーション '' でくくってあげる必要があります。

>  
>  
>  
> 環境は、postgresql9.3.4 pgpool-II1.3です。
> なぜこの組み合わせかというと、リリースされたすべてのバージョンを試した中で、私が安定しているように感じたからです。
>  
> 質問しようかどうしようかかなり迷ったのですが、一人で考えていてもどうしようもないように思えたので、長文になりましたが、このメールを書きました。
>  
> よろしくお願いいたします。
>  
> 井上
> 
> 
>              		 	   		  

-- 
Yugo Nagata <nagata @ sraoss.co.jp>


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