<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><p class="MsoNormal"><p class="MsoNormal">Dear&nbsp;<span style="font-size: 12pt;">Tatsuo,</span><o:p></o:p></p>

<p class="MsoNormal">Thanks for your reply,&nbsp;<o:p></o:p></p>

<p class="MsoNormal"><span style="color: rgb(0, 112, 192);">Metadata structure of my db like this:<o:p></o:p></span></p>

<p class="MsoNormal"><span style="color: rgb(0, 112, 192);">&nbsp; hrvw_emp_info (view) --call--&gt;hrvw_employee_trigger
(view) --call--&gt;smfn_get_param (function)---&gt;select * from
temporary_table.<o:p></o:p></span></p>

<p class="MsoNormal"><o:p>&nbsp;</o:p></p>

<p class="MsoNormal">CREATE OR REPLACE VIEW <span style="color: red;">hrvw_emp_info</span> AS&nbsp;<o:p></o:p></p>

<p class="MsoNormal">&nbsp;SELECT *<o:p></o:p></p>

<p class="MsoNormal">&nbsp; &nbsp;FROM hrvw_employee_trigger t;<o:p></o:p></p>

<p class="MsoNormal"><o:p>&nbsp;</o:p></p>

<p class="MsoNormal">CREATE OR REPLACE VIEW <span style="color: red;">hrvw_employee_trigger</span> AS&nbsp;<o:p></o:p></p>

<p class="MsoNormal">&nbsp;SELECT *<o:p></o:p></p>

<p class="MsoNormal">&nbsp; &nbsp;FROM ( SELECT *<o:p></o:p></p>

<p class="MsoNormal">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FROM
hrtb_employee_infomation<o:p></o:p></p>

<p class="MsoNormal">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; WHERE
smfn_get_param('hrvw_employee_infomation.company_id'::character
varying)::numeric = hrtb_employee_infomation.company_id) a;<o:p></o:p></p>

<p class="MsoNormal">&nbsp; &nbsp;<o:p></o:p></p>

<p class="MsoNormal">&nbsp; &nbsp;<o:p></o:p></p>

<p class="MsoNormal">CREATE OR REPLACE FUNCTION <span style="color: red;">smfn_get_param</span>(pm_param_name character
varying)<o:p></o:p></p>

<p class="MsoNormal">&nbsp; RETURNS character varying AS<o:p></o:p></p>

<p class="MsoNormal">$BODY$<o:p></o:p></p>

<p class="MsoNormal">&nbsp; var_param_value varchar2(4000);<o:p></o:p></p>

<p class="MsoNormal">begin<o:p></o:p></p>

<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;select
param_value into var_param_value<o:p></o:p></p>

<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;from
smtb_session_param<o:p></o:p></p>

<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;where
param_name = pm_param_name;<o:p></o:p></p>

<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;return
var_param_value;<o:p></o:p></p>

<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;exception<o:p></o:p></p>

<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;when
others then<o:p></o:p></p>

<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;return
null;<o:p></o:p></p>

<p class="MsoNormal">end$BODY$<o:p></o:p></p>

<p class="MsoNormal">&nbsp; &nbsp;<o:p></o:p></p>

<p class="MsoNormal">&nbsp; &nbsp;<o:p></o:p></p>

<p class="MsoNormal">&nbsp; &nbsp;CREATE OR REPLACE FUNCTION <span style="color: red;">smpr_set_param</span>(pm_param_name character
varying, pm_param_value character varying)<o:p></o:p></p>

<p class="MsoNormal">&nbsp; &nbsp;..................<o:p></o:p></p>

<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CREATE
TEMPORARY TABLE smtb_session_param<o:p></o:p></p>

<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (<o:p></o:p></p>

<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;param_name
character varying(500) NOT NULL,<o:p></o:p></p>

<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;param_value
character varying(4000),<o:p></o:p></p>

<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;CONSTRAINT
&nbsp;smtb_session_param_pk PRIMARY KEY (param_name )<o:p></o:p></p>

<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )
ON COMMIT DELETE ROWS;<o:p></o:p></p>

<p class="MsoNormal">.............<o:p></o:p></p>

<p class="MsoNormal">&nbsp; &nbsp;end$BODY$<o:p></o:p></p>

<p class="MsoNormal"><o:p>&nbsp;</o:p></p>

<p class="MsoNormal"><span style="color: red;">&nbsp; &nbsp;I have added smpr_set_param,
smfn_get_param to black_function_list</span><span style="color:red"> </span><span style="color: red;">parameter in pgpool.conf file:<o:p></o:p></span></p>

<p class="MsoNormal"><span style="color: red;">&nbsp; &nbsp;black_function_list=
smpr_set_param,smfn_get_param<o:p></o:p></span></p>

<p class="MsoNormal"><span style="color: red;">&nbsp; &nbsp;<o:p></o:p></span></p>

<p class="MsoNormal"><span style="color: red;">&nbsp; &nbsp;But the queries on views
hrvw_emp_info, hrvw_employee_trigger still forward to the slave.<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&quot;;
mso-fareast-font-family:&quot;Times New Roman&quot;">&nbsp;</span></p>

<p class="MsoNormal">&gt; Date: Thu, 11 Apr 2013 17:28:42 +0900<br>
&gt; To: hoangthanhtoan@hotmail.com<br>
&gt; CC: pgpool-general@pgpool.net<br>
&gt; Subject: Re: [pgpool-general: 1597] Master/Slave Mode: Temp table used by
view.<br>
&gt; From: ishii@postgresql.org<br>
&gt;&nbsp;<br>
&gt; &gt; Dear all,Please help me.I have a temporary table is used as a literal
in View objects.in Master/Slave Mode (Pgpool): how to detect all query on this
view, and then transfer these queries to master.Please give me some
advices.Thanks a lot.&nbsp;<br>
&gt; Query examples please.<br>
&gt; --<br>
&gt; Tatsuo Ishii<br>
&gt; SRA OSS, Inc. Japan<br>
&gt; English: http://www.sraoss.co.jp/index_en.php<br>
&gt; Japanese: http://www.sraoss.co.jp<o:p></o:p></p>

<p class="MsoNormal"><br></p></p>                                               </div></body>
</html>