<div dir="ltr">石井様<div><br></div><div>ご回答ありがとうございます。</div><div><font face="arial, sans-serif"><span style="font-size:14px">3.4の新機能についても、ありがとうございました。</span></font></div><div><font face="arial, sans-serif"><span style="font-size:14px">アプリやデータベースで、負荷分散の挙動をコントロールできると</span></font></div><div><font face="arial, sans-serif"><span style="font-size:14px">大変助かります。</span></font></div><div><font face="arial, sans-serif"><span style="font-size:14px">リリースお待ちしております。</span></font></div><div><font face="arial, sans-serif"><span style="font-size:14px"><br></span></font></div><div><span style="font-family:arial,sans-serif;font-size:14px"><br></span></div></div><div class="gmail_extra"><br><div class="gmail_quote">2014年9月9日 8:27 Tatsuo Ishii <span dir="ltr">&lt;<a href="mailto:ishii@sraoss.co.jp" target="_blank">ishii@sraoss.co.jp</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">石井です。<br>
<br>
pgpool-II にはPostgreSQLのSQLパーサが移植されており、pgpool-II 3.3系に<br>
はPostgreSQL 9.2のSQLパーサが移植されています。ですので、pgpool-II 3.3<br>
系はLATERALが理解できません。<br>
<br>
現在開発中の pgpool-II 3.4にはPostgreSQL 9.4のパーサが移植されているの<br>
でLATERALを含むSQL文でも正しく負荷分散されるようになります。<br>
<br>
ちなみに3.4では、アプリケーション名をやデータベース名によって負荷分散の<br>
挙動をコントロールできるようになります。たとえば、<br>
<br>
app_name_redirect_preference_list = &#39;psql:primary,myapp[0-4]:1,myapp[5-9]:standby&#39;<br>
<br>
と書いておくと、<br>
<br>
psqlから送信されたクエリは必ずprimaryで実行<br>
<br>
myapp[0-4]という正規表現に一致するアプリケーション名から送信されたクエ<br>
リはDBノード1で実行<br>
<br>
myapp[5-9]という正規表現に一致するアプリケーション名から送信されたクエ<br>
リはstanbyのどれかで実行<br>
<br>
となります。以下のような使い方を想定しています。<br>
<br>
- レプリケーション遅延が許されないマスタ更新アプリはprimaryで実行<br>
<br>
- 解析系の重いクエリを実行するアプリは特定のDBノードのみで実行し、他の<br>
  スタンバイにはクエリを投げないようにする<br>
--<br>
Tatsuo Ishii<br>
SRA OSS, Inc. Japan<br>
English: <a href="http://www.sraoss.co.jp/index_en.php" target="_blank">http://www.sraoss.co.jp/index_en.php</a><br>
Japanese:<a href="http://www.sraoss.co.jp" target="_blank">http://www.sraoss.co.jp</a><br>
<div class="HOEnZb"><div class="h5"><br>
&gt; はじめまして、森脇と申します。<br>
&gt;<br>
&gt; pgpool-IIのLATERAL句の扱いに関して、情報お待ちでしたら教えてください。<br>
&gt;<br>
&gt; 以下の実行環境で LATERALを使用したSQLを実行すると、<br>
&gt; pgpoolのログに「Parse: Unable to parse the query:」が出力されます。<br>
&gt;<br>
&gt; ------------------------------------<br>
&gt; ■実行環境<br>
&gt;<br>
&gt; ・CentOS 6.5<br>
&gt; ・PostgreSQL 9.3.1<br>
&gt; ・pgpool-II 3.3.4<br>
&gt; ------------------------------------<br>
&gt;<br>
&gt; pgpool-II は、現時点のバージョンでは、LATERAL を使用すると、<br>
&gt; Parseエラーとして扱ってしまうという状況なのでしょうか?<br>
&gt; それとも、PostgreSQL や OS等のバージョンとの兼ね合いがあるのでしょうか?<br>
&gt;<br>
&gt; よろしくお願いします。<br>
&gt;<br>
&gt; なお、PostgreSQL側では実行エラーとはならず正常に結果を受け取ることができますが、Parseエラーがとなると、ロードバランスがうまく行われないため、解決しておきたいと考えております。<br>
</div></div></blockquote></div><br></div>