<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:old.nabble.com,2006:forum-22541</id>
	<title>Nabble - PostgreSQL - Brasil - Usuários</title>
	<updated>2008-05-31T12:56:47Z</updated>
	<link rel="self" type="application/atom+xml" href="http://old.nabble.com/PostgreSQL---Brasil---Usu%C3%A1rios-f22541.xml" />
	<link rel="alternate" type="text/html" href="http://old.nabble.com/PostgreSQL---Brasil---Usu%C3%A1rios-f22541.html" />
	<subtitle type="html">Ponto de encontro dos usuários do &lt;a href=&quot;http://www.postgresql.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;postgreSQL&lt;/a&gt;&amp;nbsp;que falam português.</subtitle>
	
<entry>
	<id>tag:old.nabble.com,2006:post-17579045</id>
	<title>Falha no schema com o SLONY</title>
	<published>2008-05-31T12:56:47Z</published>
	<updated>2008-05-31T12:56:47Z</updated>
	<author>
		<name>Ni</name>
	</author>
	<content type="html">OI Pessoal, 
&lt;br&gt;&lt;br&gt;Alguem pode me ajudar? eu instalei o slony e como nao sei muito, estou seguindo um tutorial, mas o problema 'e que quando rodo um script p/ troca de SYNCS entre os nodos, ocorre o seguinte erro: ERROR: &amp;nbsp;schema &amp;quot;_teste&amp;quot; does not exist
&lt;br&gt;BRT ERROR &amp;nbsp;cannot get sl_local_node_id - ERROR: &amp;nbsp;schema &amp;quot;_teste&amp;quot; does not exist
&lt;br&gt;Mas o esquema existe dentro das duas bases, master e slave.
&lt;br&gt;&lt;br&gt;Algu'em tem alguma sugestao?
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Falha-no-schema-com-o-SLONY-tp17579045p17579045.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10607455</id>
	<title>Re: funções de data</title>
	<published>2007-05-13T18:40:52Z</published>
	<updated>2007-05-13T18:40:52Z</updated>
	<author>
		<name>Adriano Espinoza de Oliveira</name>
	</author>
	<content type="html">Flavio, basta somar o numero da quantidade de dias à data. &lt;br&gt;Faça uma teste: &lt;br&gt;&lt;br&gt;- primeiro execute: select current_date&lt;br&gt;- depois execute: select current_date + 1&lt;br&gt;&lt;br&gt;Adriano Espinoza&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div&gt;&lt;span class=&quot;gmail_quote&quot;&gt;
Em 10/05/07, &lt;b class=&quot;gmail_sendername&quot;&gt;flavio cardoso&lt;/b&gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607455&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;cardoso.flavio@...&lt;/a&gt;&amp;gt; escreveu:&lt;/span&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
galera esto precisando somar um numero de dias em uma data, no sql server consigo fazer isto com a função adddate, procurei no manual do psg e não achei algo parecido ! alguém sabe como faço isso postgres(8.0).&lt;br clear=&quot;all&quot;&gt;
&lt;span class=&quot;sg&quot;&gt;
&lt;br&gt;-- &lt;br&gt;Flávio Cardoso
&lt;/span&gt;&lt;br&gt;_______________________________________________&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil&lt;br&gt;Antes de perguntar consulte o manual&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;
http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;
http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;br&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/fun%C3%A7%C3%B5es-de-data-tp10607449p10607455.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10607449</id>
	<title>funções de data</title>
	<published>2007-05-10T08:02:09Z</published>
	<updated>2007-05-10T08:02:09Z</updated>
	<author>
		<name>flavio cardoso</name>
	</author>
	<content type="html">galera esto precisando somar um numero de dias em uma data, no sql server consigo fazer isto com a função adddate, procurei no manual do psg e não achei algo parecido ! alguém sabe como faço isso postgres(8.0).&lt;br clear=&quot;all&quot;&gt;
&lt;br&gt;-- &lt;br&gt;Flávio Cardoso
&lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/fun%C3%A7%C3%B5es-de-data-tp10607449p10607449.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10607401</id>
	<title>Synonym Public no Postgres</title>
	<published>2007-05-09T12:19:38Z</published>
	<updated>2007-05-09T12:19:38Z</updated>
	<author>
		<name>G.A.S</name>
	</author>
	<content type="html">&lt;div&gt;Olá pessoal, todos bem?&lt;/div&gt;
&lt;div&gt;Seguinte, estou migrando um postgres da versão 7.4 para a versão 8.1. Vejo que eu posso criar um banco principal e vários eschemas.&lt;/div&gt;
&lt;div&gt;No Oracle, para que as roles possam acessar as tabelas de um determinado eschema, eu crio um sinônimo pública para a tabela, dando a possibilidade para as roles acessarem a mesma com seus determinados privilégios.&lt;/div&gt;

&lt;div&gt;Posso fazer isso no PostgreSQL 8.1 também?&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Abraços.&lt;/div&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Synonym-Public-no-Postgres-tp10607401p10607401.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10607438</id>
	<title>Função para substituir Case when</title>
	<published>2007-05-09T07:57:31Z</published>
	<updated>2007-05-09T07:57:31Z</updated>
	<author>
		<name>mateusgra</name>
	</author>
	<content type="html">fiz a seguinte função
&lt;br&gt;&lt;br&gt;CREATE OR REPLACE FUNCTION csw(boolean, anyelement, anyelement)
&lt;br&gt;RETURNS anyelement AS
&lt;br&gt;&amp;nbsp; &amp;nbsp;'select case when $1 then $2 else $3 end;'
&lt;br&gt;LANGUAGE 'sql' VOLATILE;
&lt;br&gt;&lt;br&gt;Quando eu passo os paramentros select csw( c1 + c2 &amp;gt; 0 ,c1/c2,0) from 
&lt;br&gt;tabela; gera o sequinte erro
&lt;br&gt;&lt;br&gt;ERROR: division by zero
&lt;br&gt;SQL state: 22012
&lt;br&gt;&lt;br&gt;c1 e c2 são campos de uma tabela e as vezes os dois estão zerados ele 
&lt;br&gt;teria que executar a codição e verificar que c1 + c2 não é maior que 0 e 
&lt;br&gt;&amp;nbsp; retorna zero.
&lt;br&gt;&lt;br&gt;O que eu gostaria de fazer é ao inves de fazer case a=a when then a else 
&lt;br&gt;&amp;nbsp; b end; eu gostaria de subustuir a funcao case &amp;nbsp;para que ficasse assim 
&lt;br&gt;csw(a=a,a,b) se qlguem puder me ajudar grato.
&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Fun%C3%A7%C3%A3o-para-substituir-Case-when-tp10607438p10607438.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10607373</id>
	<title>Consulta Sql</title>
	<published>2007-05-08T08:14:07Z</published>
	<updated>2007-05-08T08:14:07Z</updated>
	<author>
		<name>jfranco</name>
	</author>
	<content type="html">&lt;div&gt;Gostaria de saber como eu faria uma SQL para pegar do catálogo do PG o Nome das Tabelas, Nome das Colunas, Tipo de Dado, e Descrição, para efeito de documentção do BD.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Grato.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;J. Franco&lt;/div&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Consulta-Sql-tp10607373p10607373.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10607386</id>
	<title>Acesso a tabelas</title>
	<published>2007-05-07T10:46:06Z</published>
	<updated>2007-05-07T10:46:06Z</updated>
	<author>
		<name>G.A.S</name>
	</author>
	<content type="html">&lt;div&gt;Olá pessoal, tudo bom?&lt;/div&gt;
&lt;div&gt;Estou migrando o postgres 7.4.8 para 8.1.5 e estou tendo um problema com acesso aos objetos do banco.&lt;/div&gt;
&lt;div&gt;Criei o banco teste e dentro schema public criei as tabelas dando grant select, insert, update e delete para a role gteste. Qdo. tento acesso a uma das tebelas com o usuário teste que esta dentro da role gteste recebo a mensagem de que a tabela não existe.
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Alguém pode me dar um help?&lt;/div&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Acesso-a-tabelas-tp10607386p10607386.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10607323</id>
	<title>campo texto em gráficos</title>
	<published>2007-05-03T06:48:27Z</published>
	<updated>2007-05-03T06:48:27Z</updated>
	<author>
		<name>Maikel Dal Farra</name>
	</author>
	<content type="html">&lt;html&gt;&lt;div style='background-color:'&gt;&lt;P&gt;Salve!&lt;/P&gt;
&lt;P&gt;Testei dois bancos PostgreSQL igualmente instalados. Em um deles não consigo mais configurar campos texto como Labels em gráficos TDBChart no Builder 6, somente campos numeric e data aparecem como Labels, já em outro banco, em outra máquina consigo configurar sem problemas isso. Antes esse tipo de campo aparecia como Label sem problemas, agora não aparece mais. Existe alguma configuração específica no PostgreSQL para isso? Teoricamente os bancos estão iguais.&lt;/P&gt;
&lt;DIV class=RTE&gt;&lt;/DIV&gt;&lt;/div&gt;&lt;br clear=all&gt;&lt;hr&gt; &lt;a href=&quot;http://g.msn.com/8HMBBRBR/2743??PS=47575&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Verificador de Segurança do Windows Live OneCare: verifique já a segurança do seu PC!&lt;/a&gt; &lt;/html&gt;

&lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/campo-texto-em-gr%C3%A1ficos-tp10607323p10607323.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10607427</id>
	<title>Popular tabela.</title>
	<published>2007-05-02T08:41:02Z</published>
	<updated>2007-05-02T08:41:02Z</updated>
	<author>
		<name>tbaroni</name>
	</author>
	<content type="html">Bom dia pessoal.
&lt;br&gt;Criei uma tabela com a seguinte estrutura:
&lt;br&gt;&lt;br&gt;&amp;nbsp; codigo serial NOT NULL,
&lt;br&gt;&amp;nbsp; livro integer NOT NULL,
&lt;br&gt;&amp;nbsp; folha integer NOT NULL,
&lt;br&gt;&amp;nbsp; &amp;quot;imagemF&amp;quot; character(50) NOT NULL,
&lt;br&gt;&amp;nbsp; &amp;quot;imagemV&amp;quot; character(50) NOT NULL;
&lt;br&gt;&lt;br&gt;Agora eu preciso popular essa tabela da seguinte forma:
&lt;br&gt;&lt;br&gt;livro &amp;quot;1&amp;quot;,
&lt;br&gt;folha (Variando de &amp;quot;1&amp;quot; à &amp;quot;200&amp;quot;),
&lt;br&gt;&amp;quot;imagemF&amp;quot; (&amp;quot;Z:\Livro001\00001f.jpg&amp;quot;, com a última parte (00001f.jpg)
&lt;br&gt;variando de acordo com o número da folha),
&lt;br&gt;&amp;quot;imagemV&amp;quot; (&amp;quot;Z:\Livro001\00001v.jpg&amp;quot;, com a última parte (00001v.jpg)
&lt;br&gt;variando de acordo com o número da folha);
&lt;br&gt;&lt;br&gt;Resultando no seguinte (para a folha 1 do livro 1, por exemplo):
&lt;br&gt;&lt;br&gt;&amp;nbsp; codigo &amp;quot;1&amp;quot;,
&lt;br&gt;&amp;nbsp; livro &amp;quot;1&amp;quot;,
&lt;br&gt;&amp;nbsp; folha &amp;quot;1&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;quot;imagemF&amp;quot; &amp;quot;Z:\Livro001\00001f.jpg&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;quot;imagemV&amp;quot; &amp;quot;Z:\Livro001\00001v.jpg&amp;quot;;
&lt;br&gt;&lt;br&gt;Existe alguma forma de popular essa tabela por dentro do PostGreSQL?
&lt;br&gt;Estou usando o PostGre v8.2 e o pgAdmin v1.6.3.
&lt;br&gt;--------------------------------------
&lt;br&gt;Tiago H. França Baroni
&lt;br&gt;&amp;quot;Semel in anno licet insanire&amp;quot;
&lt;br&gt;&lt;br&gt;e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607427&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tbaroni@...&lt;/a&gt;
&lt;br&gt;msn: &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607427&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;h3nck3r@...&lt;/a&gt;
&lt;br&gt;celular: (17) 8126-7464
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; _____ &amp;nbsp;
&lt;br&gt;&lt;br&gt;avast! Antivirus &amp;lt;&lt;a href=&quot;http://www.avast.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.avast.com&lt;/a&gt;&amp;gt; : Outbound message clean. 
&lt;br&gt;&lt;br&gt;&lt;br&gt;Virus Database (VPS): 000737-2, 30/04/2007
&lt;br&gt;Tested on: 02/05/2007 11:41:02
&lt;br&gt;avast! - copyright (c) 1988-2007 ALWIL Software.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Popular-tabela.-tp10607427p10607427.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10607520</id>
	<title>Re: Select for update</title>
	<published>2007-05-02T08:40:28Z</published>
	<updated>2007-05-02T08:40:28Z</updated>
	<author>
		<name>Leandro Guimarães Faria Corcete DUTRA-2</name>
	</author>
	<content type="html">Em Qua, 2007-04-25 às 18:28 -0300, Daniel Robert Costa escreveu:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Preciso fazer um select exclusivo para a atualização de alguns
&lt;br&gt;&amp;gt; campos.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Me indicaram o SELECT FOR UPDATE.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Geralmente é tiro no pé. &amp;nbsp;Melhor usar nível de isolamento serializável,
&lt;br&gt;salvo as honrosas exceções de praxe.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Leandro Guimarães Faria Corcete DUTRA &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607520&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;leandro.dutra@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;a href=&quot;http://orolix.com.br./&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://orolix.com.br./&lt;/a&gt;&lt;br&gt;+55 (11) 2122 0302
&lt;br&gt;Join the FSF: &lt;a href=&quot;http://www.fsf.org/register_form?referrer=4686&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.fsf.org/register_form?referrer=4686&lt;/a&gt;&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (316 bytes) &lt;a href=&quot;http://old.nabble.com/attachment/10607520/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-Select-for-update-tp10607520p10607520.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10607353</id>
	<title>Re: Digest Brasil-Usuarios, volume 504, assunto 2</title>
	<published>2007-05-02T04:43:39Z</published>
	<updated>2007-05-02T04:43:39Z</updated>
	<author>
		<name>Andrea-14</name>
	</author>
	<content type="html">Resposta : Assunto 2 Backup muito lento (Adriano Espinoza de Oliveira)
&lt;br&gt;&lt;br&gt;Olá Adriano ,
&lt;br&gt;&lt;br&gt;Estou com um problema sememlhante aqui na empresa.
&lt;br&gt;Após algumas consultas obtive as seguintes repostas:
&lt;br&gt;1. Fazer o vacuum simples nas tabelas
&lt;br&gt;2. Rodar o Analyze
&lt;br&gt;3. Realizar o backup através do PITR
&lt;br&gt;&lt;br&gt;Ainda não concluí os meus testes porque a minha base de dados está com 230
&lt;br&gt;GB e estou tentando conseguir área e
&lt;br&gt;máquina para realizar estes testes.
&lt;br&gt;Aqui o SO é Linux e a máquina um RISC de 16 GB de RAM e o meu PostgreSQL é
&lt;br&gt;8.1.6.
&lt;br&gt;&lt;br&gt;Espero ter ajudado.
&lt;br&gt;&lt;br&gt;Andréa Pereira
&lt;br&gt;DBA-Compesa
&lt;br&gt;Recife-Pe
&lt;br&gt;&lt;br&gt;&lt;br&gt;----- Original Message -----
&lt;br&gt;From: &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607353&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-request@...&lt;/a&gt;&amp;gt;
&lt;br&gt;To: &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607353&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;&amp;gt;
&lt;br&gt;Sent: Thursday, April 26, 2007 12:10 PM
&lt;br&gt;Subject: Digest Brasil-Usuarios, volume 504, assunto 4
&lt;br&gt;&lt;br&gt;&lt;br&gt;Enviar submissões para a lista de discussão Brasil-Usuarios para
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607353&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;Para se cadastrar ou descadastrar via WWW, visite o endereço
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;br&gt;ou, via email, envie uma mensagem com a palavra 'help' no assunto ou
&lt;br&gt;corpo da mensagem para
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607353&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-request@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;Você poderá entrar em contato com a pessoa que gerencia a lista pelo
&lt;br&gt;endereço
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607353&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-owner@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;Quando responder, por favor edite sua linha Assunto assim ela será
&lt;br&gt;mais específica que &amp;quot;Re: Contents of Brasil-Usuarios digest...&amp;quot;
&lt;br&gt;&lt;br&gt;&lt;br&gt;Tópicos de Hoje:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;1. Re: Iniciante (DriDa Assessoria Gráfica &amp; WEB)
&lt;br&gt;&amp;nbsp; &amp;nbsp;2. Backup muito lento (Adriano Espinoza de Oliveira)
&lt;br&gt;&amp;nbsp; &amp;nbsp;3. Re: Backup muito lento (Joao)
&lt;br&gt;&amp;nbsp; &amp;nbsp;4. Re: Backup muito lento (Adriano Espinoza de Oliveira)
&lt;br&gt;&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;Message: 1
&lt;br&gt;Date: Thu, 26 Apr 2007 11:29:41 -0300
&lt;br&gt;From: DriDa Assessoria Gráfica &amp; WEB &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607353&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;drida@...&lt;/a&gt;&amp;gt;
&lt;br&gt;Subject: Re: [PostgreSQL-Brasil] Iniciante
&lt;br&gt;To: Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607353&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;&amp;gt;
&lt;br&gt;Message-ID: &amp;lt;002d01c7880f$66dd13c0$7200a8c0@oraculo&amp;gt;
&lt;br&gt;Content-Type: text/plain; charset=&amp;quot;iso-8859-1&amp;quot;
&lt;br&gt;&lt;br&gt;Bom dia, Ulisses
&lt;br&gt;&lt;br&gt;Estou tentando instalar a ZeosLib, no c++ builder 6 mas não estou
&lt;br&gt;conseguindo, faço todos os processos para compilação
&lt;br&gt;não dá erro nenhum, mas também não disponibiliza o componente.
&lt;br&gt;&lt;br&gt;Estou baixando o Delphi, pra ver se consigo ter sucesso.
&lt;br&gt;&lt;br&gt;Pois neste projeto que estou posso programar tanto em delphi como em c++,
&lt;br&gt;mas para dados tem que ser PostgreSQL.
&lt;br&gt;&lt;br&gt;Já andei lendo bastante, mas não comecei a desenvolver nada ainda, pois
&lt;br&gt;ainda não consegui integrar o postgresql com a programação.
&lt;br&gt;&lt;br&gt;Já tentei com a conexão via OBDC, com o driver postgre mas nada também. ele
&lt;br&gt;conecta via ADO, mas não vejo as tabelas nen nada.
&lt;br&gt;&lt;br&gt;de repente se tiver um tutorial mais didático de como proceder e puder me
&lt;br&gt;ajudar.
&lt;br&gt;&lt;br&gt;Atc.
&lt;br&gt;Adriano
&lt;br&gt;&amp;nbsp; ----- Original Message -----
&lt;br&gt;&amp;nbsp; From: Ulisses
&lt;br&gt;&amp;nbsp; To: Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;&amp;nbsp; Sent: Thursday, April 26, 2007 8:09 AM
&lt;br&gt;&amp;nbsp; Subject: Re: [PostgreSQL-Brasil] Iniciante
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; Bom dia!
&lt;br&gt;&lt;br&gt;&amp;nbsp; Já tem os componentes para conexão com o PostgreSQL?
&lt;br&gt;&lt;br&gt;&amp;nbsp; O primeiro passo, é saber se vai usar um recurso pago ou vai querer algo
&lt;br&gt;free.
&lt;br&gt;&lt;br&gt;&amp;nbsp; Quanto ao PostgreSQL, vai ter que estudar um pouco para poder usar os
&lt;br&gt;recursos que ele tem disponível, que não são poucos, pois é um excelente
&lt;br&gt;Banco de Dados.
&lt;br&gt;&lt;br&gt;&amp;nbsp; Os recursos básicos são simples de se utilizar, como em qualquer outro
&lt;br&gt;Banco de Dados. Não precisa ficar assustado.
&lt;br&gt;&lt;br&gt;&amp;nbsp; Qualquer dúvida, manda aí.
&lt;br&gt;&lt;br&gt;&amp;nbsp; Boa sorte.
&lt;br&gt;&lt;br&gt;&amp;nbsp; Ulisses
&lt;br&gt;&amp;nbsp; &amp;nbsp; ----- Original Message -----
&lt;br&gt;&amp;nbsp; &amp;nbsp; From: DriDa Assessoria Gráfica &amp; WEB
&lt;br&gt;&amp;nbsp; &amp;nbsp; To: PostgreSQL - Lista
&lt;br&gt;&amp;nbsp; &amp;nbsp; Sent: Wednesday, April 25, 2007 9:39 PM
&lt;br&gt;&amp;nbsp; &amp;nbsp; Subject: [PostgreSQL-Brasil] Iniciante
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Estou desenvolvendo uma aplicação em c++ builder 6, mas tem que ser
&lt;br&gt;necessariamente com PostgreSQL.
&lt;br&gt;&amp;nbsp; &amp;nbsp; Não conheço nada ainda sobre PostgreSQL, poderiam me ajudar nesta
&lt;br&gt;iniciação com postgre, exemplos,
&lt;br&gt;&amp;nbsp; &amp;nbsp; tutoriais, principais comandos, como conectar a base de dados etc. etc.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Ficaria muito grato com a ajuda.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Atc.
&lt;br&gt;&amp;nbsp; &amp;nbsp; Adriano
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; _______________________________________________
&lt;br&gt;&amp;nbsp; &amp;nbsp; Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;&amp;nbsp; &amp;nbsp; Antes de perguntar consulte o manual
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------------
&lt;br&gt;--
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; _______________________________________________
&lt;br&gt;&amp;nbsp; Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;&amp;nbsp; Antes de perguntar consulte o manual
&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;br&gt;-------------- Próxima Parte ----------
&lt;br&gt;Um anexo em HTML foi limpo...
&lt;br&gt;URL:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/pipermail/brasil-usuarios/attachments/20070426/d13bcfaf&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/pipermail/brasil-usuarios/attachments/20070426/d13bcfaf&lt;/a&gt;&lt;br&gt;/attachment-0001.html
&lt;br&gt;&lt;br&gt;------------------------------
&lt;br&gt;&lt;br&gt;Message: 2
&lt;br&gt;Date: Thu, 26 Apr 2007 11:44:23 -0300
&lt;br&gt;From: &amp;quot;Adriano Espinoza de Oliveira&amp;quot; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607353&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;adrianoespinoza@...&lt;/a&gt;&amp;gt;
&lt;br&gt;Subject: [PostgreSQL-Brasil] Backup muito lento
&lt;br&gt;To: ListaPgsql &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607353&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;&amp;gt;
&lt;br&gt;Message-ID:
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607353&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;d3888f880704260744r8fc2b06i2230e5726beeee38@...&lt;/a&gt;&amp;gt;
&lt;br&gt;Content-Type: text/plain; charset=&amp;quot;iso-8859-1&amp;quot;
&lt;br&gt;&lt;br&gt;Há alguns dias atrás troquei o servidor da empresa por uma maquina melhor.
&lt;br&gt;Mantive as versões do Postgres e do Debian e o desempenho do banco melhorou
&lt;br&gt;muito.
&lt;br&gt;Mas estou com um problema sério no backup/restore: ficou extremamente lento!
&lt;br&gt;Sempre utilizei o pg_dump com psql p/ restaurar, mas agora está simplesmente
&lt;br&gt;absurdo e não tem nada de diferente instalado, mesma base de dados, mesmo
&lt;br&gt;SO.
&lt;br&gt;E ainda estou com dois HD´s no servidor, coloquei o banco em uma partição
&lt;br&gt;diferente WAL e diferente de onde o backup e escrito e lido.
&lt;br&gt;Não sei o que pode ser! Alguém pode dar uma dica?
&lt;br&gt;Adriano Espinoza
&lt;br&gt;-------------- Próxima Parte ----------
&lt;br&gt;Um anexo em HTML foi limpo...
&lt;br&gt;URL:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/pipermail/brasil-usuarios/attachments/20070426/1edcfe32&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/pipermail/brasil-usuarios/attachments/20070426/1edcfe32&lt;/a&gt;&lt;br&gt;/attachment-0001.html
&lt;br&gt;&lt;br&gt;------------------------------
&lt;br&gt;&lt;br&gt;Message: 3
&lt;br&gt;Date: Thu, 26 Apr 2007 12:00:08 -0300
&lt;br&gt;From: &amp;quot;Joao&amp;quot; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607353&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joao.junior@...&lt;/a&gt;&amp;gt;
&lt;br&gt;Subject: Re: [PostgreSQL-Brasil] Backup muito lento
&lt;br&gt;To: Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607353&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;&amp;gt;
&lt;br&gt;Message-ID: &amp;lt;003101c78813$94c45740$d815010a@gesin293&amp;gt;
&lt;br&gt;Content-Type: text/plain; charset=&amp;quot;iso-8859-1&amp;quot;
&lt;br&gt;&lt;br&gt;ja rodou um vaccum analize no banco ?
&lt;br&gt;&amp;nbsp; ----- Original Message -----
&lt;br&gt;&amp;nbsp; From: Adriano Espinoza de Oliveira
&lt;br&gt;&amp;nbsp; To: ListaPgsql
&lt;br&gt;&amp;nbsp; Sent: Thursday, April 26, 2007 11:44 AM
&lt;br&gt;&amp;nbsp; Subject: [PostgreSQL-Brasil] Backup muito lento
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; Há alguns dias atrás troquei o servidor da empresa por uma maquina melhor.
&lt;br&gt;&amp;nbsp; Mantive as versões do Postgres e do Debian e o desempenho do banco
&lt;br&gt;melhorou muito.
&lt;br&gt;&amp;nbsp; Mas estou com um problema sério no backup/restore: ficou extremamente
&lt;br&gt;lento!
&lt;br&gt;&amp;nbsp; Sempre utilizei o pg_dump com psql p/ restaurar, mas agora está
&lt;br&gt;simplesmente absurdo e não tem nada de diferente instalado, mesma base de
&lt;br&gt;dados, mesmo SO.
&lt;br&gt;&amp;nbsp; E ainda estou com dois HD´s no servidor, coloquei o banco em uma partição
&lt;br&gt;diferente WAL e diferente de onde o backup e escrito e lido.
&lt;br&gt;&amp;nbsp; Não sei o que pode ser! Alguém pode dar uma dica?
&lt;br&gt;&amp;nbsp; Adriano Espinoza
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------------
&lt;br&gt;--
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; _______________________________________________
&lt;br&gt;&amp;nbsp; Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;&amp;nbsp; Antes de perguntar consulte o manual
&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;br&gt;-------------- Próxima Parte ----------
&lt;br&gt;Um anexo em HTML foi limpo...
&lt;br&gt;URL:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/pipermail/brasil-usuarios/attachments/20070426/44ba5ecc&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/pipermail/brasil-usuarios/attachments/20070426/44ba5ecc&lt;/a&gt;&lt;br&gt;/attachment-0001.html
&lt;br&gt;&lt;br&gt;------------------------------
&lt;br&gt;&lt;br&gt;Message: 4
&lt;br&gt;Date: Thu, 26 Apr 2007 12:10:09 -0300
&lt;br&gt;From: &amp;quot;Adriano Espinoza de Oliveira&amp;quot; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607353&amp;i=12&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;adrianoespinoza@...&lt;/a&gt;&amp;gt;
&lt;br&gt;Subject: Re: [PostgreSQL-Brasil] Backup muito lento
&lt;br&gt;To: &amp;quot; Grupo de Usuários do PostgreSQL no Brasil &amp;quot;
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607353&amp;i=13&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;&amp;gt;
&lt;br&gt;Message-ID:
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607353&amp;i=14&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;d3888f880704260810o54896856wa38bd38a81b961d0@...&lt;/a&gt;&amp;gt;
&lt;br&gt;Content-Type: text/plain; charset=&amp;quot;iso-8859-1&amp;quot;
&lt;br&gt;&lt;br&gt;Já sim, assim que restaurei o banco.... e estou fazendo a cada dia nop final
&lt;br&gt;do expediente p/ ter parametros p/ autovacumm.
&lt;br&gt;De qq forma o vacuum analize teria impacto sobre a execucção do dump e do
&lt;br&gt;restore?
&lt;br&gt;Adriano
&lt;br&gt;&lt;br&gt;Em 26/04/07, Joao &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607353&amp;i=15&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joao.junior@...&lt;/a&gt;&amp;gt; escreveu:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;ja rodou um vaccum analize no banco ?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ----- Original Message -----
&lt;br&gt;&amp;gt; *From:* Adriano Espinoza de Oliveira &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607353&amp;i=16&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;adrianoespinoza@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; *To:* ListaPgsql &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607353&amp;i=17&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; *Sent:* Thursday, April 26, 2007 11:44 AM
&lt;br&gt;&amp;gt; *Subject:* [PostgreSQL-Brasil] Backup muito lento
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Há alguns dias atrás troquei o servidor da empresa por uma maquina melhor.
&lt;br&gt;&amp;gt; Mantive as versões do Postgres e do Debian e o desempenho do banco
&lt;br&gt;&amp;gt; melhorou muito.
&lt;br&gt;&amp;gt; Mas estou com um problema sério no backup/restore: ficou extremamente
&lt;br&gt;&amp;gt; lento!
&lt;br&gt;&amp;gt; Sempre utilizei o pg_dump com psql p/ restaurar, mas agora está
&lt;br&gt;&amp;gt; simplesmente absurdo e não tem nada de diferente instalado, mesma base de
&lt;br&gt;&amp;gt; dados, mesmo SO.
&lt;br&gt;&amp;gt; E ainda estou com dois HD´s no servidor, coloquei o banco em uma partição
&lt;br&gt;&amp;gt; diferente WAL e diferente de onde o backup e escrito e lido.
&lt;br&gt;&amp;gt; Não sei o que pode ser! Alguém pode dar uma dica?
&lt;br&gt;&amp;gt; Adriano Espinoza
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;&amp;gt; Antes de perguntar consulte o manual
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;&amp;gt; Antes de perguntar consulte o manual
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;/div&gt;-------------- Próxima Parte ----------
&lt;br&gt;Um anexo em HTML foi limpo...
&lt;br&gt;URL:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/pipermail/brasil-usuarios/attachments/20070426/8e81bb60&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/pipermail/brasil-usuarios/attachments/20070426/8e81bb60&lt;/a&gt;&lt;br&gt;/attachment.html
&lt;br&gt;&lt;br&gt;------------------------------
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org.br&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org.br&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Fim da Digest Brasil-Usuarios, volume 504, assunto 4
&lt;br&gt;****************************************************
&lt;br&gt;&lt;br&gt;&lt;br&gt;--
&lt;br&gt;No virus found in this incoming message.
&lt;br&gt;Checked by AVG Free Edition.
&lt;br&gt;Version: 7.5.463 / Virus Database: 269.6.1/776 - Release Date: 25/4/2007
&lt;br&gt;12:19
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-Digest-Brasil-Usuarios%2C-volume-504%2C-assunto-2-tp10607353p10607353.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10607338</id>
	<title>RES:  RES:  RES:  Attach Database</title>
	<published>2007-04-30T11:52:14Z</published>
	<updated>2007-04-30T11:52:14Z</updated>
	<author>
		<name>Viviane Ribeiro</name>
	</author>
	<content type="html">Olá Osvaldo!
&lt;br&gt;&lt;br&gt;&lt;br&gt;Corrija-me se eu estiver enganada...
&lt;br&gt;O problema de diferentes agrupamentos é que hora vou carregar um, hora vou carregar outro. E se quiser carregar ambos vou ter que carregar cada um em uma porta diferente.
&lt;br&gt;Só que no meu caso preciso carregar ambas as databases na mesma instância, na porta default. Tipo, vou ter a baseA e a baseB rodando e em determinado momento vou executar um script que ele anexa a baseC, que fisicamente já está no disco dentro da pasta onde a variável $PGDATA aponta, ela só não está listada no catálogo do sistema.
&lt;br&gt;&lt;br&gt;O anexar database, poderíamos dizer que seria inserir um registro no catálogo do sistema para que este passe a visualizar e carregar a base.
&lt;br&gt;&lt;br&gt;&lt;br&gt;Abs,
&lt;br&gt;&lt;br&gt;&lt;br&gt;Viviane
&lt;br&gt;&lt;br&gt;-----Mensagem original-----
&lt;br&gt;De: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607338&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-bounces@...&lt;/a&gt; [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607338&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-bounces@...&lt;/a&gt;] Em nome de Osvaldo Kussama
&lt;br&gt;Enviada em: quarta-feira, 25 de abril de 2007 17:36
&lt;br&gt;Para: Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Assunto: Re: [PostgreSQL-Brasil] RES: RES: Attach Database
&lt;br&gt;&lt;br&gt;&lt;br&gt;--- Viviane Ribeiro &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607338&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;viviane@...&lt;/a&gt;&amp;gt; escreveu:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Pelo pg_hba.conf consigo restringir o acesso a
&lt;br&gt;&amp;gt; database, mas ele continua carregando a base. 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Efetivamente gostaria que o postgresql não
&lt;br&gt;&amp;gt; visualizasse, nem carregasse a database por um
&lt;br&gt;&amp;gt; tempo, até que fosse dado um attach nela.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Existe uma tabela no system catalog que lista as
&lt;br&gt;&amp;gt; databases a serem carregadas - a pg_database.
&lt;br&gt;&amp;gt; Entretanto, não consigo editá-la diretamente.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ________________________________
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; De: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607338&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-bounces@...&lt;/a&gt;
&lt;br&gt;&amp;gt; [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607338&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-bounces@...&lt;/a&gt;] Em
&lt;br&gt;&amp;gt; nome de Joao
&lt;br&gt;&amp;gt; Enviada em: quarta-feira, 25 de abril de 2007 16:42
&lt;br&gt;&amp;gt; Para: Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;&amp;gt; Assunto: Re: [PostgreSQL-Brasil] RES: Attach
&lt;br&gt;&amp;gt; Database
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; pg_hba.conf resolve o q vc quer
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 	----- Original Message ----- 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 	From: Viviane Ribeiro
&lt;br&gt;&amp;gt; &amp;lt;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607338&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;viviane@...&lt;/a&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 	To: Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;&amp;gt; &amp;lt;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607338&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 	Sent: Wednesday, April 25, 2007 4:23 PM
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 	Subject: [PostgreSQL-Brasil] RES: Attach Database
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 	 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 	Imagine o seguinte...
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 	A variável $PGDATA aponta para /pgsql/dados
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 	Dentro da pasta dados duas pastas, uma para cada
&lt;br&gt;&amp;gt; base.... a BASEA e a BASEB
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 	 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 	Sendo assim eu tenho...
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 	/pgsql/dados/BASEA
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /BASEB
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 	 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 	Em determinado momento eu não quero mais deixar
&lt;br&gt;&amp;gt; disponível a baseB, mas, não quero excluir ela...
&lt;br&gt;&amp;gt; quero simplesmente detachar ou melhor, desanexar a
&lt;br&gt;&amp;gt; base do Postgresql, sem realizar a exclusão da
&lt;br&gt;&amp;gt; database, visto que no processo de exclusão a pasta
&lt;br&gt;&amp;gt; da database é eliminada, neste caso a pasta BASEB.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 	 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 	No processo de anexar a base de dados... realizo o
&lt;br&gt;&amp;gt; processo inverso... tenho a pasta da base de dados,
&lt;br&gt;&amp;gt; mas a mesma não está sendo carregada pelo
&lt;br&gt;&amp;gt; Postgresql, tipo, se eu tentar rodar um psql BancoB,
&lt;br&gt;&amp;gt; não vou conseguir acessar... mas a pasta que
&lt;br&gt;&amp;gt; armazena as informações da base, neste exemplo,
&lt;br&gt;&amp;gt; encontra-se fisicamente dentro da pasta
&lt;br&gt;&amp;gt; /pgsql/dados/BASEB. Eu quero simplesmente que o
&lt;br&gt;&amp;gt; PostgreSQL passe a visualizar ela.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 	 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 	No SQL Server, no momento em que eu rodo o
&lt;br&gt;&amp;gt; sp_dettach, ou seja, desanexo uma database, na
&lt;br&gt;&amp;gt; console de administração não consigo mais
&lt;br&gt;&amp;gt; visualizar, nem conectar na base de dados. Quando o
&lt;br&gt;&amp;gt; SQL Server é iniciado, ele não carrega essa base de
&lt;br&gt;&amp;gt; dados. Entretando, o arquivo MDF e LDF continuam
&lt;br&gt;&amp;gt; existindo. No momento em que eu quiser voltar a
&lt;br&gt;&amp;gt; visualizar e acessar essa database eu rodo o
&lt;br&gt;&amp;gt; sp_attach informando aonde estão os arquivos .MDF E
&lt;br&gt;&amp;gt; .LDF da database, para anexar a base novamente no
&lt;br&gt;&amp;gt; SQL Server.
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;&lt;br&gt;Diferentes agrupamentos (database cluster) não
&lt;br&gt;resolvem seu problema?
&lt;br&gt;&lt;a href=&quot;http://www.postgresql.org/docs/8.2/interactive/creating-cluster.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.postgresql.org/docs/8.2/interactive/creating-cluster.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Quando você disparar o PostgreSQL você indica qual
&lt;br&gt;agrupamento utilizar.
&lt;br&gt;&lt;br&gt;[]s
&lt;br&gt;Osvaldo
&lt;br&gt;&lt;br&gt;&lt;br&gt;__________________________________________________
&lt;br&gt;Fale com seus amigos &amp;nbsp;de graça com o novo Yahoo! Messenger 
&lt;br&gt;&lt;a href=&quot;http://br.messenger.yahoo.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://br.messenger.yahoo.com/&lt;/a&gt;&amp;nbsp;
&lt;br&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/RES%3A--RES%3A--RES%3A--Attach-Database-tp10607338p10607338.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10607333</id>
	<title>RES:  RES:  RES:  Attach Database</title>
	<published>2007-04-30T11:07:25Z</published>
	<updated>2007-04-30T11:07:25Z</updated>
	<author>
		<name>Viviane Ribeiro</name>
	</author>
	<content type="html">&lt;html xmlns:v=&quot;urn:schemas-microsoft-com:vml&quot; xmlns:o=&quot;urn:schemas-microsoft-com:office:office&quot; xmlns:w=&quot;urn:schemas-microsoft-com:office:word&quot; xmlns:st1=&quot;urn:schemas-microsoft-com:office:smarttags&quot; xmlns=&quot;http://www.w3.org/TR/REC-html40&quot;&gt;

&lt;head&gt;
&lt;meta http-equiv=Content-Type content=&quot;text/html; charset=iso-8859-1&quot;&gt;
&lt;meta name=Generator content=&quot;Microsoft Word 11 (filtered medium)&quot;&gt;
&lt;!--[if !mso]&gt;
&lt;style&gt;
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;o:SmartTagType namespaceuri=&quot;urn:schemas-microsoft-com:office:smarttags&quot; name=&quot;PersonName&quot; /&gt;
&lt;!--[if !mso]&gt;
&lt;style&gt;
st1\:*{behavior:url(#default#ieooui) }
&lt;/style&gt;
&lt;![endif]--&gt;

&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapedefaults v:ext=&quot;edit&quot; spidmax=&quot;1026&quot; /&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapelayout v:ext=&quot;edit&quot;&gt;
  &lt;o:idmap v:ext=&quot;edit&quot; data=&quot;1&quot; /&gt;
 &lt;/o:shapelayout&gt;&lt;/xml&gt;&lt;![endif]--&gt;
&lt;/head&gt;

&lt;body bgcolor=white lang=PT-BR link=blue vlink=blue&gt;

&lt;div class=Section1&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=navy face=Arial&gt;&lt;span style='font-size:
10.0pt;font-family:Arial;color:navy'&gt;Quando eu efetuo um dettach no SQL Server,
pro SQL Server é como se eu tivesse excluído a Database. Ele elimina qualquer
registro que aponta pra Database no Catálogo do sistema. Entretanto, ele não
exclui o Datafile nem o Log do disco fisicamente. Eu queria fazer o mesmo
processo no PostgreSQL.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=navy face=Arial&gt;&lt;span style='font-size:
10.0pt;font-family:Arial;color:navy'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=navy face=Arial&gt;&lt;span style='font-size:
10.0pt;font-family:Arial;color:navy'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;div&gt;

&lt;div class=MsoNormal align=center style='text-align:center'&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:12.0pt'&gt;

&lt;hr size=2 width=&quot;100%&quot; align=center tabindex=-1&gt;

&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Tahoma&gt;&lt;span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'&gt;De:&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=2 face=Tahoma&gt;&lt;span style='font-size:10.0pt;font-family:Tahoma'&gt;
&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607333&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-bounces@...&lt;/a&gt;
[mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607333&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-bounces@...&lt;/a&gt;] &lt;b&gt;&lt;span style='font-weight:
bold'&gt;Em nome de &lt;/span&gt;&lt;/b&gt;Joao&lt;br&gt;
&lt;b&gt;&lt;span style='font-weight:bold'&gt;Enviada em:&lt;/span&gt;&lt;/b&gt; quarta-feira, 25 de
abril de 2007 17:33&lt;br&gt;
&lt;b&gt;&lt;span style='font-weight:bold'&gt;Para:&lt;/span&gt;&lt;/b&gt; &lt;st1:PersonName w:st=&quot;on&quot;&gt;Grupo
 de Usuários do PostgreSQL no Brasil&lt;/st1:PersonName&gt;&lt;br&gt;
&lt;b&gt;&lt;span style='font-weight:bold'&gt;Assunto:&lt;/span&gt;&lt;/b&gt; Re: [PostgreSQL-Brasil]
RES: RES: Attach Database&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:
12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;
font-family:Arial'&gt;estava pensando nessa possibilidade setar o dataallowconnection
para false mas acho qvai da na mesma&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:
12.0pt'&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;
font-family:Arial'&gt;so nao entendi o termo postgresql ira carregar a base....&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:
12.0pt'&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:
12.0pt'&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;blockquote style='border:none;border-left:solid black 1.5pt;padding:0cm 0cm 0cm 4.0pt;
margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt'&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;
font-family:Arial'&gt;----- Original Message ----- &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div style='font-color:black'&gt;

&lt;p class=MsoNormal style='background:#E4E4E4'&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;font-family:Arial;font-weight:bold'&gt;From:&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;font-family:Arial'&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607333&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;chauria@...&lt;/a&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;
font-family:Arial;font-weight:bold'&gt;To:&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;font-family:Arial'&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607333&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;
font-family:Arial;font-weight:bold'&gt;Sent:&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;font-family:Arial'&gt; Wednesday, April
25, 2007 5:25 PM&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;
font-family:Arial;font-weight:bold'&gt;Subject:&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;font-family:Arial'&gt; Re:
[PostgreSQL-Brasil] RES: RES: Attach Database&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:
12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;
font-family:Arial'&gt;update pg_database set datallowconn = false where datname =
'tu_basedatos';&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:
12.0pt'&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;
font-family:Arial'&gt;estos tampoco permitiria la conexion de ninguna manera&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:
12.0pt'&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;
font-family:Arial'&gt;Gustavo garay&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:
12.0pt'&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:
12.0pt'&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;blockquote style='border:none;border-left:solid black 1.5pt;padding:0cm 0cm 0cm 4.0pt;
margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt'&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:
12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=navy face=Arial&gt;&lt;span style='font-size:
10.0pt;font-family:Arial;color:navy'&gt;Pelo pg_hba.conf consigo restringir o
acesso a database, mas ele continua carregando a base. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=navy face=Arial&gt;&lt;span style='font-size:
10.0pt;font-family:Arial;color:navy'&gt;Efetivamente gostaria que o postgresql não
visualizasse, nem carregasse a database por um tempo, até que fosse dado um
attach nela.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=navy face=Arial&gt;&lt;span style='font-size:
10.0pt;font-family:Arial;color:navy'&gt;Existe uma tabela no system catalog que
lista as databases a serem carregadas &amp;#8211; a pg_database. Entretanto, não
consigo editá-la diretamente.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:
12.0pt'&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;font size=2 color=navy face=Arial&gt;&lt;span style='font-size:10.0pt;font-family:Arial;color:navy'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/blockquote&gt;

&lt;div class=MsoNormal align=center style='text-align:center'&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:12.0pt'&gt;

&lt;hr size=2 width=&quot;100%&quot; align=center&gt;

&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:
12.0pt'&gt;_______________________________________________&lt;br&gt;
&lt;st1:PersonName w:st=&quot;on&quot;&gt;Grupo de Usuários do PostgreSQL no Brasil&lt;/st1:PersonName&gt;&lt;br&gt;
Antes de perguntar consulte o manual&lt;br&gt;
http://pgdocptbr.sourceforge.net/&lt;br&gt;
&lt;br&gt;
Para editar suas opções ou sair da lista acesse a página da lista em:&lt;br&gt;
http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/blockquote&gt;

&lt;/div&gt;

&lt;/body&gt;

&lt;/html&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/RES%3A--RES%3A--RES%3A--Attach-Database-tp10607333p10607333.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10607316</id>
	<title>Re: TRUNCATE</title>
	<published>2007-04-30T04:36:04Z</published>
	<updated>2007-04-30T04:36:04Z</updated>
	<author>
		<name>Evandro Ricardo Silvestre</name>
	</author>
	<content type="html">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;meta content=&quot;text/html;charset=ISO-8859-1&quot; http-equiv=&quot;Content-Type&quot;&gt;
  &lt;title&gt;&lt;/title&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot; text=&quot;#000000&quot;&gt;
Euler,&lt;br&gt;
&lt;br&gt;
Muito obrigado! Voc&amp;ecirc; ajudou muito!&lt;br&gt;
&lt;br&gt;
SDS&lt;br&gt;
&lt;br&gt;
Evandro&lt;br&gt;
&lt;br&gt;
Euler Taveira de Oliveira wrote:
&lt;blockquote cite=&quot;mid20070428175258.GB6382@timbira.com&quot; type=&quot;cite&quot;&gt;
  &lt;pre wrap=&quot;&quot;&gt;Evandro Ricardo Silvestre wrote:

  &lt;/pre&gt;
  &lt;blockquote type=&quot;cite&quot;&gt;
    &lt;pre wrap=&quot;&quot;&gt;SELECT a.relname::character varying AS tabela, b.attname::character 
varying AS campo
FROM pg_class a, pg_attribute b, pg_type c
WHERE (a.relkind = 'r' OR a.relkind = 'v')
        AND a.relacl IS NULL
        AND b.attrelid = a.relfilenode
    &lt;/pre&gt;
  &lt;/blockquote&gt;
  &lt;pre wrap=&quot;&quot;&gt;&lt;!----&gt;                           ^^^^^^^^^^^^^^
Por que voc&amp;ecirc; est&amp;aacute; comparando o relfilenode com o oid da rela&amp;ccedil;&amp;atilde;o
(attrelid)? O certo seria b.attrelid = a.oid.
A sua consulta n&amp;atilde;o d&amp;aacute; certo porque o TRUNCATE muda o relfilenode.


  &lt;/pre&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-TRUNCATE-tp10607316p10607316.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10607588</id>
	<title>Iniciante</title>
	<published>2007-04-28T07:40:03Z</published>
	<updated>2007-04-28T07:40:03Z</updated>
	<author>
		<name>DriDa</name>
	</author>
	<content type="html">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
&lt;HTML xmlns=&quot;http://www.w3.org/TR/REC-html40&quot; xmlns:v=&quot;urn:schemas-microsoft-com:vml&quot; xmlns:o=&quot;urn:schemas-microsoft-com:office:office&quot; xmlns:w=&quot;urn:schemas-microsoft-com:office:word&quot; xmlns:m=&quot;http://schemas.microsoft.com/office/2004/12/omml&quot;&gt;&lt;HEAD&gt;
&lt;META http-equiv=Content-Type content=&quot;text/html; charset=iso-8859-1&quot;&gt;
&lt;META content=&quot;MSHTML 6.00.2900.2604&quot; name=GENERATOR&gt;&lt;!--[if !mso]&gt;
&lt;STYLE&gt;v\:* {
	BEHAVIOR: url(#default#VML)
}
o\:* {
	BEHAVIOR: url(#default#VML)
}
w\:* {
	BEHAVIOR: url(#default#VML)
}
.shape {
	BEHAVIOR: url(#default#VML)
}
&lt;/STYLE&gt;
&lt;![endif]--&gt;

&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapedefaults v:ext=&quot;edit&quot; spidmax=&quot;1026&quot; /&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapelayout v:ext=&quot;edit&quot;&gt;
  &lt;o:idmap v:ext=&quot;edit&quot; data=&quot;1&quot; /&gt;
 &lt;/o:shapelayout&gt;&lt;/xml&gt;&lt;![endif]--&gt;&lt;/HEAD&gt;
&lt;BODY lang=PT-BR vLink=purple link=blue bgColor=white&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;Vamos por partes...&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;Estou gatinhando ainda no postgresql.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;Quando instalei o Postgresql ele criou um usuário 
do windows que foi (postgres) e uma senha (que eu informei).&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;Estou logado no windows com meu login e senha... 
&amp;nbsp;e tanto pela interface linha de comando quanto pelo Pgadmin III,&amp;nbsp; eu 
informe o usuário e senha criados e tenho acesso normalmente.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;quando utilizo o componente Zeoslib instalado no 
delphi ele não aceita este login e senha.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;Eu não estou sabendo onde localizar estas 
permissões que você falou.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;Eu sei que é um pouco demais, mas pode me dar um 
passo a passo, pra eu ver se desencanto...&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;Abraços&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;Adriano&lt;/FONT&gt;&lt;/DIV&gt;
&lt;BLOCKQUOTE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px&quot;&gt;
  &lt;DIV style=&quot;FONT: 10pt arial&quot;&gt;----- Original Message ----- &lt;/DIV&gt;
  &lt;DIV style=&quot;BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black&quot;&gt;&lt;B&gt;From:&lt;/B&gt; 
  &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607588&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tbaroni@...&lt;/a&gt; &lt;/DIV&gt;
  &lt;DIV style=&quot;FONT: 10pt arial&quot;&gt;&lt;B&gt;To:&lt;/B&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607588&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt; &lt;/DIV&gt;
  &lt;DIV style=&quot;FONT: 10pt arial&quot;&gt;&lt;B&gt;Cc:&lt;/B&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607588&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;drida@...&lt;/a&gt; &lt;/DIV&gt;
  &lt;DIV style=&quot;FONT: 10pt arial&quot;&gt;&lt;B&gt;Sent:&lt;/B&gt; Friday, April 27, 2007 8:43 
PM&lt;/DIV&gt;
  &lt;DIV style=&quot;FONT: 10pt arial&quot;&gt;&lt;B&gt;Subject:&lt;/B&gt; RES: [PostgreSQL-Brasil] RES: 
  Iniciante&lt;/DIV&gt;
  &lt;DIV&gt;&lt;BR&gt;&lt;/DIV&gt;
  &lt;DIV class=Section1&gt;
  &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'&quot;&gt;Quando 
  eu usava Delphi notei isso também... Sempre que você tenta usar as versões de 
  protocolo &lt;I&gt;PostGreSQL&lt;/I&gt; ou &lt;I&gt;PostGreSQL-8&lt;/I&gt; ele dá mensagens de 
  erro... Mesmo se a versão do seu servidor for PostGreSQL 
  8.2...&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
  &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'&quot;&gt;Confira 
  se você deu permissões de acesso ao banco para seu usuário. 
  &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
  &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'&quot;&gt;Na 
  dúvida, só para testar, tenta se conectar ao banco &lt;I&gt;postgres&lt;/I&gt; com o 
  usuário &lt;I&gt;postgres&lt;/I&gt; com a senha (ou sem ela) que você indicou na hora da 
  instalação do banco de dados. Caso ele se conecte normalmente, certifique-se 
  que você indicou seu usuário como &lt;I&gt;Owner&lt;/I&gt; do 
  banco.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
  &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
  &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'&quot;&gt;Relaxa, 
  tem uma galera aqui na lista que é melhor que uma mãe! 
=)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
  &lt;DIV&gt;
  &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'&quot;&gt;--------------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
  &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'&quot;&gt;Tiago 
  H. França Baroni&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
  &lt;P class=MsoNormal&gt;&lt;I&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt; COLOR: #1f497d; FONT-FAMILY: 'MS Shell Dlg 2','sans-serif'&quot;&gt;&quot;Semel 
  in anno licet insanire&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
  &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: #1f497d; FONT-FAMILY: 'Tahoma','sans-serif'&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
  &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'&quot;&gt;e-mail: 
  &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607588&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tbaroni@...&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
  &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'&quot;&gt;msn:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
  &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607588&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;h3nck3r@...&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
  &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'&quot;&gt;celular: 
  (17) 8126-7464&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
  &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
  &lt;DIV&gt;
  &lt;DIV style=&quot;BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: #b5c4df 1pt solid; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none&quot;&gt;
  &lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'&quot;&gt;De:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'&quot;&gt; 
  &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607588&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-bounces@...&lt;/a&gt; 
  [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607588&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-bounces@...&lt;/a&gt;] &lt;B&gt;Em nome de &lt;/B&gt;DriDa 
  Assessoria Gráfica &amp;amp; WEB&lt;BR&gt;&lt;B&gt;Enviada em:&lt;/B&gt; sexta-feira, 27 de abril de 
  2007 20:25&lt;BR&gt;&lt;B&gt;Para:&lt;/B&gt; Grupo de Usuários do PostgreSQL no 
  Brasil&lt;BR&gt;&lt;B&gt;Assunto:&lt;/B&gt; Re: [PostgreSQL-Brasil] RES: 
  Iniciante&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;
  &lt;P class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
  &lt;DIV&gt;
  &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Coloquei na pasta 
  que vc sugeriu, porém nada...&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
  &lt;DIV&gt;
  &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
  &lt;DIV&gt;
  &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;utilizei outras 
  versões do protocol são 3: postgresql / postgresql-7 / 
  postgresql-8&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
  &lt;DIV&gt;
  &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
  &lt;DIV&gt;
  &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;postgresql e 
  postgresql-8 - emitem a mensagem de erro&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
  &lt;DIV&gt;
  &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
  &lt;DIV&gt;
  &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;postgresql-7 - diz 
  que não foi autorizada a conexão por causa do password e user. : mas eles 
  estão corretos&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
  &lt;DIV&gt;
  &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
  &lt;DIV&gt;
  &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;To sem pai nen 
  mãe!!! hehe&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
  &lt;DIV&gt;
  &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
  &lt;DIV&gt;
  &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Tem alguma idéia. 
  ?&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
  &lt;DIV&gt;
  &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
  &lt;DIV&gt;
  &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Atc.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
  &lt;DIV&gt;
  &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Adriano&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
  &lt;DIV&gt;
  &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
  &lt;DIV&gt;
  &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
  &lt;BLOCKQUOTE style=&quot;BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 4pt; PADDING-BOTTOM: 0cm; MARGIN: 5pt 0cm 5pt 3.75pt; BORDER-LEFT: black 1.5pt solid; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none&quot;&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;----- Original 
    Message ----- &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal style=&quot;BACKGROUND: #e4e4e4&quot;&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;From:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607588&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tbaroni@...&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;To:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607588&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Sent:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt; Friday, April 
    27, 2007 5:45 PM&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Subject:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt; 
    [PostgreSQL-Brasil] RES: Iniciante&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'&quot;&gt;Tenta 
    colocá-las dentro da pasta &lt;I&gt;C:\WINDOWS\system&lt;/I&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
    &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'&quot;&gt;--------------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
    &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'&quot;&gt;Tiago 
    H. França Baroni&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
    &lt;P class=MsoNormal&gt;&lt;I&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt; COLOR: #1f497d; FONT-FAMILY: 'MS Shell Dlg 2','sans-serif'&quot;&gt;&quot;Semel 
    in anno licet insanire&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
    &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; COLOR: #1f497d; FONT-FAMILY: 'Tahoma','sans-serif'&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
    &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'&quot;&gt;e-mail: 
    &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607588&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tbaroni@...&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
    &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'&quot;&gt;msn:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
    &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607588&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;h3nck3r@...&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
    &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'&quot;&gt;celular: 
    (17) 8126-7464&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
    &lt;DIV&gt;
    &lt;DIV style=&quot;BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: #b5c4df 1pt solid; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none&quot;&gt;
    &lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'&quot;&gt;De:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'&quot;&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607588&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-bounces@...&lt;/a&gt; 
    [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607588&amp;i=12&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-bounces@...&lt;/a&gt;] &lt;B&gt;Em nome de &lt;/B&gt;DriDa 
    Assessoria Gráfica &amp;amp; WEB&lt;BR&gt;&lt;B&gt;Enviada em:&lt;/B&gt; sexta-feira, 27 de abril 
    de 2007 17:02&lt;BR&gt;&lt;B&gt;Para:&lt;/B&gt; Grupo de Usuários do PostgreSQL no 
    Brasil&lt;BR&gt;&lt;B&gt;Assunto:&lt;/B&gt; Re: [PostgreSQL-Brasil] 
    Iniciante&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;
    &lt;P class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Pronto, instalei 
    o Delphi do visual studio 2006, e instalei o componente Zeoslib, ... 
    Funcionou, apareceu em Tool Palette a aba Zeos 
    Access.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;o problema agora 
    é que tentei fazer uma conexão usando o componente TZConnetion, e inseri 
    corretamente os valores, mas na hora de conectar ele acusa o seguinte 
    erro:&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;None of the 
    dynamic libraries can be found: libpq81.dll, 
    libpq.dll.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Mas&amp;nbsp;antes da 
    instalação, coloquei os dll's que vem no pacote do zeos na pasta: 
    C:\Windows\system32&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Existe outro 
    local para colocar estas dll's ?&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;O PostgreSQL que 
    uso é o 8.2, e funciona corretamente, através do PgAdmin III e da 
    interface&amp;nbsp;linha de comando, consigo trabalhar normalmente, criar e 
    gerenciar as tabelas e bancos.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Se puder me 
    ajudar...&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Atc.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Adriano&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;DIV&gt;
    &lt;P class=MsoNormal&gt;----- Original Message ----- &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
    &lt;BLOCKQUOTE style=&quot;BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 4pt; PADDING-BOTTOM: 0cm; MARGIN: 5pt 0cm 5pt 3.75pt; BORDER-LEFT: black 1.5pt solid; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none&quot;&gt;
      &lt;DIV&gt;
      &lt;P class=MsoNormal style=&quot;BACKGROUND: #e4e4e4&quot;&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;From:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607588&amp;i=13&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;uslima@...&lt;/a&gt; 
      &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
      &lt;DIV&gt;
      &lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;To:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607588&amp;i=14&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
      &lt;DIV&gt;
      &lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Sent:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt; Thursday, 
      April 26, 2007 12:55 PM&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
      &lt;DIV&gt;
      &lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Subject:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt; Re: 
      [PostgreSQL-Brasil] Iniciante&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
      &lt;DIV&gt;
      &lt;P class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
      &lt;DIV&gt;
      &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Boa 
      tarde!&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
      &lt;DIV&gt;
      &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
      &lt;DIV&gt;
      &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Posso te ajudar 
      em algumas coisas.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
      &lt;DIV&gt;
      &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
      &lt;DIV&gt;
      &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;O OLEDB que 
      segue junto com a instalação do PostgreSQL, está com uma série de Bugs 
      impossibilitando a utilização do mesmo com os componentes ADO do Delphi e 
      C++Builder.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
      &lt;DIV&gt;
      &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
      &lt;DIV&gt;
      &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Se for utilizar 
      ODBC, vai gerar um trabalho desnecessário.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
      &lt;DIV&gt;
      &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
      &lt;DIV&gt;
      &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;No caso 
      de&amp;nbsp;utilizar o&amp;nbsp;Delphi, para mim vai ser mais fácil, pois já 
      utilizo o Delphi conectado ao PostgreSQL, sendo o ZeosLib o componente que 
      utilizo a algum tempo.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
      &lt;DIV&gt;
      &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
      &lt;DIV&gt;
      &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Já baixou a 
      versão mais recente do ZeosLib? &lt;A href=&quot;http://zeosdownloads.firmos.at/downloads/snapshots/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://zeosdownloads.firmos.at/downloads/snapshots/&lt;/A&gt;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
      &lt;DIV&gt;
      &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
      &lt;DIV&gt;
      &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;No 
      aguardo.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
      &lt;DIV&gt;
      &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
      &lt;DIV&gt;
      &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Ulisses&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
      &lt;DIV&gt;
      &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
      &lt;BLOCKQUOTE style=&quot;BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 4pt; PADDING-BOTTOM: 0cm; MARGIN: 5pt 0cm 5pt 3.75pt; BORDER-LEFT: black 1.5pt solid; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none&quot;&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;----- 
        Original Message ----- &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal style=&quot;BACKGROUND: #e4e4e4&quot;&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;From:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607588&amp;i=15&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;drida@...&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;To:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607588&amp;i=16&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Sent:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt; Thursday, 
        April 26, 2007 11:29 AM&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Subject:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt; Re: 
        [PostgreSQL-Brasil] Iniciante&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Bom dia, 
        Ulisses&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Estou 
        tentando instalar a ZeosLib, no c++ builder 6 mas não estou conseguindo, 
        faço todos os processos para compilação&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;não dá erro 
        nenhum, mas também não disponibiliza o 
        componente.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Estou 
        baixando o Delphi, pra ver se consigo ter 
        sucesso.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Pois neste 
        projeto que estou posso programar tanto em delphi como em c++, mas para 
        dados tem que ser PostgreSQL.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Já andei 
        lendo bastante, mas não comecei a desenvolver nada ainda, pois ainda não 
        consegui integrar o postgresql com a 
        programação.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Já tentei com 
        a conexão via OBDC, com o driver postgre mas nada também. ele conecta 
        via ADO, mas não vejo as tabelas nen nada.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;de repente se 
        tiver um tutorial mais didático de como proceder e puder me 
        ajudar.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Atc.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;DIV&gt;
        &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Adriano&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
        &lt;BLOCKQUOTE style=&quot;BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 4pt; PADDING-BOTTOM: 0cm; MARGIN: 5pt 0cm 5pt 3.75pt; BORDER-LEFT: black 1.5pt solid; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none&quot;&gt;
          &lt;DIV&gt;
          &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;----- 
          Original Message ----- &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
          &lt;DIV&gt;
          &lt;P class=MsoNormal style=&quot;BACKGROUND: #e4e4e4&quot;&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;From:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607588&amp;i=17&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;uslima@...&lt;/a&gt; 
          &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
          &lt;DIV&gt;
          &lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;To:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607588&amp;i=18&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
          &lt;DIV&gt;
          &lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Sent:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt; Thursday, 
          April 26, 2007 8:09 AM&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
          &lt;DIV&gt;
          &lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Subject:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt; Re: 
          [PostgreSQL-Brasil] Iniciante&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
          &lt;DIV&gt;
          &lt;P class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
          &lt;DIV&gt;
          &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Bom 
          dia!&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
          &lt;DIV&gt;
          &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
          &lt;DIV&gt;
          &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Já tem os 
          componentes para conexão com o PostgreSQL?&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
          &lt;DIV&gt;
          &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
          &lt;DIV&gt;
          &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;O primeiro 
          passo, é saber se vai usar um recurso pago ou vai querer algo 
          free.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
          &lt;DIV&gt;
          &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
          &lt;DIV&gt;
          &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Quanto ao 
          PostgreSQL, vai ter que estudar um pouco para poder usar os recursos 
          que ele tem disponível, que não são poucos, pois é um excelente Banco 
          de Dados.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
          &lt;DIV&gt;
          &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
          &lt;DIV&gt;
          &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Os recursos 
          básicos são simples de se utilizar, como em qualquer outro Banco de 
          Dados. Não precisa ficar assustado.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
          &lt;DIV&gt;
          &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
          &lt;DIV&gt;
          &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Qualquer 
          dúvida, manda aí.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
          &lt;DIV&gt;
          &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
          &lt;DIV&gt;
          &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Boa 
          sorte.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
          &lt;DIV&gt;
          &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
          &lt;DIV&gt;
          &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Ulisses&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
          &lt;BLOCKQUOTE style=&quot;BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 4pt; PADDING-BOTTOM: 0cm; MARGIN: 5pt 0cm 5pt 3.75pt; BORDER-LEFT: black 1.5pt solid; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none&quot;&gt;
            &lt;DIV&gt;
            &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;----- 
            Original Message ----- &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
            &lt;DIV&gt;
            &lt;P class=MsoNormal style=&quot;BACKGROUND: #e4e4e4&quot;&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;From:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607588&amp;i=19&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;drida@...&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
            &lt;DIV&gt;
            &lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;To:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607588&amp;i=20&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt; 
            &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
            &lt;DIV&gt;
            &lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Sent:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt; 
            Wednesday, April 25, 2007 9:39 PM&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
            &lt;DIV&gt;
            &lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Subject:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt; 
            [PostgreSQL-Brasil] Iniciante&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
            &lt;DIV&gt;
            &lt;P class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
            &lt;DIV&gt;
            &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Estou 
            desenvolvendo uma aplicação em c++ builder 6, mas tem que ser 
            necessariamente com PostgreSQL.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
            &lt;DIV&gt;
            &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Não 
            conheço nada ainda sobre PostgreSQL, poderiam me ajudar nesta 
            iniciação com postgre, exemplos,&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
            &lt;DIV&gt;
            &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;tutoriais, 
            principais comandos, como conectar a base de dados etc. 
            etc.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
            &lt;DIV&gt;
            &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
            &lt;DIV&gt;
            &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Ficaria 
            muito grato com a ajuda.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
            &lt;DIV&gt;
            &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
            &lt;DIV&gt;
            &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Atc.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
            &lt;DIV&gt;
            &lt;P class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'&quot;&gt;Adriano&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
            &lt;DIV&gt;
            &lt;P class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;
            &lt;DIV class=MsoNormal style=&quot;TEXT-ALIGN: center&quot; align=center&gt;
            &lt;HR align=center width=&quot;100%&quot; SIZE=2&gt;
            &lt;/DIV&gt;
            &lt;P class=MsoNormal&gt;_______________________________________________&lt;BR&gt;Grupo 
            de Usuários do PostgreSQL no Brasil&lt;BR&gt;Antes de perguntar consulte o 
            manual&lt;BR&gt;http://pgdocptbr.sourceforge.net/&lt;BR&gt;&lt;BR&gt;Para editar suas 
            opções ou sair da lista acesse a página da lista 
            em:&lt;BR&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
          &lt;DIV class=MsoNormal style=&quot;TEXT-ALIGN: center&quot; align=center&gt;
          &lt;HR align=center width=&quot;100%&quot; SIZE=2&gt;
          &lt;/DIV&gt;
          &lt;P class=MsoNormal&gt;_______________________________________________&lt;BR&gt;Grupo 
          de Usuários do PostgreSQL no Brasil&lt;BR&gt;Antes de perguntar consulte o 
          manual&lt;BR&gt;http://pgdocptbr.sourceforge.net/&lt;BR&gt;&lt;BR&gt;Para editar suas 
          opções ou sair da lista acesse a página da lista 
          em:&lt;BR&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
        &lt;DIV class=MsoNormal style=&quot;TEXT-ALIGN: center&quot; align=center&gt;
        &lt;HR align=center width=&quot;100%&quot; SIZE=2&gt;
        &lt;/DIV&gt;
        &lt;P class=MsoNormal&gt;_______________________________________________&lt;BR&gt;Grupo 
        de Usuários do PostgreSQL no Brasil&lt;BR&gt;Antes de perguntar consulte o 
        manual&lt;BR&gt;http://pgdocptbr.sourceforge.net/&lt;BR&gt;&lt;BR&gt;Para editar suas 
        opções ou sair da lista acesse a página da lista 
        em:&lt;BR&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
      &lt;DIV class=MsoNormal style=&quot;TEXT-ALIGN: center&quot; align=center&gt;
      &lt;HR align=center width=&quot;100%&quot; SIZE=2&gt;
      &lt;/DIV&gt;
      &lt;P class=MsoNormal&gt;_______________________________________________&lt;BR&gt;Grupo 
      de Usuários do PostgreSQL no Brasil&lt;BR&gt;Antes de perguntar consulte o 
      manual&lt;BR&gt;http://pgdocptbr.sourceforge.net/&lt;BR&gt;&lt;BR&gt;Para editar suas opções 
      ou sair da lista acesse a página da lista 
      em:&lt;BR&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
    &lt;P class=MsoNormal style=&quot;MARGIN-BOTTOM: 12pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
    &lt;TABLE class=MsoNormalTable style=&quot;WIDTH: 300pt&quot; cellPadding=0 width=400 border=0&gt;
      &lt;TBODY&gt;
      &lt;TR&gt;
        &lt;TD style=&quot;PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; PADDING-TOP: 0.75pt&quot;&gt;
          &lt;DIV class=MsoNormal style=&quot;TEXT-ALIGN: center&quot; align=center&gt;
          &lt;HR align=center width=&quot;100%&quot; SIZE=2&gt;
          &lt;/DIV&gt;
          &lt;P style=&quot;LINE-HEIGHT: 11pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: 'Verdana','sans-serif'&quot;&gt;&lt;A href=&quot;http://www.avast.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;avast! Antivirus&lt;/A&gt;: Inbound message 
          clean. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
          &lt;P style=&quot;LINE-HEIGHT: 11pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt; FONT-FAMILY: 'Verdana','sans-serif'&quot;&gt;Virus 
          Database (VPS): 000736-2, 26/04/2007&lt;BR&gt;Tested on: 27/4/2007 
          17:04:04&lt;BR&gt;&lt;SPAN style=&quot;COLOR: gray&quot;&gt;avast! - copyright (c) 1988-2007 
          ALWIL Software.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
    &lt;P class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
    &lt;P class=MsoNormal style=&quot;MARGIN-BOTTOM: 12pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
    &lt;TABLE class=MsoNormalTable style=&quot;WIDTH: 300pt&quot; cellPadding=0 width=400 border=0&gt;
      &lt;TBODY&gt;
      &lt;TR&gt;
        &lt;TD style=&quot;PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; PADDING-TOP: 0.75pt&quot;&gt;
          &lt;DIV class=MsoNormal style=&quot;TEXT-ALIGN: center&quot; align=center&gt;
          &lt;HR align=center width=&quot;100%&quot; SIZE=2&gt;
          &lt;/DIV&gt;
          &lt;P style=&quot;LINE-HEIGHT: 11pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: 'Verdana','sans-serif'&quot;&gt;&lt;A href=&quot;http://www.avast.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;avast! Antivirus&lt;/A&gt;: Outbound message 
          clean. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
          &lt;P style=&quot;LINE-HEIGHT: 11pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt; FONT-FAMILY: 'Verdana','sans-serif'&quot;&gt;Virus 
          Database (VPS): 000736-2, 26/04/2007&lt;BR&gt;Tested on: 27/4/2007 
          17:45:16&lt;BR&gt;&lt;SPAN style=&quot;COLOR: gray&quot;&gt;avast! - copyright (c) 1988-2007 
          ALWIL Software.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
    &lt;P class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
    &lt;DIV class=MsoNormal style=&quot;TEXT-ALIGN: center&quot; align=center&gt;
    &lt;HR align=center width=&quot;100%&quot; SIZE=2&gt;
    &lt;/DIV&gt;
    &lt;P class=MsoNormal&gt;_______________________________________________&lt;BR&gt;Grupo 
    de Usuários do PostgreSQL no Brasil&lt;BR&gt;Antes de perguntar consulte o 
    manual&lt;BR&gt;http://pgdocptbr.sourceforge.net/&lt;BR&gt;&lt;BR&gt;Para editar suas opções 
    ou sair da lista acesse a página da lista 
    em:&lt;BR&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
  &lt;P class=MsoNormal style=&quot;MARGIN-BOTTOM: 12pt&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
  &lt;TABLE class=MsoNormalTable style=&quot;WIDTH: 300pt&quot; cellPadding=0 width=400 border=0&gt;
    &lt;TBODY&gt;
    &lt;TR&gt;
      &lt;TD style=&quot;PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; PADDING-TOP: 0.75pt&quot;&gt;
        &lt;DIV class=MsoNormal style=&quot;TEXT-ALIGN: center&quot; align=center&gt;
        &lt;HR align=center width=&quot;100%&quot; SIZE=2&gt;
        &lt;/DIV&gt;
        &lt;P style=&quot;LINE-HEIGHT: 11pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: 'Verdana','sans-serif'&quot;&gt;&lt;A href=&quot;http://www.avast.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;avast! Antivirus&lt;/A&gt;: Inbound message clean. 
        &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
        &lt;P style=&quot;LINE-HEIGHT: 11pt&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt; FONT-FAMILY: 'Verdana','sans-serif'&quot;&gt;Virus 
        Database (VPS): 000736-2, 26/04/2007&lt;BR&gt;Tested on: 27/4/2007 
        20:35:02&lt;BR&gt;&lt;SPAN style=&quot;COLOR: gray&quot;&gt;avast! - copyright (c) 1988-2007 
        ALWIL Software.&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
  &lt;P class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;BR&gt;&lt;BR&gt;
  &lt;TABLE width=400&gt;
    &lt;HR&gt;

    &lt;P style=&quot;FONT: 9pt/11pt verdana&quot;&gt;&lt;A href=&quot;http://www.avast.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;avast! 
    Antivirus&lt;/A&gt;: Outbound message clean. 
    &lt;P style=&quot;FONT: 8pt/11pt verdana&quot;&gt;Virus Database (VPS): 000736-2, 
    26/04/2007&lt;BR&gt;Tested on: 27/4/2007 20:43:04&lt;BR&gt;&lt;FONT color=gray&gt;avast! - 
    copyright (c) 1988-2007 ALWIL Software.&lt;/FONT&gt;&lt;/P&gt;
    &lt;TBODY&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Iniciante-tp10607588p10607588.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10607312</id>
	<title>RES:  RES:  Iniciante</title>
	<published>2007-04-27T17:43:12Z</published>
	<updated>2007-04-27T17:43:12Z</updated>
	<author>
		<name>tbaroni</name>
	</author>
	<content type="html">&lt;html xmlns:v=&quot;urn:schemas-microsoft-com:vml&quot; xmlns:o=&quot;urn:schemas-microsoft-com:office:office&quot; xmlns:w=&quot;urn:schemas-microsoft-com:office:word&quot; xmlns:m=&quot;http://schemas.microsoft.com/office/2004/12/omml&quot; xmlns=&quot;http://www.w3.org/TR/REC-html40&quot;&gt;

&lt;head&gt;
&lt;meta http-equiv=Content-Type content=&quot;text/html; charset=iso-8859-1&quot;&gt;
&lt;meta name=Generator content=&quot;Microsoft Word 12 (filtered medium)&quot;&gt;
&lt;!--[if !mso]&gt;
&lt;style&gt;
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
&lt;/style&gt;
&lt;![endif]--&gt;

&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapedefaults v:ext=&quot;edit&quot; spidmax=&quot;1026&quot; /&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapelayout v:ext=&quot;edit&quot;&gt;
  &lt;o:idmap v:ext=&quot;edit&quot; data=&quot;1&quot; /&gt;
 &lt;/o:shapelayout&gt;&lt;/xml&gt;&lt;![endif]--&gt;
&lt;/head&gt;

&lt;body bgcolor=white lang=PT-BR link=blue vlink=purple&gt;

&lt;div class=Section1&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;Quando eu usava Delphi notei isso também... Sempre que você
tenta usar as versões de protocolo &amp;#8220;&lt;i&gt;PostGreSQL&lt;/i&gt;&amp;#8221; ou &amp;#8220;&lt;i&gt;PostGreSQL-8&lt;/i&gt;&amp;#8221;
ele dá mensagens de erro... Mesmo se a versão do seu servidor for PostGreSQL
8.2...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;Confira se você deu permissões de acesso ao banco para seu
usuário. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;Na dúvida, só para testar, tenta se conectar ao banco &amp;#8220;&lt;i&gt;postgres&lt;/i&gt;&amp;#8221;
com o usuário &amp;#8220;&lt;i&gt;postgres&lt;/i&gt;&amp;#8221; com a senha (ou sem ela) que você
indicou na hora da instalação do banco de dados. Caso ele se conecte
normalmente, certifique-se que você indicou seu usuário como &amp;#8220;&lt;i&gt;Owner&lt;/i&gt;&amp;#8221;
do banco.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;Relaxa, tem uma galera aqui na lista que é melhor que uma mãe! =)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;--------------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;Tiago H. França Baroni&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;i&gt;&lt;span style='font-size:8.0pt;font-family:&quot;MS Shell Dlg 2&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;&amp;quot;Semel in anno licet insanire&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607312&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tbaroni@...&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;msn:&amp;nbsp;    &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607312&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;h3nck3r@...&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;celular: (17) 8126-7464&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;'&gt;De:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;'&gt;
&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607312&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-bounces@...&lt;/a&gt;
[mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607312&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-bounces@...&lt;/a&gt;] &lt;b&gt;Em nome de &lt;/b&gt;DriDa
Assessoria Gráfica &amp;amp; WEB&lt;br&gt;
&lt;b&gt;Enviada em:&lt;/b&gt; sexta-feira, 27 de abril de 2007 20:25&lt;br&gt;
&lt;b&gt;Para:&lt;/b&gt; Grupo de Usuários do PostgreSQL no Brasil&lt;br&gt;
&lt;b&gt;Assunto:&lt;/b&gt; Re: [PostgreSQL-Brasil] RES: Iniciante&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Coloquei
na pasta que vc sugeriu, porém nada...&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;utilizei
outras versões do protocol são 3: postgresql / postgresql-7 / postgresql-8&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;postgresql
e postgresql-8 - emitem a mensagem de erro&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;postgresql-7
- diz que não foi autorizada a conexão por causa do password e user. : mas eles
estão corretos&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;To
sem pai nen mãe!!! hehe&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Tem
alguma idéia. ?&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Atc.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Adriano&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;blockquote style='border:none;border-left:solid black 1.5pt;padding:0cm 0cm 0cm 4.0pt;
margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt'&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;-----
Original Message ----- &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal style='background:#E4E4E4'&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;
font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;From:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;
font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607312&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tbaroni@...&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;To:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607312&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Sent:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt; Friday, April 27,
2007 5:45 PM&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Subject:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt; [PostgreSQL-Brasil]
RES: Iniciante&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;Tenta colocá-las dentro da pasta &amp;#8220;&lt;i&gt;C:\WINDOWS\system&lt;/i&gt;&amp;#8221;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;--------------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;Tiago H. França Baroni&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;i&gt;&lt;span style='font-size:8.0pt;font-family:&quot;MS Shell Dlg 2&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;&amp;quot;Semel in anno licet insanire&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607312&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tbaroni@...&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;msn:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607312&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;h3nck3r@...&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;celular: (17) 8126-7464&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
color:#1F497D'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;'&gt;De:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;'&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607312&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-bounces@...&lt;/a&gt;
[mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607312&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-bounces@...&lt;/a&gt;] &lt;b&gt;Em nome de &lt;/b&gt;DriDa
Assessoria Gráfica &amp;amp; WEB&lt;br&gt;
&lt;b&gt;Enviada em:&lt;/b&gt; sexta-feira, 27 de abril de 2007 17:02&lt;br&gt;
&lt;b&gt;Para:&lt;/b&gt; Grupo de Usuários do PostgreSQL no Brasil&lt;br&gt;
&lt;b&gt;Assunto:&lt;/b&gt; Re: [PostgreSQL-Brasil] Iniciante&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Pronto,
instalei o Delphi do visual studio 2006, e instalei o componente Zeoslib, ...
Funcionou, apareceu em Tool Palette a aba Zeos Access.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;o
problema agora é que tentei fazer uma conexão usando o componente TZConnetion,
e inseri corretamente os valores, mas na hora de conectar ele acusa o seguinte
erro:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;None
of the dynamic libraries can be found: libpq81.dll, libpq.dll.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Mas&amp;nbsp;antes
da instalação, coloquei os dll's que vem no pacote do zeos na pasta:
C:\Windows\system32&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Existe
outro local para colocar estas dll's ?&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;O
PostgreSQL que uso é o 8.2, e funciona corretamente, através do PgAdmin III e
da interface&amp;nbsp;linha de comando, consigo trabalhar normalmente, criar e
gerenciar as tabelas e bancos.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Se
puder me ajudar...&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Atc.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Adriano&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;----- Original Message ----- &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;blockquote style='border:none;border-left:solid black 1.5pt;padding:0cm 0cm 0cm 4.0pt;
margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt'&gt;

&lt;div&gt;

&lt;p class=MsoNormal style='background:#E4E4E4'&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;
font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;From:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;
font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607312&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;uslima@...&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;To:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607312&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Sent:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt; Thursday, April 26,
2007 12:55 PM&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Subject:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt; Re: [PostgreSQL-Brasil]
Iniciante&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Boa
tarde!&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Posso
te ajudar em algumas coisas.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;O
OLEDB que segue junto com a instalação do PostgreSQL, está com uma série de
Bugs impossibilitando a utilização do mesmo com os componentes ADO do Delphi e
C++Builder.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Se
for utilizar ODBC, vai gerar um trabalho desnecessário.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;No
caso de&amp;nbsp;utilizar o&amp;nbsp;Delphi, para mim vai ser mais fácil, pois já
utilizo o Delphi conectado ao PostgreSQL, sendo o ZeosLib o componente que
utilizo a algum tempo.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Já
baixou a versão mais recente do ZeosLib? &lt;a href=&quot;http://zeosdownloads.firmos.at/downloads/snapshots/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://zeosdownloads.firmos.at/downloads/snapshots/&lt;/a&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;No
aguardo.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Ulisses&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;blockquote style='border:none;border-left:solid black 1.5pt;padding:0cm 0cm 0cm 4.0pt;
margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt'&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;-----
Original Message ----- &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal style='background:#E4E4E4'&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;
font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;From:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;
font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607312&amp;i=12&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;drida@...&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;To:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607312&amp;i=13&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Sent:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt; Thursday, April 26,
2007 11:29 AM&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Subject:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt; Re: [PostgreSQL-Brasil]
Iniciante&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Bom
dia, Ulisses&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Estou
tentando instalar a ZeosLib, no c++ builder 6 mas não estou conseguindo, faço
todos os processos para compilação&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;não
dá erro nenhum, mas também não disponibiliza o componente.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Estou
baixando o Delphi, pra ver se consigo ter sucesso.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Pois
neste projeto que estou posso programar tanto em delphi como em c++, mas para
dados tem que ser PostgreSQL.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Já
andei lendo bastante, mas não comecei a desenvolver nada ainda, pois ainda não
consegui integrar o postgresql com a programação.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Já
tentei com a conexão via OBDC, com o driver postgre mas nada também. ele
conecta via ADO, mas não vejo as tabelas nen nada.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;de
repente se tiver um tutorial mais didático de como proceder e puder me ajudar.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Atc.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Adriano&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;blockquote style='border:none;border-left:solid black 1.5pt;padding:0cm 0cm 0cm 4.0pt;
margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt'&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;-----
Original Message ----- &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal style='background:#E4E4E4'&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;
font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;From:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;
font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607312&amp;i=14&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;uslima@...&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;To:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607312&amp;i=15&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Sent:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt; Thursday, April 26,
2007 8:09 AM&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Subject:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt; Re:
[PostgreSQL-Brasil] Iniciante&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Bom
dia!&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Já
tem os componentes para conexão com o PostgreSQL?&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;O
primeiro passo, é saber se vai usar um recurso pago ou vai querer algo free.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Quanto
ao PostgreSQL, vai ter que estudar um pouco para poder usar os recursos que ele
tem disponível, que não são poucos, pois é um excelente Banco de Dados.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Os
recursos básicos são simples de se utilizar, como em qualquer outro Banco de
Dados. Não precisa ficar assustado.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Qualquer
dúvida, manda aí.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Boa
sorte.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Ulisses&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;blockquote style='border:none;border-left:solid black 1.5pt;padding:0cm 0cm 0cm 4.0pt;
margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt'&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;-----
Original Message ----- &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal style='background:#E4E4E4'&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;
font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;From:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;
font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607312&amp;i=16&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;drida@...&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;To:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607312&amp;i=17&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Sent:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt; Wednesday, April 25,
2007 9:39 PM&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Subject:&lt;/span&gt;&lt;/b&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt; [PostgreSQL-Brasil]
Iniciante&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Estou
desenvolvendo uma aplicação em c++ builder 6, mas tem que ser necessariamente
com PostgreSQL.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Não
conheço nada ainda sobre PostgreSQL, poderiam me ajudar nesta iniciação com
postgre, exemplos,&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;tutoriais,
principais comandos, como conectar a base de dados etc. etc.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Ficaria
muito grato com a ajuda.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Atc.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;'&gt;Adriano&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div class=MsoNormal align=center style='text-align:center'&gt;

&lt;hr size=2 width=&quot;100%&quot; align=center&gt;

&lt;/div&gt;

&lt;p class=MsoNormal&gt;_______________________________________________&lt;br&gt;
Grupo de Usuários do PostgreSQL no Brasil&lt;br&gt;
Antes de perguntar consulte o manual&lt;br&gt;
http://pgdocptbr.sourceforge.net/&lt;br&gt;
&lt;br&gt;
Para editar suas opções ou sair da lista acesse a página da lista em:&lt;br&gt;
http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/blockquote&gt;

&lt;div class=MsoNormal align=center style='text-align:center'&gt;

&lt;hr size=2 width=&quot;100%&quot; align=center&gt;

&lt;/div&gt;

&lt;p class=MsoNormal&gt;_______________________________________________&lt;br&gt;
Grupo de Usuários do PostgreSQL no Brasil&lt;br&gt;
Antes de perguntar consulte o manual&lt;br&gt;
http://pgdocptbr.sourceforge.net/&lt;br&gt;
&lt;br&gt;
Para editar suas opções ou sair da lista acesse a página da lista em:&lt;br&gt;
http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/blockquote&gt;

&lt;div class=MsoNormal align=center style='text-align:center'&gt;

&lt;hr size=2 width=&quot;100%&quot; align=center&gt;

&lt;/div&gt;

&lt;p class=MsoNormal&gt;_______________________________________________&lt;br&gt;
Grupo de Usuários do PostgreSQL no Brasil&lt;br&gt;
Antes de perguntar consulte o manual&lt;br&gt;
http://pgdocptbr.sourceforge.net/&lt;br&gt;
&lt;br&gt;
Para editar suas opções ou sair da lista acesse a página da lista em:&lt;br&gt;
http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/blockquote&gt;

&lt;div class=MsoNormal align=center style='text-align:center'&gt;

&lt;hr size=2 width=&quot;100%&quot; align=center&gt;

&lt;/div&gt;

&lt;p class=MsoNormal&gt;_______________________________________________&lt;br&gt;
Grupo de Usuários do PostgreSQL no Brasil&lt;br&gt;
Antes de perguntar consulte o manual&lt;br&gt;
http://pgdocptbr.sourceforge.net/&lt;br&gt;
&lt;br&gt;
Para editar suas opções ou sair da lista acesse a página da lista em:&lt;br&gt;
http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p class=MsoNormal style='margin-bottom:12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;table class=MsoNormalTable border=0 cellpadding=0 width=400 style='width:300.0pt'&gt;
 &lt;tr&gt;
  &lt;td style='padding:.75pt .75pt .75pt .75pt'&gt;
  &lt;div class=MsoNormal align=center style='text-align:center'&gt;
  &lt;hr size=2 width=&quot;100%&quot; align=center&gt;
  &lt;/div&gt;
  &lt;p style='line-height:11.0pt'&gt;&lt;span style='font-size:9.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;'&gt;&lt;a href=&quot;http://www.avast.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;avast! Antivirus&lt;/a&gt;: Inbound message clean. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style='line-height:11.0pt'&gt;&lt;span style='font-size:8.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;'&gt;Virus
  Database (VPS): 000736-2, 26/04/2007&lt;br&gt;
  Tested on: 27/4/2007 17:04:04&lt;br&gt;
  &lt;span style='color:gray'&gt;avast! - copyright (c) 1988-2007 ALWIL Software.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='margin-bottom:12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;table class=MsoNormalTable border=0 cellpadding=0 width=400 style='width:300.0pt'&gt;
 &lt;tr&gt;
  &lt;td style='padding:.75pt .75pt .75pt .75pt'&gt;
  &lt;div class=MsoNormal align=center style='text-align:center'&gt;
  &lt;hr size=2 width=&quot;100%&quot; align=center&gt;
  &lt;/div&gt;
  &lt;p style='line-height:11.0pt'&gt;&lt;span style='font-size:9.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;'&gt;&lt;a href=&quot;http://www.avast.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;avast! Antivirus&lt;/a&gt;: Outbound message clean. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style='line-height:11.0pt'&gt;&lt;span style='font-size:8.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;'&gt;Virus
  Database (VPS): 000736-2, 26/04/2007&lt;br&gt;
  Tested on: 27/4/2007 17:45:16&lt;br&gt;
  &lt;span style='color:gray'&gt;avast! - copyright (c) 1988-2007 ALWIL Software.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;div class=MsoNormal align=center style='text-align:center'&gt;

&lt;hr size=2 width=&quot;100%&quot; align=center&gt;

&lt;/div&gt;

&lt;p class=MsoNormal&gt;_______________________________________________&lt;br&gt;
Grupo de Usuários do PostgreSQL no Brasil&lt;br&gt;
Antes de perguntar consulte o manual&lt;br&gt;
http://pgdocptbr.sourceforge.net/&lt;br&gt;
&lt;br&gt;
Para editar suas opções ou sair da lista acesse a página da lista em:&lt;br&gt;
http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p class=MsoNormal style='margin-bottom:12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;table class=MsoNormalTable border=0 cellpadding=0 width=400 style='width:300.0pt'&gt;
 &lt;tr&gt;
  &lt;td style='padding:.75pt .75pt .75pt .75pt'&gt;
  &lt;div class=MsoNormal align=center style='text-align:center'&gt;
  &lt;hr size=2 width=&quot;100%&quot; align=center&gt;
  &lt;/div&gt;
  &lt;p style='line-height:11.0pt'&gt;&lt;span style='font-size:9.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;'&gt;&lt;a href=&quot;http://www.avast.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;avast! Antivirus&lt;/a&gt;: Inbound message clean. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;p style='line-height:11.0pt'&gt;&lt;span style='font-size:8.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;'&gt;Virus
  Database (VPS): 000736-2, 26/04/2007&lt;br&gt;
  Tested on: 27/4/2007 20:35:02&lt;br&gt;
  &lt;span style='color:gray'&gt;avast! - copyright (c) 1988-2007 ALWIL Software.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/body&gt;

&lt;/html&gt;
&lt;html&gt;
&lt;BR&gt;&lt;BR&gt;
&lt;TABLE width=400&gt;&lt;HR&gt;
&lt;P style=&quot;FONT: 9pt/11pt verdana&quot;&gt;&lt;a href=&quot;http://www.avast.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;avast! Antivirus&lt;/a&gt;: Outbound message clean.
&lt;P style=&quot;FONT: 8pt/11pt verdana&quot;&gt;Virus Database (VPS): 000736-2, 26/04/2007&lt;BR&gt;Tested on: 27/4/2007 20:43:04&lt;BR&gt;&lt;FONT color=gray&gt;avast! - copyright (c) 1988-2007 ALWIL Software.&lt;/FONT&gt;&lt;/P&gt;
&lt;TBODY&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;BR&gt;&lt;/html&gt;


&lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/RES%3A--RES%3A--Iniciante-tp10607312p10607312.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10664995</id>
	<title>Fwd: A postagem de dosso@dextra.com.br para a lista pgbr-dev requer aprovação</title>
	<published>2007-04-20T18:24:08Z</published>
	<updated>2007-04-20T18:24:08Z</updated>
	<author>
		<name>Nabucodonosor Coutinho</name>
	</author>
	<content type="html">---------- Forwarded message ----------
&lt;br&gt;From: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10664995&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgbr-dev-owner@...&lt;/a&gt;
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10664995&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgbr-dev-owner@...&lt;/a&gt;&amp;gt;
&lt;br&gt;Date: 20/04/2007 13:38
&lt;br&gt;Subject: A postagem de &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10664995&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dosso@...&lt;/a&gt; para a lista pgbr-dev
&lt;br&gt;requer aprovação
&lt;br&gt;To: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10664995&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgbr-dev-owner@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;Como administrador da lista, é necessária sua autorização para
&lt;br&gt;a postagem da seguinte mensagem da lista:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Lista ..: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10664995&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgbr-dev@...&lt;/a&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; De .....: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10664995&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dosso@...&lt;/a&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; Assunto : Palestra Josh Berkus na UNICAMP
&lt;br&gt;&amp;nbsp; &amp;nbsp; Razão ..: O corpo da mensagem é muito grande: 1036485 bytes com um
&lt;br&gt;limite de 40
&lt;br&gt;KB
&lt;br&gt;&lt;br&gt;Para sua conveniência, visite:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;https://listas.postgresql.org.br/cgi-bin/mailman/admindb/pgbr-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://listas.postgresql.org.br/cgi-bin/mailman/admindb/pgbr-dev&lt;/a&gt;&lt;br&gt;&lt;br&gt;para aprovar ou não a mensagem.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------- Mensagem encaminhada ----------
&lt;br&gt;From: Luis Dosso &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10664995&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dosso@...&lt;/a&gt;&amp;gt;
&lt;br&gt;To: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10664995&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgbr-dev@...&lt;/a&gt;
&lt;br&gt;Date: Fri, 20 Apr 2007 13:20:49 -0300
&lt;br&gt;Subject: Palestra Josh Berkus na UNICAMP
&lt;br&gt;Olá, pessoal.
&lt;br&gt;&lt;br&gt;Seguem algumas fotos que tirei na palestra do Josh no Centro de
&lt;br&gt;Computação da Unicamp. Vai para o memorial do PG-Br. ;-)
&lt;br&gt;&lt;br&gt;Apesar de ter sido divulgado em cima da hora, com menos de dois dias de
&lt;br&gt;antecedência, o interesse foi muito grande. Mais de 120 pessoas se
&lt;br&gt;inscreveram (era a lotação máxima) e várias outras ligaram interessadas.
&lt;br&gt;&lt;br&gt;Ou seja, o elefante está bombando!
&lt;br&gt;&lt;br&gt;Um abraço.
&lt;br&gt;--
&lt;br&gt;Luis Dosso
&lt;br&gt;Dextra Sistemas
&lt;br&gt;&lt;a href=&quot;http://www.dextra.com.br&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.dextra.com.br&lt;/a&gt;&lt;br&gt;+55 19 3256-6722
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------- Mensagem encaminhada ----------
&lt;br&gt;From: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10664995&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pgbr-dev-request@...&lt;/a&gt;
&lt;br&gt;To:
&lt;br&gt;Date:
&lt;br&gt;Subject: confirm b12403e2e3d67e95ee0772b1afc23f6a14ad1f2c
&lt;br&gt;Caso responda a esta mensagem, mantendo o cabeçalho Subject: intacto,
&lt;br&gt;o Mailman descartará a mensabem em espera. Faça isto caso a mensagem
&lt;br&gt;seja um spam. Se responder a esta mensagem e incluir o cabeçalho
&lt;br&gt;Approved: com a senha da lista nela, a mensagem será aprovada para
&lt;br&gt;postagem na lista. O cabeçalho Aprovado: pode também aparecer na
&lt;br&gt;primeira linha do corpo da mensagem na resposta.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Nabucodonosor Coutinho
&lt;br&gt;Database Administrator
&lt;br&gt;Accu Hosting - www.accuhosting.com
&lt;br&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;CIMG0180.JPG&lt;/strong&gt; (239K) &lt;a href=&quot;http://old.nabble.com/attachment/10664995/0/CIMG0180.JPG&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;CIMG0150.JPG&lt;/strong&gt; (150K) &lt;a href=&quot;http://old.nabble.com/attachment/10664995/1/CIMG0150.JPG&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;CIMG0162.JPG&lt;/strong&gt; (116K) &lt;a href=&quot;http://old.nabble.com/attachment/10664995/2/CIMG0162.JPG&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;CIMG0166.JPG&lt;/strong&gt; (165K) &lt;a href=&quot;http://old.nabble.com/attachment/10664995/3/CIMG0166.JPG&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;CIMG0170.JPG&lt;/strong&gt; (110K) &lt;a href=&quot;http://old.nabble.com/attachment/10664995/4/CIMG0170.JPG&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;CIMG0174.JPG&lt;/strong&gt; (120K) &lt;a href=&quot;http://old.nabble.com/attachment/10664995/5/CIMG0174.JPG&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;CIMG0176.JPG&lt;/strong&gt; (121K) &lt;a href=&quot;http://old.nabble.com/attachment/10664995/6/CIMG0176.JPG&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Fwd%3A-A-postagem-de-dosso%40dextra.com.br-para-a-lista-pgbr-dev-requer-aprova%C3%A7%C3%A3o-tp10664995p10664995.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10607283</id>
	<title>Nro Limite de Colunas recuperadas em instrução Select</title>
	<published>2007-04-19T18:44:35Z</published>
	<updated>2007-04-19T18:44:35Z</updated>
	<author>
		<name>marcos nobre</name>
	</author>
	<content type="html">Saudações!&lt;br&gt;&lt;br&gt;Outro dia perguntei isso aqui na lista: se há um numero limite de colunas que podem ser recuperadas em uma instrução SELECT, no PostgreSQL.&lt;br&gt;&lt;br&gt;O problema é que tenho 870 questionários, sendo que cada 1 contém 504 células de dados (respostas) e estou precisando recuperar as 504 linhas de 1 questionario na forma de uma unica linha com 504 colunas. Posteriormente, por meio de um laço (loop) na aplicação, a idéia é recuperar os 870 questionarios em 870 linhas com 504 colunas cada uma. Um recordset assim constituido: 870 linhas x 504 colunas.
&lt;br&gt;&lt;br&gt;Fiz um teste desta mesmes instrução cortada à metade e o PostgreSQL conseguiu me devolver as 252 colunas !&lt;br&gt;&lt;br&gt;Bom, talvez haja algum parâmetro de configuração do servidor que possa resolver essa questão, porém estou obtendo o seguinte erro, para a instrução que segue.
&lt;br&gt;&lt;br&gt;&lt;p&gt;&lt;b&gt;Erro de SQL:&lt;/b&gt;&lt;br&gt;&lt;/p&gt;&lt;pre class=&quot;data&quot;&gt;ERRO:  sem memória&lt;br&gt;DETAIL:  Falhou ao requisitar o tamanho 1408.&lt;/pre&gt;
		      &lt;p&gt;&lt;b&gt;Indicação de entrada :&lt;/b&gt;&lt;br&gt;&lt;/p&gt;&lt;pre class=&quot;data&quot;&gt;SELECT id_questionario_aplicacao, id_usuario,&lt;br&gt;CEL001, CEL002, CEL003, CEL004, CEL005, CEL006, CEL007, CEL008, CEL009, CEL010, CEL011, CEL012, CEL013, CEL014, CEL015, CEL016, CEL017, CEL018, CEL019, CEL020, CEL021, CEL022, CEL023, CEL024, CEL025, CEL026, CEL027, CEL028, CEL029, CEL030, CEL031, CEL032, CEL033, CEL034, CEL035, CEL036, CEL037, CEL038, CEL039, CEL040, CEL041, CEL042, CEL043, CEL044, CEL045, CEL046, CEL047, CEL048, CEL049, CEL050, CEL051, CEL052, CEL053, CEL054, CEL055, CEL056, CEL057, CEL058, CEL059, CEL060, CEL061, CEL062, CEL063, CEL064, CEL065, CEL066, CEL067, CEL068, CEL069, CEL070, CEL071, CEL072, CEL073, CEL074, CEL075, CEL076, CEL077, CEL078, CEL079, CEL080, CEL081, CEL082, CEL083, CEL084, CEL085, CEL086, CEL087, CEL088, CEL089, CEL090, CEL091, CEL092, CEL093, CEL094, CEL095, CEL096, CEL097, CEL098, CEL099, CEL100, CEL101, CEL102, CEL103, CEL104, CEL105, CEL106, CEL107, CEL108, CEL109, CEL110, CEL111, CEL112, CEL113, CEL114, CEL115, CEL116, CEL117, CEL118, CEL119, CEL120, CEL121, CEL122, CEL123, CEL124, CEL125, CEL126, CEL127, CEL128, CEL129, CEL130, CEL131, CEL132, CEL133, CEL134, CEL135, CEL136, CEL137, CEL138, CEL139, CEL140, CEL141, CEL142, CEL143, CEL144, CEL145, CEL146, CEL147, CEL148, CEL149, CEL150, CEL151, CEL152, CEL153, CEL154, CEL155, CEL156, CEL157, CEL158, CEL159, CEL160, CEL161, CEL162, CEL163, CEL164, CEL165, CEL166, CEL167, CEL168, CEL169, CEL170, CEL171, CEL172, CEL173, CEL174, CEL175, CEL176, CEL177, CEL178, CEL179, CEL180, CEL181, CEL182, CEL183, CEL184, CEL185, CEL186, CEL187, CEL188, CEL189, CEL190, CEL191, CEL192, CEL193, CEL194, CEL195, CEL196, CEL197, CEL198, CEL199, CEL200, CEL201, CEL202, CEL203, CEL204, CEL205, CEL206, CEL207, CEL208, CEL209, CEL210, CEL211, CEL212, CEL213, CEL214, CEL215, CEL216, CEL217, CEL218, CEL219, CEL220, CEL221, CEL222, CEL223, CEL224, CEL225, CEL226, CEL227, CEL228, CEL229, CEL230, CEL231, CEL232, CEL233, CEL234, CEL235, CEL236, CEL237, CEL238, CEL239, CEL240, CEL241, CEL242, CEL243, CEL244, CEL245, CEL246, CEL247, CEL248, CEL249, CEL250, CEL251, CEL252, CEL253, CEL254, CEL255, CEL256, CEL257, CEL258, CEL259, CEL260,
&lt;br&gt;&lt;br&gt;CEL261, CEL262, CEL263, CEL264, CEL265, CEL266, CEL267, CEL268, CEL269, CEL270, CEL271, CEL272, CEL273, CEL274, CEL275, CEL276, CEL277, CEL278, CEL279, CEL280, CEL281, CEL282, CEL283, CEL284, CEL285, CEL286, CEL287, CEL288, CEL289, CEL290, CEL291, CEL292, CEL293, CEL294, CEL295, CEL296, CEL297, CEL298, CEL299, CEL300, CEL301, CEL302, CEL303, CEL304, CEL305, CEL306, CEL307, CEL308, CEL309, CEL310, CEL311, CEL312, CEL313, CEL314, CEL315, CEL316, CEL317, CEL318, CEL319, CEL320, CEL321, CEL322, CEL323, CEL324, CEL325, CEL326, CEL327, CEL328, CEL329, CEL330, CEL331, CEL332, CEL333, CEL334, CEL335, CEL336, CEL337, CEL338, CEL339, CEL340, CEL341, CEL342, CEL343, CEL344, CEL345, CEL346, CEL347, CEL348, CEL349, CEL350, CEL351, CEL352, CEL353, CEL354, CEL355, CEL356, CEL357, CEL358, CEL359, CEL360, CEL361, CEL362, CEL363, CEL364, CEL365, CEL366, CEL367, CEL368, CEL369, CEL370, CEL371, CEL372, CEL373, CEL374, CEL375, CEL376, CEL377, CEL378, CEL379, CEL380, CEL381, CEL382, CEL383, CEL384, CEL385, CEL386, CEL387, CEL388, CEL389, CEL390, CEL391, CEL392, CEL393, CEL394, CEL395, CEL396, CEL397, CEL398, CEL399, CEL400, CEL401, CEL402, CEL403, CEL404, CEL405, CEL406, CEL407, CEL408, CEL409, CEL410, CEL411, CEL412, CEL413, CEL414, CEL415, CEL416, CEL417, CEL418, CEL419, CEL420, CEL421, CEL422, CEL423, CEL424, CEL425, CEL426, CEL427, CEL428, CEL429, CEL430, CEL431, CEL432, CEL433, CEL434, CEL435, CEL436, CEL437, CEL438, CEL439, CEL440, CEL441, CEL442, CEL443, CEL444, CEL445, CEL446, CEL447, CEL448, CEL449, CEL450, CEL451, CEL452, CEL453, CEL454, CEL455, CEL456, CEL457, CEL458, CEL459, CEL460, CEL461, CEL462, CEL463, CEL464, CEL465, CEL466, CEL467, CEL468, CEL469, CEL470, CEL471, CEL472, CEL473, CEL474, CEL475, CEL476, CEL477, CEL478, CEL479, CEL480, CEL481, CEL482, CEL483, CEL484, CEL485, CEL486, CEL487, CEL488, CEL489, CEL490, CEL491, CEL492, CEL493, CEL494, CEL495, CEL496, CEL497, CEL498, CEL499, CEL500, CEL501, CEL502, CEL503, CEL504 
&lt;br&gt;&lt;br&gt;FROM  &lt;br&gt;(  Select AA.id_questionario_aplicacao, AA.id_usuario From monitoramento.tb_questionario_aplicacao AA where AA.id_questionario_aplicacao = 61) as tabA,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL001 From 
monitoramento.vw_base_resposta_1 Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 25 and id_questao = 26 and id_itemquestao = 1158 and seq_questionarioaplicacao = 61) as tab0,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL002 From 
monitoramento.vw_base_resposta_1 Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 25 and id_questao = 26 and id_itemquestao = 1159 and seq_questionarioaplicacao = 61) as tab1,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL003  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 25 and id_questao = 26 and id_itemquestao = 1160 and seq_questionarioaplicacao = 61) as tab2,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL004  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 26 and id_questao = 27 and id_itemquestao = 1161 and seq_questionarioaplicacao = 61) as tab3,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL005  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 26 and id_questao = 27 and id_itemquestao = 1162 and seq_questionarioaplicacao = 61) as tab4,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL006  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 26 and id_questao = 27 and id_itemquestao = 1163 and seq_questionarioaplicacao = 61) as tab5,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL007  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 27 and id_questao = 28 and id_itemquestao = 1164 and seq_questionarioaplicacao = 61) as tab6,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL008  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 27 and id_questao = 28 and id_itemquestao = 1165 and seq_questionarioaplicacao = 61) as tab7,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL009  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 27 and id_questao = 28 and id_itemquestao = 1166 and seq_questionarioaplicacao = 61) as tab8,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL010  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 28 and id_questao = 29 and id_itemquestao = 762 and seq_questionarioaplicacao = 61) as tab9,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL011  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 28 and id_questao = 29 and id_itemquestao = 771 and seq_questionarioaplicacao = 61) as tab10,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL012  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 28 and id_questao = 29 and id_itemquestao = 772 and seq_questionarioaplicacao = 61) as tab11,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL013  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 28 and id_questao = 29 and id_itemquestao = 1172 and seq_questionarioaplicacao = 61) as tab12,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL014  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 28 and id_questao = 29 and id_itemquestao = 773 and seq_questionarioaplicacao = 61) as tab13,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL015  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 29 and id_questao = 30 and id_itemquestao = 781 and seq_questionarioaplicacao = 61) as tab14,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL016  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 29 and id_questao = 30 and id_itemquestao = 782 and seq_questionarioaplicacao = 61) as tab15,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL017  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 29 and id_questao = 30 and id_itemquestao = 783 and seq_questionarioaplicacao = 61) as tab16,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL018  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 29 and id_questao = 30 and id_itemquestao = 784 and seq_questionarioaplicacao = 61) as tab17,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL019  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 29 and id_questao = 30 and id_itemquestao = 791 and seq_questionarioaplicacao = 61) as tab18,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL020  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 29 and id_questao = 30 and id_itemquestao = 792 and seq_questionarioaplicacao = 61) as tab19,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL021  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 29 and id_questao = 30 and id_itemquestao = 793 and seq_questionarioaplicacao = 61) as tab20,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL022  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 21 and id_grupo = 29 and id_questao = 30 and id_itemquestao = 794 and seq_questionarioaplicacao = 61) as tab21,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL023  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 2 and id_questao = 2 and id_itemquestao = 11 and seq_questionarioaplicacao = 61) as tab22,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL024  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 2 and id_questao = 2 and id_itemquestao = 17 and seq_questionarioaplicacao = 61) as tab23,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL025  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 2 and id_questao = 2 and id_itemquestao = 20 and seq_questionarioaplicacao = 61) as tab24,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL026  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 2 and id_questao = 2 and id_itemquestao = 13 and seq_questionarioaplicacao = 61) as tab25,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL027  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 2 and id_questao = 2 and id_itemquestao = 14 and seq_questionarioaplicacao = 61) as tab26,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL028  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 2 and id_questao = 2 and id_itemquestao = 1176 and seq_questionarioaplicacao = 61) as tab27,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL029  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 2 and id_questao = 2 and id_itemquestao = 15 and seq_questionarioaplicacao = 61) as tab28,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL030  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 2 and id_questao = 2 and id_itemquestao = 18 and seq_questionarioaplicacao = 61) as tab29,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL031  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 2 and id_questao = 2 and id_itemquestao = 22 and seq_questionarioaplicacao = 61) as tab30,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL032  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 2 and id_questao = 2 and id_itemquestao = 10 and seq_questionarioaplicacao = 61) as tab31,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL033  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 2 and id_questao = 2 and id_itemquestao = 19 and seq_questionarioaplicacao = 61) as tab32,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL034  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 2 and id_questao = 2 and id_itemquestao = 23 and seq_questionarioaplicacao = 61) as tab33,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL035  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 28 and seq_questionarioaplicacao = 61) as tab34,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL036  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 40 and seq_questionarioaplicacao = 61) as tab35,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL037  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 51 and seq_questionarioaplicacao = 61) as tab36,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL038  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 63 and seq_questionarioaplicacao = 61) as tab37,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL039  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 74 and seq_questionarioaplicacao = 61) as tab38,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL040  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 89 and seq_questionarioaplicacao = 61) as tab39,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL041  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 29 and seq_questionarioaplicacao = 61) as tab40,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL042  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 41 and seq_questionarioaplicacao = 61) as tab41,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL043  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 52 and seq_questionarioaplicacao = 61) as tab42,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL044  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 64 and seq_questionarioaplicacao = 61) as tab43,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL045  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 75 and seq_questionarioaplicacao = 61) as tab44,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL046  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 90 and seq_questionarioaplicacao = 61) as tab45,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL047  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 30 and seq_questionarioaplicacao = 61) as tab46,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL048  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 42 and seq_questionarioaplicacao = 61) as tab47,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL049  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 53 and seq_questionarioaplicacao = 61) as tab48,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL050  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 65 and seq_questionarioaplicacao = 61) as tab49,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL051  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 76 and seq_questionarioaplicacao = 61) as tab50,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL052  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 91 and seq_questionarioaplicacao = 61) as tab51,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL053  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 31 and seq_questionarioaplicacao = 61) as tab52,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL054  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 43 and seq_questionarioaplicacao = 61) as tab53,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL055  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 55 and seq_questionarioaplicacao = 61) as tab54,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL056  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 66 and seq_questionarioaplicacao = 61) as tab55,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL057  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 78 and seq_questionarioaplicacao = 61) as tab56,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL058  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 94 and seq_questionarioaplicacao = 61) as tab57,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL059  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 32 and seq_questionarioaplicacao = 61) as tab58,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL060  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 44 and seq_questionarioaplicacao = 61) as tab59,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL061  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 56 and seq_questionarioaplicacao = 61) as tab60,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL062  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 67 and seq_questionarioaplicacao = 61) as tab61,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL063  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 79 and seq_questionarioaplicacao = 61) as tab62,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL064  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 96 and seq_questionarioaplicacao = 61) as tab63,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL065  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 34 and seq_questionarioaplicacao = 61) as tab64,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL066  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 45 and seq_questionarioaplicacao = 61) as tab65,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL067  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 57 and seq_questionarioaplicacao = 61) as tab66,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL068  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 68 and seq_questionarioaplicacao = 61) as tab67,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL069  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 80 and seq_questionarioaplicacao = 61) as tab68,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL070  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 98 and seq_questionarioaplicacao = 61) as tab69,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL071  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 36 and seq_questionarioaplicacao = 61) as tab70,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL072  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 46 and seq_questionarioaplicacao = 61) as tab71,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL073  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 58 and seq_questionarioaplicacao = 61) as tab72,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL074  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 69 and seq_questionarioaplicacao = 61) as tab73,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL075  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 81 and seq_questionarioaplicacao = 61) as tab74,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL076  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 99 and seq_questionarioaplicacao = 61) as tab75,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL077  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 37 and seq_questionarioaplicacao = 61) as tab76,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL078  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 47 and seq_questionarioaplicacao = 61) as tab77,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL079  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 59 and seq_questionarioaplicacao = 61) as tab78,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL080  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 70 and seq_questionarioaplicacao = 61) as tab79,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL081  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 83 and seq_questionarioaplicacao = 61) as tab80,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL082  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 100 and seq_questionarioaplicacao = 61) as tab81,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL083  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 38 and seq_questionarioaplicacao = 61) as tab82,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL084  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 48 and seq_questionarioaplicacao = 61) as tab83,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL085  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 61 and seq_questionarioaplicacao = 61) as tab84,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL086  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 72 and seq_questionarioaplicacao = 61) as tab85,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL087  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 84 and seq_questionarioaplicacao = 61) as tab86,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL088  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 93 and seq_questionarioaplicacao = 61) as tab87,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL089  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 39 and seq_questionarioaplicacao = 61) as tab88,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL090  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 50 and seq_questionarioaplicacao = 61) as tab89,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL091  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 62 and seq_questionarioaplicacao = 61) as tab90,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL092  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 73 and seq_questionarioaplicacao = 61) as tab91,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL093  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 86 and seq_questionarioaplicacao = 61) as tab92,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL094  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 3 and id_questao = 4 and id_itemquestao = 95 and seq_questionarioaplicacao = 61) as tab93,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL095  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 4 and id_questao = 5 and id_itemquestao = 102 and seq_questionarioaplicacao = 61) as tab94,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL096  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 4 and id_questao = 5 and id_itemquestao = 121 and seq_questionarioaplicacao = 61) as tab95,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL097  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 4 and id_questao = 5 and id_itemquestao = 122 and seq_questionarioaplicacao = 61) as tab96,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL098  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 4 and id_questao = 5 and id_itemquestao = 123 and seq_questionarioaplicacao = 61) as tab97,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL099  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 4 and id_questao = 5 and id_itemquestao = 124 and seq_questionarioaplicacao = 61) as tab98,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL100  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 11 and id_grupo = 4 and id_questao = 5 and id_itemquestao = 125 and seq_questionarioaplicacao = 61) as tab99,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL101  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 142 and seq_questionarioaplicacao = 61) as tab100,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL102  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 118 and seq_questionarioaplicacao = 61) as tab101,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL103  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 140 and seq_questionarioaplicacao = 61) as tab102,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL104  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 159 and seq_questionarioaplicacao = 61) as tab103,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL105  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 175 and seq_questionarioaplicacao = 61) as tab104,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL106  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 191 and seq_questionarioaplicacao = 61) as tab105,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL107  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 103 and seq_questionarioaplicacao = 61) as tab106,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL108  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 143 and seq_questionarioaplicacao = 61) as tab107,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL109  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 119 and seq_questionarioaplicacao = 61) as tab108,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL110  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 104 and seq_questionarioaplicacao = 61) as tab109,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL111  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 120 and seq_questionarioaplicacao = 61) as tab110,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL112  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 144 and seq_questionarioaplicacao = 61) as tab111,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL113  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 161 and seq_questionarioaplicacao = 61) as tab112,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL114  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 177 and seq_questionarioaplicacao = 61) as tab113,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL115  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 193 and seq_questionarioaplicacao = 61) as tab114,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL116  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 106 and seq_questionarioaplicacao = 61) as tab115,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL117  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 126 and seq_questionarioaplicacao = 61) as tab116,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL118  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 146 and seq_questionarioaplicacao = 61) as tab117,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL119  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 162 and seq_questionarioaplicacao = 61) as tab118,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL120  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 178 and seq_questionarioaplicacao = 61) as tab119,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL121  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 194 and seq_questionarioaplicacao = 61) as tab120,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL122  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 105 and seq_questionarioaplicacao = 61) as tab121,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL123  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 127 and seq_questionarioaplicacao = 61) as tab122,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL124  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 147 and seq_questionarioaplicacao = 61) as tab123,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL125  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 163 and seq_questionarioaplicacao = 61) as tab124,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL126  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 179 and seq_questionarioaplicacao = 61) as tab125,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL127  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 195 and seq_questionarioaplicacao = 61) as tab126,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL128  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 107 and seq_questionarioaplicacao = 61) as tab127,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL129  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 128 and seq_questionarioaplicacao = 61) as tab128,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL130  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 148 and seq_questionarioaplicacao = 61) as tab129,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL131  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 164 and seq_questionarioaplicacao = 61) as tab130,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL132  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 180 and seq_questionarioaplicacao = 61) as tab131,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL133  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 196 and seq_questionarioaplicacao = 61) as tab132,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL134  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 108 and seq_questionarioaplicacao = 61) as tab133,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL135  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 129 and seq_questionarioaplicacao = 61) as tab134,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL136  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 149 and seq_questionarioaplicacao = 61) as tab135,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL137  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 165 and seq_questionarioaplicacao = 61) as tab136,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL138  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 181 and seq_questionarioaplicacao = 61) as tab137,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL139  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 197 and seq_questionarioaplicacao = 61) as tab138,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL140  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 109 and seq_questionarioaplicacao = 61) as tab139,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL141  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 130 and seq_questionarioaplicacao = 61) as tab140,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL142  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 150 and seq_questionarioaplicacao = 61) as tab141,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL143  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 166 and seq_questionarioaplicacao = 61) as tab142,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL144  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 182 and seq_questionarioaplicacao = 61) as tab143,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL145  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 198 and seq_questionarioaplicacao = 61) as tab144,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL146  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 110 and seq_questionarioaplicacao = 61) as tab145,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL147  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 131 and seq_questionarioaplicacao = 61) as tab146,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL148  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 151 and seq_questionarioaplicacao = 61) as tab147,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL149  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 167 and seq_questionarioaplicacao = 61) as tab148,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL150  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 183 and seq_questionarioaplicacao = 61) as tab149,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL151  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 199 and seq_questionarioaplicacao = 61) as tab150,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL152  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 111 and seq_questionarioaplicacao = 61) as tab151,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL153  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 132 and seq_questionarioaplicacao = 61) as tab152,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL154  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 152 and seq_questionarioaplicacao = 61) as tab153,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL155  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 168 and seq_questionarioaplicacao = 61) as tab154,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL156  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 184 and seq_questionarioaplicacao = 61) as tab155,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL157  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 201 and seq_questionarioaplicacao = 61) as tab156,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL158  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 112 and seq_questionarioaplicacao = 61) as tab157,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL159  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 133 and seq_questionarioaplicacao = 61) as tab158,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL160  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 153 and seq_questionarioaplicacao = 61) as tab159,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL161  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 169 and seq_questionarioaplicacao = 61) as tab160,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL162  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 185 and seq_questionarioaplicacao = 61) as tab161,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL163  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 202 and seq_questionarioaplicacao = 61) as tab162,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL164  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 113 and seq_questionarioaplicacao = 61) as tab163,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL165  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 134 and seq_questionarioaplicacao = 61) as tab164,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL166  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 154 and seq_questionarioaplicacao = 61) as tab165,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL167  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 170 and seq_questionarioaplicacao = 61) as tab166,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL168  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 186 and seq_questionarioaplicacao = 61) as tab167,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL169  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 203 and seq_questionarioaplicacao = 61) as tab168,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL170  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 114 and seq_questionarioaplicacao = 61) as tab169,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL171  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 135 and seq_questionarioaplicacao = 61) as tab170,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL172  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 155 and seq_questionarioaplicacao = 61) as tab171,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL173  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 171 and seq_questionarioaplicacao = 61) as tab172,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL174  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 187 and seq_questionarioaplicacao = 61) as tab173,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL175  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 204 and seq_questionarioaplicacao = 61) as tab174,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL176  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 115 and seq_questionarioaplicacao = 61) as tab175,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL177  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 136 and seq_questionarioaplicacao = 61) as tab176,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL178  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 156 and seq_questionarioaplicacao = 61) as tab177,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL179  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 172 and seq_questionarioaplicacao = 61) as tab178,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL180  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 188 and seq_questionarioaplicacao = 61) as tab179,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL181  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 205 and seq_questionarioaplicacao = 61) as tab180,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL182  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 116 and seq_questionarioaplicacao = 61) as tab181,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL183  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 138 and seq_questionarioaplicacao = 61) as tab182,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL184  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 157 and seq_questionarioaplicacao = 61) as tab183,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL185  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 173 and seq_questionarioaplicacao = 61) as tab184,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL186  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 189 and seq_questionarioaplicacao = 61) as tab185,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL187  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 206 and seq_questionarioaplicacao = 61) as tab186,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL188  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 117 and seq_questionarioaplicacao = 61) as tab187,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL189  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 139 and seq_questionarioaplicacao = 61) as tab188,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL190  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 158 and seq_questionarioaplicacao = 61) as tab189,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL191  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 174 and seq_questionarioaplicacao = 61) as tab190,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL192  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 190 and seq_questionarioaplicacao = 61) as tab191,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL193  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 12 and id_grupo = 5 and id_questao = 6 and id_itemquestao = 207 and seq_questionarioaplicacao = 61) as tab192,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL194  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 208 and seq_questionarioaplicacao = 61) as tab193,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL195  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 215 and seq_questionarioaplicacao = 61) as tab194,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL196  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 222 and seq_questionarioaplicacao = 61) as tab195,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL197  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 229 and seq_questionarioaplicacao = 61) as tab196,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL198  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 237 and seq_questionarioaplicacao = 61) as tab197,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL199  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 244 and seq_questionarioaplicacao = 61) as tab198,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL200  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 209 and seq_questionarioaplicacao = 61) as tab199,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL201  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 216 and seq_questionarioaplicacao = 61) as tab200,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL202  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 223 and seq_questionarioaplicacao = 61) as tab201,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL203  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 230 and seq_questionarioaplicacao = 61) as tab202,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL204  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 238 and seq_questionarioaplicacao = 61) as tab203,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL205  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 245 and seq_questionarioaplicacao = 61) as tab204,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL206  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 210 and seq_questionarioaplicacao = 61) as tab205,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL207  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 224 and seq_questionarioaplicacao = 61) as tab206,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL208  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 239 and seq_questionarioaplicacao = 61) as tab207,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL209  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 211 and seq_questionarioaplicacao = 61) as tab208,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL210  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 218 and seq_questionarioaplicacao = 61) as tab209,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL211  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 225 and seq_questionarioaplicacao = 61) as tab210,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL212  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 232 and seq_questionarioaplicacao = 61) as tab211,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL213  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 240 and seq_questionarioaplicacao = 61) as tab212,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL214  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 247 and seq_questionarioaplicacao = 61) as tab213,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL215  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 213 and seq_questionarioaplicacao = 61) as tab214,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL216  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 219 and seq_questionarioaplicacao = 61) as tab215,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL217  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 226 and seq_questionarioaplicacao = 61) as tab216,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL218  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 233 and seq_questionarioaplicacao = 61) as tab217,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL219  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 241 and seq_questionarioaplicacao = 61) as tab218,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL220  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 248 and seq_questionarioaplicacao = 61) as tab219,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL221  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 214 and seq_questionarioaplicacao = 61) as tab220,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL222  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 220 and seq_questionarioaplicacao = 61) as tab221,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL223  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 227 and seq_questionarioaplicacao = 61) as tab222,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL224  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 234 and seq_questionarioaplicacao = 61) as tab223,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL225  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 242 and seq_questionarioaplicacao = 61) as tab224,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL226  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 249 and seq_questionarioaplicacao = 61) as tab225,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL227  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 212 and seq_questionarioaplicacao = 61) as tab226,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL228  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 221 and seq_questionarioaplicacao = 61) as tab227,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL229  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 228 and seq_questionarioaplicacao = 61) as tab228,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL230  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 235 and seq_questionarioaplicacao = 61) as tab229,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL231  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 243 and seq_questionarioaplicacao = 61) as tab230,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL232  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 6 and id_questao = 7 and id_itemquestao = 250 and seq_questionarioaplicacao = 61) as tab231,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL233  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 252 and seq_questionarioaplicacao = 61) as tab232,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL234  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 259 and seq_questionarioaplicacao = 61) as tab233,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL235  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 266 and seq_questionarioaplicacao = 61) as tab234,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL236  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 273 and seq_questionarioaplicacao = 61) as tab235,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL237  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 280 and seq_questionarioaplicacao = 61) as tab236,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL238  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 287 and seq_questionarioaplicacao = 61) as tab237,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL239  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 253 and seq_questionarioaplicacao = 61) as tab238,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL240  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 260 and seq_questionarioaplicacao = 61) as tab239,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL241  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 267 and seq_questionarioaplicacao = 61) as tab240,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL242  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 274 and seq_questionarioaplicacao = 61) as tab241,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL243  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 281 and seq_questionarioaplicacao = 61) as tab242,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL244  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 288 and seq_questionarioaplicacao = 61) as tab243,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL245  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 254 and seq_questionarioaplicacao = 61) as tab244,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL246  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 268 and seq_questionarioaplicacao = 61) as tab245,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL247  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 282 and seq_questionarioaplicacao = 61) as tab246,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL248  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 255 and seq_questionarioaplicacao = 61) as tab247,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL249  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 262 and seq_questionarioaplicacao = 61) as tab248,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL250  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 269 and seq_questionarioaplicacao = 61) as tab249,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL251  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 276 and seq_questionarioaplicacao = 61) as tab250,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL252  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 283 and seq_questionarioaplicacao = 61) as tab251,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL253  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 290 and seq_questionarioaplicacao = 61) as tab252,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL254  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 256 and seq_questionarioaplicacao = 61) as tab253,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL255  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 263 and seq_questionarioaplicacao = 61) as tab254,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL256  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 270 and seq_questionarioaplicacao = 61) as tab255,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL257  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 277 and seq_questionarioaplicacao = 61) as tab256,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL258  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 284 and seq_questionarioaplicacao = 61) as tab257,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL259  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 291 and seq_questionarioaplicacao = 61) as tab258,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL260  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 257 and seq_questionarioaplicacao = 61) as tab259,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL261  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 264 and seq_questionarioaplicacao = 61) as tab260,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL262  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 271 and seq_questionarioaplicacao = 61) as tab261,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL263  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 278 and seq_questionarioaplicacao = 61) as tab262,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL264  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 285 and seq_questionarioaplicacao = 61) as tab263,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL265  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 292 and seq_questionarioaplicacao = 61) as tab264,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL266  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 258 and seq_questionarioaplicacao = 61) as tab265,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL267  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 265 and seq_questionarioaplicacao = 61) as tab266,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL268  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 272 and seq_questionarioaplicacao = 61) as tab267,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL269  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 279 and seq_questionarioaplicacao = 61) as tab268,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL270  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 286 and seq_questionarioaplicacao = 61) as tab269,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL271  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 13 and id_grupo = 7 and id_questao = 8 and id_itemquestao = 293 and seq_questionarioaplicacao = 61) as tab270,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL272  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 352 and seq_questionarioaplicacao = 61) as tab271,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL273  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 358 and seq_questionarioaplicacao = 61) as tab272,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL274  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 365 and seq_questionarioaplicacao = 61) as tab273,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL275  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 371 and seq_questionarioaplicacao = 61) as tab274,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL276  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 378 and seq_questionarioaplicacao = 61) as tab275,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL277  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 383 and seq_questionarioaplicacao = 61) as tab276,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL278  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 353 and seq_questionarioaplicacao = 61) as tab277,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL279  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 359 and seq_questionarioaplicacao = 61) as tab278,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL280  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 366 and seq_questionarioaplicacao = 61) as tab279,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL281  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 372 and seq_questionarioaplicacao = 61) as tab280,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL282  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 379 and seq_questionarioaplicacao = 61) as tab281,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL283  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 384 and seq_questionarioaplicacao = 61) as tab282,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL284  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 354 and seq_questionarioaplicacao = 61) as tab283,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL285  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 360 and seq_questionarioaplicacao = 61) as tab284,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL286  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 367 and seq_questionarioaplicacao = 61) as tab285,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL287  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 373 and seq_questionarioaplicacao = 61) as tab286,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL288  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 380 and seq_questionarioaplicacao = 61) as tab287,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL289  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 385 and seq_questionarioaplicacao = 61) as tab288,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL290  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 355 and seq_questionarioaplicacao = 61) as tab289,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL291  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 361 and seq_questionarioaplicacao = 61) as tab290,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL292  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 368 and seq_questionarioaplicacao = 61) as tab291,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL293  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 374 and seq_questionarioaplicacao = 61) as tab292,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL294  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 362 and seq_questionarioaplicacao = 61) as tab293,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL295  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 386 and seq_questionarioaplicacao = 61) as tab294,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL296  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 356 and seq_questionarioaplicacao = 61) as tab295,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL297  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 363 and seq_questionarioaplicacao = 61) as tab296,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL298  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 369 and seq_questionarioaplicacao = 61) as tab297,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL299  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 375 and seq_questionarioaplicacao = 61) as tab298,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL300  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 381 and seq_questionarioaplicacao = 61) as tab299,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL301  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 387 and seq_questionarioaplicacao = 61) as tab300,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL302  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 357 and seq_questionarioaplicacao = 61) as tab301,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL303  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 364 and seq_questionarioaplicacao = 61) as tab302,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL304  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 370 and seq_questionarioaplicacao = 61) as tab303,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL305  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 376 and seq_questionarioaplicacao = 61) as tab304,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL306  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 377 and seq_questionarioaplicacao = 61) as tab305,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL307  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 8 and id_questao = 9 and id_itemquestao = 388 and seq_questionarioaplicacao = 61) as tab306,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL308  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 9 and id_questao = 10 and id_itemquestao = 400 and seq_questionarioaplicacao = 61) as tab307,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL309  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 9 and id_questao = 10 and id_itemquestao = 401 and seq_questionarioaplicacao = 61) as tab308,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL310  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 9 and id_questao = 10 and id_itemquestao = 402 and seq_questionarioaplicacao = 61) as tab309,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL311  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 9 and id_questao = 10 and id_itemquestao = 403 and seq_questionarioaplicacao = 61) as tab310,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL312  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 9 and id_questao = 10 and id_itemquestao = 404 and seq_questionarioaplicacao = 61) as tab311,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL313  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 9 and id_questao = 10 and id_itemquestao = 405 and seq_questionarioaplicacao = 61) as tab312,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL314  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 10 and id_questao = 11 and id_itemquestao = 413 and seq_questionarioaplicacao = 61) as tab313,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL315  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 10 and id_questao = 11 and id_itemquestao = 419 and seq_questionarioaplicacao = 61) as tab314,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL316  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 10 and id_questao = 11 and id_itemquestao = 425 and seq_questionarioaplicacao = 61) as tab315,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL317  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 10 and id_questao = 11 and id_itemquestao = 431 and seq_questionarioaplicacao = 61) as tab316,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL318  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 10 and id_questao = 11 and id_itemquestao = 432 and seq_questionarioaplicacao = 61) as tab317,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL319  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 10 and id_questao = 11 and id_itemquestao = 443 and seq_questionarioaplicacao = 61) as tab318,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL320  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 10 and id_questao = 11 and id_itemquestao = 414 and seq_questionarioaplicacao = 61) as tab319,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL321  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 10 and id_questao = 11 and id_itemquestao = 420 and seq_questionarioaplicacao = 61) as tab320,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL322  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 10 and id_questao = 11 and id_itemquestao = 426 and seq_questionarioaplicacao = 61) as tab321,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL323  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 10 and id_questao = 11 and id_itemquestao = 433 and seq_questionarioaplicacao = 61) as tab322,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL324  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 10 and id_questao = 11 and id_itemquestao = 434 and seq_questionarioaplicacao = 61) as tab323,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL325  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 10 and id_questao = 11 and id_itemquestao = 444 and seq_questionarioaplicacao = 61) as tab324,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL326  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 30 and id_questao = 12 and id_itemquestao = 449 and seq_questionarioaplicacao = 61) as tab325,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL327  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 30 and id_questao = 12 and id_itemquestao = 453 and seq_questionarioaplicacao = 61) as tab326,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL328  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 11 and id_questao = 13 and id_itemquestao = 457 and seq_questionarioaplicacao = 61) as tab327,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL329  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 11 and id_questao = 13 and id_itemquestao = 460 and seq_questionarioaplicacao = 61) as tab328,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL330  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 11 and id_questao = 13 and id_itemquestao = 458 and seq_questionarioaplicacao = 61) as tab329,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL331  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 11 and id_questao = 13 and id_itemquestao = 461 and seq_questionarioaplicacao = 61) as tab330,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL332  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 11 and id_questao = 13 and id_itemquestao = 459 and seq_questionarioaplicacao = 61) as tab331,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL333  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 11 and id_questao = 13 and id_itemquestao = 462 and seq_questionarioaplicacao = 61) as tab332,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL334  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 12 and id_questao = 14 and id_itemquestao = 480 and seq_questionarioaplicacao = 61) as tab333,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL335  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 12 and id_questao = 14 and id_itemquestao = 481 and seq_questionarioaplicacao = 61) as tab334,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL336  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 13 and id_questao = 15 and id_itemquestao = 485 and seq_questionarioaplicacao = 61) as tab335,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL337  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 13 and id_questao = 15 and id_itemquestao = 487 and seq_questionarioaplicacao = 61) as tab336,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL338  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 13 and id_questao = 15 and id_itemquestao = 486 and seq_questionarioaplicacao = 61) as tab337,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL339  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 14 and id_grupo = 13 and id_questao = 15 and id_itemquestao = 488 and seq_questionarioaplicacao = 61) as tab338,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL340  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 493 and seq_questionarioaplicacao = 61) as tab339,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL341  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 498 and seq_questionarioaplicacao = 61) as tab340,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL342  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 504 and seq_questionarioaplicacao = 61) as tab341,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL343  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 509 and seq_questionarioaplicacao = 61) as tab342,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL344  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 514 and seq_questionarioaplicacao = 61) as tab343,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL345  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 519 and seq_questionarioaplicacao = 61) as tab344,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL346  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 524 and seq_questionarioaplicacao = 61) as tab345,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL347  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 531 and seq_questionarioaplicacao = 61) as tab346,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL348  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 536 and seq_questionarioaplicacao = 61) as tab347,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL349  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 494 and seq_questionarioaplicacao = 61) as tab348,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL350  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 499 and seq_questionarioaplicacao = 61) as tab349,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL351  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 505 and seq_questionarioaplicacao = 61) as tab350,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL352  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 510 and seq_questionarioaplicacao = 61) as tab351,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL353  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 515 and seq_questionarioaplicacao = 61) as tab352,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL354  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 520 and seq_questionarioaplicacao = 61) as tab353,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL355  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 525 and seq_questionarioaplicacao = 61) as tab354,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL356  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 532 and seq_questionarioaplicacao = 61) as tab355,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL357  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 537 and seq_questionarioaplicacao = 61) as tab356,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL358  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 495 and seq_questionarioaplicacao = 61) as tab357,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL359  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 500 and seq_questionarioaplicacao = 61) as tab358,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL360  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 506 and seq_questionarioaplicacao = 61) as tab359,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL361  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 511 and seq_questionarioaplicacao = 61) as tab360,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL362  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 516 and seq_questionarioaplicacao = 61) as tab361,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL363  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 521 and seq_questionarioaplicacao = 61) as tab362,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL364  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 526 and seq_questionarioaplicacao = 61) as tab363,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL365  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 533 and seq_questionarioaplicacao = 61) as tab364,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL366  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 538 and seq_questionarioaplicacao = 61) as tab365,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL367  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 496 and seq_questionarioaplicacao = 61) as tab366,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL368  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 497 and seq_questionarioaplicacao = 61) as tab367,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL369  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 507 and seq_questionarioaplicacao = 61) as tab368,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL370  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 512 and seq_questionarioaplicacao = 61) as tab369,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL371  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 517 and seq_questionarioaplicacao = 61) as tab370,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL372  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 522 and seq_questionarioaplicacao = 61) as tab371,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL373  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 527 and seq_questionarioaplicacao = 61) as tab372,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL374  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 534 and seq_questionarioaplicacao = 61) as tab373,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL375  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 539 and seq_questionarioaplicacao = 61) as tab374,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL376  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 501 and seq_questionarioaplicacao = 61) as tab375,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL377  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 503 and seq_questionarioaplicacao = 61) as tab376,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL378  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 508 and seq_questionarioaplicacao = 61) as tab377,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL379  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 513 and seq_questionarioaplicacao = 61) as tab378,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL380  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 518 and seq_questionarioaplicacao = 61) as tab379,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL381  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 523 and seq_questionarioaplicacao = 61) as tab380,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL382  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 528 and seq_questionarioaplicacao = 61) as tab381,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL383  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 535 and seq_questionarioaplicacao = 61) as tab382,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL384  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 14 and id_questao = 16 and id_itemquestao = 1188 and seq_questionarioaplicacao = 61) as tab383,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL385  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 556 and seq_questionarioaplicacao = 61) as tab384,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL386  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 567 and seq_questionarioaplicacao = 61) as tab385,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL387  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 578 and seq_questionarioaplicacao = 61) as tab386,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL388  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 579 and seq_questionarioaplicacao = 61) as tab387,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL389  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 580 and seq_questionarioaplicacao = 61) as tab388,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL390  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 581 and seq_questionarioaplicacao = 61) as tab389,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL391  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 582 and seq_questionarioaplicacao = 61) as tab390,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL392  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 583 and seq_questionarioaplicacao = 61) as tab391,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL393  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 584 and seq_questionarioaplicacao = 61) as tab392,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL394  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 557 and seq_questionarioaplicacao = 61) as tab393,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL395  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 568 and seq_questionarioaplicacao = 61) as tab394,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL396  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 587 and seq_questionarioaplicacao = 61) as tab395,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL397  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 589 and seq_questionarioaplicacao = 61) as tab396,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL398  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 590 and seq_questionarioaplicacao = 61) as tab397,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL399  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 591 and seq_questionarioaplicacao = 61) as tab398,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL400  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 592 and seq_questionarioaplicacao = 61) as tab399,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL401  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 593 and seq_questionarioaplicacao = 61) as tab400,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL402  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 594 and seq_questionarioaplicacao = 61) as tab401,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL403  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 558 and seq_questionarioaplicacao = 61) as tab402,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL404  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 569 and seq_questionarioaplicacao = 61) as tab403,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL405  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 596 and seq_questionarioaplicacao = 61) as tab404,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL406  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 585 and seq_questionarioaplicacao = 61) as tab405,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL407  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 586 and seq_questionarioaplicacao = 61) as tab406,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL408  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 595 and seq_questionarioaplicacao = 61) as tab407,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL409  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 597 and seq_questionarioaplicacao = 61) as tab408,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL410  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 598 and seq_questionarioaplicacao = 61) as tab409,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL411  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 599 and seq_questionarioaplicacao = 61) as tab410,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL412  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 559 and seq_questionarioaplicacao = 61) as tab411,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL413  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 570 and seq_questionarioaplicacao = 61) as tab412,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL414  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 600 and seq_questionarioaplicacao = 61) as tab413,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL415  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 601 and seq_questionarioaplicacao = 61) as tab414,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL416  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 602 and seq_questionarioaplicacao = 61) as tab415,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL417  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 603 and seq_questionarioaplicacao = 61) as tab416,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL418  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 604 and seq_questionarioaplicacao = 61) as tab417,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL419  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 605 and seq_questionarioaplicacao = 61) as tab418,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL420  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 606 and seq_questionarioaplicacao = 61) as tab419,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL421  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 560 and seq_questionarioaplicacao = 61) as tab420,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL422  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 571 and seq_questionarioaplicacao = 61) as tab421,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL423  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 588 and seq_questionarioaplicacao = 61) as tab422,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL424  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 607 and seq_questionarioaplicacao = 61) as tab423,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL425  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 608 and seq_questionarioaplicacao = 61) as tab424,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL426  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 609 and seq_questionarioaplicacao = 61) as tab425,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL427  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 610 and seq_questionarioaplicacao = 61) as tab426,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL428  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 611 and seq_questionarioaplicacao = 61) as tab427,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL429  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 612 and seq_questionarioaplicacao = 61) as tab428,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL430  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 561 and seq_questionarioaplicacao = 61) as tab429,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL431  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 572 and seq_questionarioaplicacao = 61) as tab430,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL432  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 613 and seq_questionarioaplicacao = 61) as tab431,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL433  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 614 and seq_questionarioaplicacao = 61) as tab432,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL434  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 615 and seq_questionarioaplicacao = 61) as tab433,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL435  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 616 and seq_questionarioaplicacao = 61) as tab434,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL436  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 617 and seq_questionarioaplicacao = 61) as tab435,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL437  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 618 and seq_questionarioaplicacao = 61) as tab436,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL438  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 619 and seq_questionarioaplicacao = 61) as tab437,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL439  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 562 and seq_questionarioaplicacao = 61) as tab438,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL440  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 573 and seq_questionarioaplicacao = 61) as tab439,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL441  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 620 and seq_questionarioaplicacao = 61) as tab440,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL442  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 621 and seq_questionarioaplicacao = 61) as tab441,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL443  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 622 and seq_questionarioaplicacao = 61) as tab442,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL444  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 623 and seq_questionarioaplicacao = 61) as tab443,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL445  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 624 and seq_questionarioaplicacao = 61) as tab444,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL446  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 625 and seq_questionarioaplicacao = 61) as tab445,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL447  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 626 and seq_questionarioaplicacao = 61) as tab446,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL448  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 563 and seq_questionarioaplicacao = 61) as tab447,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL449  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 574 and seq_questionarioaplicacao = 61) as tab448,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL450  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 627 and seq_questionarioaplicacao = 61) as tab449,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL451  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 628 and seq_questionarioaplicacao = 61) as tab450,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL452  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 629 and seq_questionarioaplicacao = 61) as tab451,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL453  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 630 and seq_questionarioaplicacao = 61) as tab452,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL454  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 631 and seq_questionarioaplicacao = 61) as tab453,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL455  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 632 and seq_questionarioaplicacao = 61) as tab454,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL456  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 633 and seq_questionarioaplicacao = 61) as tab455,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL457  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 564 and seq_questionarioaplicacao = 61) as tab456,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL458  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 575 and seq_questionarioaplicacao = 61) as tab457,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL459  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 634 and seq_questionarioaplicacao = 61) as tab458,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL460  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 635 and seq_questionarioaplicacao = 61) as tab459,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL461  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 636 and seq_questionarioaplicacao = 61) as tab460,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL462  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 637 and seq_questionarioaplicacao = 61) as tab461,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL463  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 638 and seq_questionarioaplicacao = 61) as tab462,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL464  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 639 and seq_questionarioaplicacao = 61) as tab463,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL465  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 640 and seq_questionarioaplicacao = 61) as tab464,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL466  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 565 and seq_questionarioaplicacao = 61) as tab465,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL467  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 576 and seq_questionarioaplicacao = 61) as tab466,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL468  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 641 and seq_questionarioaplicacao = 61) as tab467,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL469  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 642 and seq_questionarioaplicacao = 61) as tab468,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL470  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 643 and seq_questionarioaplicacao = 61) as tab469,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL471  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 644 and seq_questionarioaplicacao = 61) as tab470,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL472  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 645 and seq_questionarioaplicacao = 61) as tab471,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL473  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 646 and seq_questionarioaplicacao = 61) as tab472,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL474  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 647 and seq_questionarioaplicacao = 61) as tab473,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL475  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 566 and seq_questionarioaplicacao = 61) as tab474,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL476  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 577 and seq_questionarioaplicacao = 61) as tab475,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL477  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 648 and seq_questionarioaplicacao = 61) as tab476,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL478  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 649 and seq_questionarioaplicacao = 61) as tab477,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL479  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 650 and seq_questionarioaplicacao = 61) as tab478,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL480  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 651 and seq_questionarioaplicacao = 61) as tab479,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL481  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 652 and seq_questionarioaplicacao = 61) as tab480,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL482  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 653 and seq_questionarioaplicacao = 61) as tab481,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL483  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 16 and id_grupo = 15 and id_questao = 17 and id_itemquestao = 654 and seq_questionarioaplicacao = 61) as tab482,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL484  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 18 and id_grupo = 16 and id_questao = 19 and id_itemquestao = 675 and seq_questionarioaplicacao = 61) as tab483,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL485  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 18 and id_grupo = 16 and id_questao = 19 and id_itemquestao = 677 and seq_questionarioaplicacao = 61) as tab484,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL486  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 18 and id_grupo = 16 and id_questao = 19 and id_itemquestao = 679 and seq_questionarioaplicacao = 61) as tab485,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL487  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 18 and id_grupo = 16 and id_questao = 19 and id_itemquestao = 676 and seq_questionarioaplicacao = 61) as tab486,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL488  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 18 and id_grupo = 16 and id_questao = 19 and id_itemquestao = 678 and seq_questionarioaplicacao = 61) as tab487,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL489  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 18 and id_grupo = 16 and id_questao = 19 and id_itemquestao = 680 and seq_questionarioaplicacao = 61) as tab488,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL490  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 18 and id_grupo = 17 and id_questao = 20 and id_itemquestao = 686 and seq_questionarioaplicacao = 61) as tab489,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL491  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 18 and id_grupo = 17 and id_questao = 20 and id_itemquestao = 687 and seq_questionarioaplicacao = 61) as tab490,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL492  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 18 and id_grupo = 17 and id_questao = 20 and id_itemquestao = 688 and seq_questionarioaplicacao = 61) as tab491,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL493  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 18 and id_grupo = 17 and id_questao = 20 and id_itemquestao = 689 and seq_questionarioaplicacao = 61) as tab492,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL494  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 18 and id_grupo = 18 and id_questao = 21 and id_itemquestao = 694 and seq_questionarioaplicacao = 61) as tab493,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL495  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 18 and id_grupo = 18 and id_questao = 21 and id_itemquestao = 695 and seq_questionarioaplicacao = 61) as tab494,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL496  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 18 and id_grupo = 18 and id_questao = 21 and id_itemquestao = 696 and seq_questionarioaplicacao = 61) as tab495,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL497  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 18 and id_grupo = 18 and id_questao = 21 and id_itemquestao = 697 and seq_questionarioaplicacao = 61) as tab496,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL498  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 18 and id_grupo = 18 and id_questao = 21 and id_itemquestao = 797 and seq_questionarioaplicacao = 61) as tab497,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL499  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 18 and id_grupo = 22 and id_questao = 25 and id_itemquestao = 712 and seq_questionarioaplicacao = 61) as tab498,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL500  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 17 and id_grupo = 19 and id_questao = 22 and id_itemquestao = 799 and seq_questionarioaplicacao = 61) as tab499,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL501  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 17 and id_grupo = 19 and id_questao = 22 and id_itemquestao = 800 and seq_questionarioaplicacao = 61) as tab500,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL502  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 17 and id_grupo = 20 and id_questao = 23 and id_itemquestao = 802 and seq_questionarioaplicacao = 61) as tab501,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL503  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 17 and id_grupo = 21 and id_questao = 24 and id_itemquestao = 807 and seq_questionarioaplicacao = 61) as tab502,&lt;br&gt;&lt;br&gt;(  Select seq_questionarioaplicacao, vl_resposta as CEL504  From 
monitoramento.vw_base_resposta_1  Where id_questionario = 2 and id_supergrupo = 17 and id_grupo = 21 and id_questao = 24 and id_itemquestao = 808 and seq_questionarioaplicacao = 61) as tab503 &lt;br&gt;&lt;br&gt;WHERE  &lt;br&gt;tab0.seq_questionarioaplicacao
 =  tabA.id_questionario_aplicacao AND &lt;br&gt;tab0.seq_questionarioaplicacao =  tab1.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab2.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab3.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab4.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab5.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab6.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab7.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab8.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab9.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab10.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab11.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab12.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab13.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab14.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab15.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab16.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab17.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab18.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab19.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab20.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab21.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab22.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab23.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab24.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab25.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab26.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab27.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab28.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab29.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab30.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab31.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab32.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab33.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab34.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab35.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab36.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab37.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab38.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab39.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab40.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab41.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab42.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab43.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab44.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab45.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab46.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab47.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab48.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab49.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab50.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab51.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab52.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab53.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab54.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab55.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab56.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab57.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab58.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab59.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab60.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab61.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab62.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab63.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab64.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab65.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab66.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab67.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab68.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab69.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab70.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab71.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab72.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab73.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab74.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab75.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab76.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab77.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab78.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab79.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab80.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab81.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab82.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab83.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab84.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab85.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab86.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab87.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab88.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab89.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab90.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab91.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab92.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab93.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab94.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab95.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab96.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab97.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab98.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab99.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab100.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab101.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab102.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab103.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab104.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab105.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab106.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab107.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab108.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab109.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab110.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab111.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab112.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab113.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab114.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab115.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab116.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab117.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab118.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab119.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab120.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab121.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab122.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab123.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab124.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab125.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab126.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab127.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab128.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab129.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab130.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab131.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab132.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab133.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab134.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab135.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab136.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab137.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab138.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab139.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab140.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab141.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab142.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab143.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab144.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab145.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab146.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab147.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab148.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab149.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab150.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab151.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab152.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab153.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab154.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab155.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab156.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab157.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab158.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab159.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab160.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab161.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab162.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab163.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab164.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab165.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab166.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab167.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab168.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab169.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab170.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab171.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab172.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab173.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab174.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab175.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab176.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab177.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab178.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab179.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab180.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab181.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab182.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab183.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab184.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab185.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab186.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab187.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab188.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab189.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab190.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab191.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab192.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab193.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab194.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab195.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab196.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab197.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab198.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab199.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab200.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab201.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab202.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab203.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab204.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab205.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab206.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab207.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab208.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab209.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab210.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab211.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab212.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab213.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab214.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab215.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab216.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab217.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab218.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab219.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab220.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab221.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab222.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab223.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab224.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab225.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab226.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab227.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab228.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab229.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab230.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab231.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab232.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab233.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab234.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab235.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab236.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab237.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab238.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab239.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab240.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab241.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab242.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab243.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab244.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab245.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab246.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab247.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab248.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab249.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab250.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab251.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab252.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab253.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab254.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab255.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab256.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab257.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab258.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab259.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab260.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab261.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab262.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab263.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab264.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab265.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab266.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab267.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab268.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab269.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab270.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab271.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab272.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab273.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab274.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab275.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab276.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab277.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab278.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab279.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab280.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab281.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab282.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab283.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab284.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab285.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab286.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab287.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab288.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab289.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab290.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab291.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab292.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab293.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab294.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab295.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab296.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab297.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab298.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab299.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab300.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab301.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab302.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab303.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab304.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab305.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab306.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab307.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab308.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab309.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab310.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab311.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab312.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab313.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab314.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab315.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab316.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab317.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab318.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab319.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab320.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab321.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab322.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab323.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab324.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab325.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab326.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab327.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab328.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab329.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab330.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab331.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab332.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab333.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab334.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab335.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab336.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab337.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab338.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab339.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab340.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab341.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab342.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab343.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab344.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab345.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab346.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab347.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab348.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab349.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab350.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab351.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab352.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab353.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab354.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab355.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab356.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab357.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab358.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab359.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab360.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab361.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab362.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab363.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab364.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab365.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab366.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab367.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab368.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab369.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab370.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab371.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab372.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab373.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab374.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab375.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab376.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab377.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab378.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab379.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab380.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab381.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab382.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab383.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab384.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab385.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab386.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab387.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab388.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab389.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab390.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab391.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab392.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab393.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab394.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab395.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab396.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab397.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab398.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab399.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab400.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab401.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab402.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab403.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab404.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab405.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab406.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab407.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab408.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab409.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab410.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab411.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab412.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab413.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab414.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab415.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab416.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab417.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab418.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab419.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab420.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab421.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab422.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab423.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab424.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab425.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab426.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab427.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab428.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab429.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab430.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab431.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab432.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab433.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab434.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab435.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab436.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab437.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab438.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab439.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab440.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab441.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab442.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab443.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab444.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab445.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab446.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab447.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab448.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab449.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab450.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab451.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab452.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab453.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab454.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab455.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab456.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab457.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab458.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab459.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab460.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab461.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab462.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab463.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab464.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab465.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab466.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab467.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab468.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab469.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab470.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab471.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab472.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab473.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab474.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab475.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab476.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab477.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab478.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab479.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab480.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab481.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab482.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab483.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab484.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab485.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab486.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab487.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab488.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab489.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab490.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab491.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab492.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab493.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab494.seq_questionarioaplicacao AND  
tab0.seq_questionarioaplicacao =  tab495.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab496.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab497.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao
 =  tab498.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab499.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab500.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab501.seq_questionarioaplicacao
 AND  tab0.seq_questionarioaplicacao =  tab502.seq_questionarioaplicacao AND  tab0.seq_questionarioaplicacao =  tab503.seq_questionarioaplicacao &lt;br&gt;&lt;br&gt;
Total runtime: 35,854.691 ms&lt;span style=&quot;font-family: arial,sans-serif;&quot;&gt;&lt;br&gt;&lt;/span&gt;SQL executado.&lt;/pre&gt;
&lt;br clear=&quot;all&quot;&gt;Ps: estou executando esta instrução no phpPgAdmin (no servidor Web) que acessa o servidor de banco de dados (ambos dedicados exclusivamente às suas funções) e ambos são equipamentos bem parrudos.&lt;br&gt;&lt;br&gt;&lt;br&gt;
-- &lt;br&gt;----------------------------------------------&lt;br&gt;Eng. Sistemas&lt;br&gt;Consultor em TI
&lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Nro-Limite-de-Colunas-recuperadas-em-instru%C3%A7%C3%A3o-Select-tp10607283p10607283.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10664993</id>
	<title>Re: Erro backup postgre</title>
	<published>2007-03-25T17:17:09Z</published>
	<updated>2007-03-25T17:17:09Z</updated>
	<author>
		<name>Bruno Moreno</name>
	</author>
	<content type="html">&lt;div&gt;ah, entao blz =D&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;a mensagem de erro eh nao rola colocar aqui porque são muitas linhas de texto. Mas tenho certeza que vcs que sacam,&amp;nbsp;dando uma olhada no arquivo rapida devem saber dizer algo sobre, já que o erro foi o mesmo para todas as tabelas. =) Bem, esta em anexo, para quem puder ver =)
&lt;/div&gt;
&lt;div&gt;Paz&amp;nbsp;&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class=&quot;gmail_quote&quot;&gt;Em 25/03/07, &lt;b class=&quot;gmail_sendername&quot;&gt;Sebastian Selau Webber Colombo&lt;/b&gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10664993&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sebastianswc@...&lt;/a&gt;&amp;gt; escreveu:&lt;/span&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid&quot;&gt;joga no corpo do email a mensagem de erro.&lt;br&gt;&lt;br&gt;
&lt;div&gt;
&lt;div&gt;&lt;span class=&quot;e&quot; id=&quot;q_1118b485f75e35d7_1&quot;&gt;&lt;span class=&quot;gmail_quote&quot;&gt;On 3/25/07, &lt;b class=&quot;gmail_sendername&quot;&gt;Wallace Reis&lt;/b&gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10664993&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;reis.wallace@...&lt;/a&gt;&amp;gt; wrote:&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid&quot;&gt;
&lt;div&gt;&lt;span class=&quot;e&quot; id=&quot;q_1118b485f75e35d7_3&quot;&gt;On 3/25/07, Bruno Moreno &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10664993&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brunoneiva@...&lt;/a&gt;&amp;gt; wrote: 
&lt;br&gt;&amp;gt; Caso alguem mais possa me ajudar, eu mando o log ao email da pessoa, ja que&lt;br&gt;&amp;gt; a lista nao aceita anexar arquivos.&lt;br&gt;&lt;br&gt;Acho que vc esta enganado. Veja o anexo deste email.&lt;br&gt;&lt;br&gt;--&lt;br&gt;wallace reis&lt;br&gt;Núcleo de Biologia Computacional e 
&lt;br&gt;Gestão de Informações Biotecnológicas/LABBI&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;_______________________________________________&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil&lt;br&gt;Antes de perguntar consulte o manual&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;
http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;
http://pgfoundry.org/mailman/listinfo/brasil-usuarios &lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;&lt;br clear=&quot;all&quot;&gt;&lt;br&gt;-- &lt;br&gt;Atenciosamente,&lt;br&gt;&lt;span class=&quot;sg&quot;&gt;Sebastian Selau Webber Colombo &lt;/span&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil&lt;br&gt;Antes de perguntar consulte o manual&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/
&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios
&lt;/a&gt;&lt;br&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;&lt;br clear=&quot;all&quot;&gt;&lt;br&gt;-- &lt;br&gt;Bruno Neiva Moreno&lt;br&gt;&lt;br&gt;Graduando em:&lt;br&gt;:: Ciência da Computação - UFPB ::&lt;br&gt;:: Tecnologia em Redes de Acesso em Telecomunicações - CEFET/PB ::&lt;br&gt;&lt;br&gt;&amp;quot;Tudo posso naquele que me fortalece&amp;quot; Fl. 4:13 
&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;Erros backup Postgresql.rar&lt;/strong&gt; (36K) &lt;a href=&quot;http://old.nabble.com/attachment/10664993/0/Erros%20backup%20Postgresql.rar&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-Erro-backup-postgre-tp10664993p10664993.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10664992</id>
	<title>Re: data e hora</title>
	<published>2007-02-14T11:07:12Z</published>
	<updated>2007-02-14T11:07:12Z</updated>
	<author>
		<name>sidnei-2</name>
	</author>
	<content type="html">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
&lt;HTML&gt;&lt;HEAD&gt;
&lt;META http-equiv=Content-Type content=&quot;text/html; charset=iso-8859-1&quot;&gt;
&lt;META content=&quot;MSHTML 6.00.2900.3020&quot; name=GENERATOR&gt;

&lt;/HEAD&gt;
&lt;BODY bgColor=#ffffff&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Segue em Anexo...&lt;/FONT&gt;&lt;/DIV&gt;
&lt;BLOCKQUOTE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px&quot;&gt;
  &lt;DIV style=&quot;FONT: 10pt arial&quot;&gt;----- Original Message ----- &lt;/DIV&gt;
  &lt;DIV style=&quot;BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black&quot;&gt;&lt;B&gt;From:&lt;/B&gt; 
  &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10664992&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;milenaleit@...&lt;/a&gt; &lt;/DIV&gt;
  &lt;DIV style=&quot;FONT: 10pt arial&quot;&gt;&lt;B&gt;To:&lt;/B&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10664992&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt; &lt;/DIV&gt;
  &lt;DIV style=&quot;FONT: 10pt arial&quot;&gt;&lt;B&gt;Sent:&lt;/B&gt; Wednesday, February 14, 2007 3:03 
  PM&lt;/DIV&gt;
  &lt;DIV style=&quot;FONT: 10pt arial&quot;&gt;&lt;B&gt;Subject:&lt;/B&gt; [PostgreSQL-Brasil] data e 
  hora&lt;/DIV&gt;
  &lt;DIV&gt;&lt;BR&gt;&lt;/DIV&gt;
  &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
  &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
  &lt;DIV&gt;Olá,&lt;/DIV&gt;
  &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
  &lt;DIV&gt;Eu tenho uma tela que o usuario informa a quantidade de horas que ele 
  quer que uma atividade seja executada...mas se ele digita 8 dizendo que&amp;nbsp;a 
  meta é de 8 horas o banco não entende, mas se eu coloco 08:00:00&amp;nbsp;o 
  cadastro é realizado com sucesso. &lt;/DIV&gt;
  &lt;DIV&gt;Como posso fazer isso sem que ele tenha que digitar esse monte de coisas 
  ?&lt;/DIV&gt;
  &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
  &lt;DIV&gt;[]s&amp;nbsp;&amp;nbsp;&lt;BR clear=all&gt;&lt;BR&gt;-- &lt;BR&gt;Milena Leite &lt;/DIV&gt;
  &lt;P&gt;
  &lt;HR&gt;

  &lt;P&gt;&lt;/P&gt;_______________________________________________&lt;BR&gt;Grupo de Usuários do 
  PostgreSQL no Brasil&lt;BR&gt;Antes de perguntar consulte o 
  manual&lt;BR&gt;http://pgdocptbr.sourceforge.net/&lt;BR&gt;&lt;BR&gt;Para editar suas opções ou 
  sair da lista acesse a página da lista 
  em:&lt;BR&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;
&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;apostila_postgresql_01_(www.crieseuwebsite.com).zip&lt;/strong&gt; (410K) &lt;a href=&quot;http://old.nabble.com/attachment/10664992/0/apostila_postgresql_01_%28www.crieseuwebsite.com%29.zip&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-data-e-hora-tp10664992p10664992.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10664990</id>
	<title>Re: Lista de cidades brasileiras</title>
	<published>2007-01-23T11:19:23Z</published>
	<updated>2007-01-23T11:19:23Z</updated>
	<author>
		<name>Evandro Ricardo Silvestre</name>
	</author>
	<content type="html">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;meta content=&quot;text/html;charset=ISO-8859-1&quot; http-equiv=&quot;Content-Type&quot;&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot; text=&quot;#000000&quot;&gt;
Marcos,&lt;br&gt;
&lt;br&gt;
Segue um script que cria a tabela e faz os insert, nele contem todos os
estados e cidades devidamente relacionados&lt;br&gt;
&lt;br&gt;
Espero que seja util!&lt;br&gt;
&lt;br&gt;
Att.&lt;br&gt;
&lt;br&gt;
Evandro&lt;br&gt;
&lt;br&gt;
Marcos Vin&amp;iacute;cius wrote:
&lt;blockquote cite=&quot;mid8bf865b70701231015r8f90530j3d19c6c6299c549f@mail.gmail.com&quot; type=&quot;cite&quot;&gt;Pessoal, alguem teria uma lista com todas as cidades
brasileiras e seus respectivos estados? Se alguem puder me enviar uma
lista ou backup da(s) tabela(s) ficarei muito agradecido.&lt;br clear=&quot;all&quot;&gt;
  &lt;br&gt;
-- &lt;br&gt;
MSN:&amp;nbsp;&amp;nbsp; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10664990&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;viniciusma@...&lt;/a&gt;&lt;br&gt;
Skype: mv_mendes
  &lt;pre wrap=&quot;&quot;&gt;
&lt;hr size=&quot;4&quot; width=&quot;90%&quot;&gt;
_______________________________________________
Grupo de Usu&amp;aacute;rios do PostgreSQL no Brasil
Antes de perguntar consulte o manual
&lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;

Para editar suas op&amp;ccedil;&amp;otilde;es ou sair da lista acesse a p&amp;aacute;gina da lista em:
&lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;Brasil.zip&lt;/strong&gt; (75K) &lt;a href=&quot;http://old.nabble.com/attachment/10664990/0/Brasil.zip&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-Lista-de-cidades-brasileiras-tp10664991p10664990.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10664991</id>
	<title>Re: Lista de cidades brasileiras</title>
	<published>2007-01-23T10:50:28Z</published>
	<updated>2007-01-23T10:50:28Z</updated>
	<author>
		<name>Douglas.grupos Rauber</name>
	</author>
	<content type="html">Anexo arquivo TXT!&lt;br&gt;&lt;br&gt;Abraço&lt;br&gt;&lt;br&gt;Douglas&lt;br&gt;&lt;br&gt;&lt;br&gt;
&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;Cidades.rar&lt;/strong&gt; (68K) &lt;a href=&quot;http://old.nabble.com/attachment/10664991/0/Cidades.rar&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-Lista-de-cidades-brasileiras-tp10664991p10664991.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10607292</id>
	<title>Re: QUAL E A VERSÃO ESTÁVEL PARA WIN32?</title>
	<published>2007-01-17T12:32:35Z</published>
	<updated>2007-01-17T12:32:35Z</updated>
	<author>
		<name>Rodrigo da Silva Brasil</name>
	</author>
	<content type="html">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
&lt;HTML&gt;&lt;HEAD&gt;
&lt;META http-equiv=Content-Type content=&quot;text/html; charset=iso-8859-1&quot;&gt;
&lt;META content=&quot;MSHTML 6.00.2800.1578&quot; name=GENERATOR&gt;

&lt;/HEAD&gt;
&lt;BODY&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;Olá marco, &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;aqui usamos a versão 8.1.3 a mais de 1 ano, e está 
bem estável.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;Abraço&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;FONT face=verdana size=1&gt;
&lt;P&gt;_______________________________________&lt;BR&gt;&lt;B&gt;Rodrigo da Silva 
Brasil&lt;/B&gt;&lt;BR&gt;Tecnologia da Informação&lt;BR&gt;Farma Ponte - Mais barato todos os 
dias.&lt;BR&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;webmaster@...&lt;/a&gt;&lt;BR&gt;(0xx15) 32245545 &lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;----- Original Message ----- &lt;/FONT&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;From: &quot;Marco Merlin&quot; &amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;marco.merlin@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;To: &amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;Sent: Wednesday, January 17, 2007 6:29 
PM&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;Subject: [PostgreSQL-Brasil] QUAL E A VERSÃO 
ESTÁVEL PARA WIN32?&lt;/FONT&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial&gt;&lt;BR&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;FONT face=Arial size=2&gt;Por favor, não consegui resposta para esta questão, qual é a versão 
estável&lt;BR&gt;que posso confiar para fazer um upgrade da versão 8.0, utilizando 
win32?&lt;BR&gt;&lt;BR&gt;Atenciosamente,&lt;BR&gt;Marco Merlin&lt;BR&gt;&lt;BR&gt;-----Mensagem 
original-----&lt;BR&gt;De: &lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-bounces@...&lt;/a&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;[mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-bounces@...&lt;/a&gt;] Em nome de&lt;BR&gt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-request@...&lt;/a&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;Enviada em: quarta-feira, 17 de janeiro de 2007 18:19&lt;BR&gt;Para: &lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;Assunto: Digest Brasil-Usuarios, volume 411, assunto 4&lt;BR&gt;&lt;BR&gt;Enviar 
submissões para a lista de discussão Brasil-Usuarios para &lt;BR&gt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;Para se cadastrar ou descadastrar via WWW, visite o endereço&lt;BR&gt;&lt;/FONT&gt;&lt;A href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;ou, via email, envie uma mensagem com a palavra 'help' no 
assunto ou&lt;BR&gt;corpo da mensagem para &lt;BR&gt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-request@...&lt;/a&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;Você poderá entrar em contato com a pessoa que gerencia a lista 
pelo&lt;BR&gt;endereço&lt;BR&gt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-owner@...&lt;/a&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;Quando responder, por favor edite sua linha Assunto assim ela 
será&lt;BR&gt;mais específica que &quot;Re: Contents of Brasil-Usuarios 
digest...&quot;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Tópicos de Hoje:&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; 1. dump perdendo os 
parâmetros de funções (saulo Mendes)&lt;BR&gt;&amp;nbsp;&amp;nbsp; 2. Erro no Banco (daniel 
mendes)&lt;BR&gt;&amp;nbsp;&amp;nbsp; 3. Re: dump perdendo os parâmetros de 
funções&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (Evandro Ricardo 
Silvestre)&lt;BR&gt;&amp;nbsp;&amp;nbsp; 4. off topic - email com anexo (Marcos Fabrício 
Corso)&lt;BR&gt;&amp;nbsp;&amp;nbsp; 5. Re: Erro no Banco (Osvaldo Rosario 
Kussama)&lt;BR&gt;&amp;nbsp;&amp;nbsp; 6. Re: Erro no Banco (daniel 
mendes)&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;----------------------------------------------------------------------&lt;BR&gt;&lt;BR&gt;Message: 
1&lt;BR&gt;Date: Wed, 17 Jan 2007 18:09:52 +0000&lt;BR&gt;From: saulo Mendes &amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;saulopms@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;&lt;BR&gt;Subject: 
[PostgreSQL-Brasil] dump perdendo os parâmetros de funções&lt;BR&gt;To: &quot;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&quot; 
&amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=12&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;&lt;BR&gt;Message-ID: &amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=13&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;BAY126-W14DED8C2B2C641C012A71DC5AB0@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;&lt;BR&gt;Content-Type: text/plain; 
charset=&quot;iso-8859-1&quot;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;Senhores, em meu banco de dados existem 
algumas funções com parâmetros tipo&lt;BR&gt;CREATE OR REPLACE FUNCTION 
&quot;public&quot;.&quot;fn_estoque_produto&quot; (vn_c_produto&lt;BR&gt;numeric, out vn_c_estoque 
numeric, out vt_d_estoque varchar, out vr_saldo&lt;BR&gt;numeric) RETURNS 
&quot;pg_catalog&quot;.&quot;record&quot; AS&lt;BR&gt;...&lt;BR&gt;&amp;nbsp;&lt;BR&gt;até aí tudo bem.... o problema é 
que quando eu executo um dump (pg_dump -U&lt;BR&gt;postgres meu_banco &amp;gt; 
c:\meu_banco.sql)&lt;BR&gt;e eu restauro ele utilizando psql -U postgres meu_banco 
&amp;lt; c:\meu_banco.sql&lt;BR&gt;&amp;nbsp;&lt;BR&gt;acontece o seguinte as funçoes com a citada 
acima: os parâmetros ficam &quot;sem&lt;BR&gt;nome&quot;.&lt;BR&gt;ex:&lt;BR&gt;&amp;nbsp;&lt;BR&gt;o que era 
fn_estoque_produto&quot; (vn_c_produto numeric, out vn_c_estoque&lt;BR&gt;numeric, out 
vt_d_estoque varchar, out vr_saldo numeric)&lt;BR&gt;fica assim: fn_estoque_produto&quot; 
(numeric, out numeric, out varchar, out&lt;BR&gt;numeric).&lt;BR&gt;&amp;nbsp;&lt;BR&gt;alguém sabe o 
que pode ser 
isso?&lt;BR&gt;_________________________________________________________________&lt;BR&gt;Obtenha 
o novo Windows Live Messenger!&lt;BR&gt;&lt;/FONT&gt;&lt;A href=&quot;http://get.live.com/messenger/overview&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://get.live.com/messenger/overview&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;-------------- Próxima Parte ----------&lt;BR&gt;Um anexo em HTML foi 
limpo...&lt;BR&gt;URL:&lt;BR&gt;&lt;/FONT&gt;&lt;A href=&quot;http://pgfoundry.org/pipermail/brasil-usuarios/attachments/20070117/0e15a764&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://pgfoundry.org/pipermail/brasil-usuarios/attachments/20070117/0e15a764&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;/attachment-0001.html 
&lt;BR&gt;&lt;BR&gt;------------------------------&lt;BR&gt;&lt;BR&gt;Message: 2&lt;BR&gt;Date: Wed, 17 Jan 
2007 18:22:16 +0000 (GMT)&lt;BR&gt;From: daniel mendes &amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=14&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;daniel_smendes@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;&lt;BR&gt;Subject: [PostgreSQL-Brasil] Erro no Banco&lt;BR&gt;To: &lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=15&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;Message-ID: &amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=16&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;893093.7694.qm@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;&lt;BR&gt;Content-Type: text/plain; charset=&quot;iso-8859-1&quot;&lt;BR&gt;&lt;BR&gt;Boa 
tarde,&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp; eu sou novato em postgre, e esta ocorrendo o 
seguinte problema comigo.Ate&lt;BR&gt;ontem dia 16/01, eu estava acessando o banco 
normalmente, trabalhando&lt;BR&gt;tranquilo, cheguei hoje de manha tentei acessar o 
banco, utilizando a mesma&lt;BR&gt;senha dos dias anteriores, e deu o seguinte erro: 
&quot;An error has occured:&lt;BR&gt;Error connecting to the server: FATAL: password 
authentication failed for&lt;BR&gt;user &quot;postgres&quot; &quot;. Segue o log com o erro 
:&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp; 2007-01-16 19:50:57 LOG:&amp;nbsp; autovacuum: 
processing database &quot;faturamento&quot;&lt;BR&gt;&amp;nbsp; 2007-01-16 19:51:57 LOG:&amp;nbsp; 
autovacuum: processing database &quot;postgres&quot;&lt;BR&gt;&amp;nbsp; 2007-01-16 19:52:57 
LOG:&amp;nbsp; autovacuum: processing database &quot;template1&quot;&lt;BR&gt;&amp;nbsp; 2007-01-16 
19:53:57 LOG:&amp;nbsp; autovacuum: processing database &quot;faturamento&quot;&lt;BR&gt;&amp;nbsp; 
2007-01-16 19:54:57 LOG:&amp;nbsp; autovacuum: processing database 
&quot;postgres&quot;&lt;BR&gt;&amp;nbsp; 2007-01-16 19:55:59 LOG:&amp;nbsp; autovacuum: processing 
database &quot;template1&quot;&lt;BR&gt;&amp;nbsp; 2007-01-16 19:57:14 WARNING:&amp;nbsp; there is 
already a transaction in progress&lt;BR&gt;&amp;nbsp; 2007-01-16 19:57:22 LOG:&amp;nbsp; 
autovacuum: processing database &quot;faturamento&quot;&lt;BR&gt;&amp;nbsp; 2007-01-16 19:57:43 
FATAL:&amp;nbsp; password authentication failed for user&lt;BR&gt;&quot;postgres&quot;&lt;BR&gt;&amp;nbsp; 
2007-01-16 19:58:25 LOG:&amp;nbsp; autovacuum: processing database 
&quot;postgres&quot;&lt;BR&gt;&amp;nbsp; 2007-01-16 19:59:52 LOG:&amp;nbsp; autovacuum: processing 
database &quot;template1&quot;&lt;BR&gt;&amp;nbsp; 2007-01-16 20:00:52 LOG:&amp;nbsp; autovacuum: 
processing database &quot;faturamento&quot;&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp; Alguem tem ideia do 
que possa ser? O postgre tem algum esquema que expira&lt;BR&gt;a senha?Eu nao estou 
conseguindo acessar a base e eu estou nessa empresa a&lt;BR&gt;pouco tempo e nao foi 
feito backup dos dados.&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp; 
Obrigado!&lt;BR&gt;&lt;BR&gt;&amp;nbsp;__________________________________________________&lt;BR&gt;Fale 
com seus amigos&amp;nbsp; de graça com o novo Yahoo! Messenger &lt;BR&gt;&lt;/FONT&gt;&lt;A href=&quot;http://br.messenger.yahoo.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://br.messenger.yahoo.com/&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial size=2&gt; 
&lt;BR&gt;-------------- Próxima Parte ----------&lt;BR&gt;Um anexo em HTML foi 
limpo...&lt;BR&gt;URL:&lt;BR&gt;&lt;/FONT&gt;&lt;A href=&quot;http://pgfoundry.org/pipermail/brasil-usuarios/attachments/20070117/c83aec9a&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://pgfoundry.org/pipermail/brasil-usuarios/attachments/20070117/c83aec9a&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;/attachment-0001.html 
&lt;BR&gt;&lt;BR&gt;------------------------------&lt;BR&gt;&lt;BR&gt;Message: 3&lt;BR&gt;Date: Wed, 17 Jan 
2007 16:54:45 -0300&lt;BR&gt;From: Evandro Ricardo Silvestre &amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=17&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;evandro.silvestre@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;&lt;BR&gt;Subject: Re: [PostgreSQL-Brasil] dump perdendo os parâmetros 
de&lt;BR&gt;funções&lt;BR&gt;To: Grupo de Usuários do PostgreSQL no Brasil&lt;BR&gt;&amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=18&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;&lt;BR&gt;Message-ID: &amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=19&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;45AE7F05.6080907@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;&lt;BR&gt;Content-Type: text/plain; charset=ISO-8859-1; 
format=flowed&lt;BR&gt;&lt;BR&gt;Isso é normal.&lt;BR&gt;Os parametros devem ser declarados da 
maneira que fica depois que &lt;BR&gt;restaura o banco e declarar variáveis como alias 
para os parâmetros.&lt;BR&gt;&lt;BR&gt;Exemplo:&lt;BR&gt;&lt;BR&gt;*CREATE OR REPLACE FUNCTION 
&quot;public&quot;.&quot;fn_estoque_produto&quot; (numeric, &lt;BR&gt;**out **numeric, **out 
**varchar,**out ** numeric) RETURNS &lt;BR&gt;&quot;pg_catalog&quot;.&quot;record&quot; 
AS&lt;BR&gt;DECLARE&lt;BR&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp; vn_c_produto&amp;nbsp; ALIAS FOR 
#1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vn_c_estoque ALIAS FOR #2;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
vt_d_estoque ALIAS FOR #3;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vr_saldo ALIAS FOR 
#4;*&lt;BR&gt;*BEGIN&lt;BR&gt;&lt;BR&gt;END;&lt;BR&gt;***&lt;BR&gt;Att.&lt;BR&gt;&lt;BR&gt;Evandro&lt;BR&gt;&lt;BR&gt;saulo Mendes 
wrote:&lt;div class='shrinkable-quote'&gt;&lt;BR&gt;&amp;gt;&amp;nbsp; &lt;BR&gt;&amp;gt; Senhores, em meu banco de dados existem algumas 
funções com parâmetros &lt;BR&gt;&amp;gt; tipo&lt;BR&gt;&amp;gt; *CREATE OR REPLACE FUNCTION 
&quot;public&quot;.&quot;fn_estoque_produto&quot; &lt;BR&gt;&amp;gt; (vn_c_produto numeric, out vn_c_estoque 
numeric, out vt_d_estoque &lt;BR&gt;&amp;gt; varchar, out vr_saldo numeric) RETURNS 
&quot;pg_catalog&quot;.&quot;record&quot; AS*&lt;BR&gt;&amp;gt; *...*&lt;BR&gt;&amp;gt; ** &lt;BR&gt;&amp;gt; até aí tudo bem.... 
o problema é que quando eu executo um dump &lt;BR&gt;&amp;gt; (pg_dump -U postgres 
meu_banco &amp;gt; c:\meu_banco.sql)&lt;BR&gt;&amp;gt; e eu restauro ele utilizando psql -U 
postgres meu_banco &amp;lt; c:\meu_banco.sql&lt;BR&gt;&amp;gt;&amp;nbsp; &lt;BR&gt;&amp;gt; acontece o 
seguinte as funçoes com a citada acima: os parâmetros ficam &lt;BR&gt;&amp;gt; &quot;sem 
nome&quot;.&lt;BR&gt;&amp;gt; ex:&lt;BR&gt;&amp;gt;&amp;nbsp; &lt;BR&gt;&amp;gt; o que era *fn_estoque_produto&quot; 
(vn_c_produto numeric, out vn_c_estoque &lt;BR&gt;&amp;gt; numeric, out vt_d_estoque 
varchar, out vr_saldo numeric)*&lt;BR&gt;&amp;gt; fica assim: *fn_estoque_produto&quot; 
(numeric, out numeric, out varchar, &lt;BR&gt;&amp;gt; out numeric).*&lt;BR&gt;&amp;gt; ** &lt;BR&gt;&amp;gt; 
*alguém sabe o que pode ser isso?*&lt;BR&gt;&amp;gt;&lt;BR&gt;&amp;gt; 
------------------------------------------------------------------------&lt;BR&gt;&amp;gt; 
Obtenha o novo Windows Live Messenger! Experimente! &lt;BR&gt;&amp;gt; &amp;lt;&lt;/FONT&gt;&lt;A href=&quot;http://get.live.com/messenger/overview&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://get.live.com/messenger/overview&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;&lt;BR&gt;&amp;gt; 
------------------------------------------------------------------------&lt;BR&gt;&amp;gt;&lt;BR&gt;&amp;gt; 
_______________________________________________&lt;BR&gt;&amp;gt; Grupo de Usuários do 
PostgreSQL no Brasil&lt;BR&gt;&amp;gt; Antes de perguntar consulte o manual&lt;BR&gt;&amp;gt; 
&lt;/FONT&gt;&lt;A href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://pgdocptbr.sourceforge.net/&lt;/FONT&gt;&lt;/A&gt;&lt;/div&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;&lt;BR&gt;&amp;gt; Para editar suas opções ou sair da lista acesse a página da 
lista em:&lt;BR&gt;&amp;gt; &lt;/FONT&gt;&lt;A href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;------------------------------&lt;BR&gt;&lt;BR&gt;Message: 4&lt;BR&gt;Date: Wed, 
17 Jan 2007 17:03:11 -0300&lt;BR&gt;From: Marcos Fabrício Corso &amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=20&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;marcoscorso@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;&lt;BR&gt;Subject: [PostgreSQL-Brasil] off topic - email com anexo&lt;BR&gt;To: 
&quot;Visual DataFlex&quot; &amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=21&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;DeveloperFlex@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;, 
&quot;Postgres&quot;&lt;BR&gt;&amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=22&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;, &quot;Java&quot;&lt;BR&gt;&amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=23&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;java-br@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;&lt;BR&gt;Message-ID: &amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=24&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;006701c73a72$84449b80$0501010a@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;&lt;BR&gt;Content-Type: text/plain; charset=&quot;iso-8859-1&quot;&lt;BR&gt;&lt;BR&gt;Tenho um 
email com anexo formatado ...&lt;BR&gt;&lt;BR&gt;Esse anexo é um arquivo texto igual a .txt 
só que com outra extensão, com&lt;BR&gt;várias linhas, e cada linha tem uns 200 
caracteres, parecido como um arquivo&lt;BR&gt;bancário de retorno ...&lt;BR&gt;&lt;BR&gt;Mas 
quando mando pelo hotmail ele tira todo o formato do arquivo, já mudei&lt;BR&gt;ele 
para a extensão .txt e não adiantou, já tentei colocar o atributo de&lt;BR&gt;apenas 
leitura e não adiantou, ou seja, um arquivo que tem 5 linhas de 
200&lt;BR&gt;caracteres chega com 15 linhas, cada linha com um número diferente 
de&lt;BR&gt;caracteres ....&lt;BR&gt;&lt;BR&gt;Alguém sabe como resolver isso, por enqaunto só 
peguei no Hotmail, não sei&lt;BR&gt;nos outros 
...&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Atenciosamente,&lt;BR&gt;Marcos Fabrício Corso&lt;BR&gt;Analista de Sistemas 
Júnior&lt;BR&gt;JM Informática&lt;BR&gt;(41)&amp;nbsp; 3352-2688&lt;BR&gt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=25&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;marcoscorso@...&lt;/a&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;-------------- Próxima Parte ----------&lt;BR&gt;Um anexo em HTML foi 
limpo...&lt;BR&gt;URL:&lt;BR&gt;&lt;/FONT&gt;&lt;A href=&quot;http://pgfoundry.org/pipermail/brasil-usuarios/attachments/20070117/72bd3bc2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://pgfoundry.org/pipermail/brasil-usuarios/attachments/20070117/72bd3bc2&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;/attachment-0001.html 
&lt;BR&gt;&lt;BR&gt;------------------------------&lt;BR&gt;&lt;BR&gt;Message: 5&lt;BR&gt;Date: Wed, 17 Jan 
2007 17:07:46 -0200&lt;BR&gt;From: Osvaldo Rosario Kussama &amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=26&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;osvaldo_kussama@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;&lt;BR&gt;Subject: Re: [PostgreSQL-Brasil] Erro no Banco&lt;BR&gt;To: Grupo de 
Usuários do PostgreSQL no Brasil&lt;BR&gt;&amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=27&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;&lt;BR&gt;Message-ID: &amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=28&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;45AE7402.9060302@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;&lt;BR&gt;Content-Type: text/plain; charset=ISO-8859-1; 
format=flowed&lt;BR&gt;&lt;BR&gt;daniel mendes escreveu:&lt;BR&gt;&amp;gt; Boa tarde,&lt;BR&gt;&amp;gt;&amp;nbsp; 
&lt;BR&gt;&amp;gt; eu sou novato em postgre, e esta ocorrendo o seguinte problema &lt;BR&gt;&amp;gt; 
comigo.Ate ontem dia 16/01, eu estava acessando o banco normalmente, &lt;BR&gt;&amp;gt; 
trabalhando tranquilo, cheguei hoje de manha tentei acessar o banco, &lt;BR&gt;&amp;gt; 
utilizando a mesma senha dos dias anteriores, e deu o seguinte erro: &quot;An 
&lt;BR&gt;&amp;gt; error has occured: Error connecting to the server: FATAL: password 
&lt;BR&gt;&amp;gt; authentication failed for user &quot;postgres&quot; &quot;. Segue o log com o erro 
:&lt;BR&gt;&amp;gt;&amp;nbsp; &lt;BR&gt;...&lt;BR&gt;&lt;BR&gt;&amp;gt;&amp;nbsp; &lt;BR&gt;&amp;gt; Alguem tem ideia do que possa 
ser? O postgre tem algum esquema que &lt;BR&gt;&amp;gt; expira a senha?Eu nao estou 
conseguindo acessar a base e eu estou nessa &lt;BR&gt;&amp;gt; empresa a pouco tempo e nao 
foi feito backup dos dados.&lt;BR&gt;&amp;gt;&amp;nbsp; &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Sim o PostgreSQL *pode* 
ter um prazo de validade para a senha do &lt;BR&gt;usuário, veja:&lt;BR&gt;&lt;/FONT&gt;&lt;A href=&quot;http://www.postgresql.org/docs/8.2/interactive/sql-createrole.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://www.postgresql.org/docs/8.2/interactive/sql-createrole.html&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;&quot;VALID UNTIL 'timestamp'&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The 
VALID UNTIL clause sets a date and time after which the role's &lt;BR&gt;password is 
no longer valid. If this clause is omitted the password will &lt;BR&gt;be valid for 
all time.&quot;&lt;BR&gt;&lt;BR&gt;Para contornar faça:&lt;BR&gt;&lt;BR&gt;1) Edite o arquivo pg_hba.conf 
(localizado no diretório data de seu &lt;BR&gt;PostgreSQL), e altere a forma de 
autenticação para trust:&lt;BR&gt;local all all trust&lt;BR&gt;&lt;BR&gt;2) Reinicie o serviço 
PostgreSQL para ativar a modificação.&lt;BR&gt;&lt;BR&gt;3) Liste o arquivo global/pg_auth 
(localizado no diretório data de seu &lt;BR&gt;PostgreSQL) e verifique o nome do 
superusuário: normalmente é &lt;BR&gt;&quot;postgres&quot;. *Não altere este arquivo!*&lt;BR&gt;&lt;BR&gt;4) 
No prompt de comando em seu servidor dê o seguinte comando:&lt;BR&gt;psql -U &amp;lt;nome 
obtido no passo 3&amp;gt; postgres&lt;BR&gt;&lt;BR&gt;Isto fará com que você se conecte ao bd 
postgres como superusuário sem &lt;BR&gt;ter que informar a senha.&lt;BR&gt;&lt;BR&gt;5) Execute o 
comando SQL abaixo para alterar a senha:&lt;BR&gt;&lt;BR&gt;ALTER USER &amp;lt;nome obtido no 
passo 3&amp;gt; WITH PASSWORD 'nova_senha';&lt;BR&gt;&lt;BR&gt;6) Saia do psql (\q).&lt;BR&gt;&lt;BR&gt;7) 
Se necessário realtere o arquivo pg_hba.conf para especificar a forma &lt;BR&gt;de 
autenticação desejada.&lt;BR&gt;&lt;BR&gt;8) Reinicie o servidor 
PostgreSQL.&lt;BR&gt;&lt;BR&gt;[]s&lt;BR&gt;Osvaldo&lt;BR&gt;&lt;BR&gt;PS.: se sua versão do PostgreSQL não 
tiver o bd postgres (anterior a &lt;BR&gt;8.1) utilize em seu lugar o template1 no 
passo (4).&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;_______________________________________________________ 
&lt;BR&gt;Yahoo! Mail - Sempre a melhor opção para você! &lt;BR&gt;Experimente já e veja as 
novidades. &lt;BR&gt;&lt;/FONT&gt;&lt;A href=&quot;http://br.yahoo.com/mailbeta/tudonovo/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://br.yahoo.com/mailbeta/tudonovo/&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;------------------------------&lt;BR&gt;&lt;BR&gt;Message: 
6&lt;BR&gt;Date: Wed, 17 Jan 2007 17:12:16 -0300 (ART)&lt;BR&gt;From: daniel mendes 
&amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=29&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;daniel_smendes@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;&lt;BR&gt;Subject: Re: [PostgreSQL-Brasil] Erro no Banco&lt;BR&gt;To: Grupo de 
Usuários do PostgreSQL no Brasil&lt;BR&gt;&amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=30&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;&lt;BR&gt;Message-ID: &amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=31&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;531668.18529.qm@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt;&lt;BR&gt;Content-Type: text/plain; charset=&quot;iso-8859-1&quot;&lt;BR&gt;&lt;BR&gt;Blz 
Osvaldo!&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp; funcionou certinho! segui todos os seus 
passos, mas eu fiquei com uma&lt;BR&gt;pequena dúvida, no meu arquivo pg_hba.conf, eu 
coloquei o metodo para md5, e&lt;BR&gt;mesmo assim depois de feita a alteração eu to 
conseguindo acessar o banco&lt;BR&gt;sem colocar senha alguma.É assim mesmo?&lt;BR&gt;&amp;nbsp; 
&lt;BR&gt;&lt;BR&gt;Osvaldo Rosario Kussama &amp;lt;&lt;/FONT&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607292&amp;i=32&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;osvaldo_kussama@...&lt;/a&gt;&lt;FONT face=Arial size=2&gt;&amp;gt; 
escreveu:&lt;BR&gt;&amp;nbsp; daniel mendes escreveu:&lt;BR&gt;&amp;gt; Boa tarde,&lt;BR&gt;&amp;gt; &lt;BR&gt;&amp;gt; 
eu sou novato em postgre, e esta ocorrendo o seguinte problema &lt;BR&gt;&amp;gt; 
comigo.Ate ontem dia 16/01, eu estava acessando o banco normalmente, &lt;BR&gt;&amp;gt; 
trabalhando tranquilo, cheguei hoje de manha tentei acessar o banco, &lt;BR&gt;&amp;gt; 
utilizando a mesma senha dos dias anteriores, e deu o seguinte erro: &quot;An 
&lt;BR&gt;&amp;gt; error has occured: Error connecting to the server: FATAL: password 
&lt;BR&gt;&amp;gt; authentication failed for user &quot;postgres&quot; &quot;. Segue o log com o erro 
:&lt;BR&gt;&amp;gt; &lt;BR&gt;...&lt;BR&gt;&lt;BR&gt;&amp;gt; &lt;BR&gt;&amp;gt; Alguem tem ideia do que possa ser? O 
postgre tem algum esquema que &lt;BR&gt;&amp;gt; expira a senha?Eu nao estou conseguindo 
acessar a base e eu estou nessa &lt;BR&gt;&amp;gt; empresa a pouco tempo e nao foi feito 
backup dos dados.&lt;BR&gt;&amp;gt; &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Sim o PostgreSQL *pode* ter um prazo de 
validade para a senha do &lt;BR&gt;usuário, veja:&lt;BR&gt;&lt;/FONT&gt;&lt;A href=&quot;http://www.postgresql.org/docs/8.2/interactive/sql-createrole.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://www.postgresql.org/docs/8.2/interactive/sql-createrole.html&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;&quot;VALID UNTIL 'timestamp'&lt;BR&gt;&lt;BR&gt;The VALID UNTIL clause sets a 
date and time after which the role's &lt;BR&gt;password is no longer valid. If this 
clause is omitted the password will &lt;BR&gt;be valid for all time.&quot;&lt;BR&gt;&lt;BR&gt;Para 
contornar faça:&lt;BR&gt;&lt;BR&gt;1) Edite o arquivo pg_hba.conf (localizado no diretório 
data de seu &lt;BR&gt;PostgreSQL), e altere a forma de autenticação para 
trust:&lt;BR&gt;local all all trust&lt;BR&gt;&lt;BR&gt;2) Reinicie o serviço PostgreSQL para 
ativar a modificação.&lt;BR&gt;&lt;BR&gt;3) Liste o arquivo global/pg_auth (localizado no 
diretório data de seu &lt;BR&gt;PostgreSQL) e verifique o nome do superusuário: 
normalmente é &lt;BR&gt;&quot;postgres&quot;. *Não altere este arquivo!*&lt;BR&gt;&lt;BR&gt;4) No prompt de 
comando em seu servidor dê o seguinte comando:&lt;BR&gt;psql -U postgres&lt;BR&gt;&lt;BR&gt;Isto 
fará com que você se conecte ao bd postgres como superusuário sem &lt;BR&gt;ter que 
informar a senha.&lt;BR&gt;&lt;BR&gt;5) Execute o comando SQL abaixo para alterar a 
senha:&lt;BR&gt;&lt;BR&gt;ALTER USER WITH PASSWORD 'nova_senha';&lt;BR&gt;&lt;BR&gt;6) Saia do psql 
(\q).&lt;BR&gt;&lt;BR&gt;7) Se necessário realtere o arquivo pg_hba.conf para especificar a 
forma &lt;BR&gt;de autenticação desejada.&lt;BR&gt;&lt;BR&gt;8) Reinicie o servidor 
PostgreSQL.&lt;BR&gt;&lt;BR&gt;[]s&lt;BR&gt;Osvaldo&lt;BR&gt;&lt;BR&gt;PS.: se sua versão do PostgreSQL não 
tiver o bd postgres (anterior a &lt;BR&gt;8.1) utilize em seu lugar o template1 no 
passo (4).&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;_______________________________________________________ 
&lt;BR&gt;Yahoo! Mail - Sempre a melhor opção para você! &lt;BR&gt;Experimente já e veja as 
novidades. &lt;BR&gt;&lt;/FONT&gt;&lt;A href=&quot;http://br.yahoo.com/mailbeta/tudonovo/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://br.yahoo.com/mailbeta/tudonovo/&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;_______________________________________________&lt;BR&gt;Grupo de 
Usuários do PostgreSQL no Brasil&lt;BR&gt;Antes de perguntar consulte o 
manual&lt;BR&gt;&lt;/FONT&gt;&lt;A href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://pgdocptbr.sourceforge.net/&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;Para editar suas opções ou sair da lista acesse a página da lista 
em:&lt;BR&gt;&lt;/FONT&gt;&lt;A href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;__________________________________________________&lt;BR&gt;Fale com seus 
amigos&amp;nbsp; de graça com o novo Yahoo! Messenger &lt;BR&gt;&lt;/FONT&gt;&lt;A href=&quot;http://br.messenger.yahoo.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://br.messenger.yahoo.com/&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial size=2&gt; 
&lt;BR&gt;-------------- Próxima Parte ----------&lt;BR&gt;Um anexo em HTML foi 
limpo...&lt;BR&gt;URL:&lt;BR&gt;&lt;/FONT&gt;&lt;A href=&quot;http://pgfoundry.org/pipermail/brasil-usuarios/attachments/20070117/23105986&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://pgfoundry.org/pipermail/brasil-usuarios/attachments/20070117/23105986&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;/attachment.html 
&lt;BR&gt;&lt;BR&gt;------------------------------&lt;BR&gt;&lt;BR&gt;_______________________________________________&lt;BR&gt;Grupo 
de Usuários do PostgreSQL no Brasil&lt;BR&gt;&lt;/FONT&gt;&lt;A href=&quot;http://www.postgresql.org.br&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://www.postgresql.org.br&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;A href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;Fim da Digest Brasil-Usuarios, volume 411, assunto 
4&lt;BR&gt;****************************************************&lt;BR&gt;&lt;BR&gt;Esta mensagem 
foi verificada pelo E-mail Protegido Terra.&lt;BR&gt;Scan engine: McAfee VirusScan / 
Atualizado em 17/01/2007 / Versão:&lt;BR&gt;5.1.00/4941&lt;BR&gt;Proteja o seu e-mail Terra: 
&lt;/FONT&gt;&lt;A href=&quot;http://mail.terra.com.br/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://mail.terra.com.br/&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;-- &lt;BR&gt;No virus found in this incoming message.&lt;BR&gt;Checked by AVG Free 
Edition.&lt;BR&gt;Version: 7.1.410 / Virus Database: 268.16.13/632 - Release Date: 
16/1/2007&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;BR&gt;-- &lt;BR&gt;No virus found in this outgoing 
message.&lt;BR&gt;Checked by AVG Free Edition.&lt;BR&gt;Version: 7.1.410 / Virus Database: 
268.16.13/632 - Release Date: 
16/1/2007&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;BR&gt;_______________________________________________&lt;BR&gt;Grupo 
de Usuários do PostgreSQL no Brasil&lt;BR&gt;Antes de perguntar consulte o 
manual&lt;BR&gt;&lt;/FONT&gt;&lt;A href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://pgdocptbr.sourceforge.net/&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;Para editar suas opções ou sair da lista acesse a página da lista 
em:&lt;BR&gt;&lt;/FONT&gt;&lt;A href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;FONT face=Arial size=2&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;-- &lt;BR&gt;No virus found in this incoming message.&lt;BR&gt;Checked by 
AVG Free Edition.&lt;BR&gt;Version: 7.5.432 / Virus Database: 268.16.11/627 - Release 
Date: 15/1/2007 07:54&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/BODY&gt;&lt;/HTML&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-QUAL-E-A-VERS%C3%83O-EST%C3%81VEL-PARA-WIN32--tp10607292p10607292.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10664989</id>
	<title>Re: Problemas com Pg-snapshot</title>
	<published>2006-12-18T12:45:16Z</published>
	<updated>2006-12-18T12:45:16Z</updated>
	<author>
		<name>PHP Developer</name>
	</author>
	<content type="html">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;meta content=&quot;text/html;charset=ISO-8859-1&quot; http-equiv=&quot;Content-Type&quot;&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot; text=&quot;#000000&quot;&gt;
Claro!&lt;br&gt;
Obrigado!&lt;br&gt;
&lt;br&gt;
Um abra&amp;ccedil;o!&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
wallace reis wrote:
&lt;blockquote cite=&quot;mid912e34190612181238w17a56df5i80ce113b2444e134@mail.gmail.com&quot; type=&quot;cite&quot;&gt;On 12/18/06, &lt;b class=&quot;gmail_sendername&quot;&gt;Php developer&lt;/b&gt;
&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10664989&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brunophpdeveloper@...&lt;/a&gt;&amp;gt;
wrote:
  &lt;div&gt;&lt;span class=&quot;gmail_quote&quot;&gt;&lt;/span&gt;
  &lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
    &lt;div bgcolor=&quot;#ffffff&quot; text=&quot;#000000&quot;&gt;N&amp;atilde;o deu certo amig&amp;atilde;o. Fica na
mesma!&lt;br&gt;
Obrigado de qualquer maneira!&lt;br&gt;
Se algu&amp;eacute;m tiver alguma outra sugest&amp;atilde;o, agrade&amp;ccedil;o!!&lt;/div&gt;
  &lt;/blockquote&gt;
  &lt;div&gt;&lt;br&gt;
Voc&amp;ecirc; pode enviar o c&amp;oacute;digo da fun&amp;ccedil;&amp;atilde;o?&lt;br clear=&quot;all&quot;&gt;
  &lt;/div&gt;
  &lt;/div&gt;
  &lt;br&gt;
-- &lt;br&gt;
wallace reis&lt;br&gt;
N&amp;uacute;cleo de Biologia Computacional e &lt;br&gt;
Gest&amp;atilde;o de Informa&amp;ccedil;&amp;otilde;es Biotecnol&amp;oacute;gicas/LABBI
  &lt;pre wrap=&quot;&quot;&gt;
&lt;hr size=&quot;4&quot; width=&quot;90%&quot;&gt;
_______________________________________________
Grupo de Usu&amp;aacute;rios do PostgreSQL no Brasil
Antes de perguntar consulte o manual
&lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;

Para editar suas op&amp;ccedil;&amp;otilde;es ou sair da lista acesse a p&amp;aacute;gina da lista em:
&lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;br /&gt;--
&lt;br&gt;-- ATTENTION: This is a free software. 
&lt;br&gt;-- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;View the LICENSE.txt file for license information
&lt;br&gt;--
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;-- TABLE: public.pg_dblinks
&lt;br&gt;--
&lt;br&gt;-- Table that will hold the DBLINK connection info
&lt;br&gt;-- Only visible to the 'postgres' user
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;CREATE TABLE public.pg_dblinks (
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dblinkid	serial,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dblinkname	text,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; datasource	text,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; username	text,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; password	text,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; attributes	text,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ctime		timestamp DEFAULT now(),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CONSTRAINT pg_dblink_pk PRIMARY KEY (dblinkid)
&lt;br&gt;);
&lt;br&gt;CREATE UNIQUE INDEX pg_dblinks_uix ON public.pg_dblinks(dblinkname);
&lt;br&gt;COMMENT ON TABLE public.pg_dblinks IS
&lt;br&gt;$$
&lt;br&gt;This table contains the necessary connection information for a DBI
&lt;br&gt;connection.
&lt;br&gt;$$;
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;-- TABLE: public.pg_snapshots
&lt;br&gt;--
&lt;br&gt;-- Table that will hold the SNAPSHOT info
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;CREATE TABLE public.pg_snapshots (
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; snapid		serial,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; schemaname	text not null,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; snapshotname	text not null,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; query &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; text not null,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dblinkid	bigint,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ctime		timestamp default now(),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; snaptime	timestamp,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elapsedtime	interval,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; auto_time	time,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; auto_interval	interval,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind		char(1) check (kind in ('F', 'C', 'R')) default 'R', --F=FAST C=COMPLETE R=FORCE
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pbt_table	text, -- ON PREBUILT TABLE (prebuilt table name)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CONSTRAINT pg_snapshots_pk primary key (snapid),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CONSTRAINT pg_snapshots_dblinks_fk foreign key (dblinkid) references public.pg_dblinks(dblinkid) ON UPDATE RESTRICT ON DELETE RESTRICT
&lt;br&gt;);
&lt;br&gt;CREATE UNIQUE INDEX pg_snapshots_uix ON public.pg_snapshots(schemaname, snapshotname);
&lt;br&gt;CREATE INDEX pg_snapshots_1_ix ON public.pg_snapshots(schemaname, pbt_table);
&lt;br&gt;GRANT select ON public.pg_snapshots to public;
&lt;br&gt;COMMENT ON TABLE public.pg_snapshots IS
&lt;br&gt;$$
&lt;br&gt;This table contains the list of snapshots on your system a the
&lt;br&gt;query/dblink used to create it and to fill it up.
&lt;br&gt;$$;
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;-- TABLE: public.pg_mlogs
&lt;br&gt;--
&lt;br&gt;-- Table that will hold the SNAPSHOT LOG info
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;CREATE TABLE public.pg_mlogs (
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; snaplogid	serial,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; masterschema	text NOT NULL,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mastername	text NOT NULL,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; flag		numeric NOT NULL,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; log		text NOT NULL,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CONSTRAINT pg_mlogs_pk PRIMARY KEY (snaplogid)
&lt;br&gt;);
&lt;br&gt;CREATE UNIQUE INDEX pg_mlogs_uix ON public.pg_mlogs(masterschema, mastername);
&lt;br&gt;GRANT select ON public.pg_mlogs to public;
&lt;br&gt;COMMENT ON TABLE public.pg_mlogs IS
&lt;br&gt;$$
&lt;br&gt;This table contains the list of snapshot logs.
&lt;br&gt;$$;
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;-- TABLE: public.pg_mlog_refcols
&lt;br&gt;--
&lt;br&gt;-- Table that will hold the SNAPSHOT LOG columns info
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;CREATE TABLE public.pg_mlog_refcols (
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; snaplogid	numeric,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; masterschema	text NOT NULL,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mastername	text NOT NULL,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; colname		text NOT NULL,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; oldest		timestamp NOT NULL DEFAULT now(),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; flag		numeric(1),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CONSTRAINT pg_mlog_refcols_pk PRIMARY KEY (snaplogid, colname),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CONSTRAINT pg_mlog_refcols_mlog_fk FOREIGN KEY (snaplogid) REFERENCES public.pg_mlogs(snaplogid) ON DELETE CASCADE
&lt;br&gt;);
&lt;br&gt;CREATE UNIQUE INDEX pg_mlog_refcols_uix ON public.pg_mlog_refcols(masterschema, mastername, colname);
&lt;br&gt;GRANT select ON public.pg_mlog_refcols to public;
&lt;br&gt;COMMENT ON TABLE public.pg_mlog_refcols IS
&lt;br&gt;$$
&lt;br&gt;This table contains the list of snapshot logs.
&lt;br&gt;$$;
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;-- TABLE: public.pg_slogs
&lt;br&gt;--
&lt;br&gt;-- Table that will hold the SNAPSHOT LOG refresh info
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;CREATE TABLE public.pg_slogs (
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; snaplogid	bigint,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; snapid		bigint,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; snaptime	timestamp not null,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; userid		int4 not null,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CONSTRAINT pg_slogs_pk primary key (snaplogid, snapid),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CONSTRAINT pg_slogs_mlog_fk FOREIGN KEY (snaplogid) REFERENCES public.pg_mlogs(snaplogid) ON DELETE CASCADE,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CONSTRAINT pg_slogs_snap_fk FOREIGN KEY (snapid) REFERENCES public.pg_snapshots(snapid) ON DELETE CASCADE
&lt;br&gt;);
&lt;br&gt;CREATE UNIQUE INDEX pg_slogs_ix_1 on public.pg_slogs(snapid, snaplogid);
&lt;br&gt;CREATE UNIQUE INDEX pg_slogs_ix_2 on public.pg_slogs(snapid, snaptime, snaplogid);
&lt;br&gt;CREATE UNIQUE INDEX pg_slogs_ix_3 on public.pg_slogs(snaplogid, snaptime, snapid);
&lt;br&gt;GRANT select ON public.pg_slogs to public;
&lt;br&gt;COMMENT ON TABLE public.pg_slogs IS
&lt;br&gt;$$
&lt;br&gt;This table contains the list of master tables that have snapshot logs and are referenced by snapshots elsewhere. This table, along with the master table log, allows fast refreshes of snapshots based on snapshot logs.
&lt;br&gt;$$;
&lt;br&gt;--
&lt;br&gt;-- ATTENTION: This is a free software. 
&lt;br&gt;-- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;View the LICENSE.txt file for license information
&lt;br&gt;--
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;-- FUNCTION: public.create_dblink
&lt;br&gt;--
&lt;br&gt;-- Creates a DATABASE LINK to any databases supported by PERL
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;CREATE OR REPLACE FUNCTION public.create_dblink(dblinkname text, datasource text, username text, password text, attributes text)
&lt;br&gt;&amp;nbsp; RETURNS bool AS
&lt;br&gt;$BODY$
&lt;br&gt;use strict;
&lt;br&gt;use DBI;
&lt;br&gt;use constant TRUE =&amp;gt; 1;
&lt;br&gt;use constant FALSE =&amp;gt; &amp;quot;&amp;quot;;
&lt;br&gt;#-- Function parameters
&lt;br&gt;my ($dblinkname, $datasource, $username, $password, $attributes) = @_;
&lt;br&gt;$dblinkname = lc($dblinkname);
&lt;br&gt;my $attr_href = eval($attributes);
&lt;br&gt;#-- Set this to 1 for debugging messages
&lt;br&gt;$main::DEBUG=0;
&lt;br&gt;#-- Localhost superuser connection
&lt;br&gt;my $dbh_local = DBI-&amp;gt;connect('dbi:Pg:dbname=labpeTeste', 'postgres', undef, {AutoCommit =&amp;gt; 0});
&lt;br&gt;#-- Remote database connection
&lt;br&gt;my $dbh;
&lt;br&gt;#-- variables
&lt;br&gt;my $sql;
&lt;br&gt;my $sth;
&lt;br&gt;&lt;br&gt;#-- Test if DBLINK already exists
&lt;br&gt;if (dblinkExists($dbh_local, $dblinkname)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;DBLink $dblinkname already created&amp;quot;;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#-- Try to connect to the remote database
&lt;br&gt;$dbh = dbiGetConnection($datasource, $username, $password, $attr_href);
&lt;br&gt;$dbh-&amp;gt;disconnect;
&lt;br&gt;&lt;br&gt;#-- Create the DBLINK entry on public.pg_dblinks table
&lt;br&gt;$sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;INSERT INTO public.pg_dblinks(dblinkname, datasource, username, password, attributes)
&lt;br&gt;VALUES (?, ?, ?, ?, ?)
&lt;br&gt;SQL
&lt;br&gt;$sth = $dbh_local-&amp;gt;prepare($sql);
&lt;br&gt;$sth-&amp;gt;execute(($dblinkname, $datasource, $username, $password, $attributes));
&lt;br&gt;&lt;br&gt;if (! $sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;DBLink created&amp;quot; if $main::DEBUG==1;
&lt;br&gt;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not create DBLink '$dblinkname' ERROR=&amp;quot;. $sth-&amp;gt;errstr;
&lt;br&gt;}
&lt;br&gt;$dbh_local-&amp;gt;commit;
&lt;br&gt;$dbh_local-&amp;gt;disconnect;
&lt;br&gt;&lt;br&gt;#-- All done. Let's return TRUE
&lt;br&gt;return TRUE;
&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: sqlLookup
&lt;br&gt;#-- Returns a one row result from a SQL query
&lt;br&gt;#--
&lt;br&gt;sub sqlLookup {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $sql, @params) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return sqlLookup2 ($dbh, $sql, \@params, TRUE);
&lt;br&gt;}
&lt;br&gt;sub sqlLookupSoft {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $sql, @params) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return sqlLookup2 ($dbh, $sql, \@params, FALSE);
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;sub sqlLookup2 {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $sql, $params, $errorsAreFatal) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @row;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Lookup at SQL:$sql with &amp;quot;.((@$params ne 0) ? join(',', @$params) : '&amp;lt;none&amp;gt;') if $main::DEBUG==1;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (@$params ne 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(@$params);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($errorsAreFatal) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Fatal error! SQL=$sql ERROR=&amp;quot;.$sth-&amp;gt;errstr;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @row = $sth-&amp;gt;fetchrow_array;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;finish;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return @row;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: dblinkExists
&lt;br&gt;#-- Returns whether a DBLINK exists or not
&lt;br&gt;#--
&lt;br&gt;sub dblinkExists {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $dblinkname) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $row;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;SELECT count(*) as total
&lt;br&gt;FROM public.pg_dblinks
&lt;br&gt;WHERE dblinkname=?
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $dbh-&amp;gt;errstr;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(($dblinkname));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not find public.pg_dblink! &amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $row = $sth-&amp;gt;fetchrow_hashref;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return ($row-&amp;gt;{'total'} ne 0);
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: dbiGetConnection
&lt;br&gt;#-- Connects to a DBI datasource and returns a connection handle
&lt;br&gt;#--
&lt;br&gt;sub dbiGetConnection {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($datasource, $username, $password, $attributes) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $dbh;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh = DBI-&amp;gt;connect(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $datasource
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , $username
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , $password
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , $attributes
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($DBI::errstr) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;lt;&amp;lt;ERR;
&lt;br&gt;Could not connect to database
&lt;br&gt;data source: $datasource
&lt;br&gt;user: $username
&lt;br&gt;password: $password
&lt;br&gt;dbh attributes:
&lt;br&gt;$attributes
&lt;br&gt;&lt;br&gt;$DBI::errstr
&lt;br&gt;ERR
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $dbh;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;$BODY$
&lt;br&gt;&amp;nbsp; LANGUAGE 'plperlu' VOLATILE;
&lt;br&gt;&lt;br&gt;ALTER FUNCTION public.create_dblink(dblinkname text, datasource text, username text, password text, attributes text) OWNER TO postgres;
&lt;br&gt;&lt;br&gt;COMMENT ON FUNCTION public.create_dblink(dblinkname text, datasource text, username text, password text, attributes text) IS $$
&lt;br&gt;This function is part of PostgreSQL::Snapshots project.
&lt;br&gt;This is the function that creates a dblink. First it test the connection then it adds a record on the public.pg_dblinks table.
&lt;br&gt;$$;
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;-- FUNCTION: public.drop_dblink
&lt;br&gt;--
&lt;br&gt;-- Removes a previously created DATABASE LINK
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;CREATE OR REPLACE FUNCTION public.drop_dblink(dblinkname text)
&lt;br&gt;&amp;nbsp; RETURNS bool AS
&lt;br&gt;$BODY$
&lt;br&gt;use strict;
&lt;br&gt;use DBI;
&lt;br&gt;use constant TRUE =&amp;gt; 1;
&lt;br&gt;use constant FALSE =&amp;gt; &amp;quot;&amp;quot;;
&lt;br&gt;#-- Function parameters
&lt;br&gt;my ($dblinkname) = @_;
&lt;br&gt;$dblinkname = lc($dblinkname);
&lt;br&gt;#-- Set this to 1 for debugging messages
&lt;br&gt;$main::DEBUG=0;
&lt;br&gt;#-- Localhost superuser connection
&lt;br&gt;my $dbh_local = DBI-&amp;gt;connect('dbi:Pg:dbname=labpeTeste', 'postgres', undef, {AutoCommit =&amp;gt; 0});
&lt;br&gt;#-- variables
&lt;br&gt;my $sql;
&lt;br&gt;my $sth;
&lt;br&gt;&lt;br&gt;#-- Lets make shure that the DBLINK exists
&lt;br&gt;if (! dblinkExists($dbh_local, $dblinkname)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;DBLink '$dblinkname' does not exist&amp;quot;;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#-- Delete the DBLINK entry
&lt;br&gt;$sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;DELETE FROM public.pg_dblinks WHERE dblinkname=?
&lt;br&gt;SQL
&lt;br&gt;$sth = $dbh_local-&amp;gt;prepare($sql);
&lt;br&gt;$sth-&amp;gt;execute(($dblinkname));
&lt;br&gt;&lt;br&gt;if (! $sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;DBLink removed&amp;quot; if $main::DEBUG==1;
&lt;br&gt;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not remove DBLink '$dblinkname' ERROR=&amp;quot;.$sth-&amp;gt;errstr;
&lt;br&gt;}
&lt;br&gt;$dbh_local-&amp;gt;commit;
&lt;br&gt;$dbh_local-&amp;gt;disconnect;
&lt;br&gt;#-- All done. Let's return TRUE
&lt;br&gt;return TRUE;
&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: dblinkExists
&lt;br&gt;#-- Returns whether a DBLINK exists or not
&lt;br&gt;#--
&lt;br&gt;sub dblinkExists {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $dblinkname) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $row;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;SELECT count(*) as total
&lt;br&gt;FROM public.pg_dblinks
&lt;br&gt;WHERE dblinkname=?
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $dbh-&amp;gt;errstr;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(($dblinkname));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not find public.pg_dblink! &amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $row = $sth-&amp;gt;fetchrow_hashref;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return ($row-&amp;gt;{'total'} ne 0);
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: sqlLookup
&lt;br&gt;#-- Returns a one row result from a SQL query
&lt;br&gt;#--
&lt;br&gt;sub sqlLookup {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $sql, @params) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return sqlLookup2 ($dbh, $sql, \@params, TRUE);
&lt;br&gt;}
&lt;br&gt;sub sqlLookupSoft {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $sql, @params) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return sqlLookup2 ($dbh, $sql, \@params, FALSE);
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;sub sqlLookup2 {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $sql, $params, $errorsAreFatal) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @row;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Lookup at SQL:$sql with &amp;quot;.((@$params ne 0) ? join(',', @$params) : '&amp;lt;none&amp;gt;') if $main::DEBUG==1;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (@$params ne 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(@$params);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($errorsAreFatal) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Fatal error! SQL=$sql ERROR=&amp;quot;.$sth-&amp;gt;errstr;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @row = $sth-&amp;gt;fetchrow_array;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;finish;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return @row;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;$BODY$
&lt;br&gt;&amp;nbsp; LANGUAGE 'plperlu' VOLATILE;
&lt;br&gt;ALTER FUNCTION public.drop_dblink(dblinkname text) OWNER TO postgres;
&lt;br&gt;COMMENT ON FUNCTION public.drop_dblink(dblinkname text) IS $$
&lt;br&gt;This function is part of PostgreSQL::Snapshots project.
&lt;br&gt;This is the function that removes a dblink.
&lt;br&gt;$$;
&lt;br&gt;--
&lt;br&gt;-- ATTENTION: This is a free software. 
&lt;br&gt;-- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;View the LICENSE.txt file for license information
&lt;br&gt;--
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;-- FUNCTION: public.create_snapshot
&lt;br&gt;--
&lt;br&gt;-- Creates a SNAPSHOT based on a LOCAL query or on a DBLINK query
&lt;br&gt;-- TODO: ON PREBUILT TABLE -&amp;gt; may be child OO table ?
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;CREATE OR REPLACE FUNCTION public.create_snapshot(schemaname text, snapshotname text, query text, dblink text, kind text, pbt_table text)
&lt;br&gt;&amp;nbsp; RETURNS bool AS
&lt;br&gt;$BODY$
&lt;br&gt;use strict;
&lt;br&gt;use DBI;
&lt;br&gt;use constant TRUE =&amp;gt; 1;
&lt;br&gt;use constant FALSE =&amp;gt; &amp;quot;&amp;quot;;
&lt;br&gt;#-- Function parameters
&lt;br&gt;my ($schemaname, $snapshotname, $query, $dblinkname, $kindname, $pbt_table) = @_;
&lt;br&gt;$schemaname = lc($schemaname);
&lt;br&gt;$snapshotname = lc($snapshotname);
&lt;br&gt;$dblinkname = lc($dblinkname);
&lt;br&gt;$kindname = lc($kindname);
&lt;br&gt;$pbt_table = lc($pbt_table);
&lt;br&gt;#-- Set this to 1 for debugging messages
&lt;br&gt;$main::DEBUG=0;
&lt;br&gt;#-- Remote database connection
&lt;br&gt;my $dbh;
&lt;br&gt;#-- Localhost superuser connection
&lt;br&gt;my $dbh_local = DBI-&amp;gt;connect('dbi:Pg:dbname=labpeTeste', 'postgres', undef, {AutoCommit =&amp;gt; 0});
&lt;br&gt;my $sql = '';
&lt;br&gt;my $sth;
&lt;br&gt;my $row;
&lt;br&gt;my $kind;
&lt;br&gt;my $pbt;
&lt;br&gt;&lt;br&gt;if ($kindname eq 'fast') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $kind = 'F';
&lt;br&gt;} elsif ($kindname eq 'complete') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $kind = 'C';
&lt;br&gt;} elsif ($kindname eq 'force') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $kind = 'R';
&lt;br&gt;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;KIND of refresh should be 'FAST', 'COMPLETE' or 'FORCE' !&amp;quot;;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;if (&amp;quot;$pbt_table&amp;quot; eq '') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $pbt = '';
&lt;br&gt;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $pbt = $pbt_table;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#-- Test if the SNAPSHOT entry already exists
&lt;br&gt;if (snapshotExists($dbh_local, $schemaname, $snapshotname)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Snapshot '$snapshotname' already created&amp;quot;;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;if ($pbt eq 'N') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Test if another OBJECT exists on the same place
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (objectExists($dbh_local, $schemaname, $snapshotname)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;An object at '$schemaname.$snapshotname' already exists&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Test if the PREBUILT TABLE exists
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (! objectExists($dbh_local, $schemaname, $pbt_table)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Prebuilt table '$schemaname.$pbt_table' does not exist!&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;if (&amp;quot;$dblinkname&amp;quot; eq '') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- create local
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, 'Creating LOCAL snapshot' if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; createLocalSnapshot($dbh_local, $schemaname, $snapshotname, $query, $pbt);
&lt;br&gt;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- create remote
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, 'Creating REMOTE(DBLINK) snapshot' if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; createRemoteSnapshot($dbh_local, $schemaname, $snapshotname, $query, $dblinkname, $pbt);
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#-- get the DBLINK id
&lt;br&gt;my $dblinkid = getDblinkId($dbh_local, $dblinkname);
&lt;br&gt;&lt;br&gt;#-- insert the snapshot into the catalog
&lt;br&gt;$sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;INSERT INTO public.pg_snapshots(schemaname, snapshotname, query, dblinkid, kind, pbt_table)
&lt;br&gt;VALUES (?, ?, ?, ?, ?, ?)
&lt;br&gt;SQL
&lt;br&gt;$sth = $dbh_local-&amp;gt;prepare($sql);
&lt;br&gt;$sth-&amp;gt;execute(($schemaname, $snapshotname, $query, $dblinkid, $kind, $pbt));
&lt;br&gt;if (! $sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Snapshot entry created&amp;quot; if $main::DEBUG==1;
&lt;br&gt;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not create snapshot entry. SQL=$sql ERROR=&amp;quot;.$sth-&amp;gt;errstr;
&lt;br&gt;}
&lt;br&gt;$dbh_local-&amp;gt;commit;
&lt;br&gt;$dbh_local-&amp;gt;disconnect;
&lt;br&gt;#-- All done. Let's return TRUE
&lt;br&gt;return TRUE;
&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: sqlLookup
&lt;br&gt;#-- Returns a one row result from a SQL query
&lt;br&gt;#--
&lt;br&gt;sub sqlLookup {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $sql, @params) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return sqlLookup2 ($dbh, $sql, \@params, TRUE);
&lt;br&gt;}
&lt;br&gt;sub sqlLookupSoft {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $sql, @params) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return sqlLookup2 ($dbh, $sql, \@params, FALSE);
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;sub sqlLookup2 {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $sql, $params, $errorsAreFatal) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @row;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Lookup at SQL:$sql with &amp;quot;.((@$params ne 0) ? join(',', @$params) : '&amp;lt;none&amp;gt;') if $main::DEBUG==1;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (@$params ne 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(@$params);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($errorsAreFatal) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Fatal error! SQL=$sql ERROR=&amp;quot;.$sth-&amp;gt;errstr;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @row = $sth-&amp;gt;fetchrow_array;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;finish;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return @row;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: snapshotExists
&lt;br&gt;#-- Returns whether a snapshot exists or not
&lt;br&gt;#--
&lt;br&gt;sub snapshotExists {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $schemaname, $snapshotname) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $row;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;SELECT count(*) as total
&lt;br&gt;FROM public.pg_snapshots
&lt;br&gt;WHERE schemaname=?
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; and snapshotname=?
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(($schemaname, $snapshotname));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not find public.pg_snapshots !!!&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $row = $sth-&amp;gt;fetchrow_hashref;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return ($row-&amp;gt;{'total'} ne 0);
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: objectExists
&lt;br&gt;#-- Returns whether an object exists or not
&lt;br&gt;#--
&lt;br&gt;sub objectExists {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $schemaname, $snapshotname) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $row;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;SELECT count(*) as total
&lt;br&gt;FROM pg_catalog.pg_class c
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
&lt;br&gt;WHERE n.nspname=? AND c.relname = ?
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(($schemaname, $snapshotname));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $row = $sth-&amp;gt;fetchrow_hashref;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return ($row-&amp;gt;{total} ne 0);
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: getDblinkId
&lt;br&gt;#-- Maps a DBLINK name to a DBLINK id
&lt;br&gt;#--
&lt;br&gt;sub getDblinkId {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $dblinkname) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $dblink;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (&amp;quot;$dblinkname&amp;quot; eq '') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return undef;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #--Get DBLINK Id
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = 'SELECT dblinkid FROM public.pg_dblinks WHERE dblinkname=?';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(($dblinkname));
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Fetch the dblink info
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dblink = $sth-&amp;gt;fetchrow_hashref;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $dblink-&amp;gt;{'dblinkid'};
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: createLocalSnapshot
&lt;br&gt;#-- Creates a snapshot based on a local database query
&lt;br&gt;#--
&lt;br&gt;sub createLocalSnapshot {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $schemaname, $snapshotname, $query, $pbt) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($pbt eq 'N') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Creates an empty table based on the query
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;CREATE TABLE $schemaname.$snapshotname AS
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SELECT query.* 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FROM ($query) query 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; WHERE 1=0
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = spi_exec_query($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;{status} eq 'SPI_OK_SELINTO') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Snapshot placeholder created&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not create snapshot placeholder: $sql [&amp;quot;.$sth-&amp;gt;status.&amp;quot;]&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $snapshotname = $pbt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- execute the query WHERE 1=0
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;SELECT query.* 
&lt;br&gt;FROM ($query) query 
&lt;br&gt;WHERE 1=0
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not execute query: $sql [$sth-&amp;gt;{errstr}]&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $columns;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @cols = ();
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for ( my $i = 0 ; $i &amp;lt; $sth-&amp;gt;{NUM_OF_FIELDS} ; $i++ ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; push @cols, $sth-&amp;gt;{NAME}-&amp;gt;[$i];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $columns = join(',', @cols);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- execute a query WHERE 1=0 on the existant table
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;SELECT $columns
&lt;br&gt;FROM $schemaname.$snapshotname
&lt;br&gt;WHERE 1=0
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth1 = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth1-&amp;gt;execute;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth1-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not execute query: $sql [$sth1-&amp;gt;{errstr}]&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; validateModifyPrebuiltTable($dbh, $schemaname, $snapshotname, $sth, $sth1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth1-&amp;gt;finish();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh-&amp;gt;commit;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;finish();
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: createRemoteSnapshot
&lt;br&gt;#-- Creates a snapshot based on a remote database query
&lt;br&gt;#--
&lt;br&gt;sub createRemoteSnapshot {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $schemaname, $snapshotname, $query, $dblinkname, $pbt) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $dbh_remote;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $dblink;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $attr_href;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #--Test if the DBLINK entry exists
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = 'SELECT * FROM public.pg_dblinks WHERE dblinkname=?';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(($dblinkname));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Table 'public.pg_dblinks' does not exist!&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return FALSE;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Fetch the dblink info
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dblink = $sth-&amp;gt;fetchrow_hashref;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (! $dblink-&amp;gt;{'dblinkname'}) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;DBLink '$dblinkname' does not exist!&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return FALSE;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Convert the attributes to a hashtable
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $attr_href = eval($dblink-&amp;gt;{'attributes'});
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Make the remote database connection
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_remote = dbiGetConnection(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dblink-&amp;gt;{'datasource'}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , $dblink-&amp;gt;{'username'}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , $dblink-&amp;gt;{'password'}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , $attr_href
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; );
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- holds each column definition of the new table
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @cols;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- retrieve the structure of the snapshot query (empty query)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = getQueryWithNoRecords($dbh_remote, $query);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh_remote-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($pbt eq 'N') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Loop through all columns and retrieves the name and type of each one
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Also maps the SQL Perl types to PostgreSQL ones
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Place this info on @cols
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for ( my $i = 0 ; $i &amp;lt; $sth-&amp;gt;{NUM_OF_FIELDS} ; $i++ ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $line = $sth-&amp;gt;{NAME}-&amp;gt;[$i];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $datatype = getUnifiedSqlType($sth-&amp;gt;{TYPE}-&amp;gt;[$i]);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $precision = $sth-&amp;gt;{PRECISION}-&amp;gt;[$i];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $scale = $sth-&amp;gt;{SCALE}-&amp;gt;[$i];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $isnullable = $sth-&amp;gt;{NULLABLE}-&amp;gt;[$i];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $nullable = '';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (! $isnullable) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $nullable = 'NOT NULL';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ( $datatype == DBI::SQL_INTEGER ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $line .= &amp;quot; INTEGER $nullable&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $datatype == DBI::SQL_SMALLINT ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $line .= &amp;quot; SMALLINT $nullable&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $datatype == DBI::SQL_NUMERIC ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $line .= &amp;quot; NUMERIC($precision, $scale) $nullable&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $datatype == DBI::SQL_BOOLEAN ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $line .= &amp;quot; BOOLEAN $nullable&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $datatype == DBI::SQL_CHAR ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $line .= &amp;quot; CHAR($precision) $nullable&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $datatype == DBI::SQL_VARCHAR ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $line .= &amp;quot; VARCHAR($precision) $nullable&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $datatype == DBI::SQL_CLOB ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $line .= &amp;quot; VARCHAR $nullable&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $datatype == DBI::SQL_DATE ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $line .= &amp;quot; DATE $nullable&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $datatype == DBI::SQL_TIME ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $line .= &amp;quot; TIME $nullable&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $datatype == DBI::SQL_TIMESTAMP ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $line .= &amp;quot; TIMESTAMP $nullable&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $datatype == DBI::SQL_INTERVAL ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $line .= &amp;quot; INTERVAL $nullable&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $datatype == DBI::SQL_BLOB ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $line .= &amp;quot; BYTEA $nullable&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else { #--UNKNOWN
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog WARNING, &amp;quot;Unknown type '$datatype' mapped to 'TEXT'!&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $line .= &amp;quot; TEXT $nullable&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; push @cols, $line;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;finish;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Makes the CREATE TABLE SQL statement
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;CREATE TABLE $schemaname.$snapshotname (
&lt;br&gt;&amp;nbsp; @{[ join(&amp;quot;\n, &amp;quot;, @cols) ]}
&lt;br&gt;)
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, $sql if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = spi_exec_query($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;{status} eq 'SPI_OK_UTILITY') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Snapshot placeholder created&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not create snapshot placeholder: $sql [$sth-&amp;gt;{status}]&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $snapshotname = $pbt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $columns;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for ( my $i = 0 ; $i &amp;lt; $sth-&amp;gt;{NUM_OF_FIELDS} ; $i++ ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; push @cols, $sth-&amp;gt;{NAME}-&amp;gt;[$i];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $columns = join(',', @cols);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- execute a query WHERE 1=0 on the existant table
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;SELECT $columns
&lt;br&gt;FROM $schemaname.$snapshotname
&lt;br&gt;WHERE 1=0
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth1 = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth1-&amp;gt;execute;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth1-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not execute query: $sql [$sth1-&amp;gt;{status}]&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; validateModifyPrebuiltTable($dbh, $schemaname, $snapshotname, $sth, $sth1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth1-&amp;gt;finish();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh-&amp;gt;commit;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;finish();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Disconnects from the remote database
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_remote-&amp;gt;disconnect;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#-- Dependencies
&lt;br&gt;#--
&lt;br&gt;#-- SUB: dbiGetConnection
&lt;br&gt;#-- Connects to a DBI datasource and returns a connection handle
&lt;br&gt;#--
&lt;br&gt;sub dbiGetConnection {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($datasource, $username, $password, $attributes) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $dbh;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh = DBI-&amp;gt;connect(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $datasource
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , $username
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , $password
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , $attributes
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($DBI::errstr) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;lt;&amp;lt;ERR;
&lt;br&gt;Could not connect to database
&lt;br&gt;data source: $datasource
&lt;br&gt;user: $username
&lt;br&gt;password: $password
&lt;br&gt;dbh attributes:
&lt;br&gt;$attributes
&lt;br&gt;&lt;br&gt;$DBI::errstr
&lt;br&gt;ERR
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $dbh;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: getQueryWithNoRecords
&lt;br&gt;#-- Places a FALSE filter into a query in order to retrieve no records (query structure only)
&lt;br&gt;#--
&lt;br&gt;sub getQueryWithNoRecords {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $query) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- some fake databases do not support subqueries, so we need to modify
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- the original query and insert &amp;quot;1=0 AND &amp;quot; or &amp;quot;WHERE 1=0&amp;quot; as needed
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- of course, we try &amp;quot;SELECT * FROM ($query) WHERE 1=0&amp;quot; first,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- for databases that support subqueries, or better: REAL databases
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = 'SELECT * FROM ($query) query WHERE 1=0';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, $sql if $main::DEBUG == 1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($DBI::errstr) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $query =~ tr/\n/ /;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $lc_query = lc($query);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $wherepos = rindex($lc_query, &amp;quot; where &amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($wherepos &amp;gt; 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = substr($query, 0, $wherepos) . ' WHERE 1=0 AND ' . substr($query, $wherepos + length(&amp;quot; where &amp;quot;));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $orderbypos = rindex($lc_query, &amp;quot; order by &amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $groupbypos = rindex($lc_query, &amp;quot; group by &amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($orderbypos &amp;lt; $groupbypos) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $wherepos = $orderbypos;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $wherepos = $groupbypos;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($wherepos == -1) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $wherepos = length($lc_query);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = substr($query, 0, $wherepos) . ' WHERE 1=0 ' . substr($query, $wherepos);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, $sql if $main::DEBUG == 1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($DBI::errstr) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $err = &amp;lt;&amp;lt;ERR2;
&lt;br&gt;Cannot prepare
&lt;br&gt;&lt;br&gt;$sql
&lt;br&gt;&lt;br&gt;$DBI::errstr
&lt;br&gt;ERR2
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $err;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $sql;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: getUnifiedSqlType
&lt;br&gt;#-- Maps a set of SQL types into a single SQL type
&lt;br&gt;#--
&lt;br&gt;sub getUnifiedSqlType {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbiType) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #--------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL datatype codes
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_GUID &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-11)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_WLONGVARCHAR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-10)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_WVARCHAR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(-9)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_WCHAR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-8)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_BIT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-7)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TINYINT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-6)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_BIGINT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(-5)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_LONGVARBINARY &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-4)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_VARBINARY &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-3)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_BINARY &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(-2)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_LONGVARCHAR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-1)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_UNKNOWN_TYPE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_ALL_TYPES &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_CHAR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_NUMERIC &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_DECIMAL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_SMALLINT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_FLOAT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 6
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_REAL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;7
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_DOUBLE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;8
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_DATETIME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;9
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_DATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;9
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 10
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TIME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 10
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TIMESTAMP &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;11
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_VARCHAR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;12
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_BOOLEAN &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;16
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_UDT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;17
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_UDT_LOCATOR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;18
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_ROW &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;19
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_REF &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;20
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_BLOB &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_BLOB_LOCATOR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 31
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_CLOB &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 40
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_CLOB_LOCATOR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 41
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_ARRAY &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;50
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_ARRAY_LOCATOR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;51
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_MULTISET &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 55
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_MULTISET_LOCATOR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 56
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TYPE_DATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;91
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TYPE_TIME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;92
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TYPE_TIMESTAMP &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 93
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TYPE_TIME_WITH_TIMEZONE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;94
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TYPE_TIMESTAMP_WITH_TIMEZONE &amp;nbsp; 95
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_YEAR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 101
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_MONTH &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;102
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_DAY &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;103
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_HOUR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 104
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_MINUTE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 105
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_SECOND &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 106
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_YEAR_TO_MONTH &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;107
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_DAY_TO_HOUR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;108
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_DAY_TO_MINUTE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;109
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_DAY_TO_SECOND &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;110
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_HOUR_TO_MINUTE &amp;nbsp; &amp;nbsp; &amp;nbsp; 111
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_HOUR_TO_SECOND &amp;nbsp; &amp;nbsp; &amp;nbsp; 112
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_MINUTE_TO_SECOND &amp;nbsp; &amp;nbsp; 113
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #--------------------------------
&lt;br&gt;&lt;br&gt;#--PG_BOOL PG_BYTEA PG_CHAR PG_INT8 PG_INT2 PG_INT4 PG_TEXT PG_OID
&lt;br&gt;#--PG_FLOAT4 PG_FLOAT8 PG_ABSTIME PG_RELTIME PG_TINTERVAL PG_BPCHAR
&lt;br&gt;#--PG_VARCHAR PG_DATE PG_TIME PG_DATETIME PG_TIMESPAN PG_TIMESTAMP
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (($dbiType == DBI::SQL_INTEGER)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_INTEGER;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif (($dbiType == DBI::SQL_SMALLINT)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_SMALLINT;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif (($dbiType == DBI::SQL_TYPE_TIME_WITH_TIMEZONE)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ($dbiType == DBI::SQL_TYPE_TIMESTAMP_WITH_TIMEZONE)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_DATETIME )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_TIMESTAMP )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_TYPE_TIMESTAMP ) ) { #--TIMESTAMP
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_TIMESTAMP;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif (($dbiType == DBI::SQL_NUMERIC )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ($dbiType == DBI::SQL_DECIMAL )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ($dbiType == DBI::SQL_FLOAT )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ($dbiType == DBI::SQL_REAL )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ($dbiType == DBI::SQL_DOUBLE )
&lt;br&gt;#--		|| ($dbiType == DBI::SQL_BIGINT )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ($dbiType == DBI::SQL_TINYINT )) { #--NUMERIC
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_NUMERIC;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( ( $dbiType == DBI::SQL_BOOLEAN )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_BIT ) ) { #--BOOLEAN
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_BOOLEAN;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( ($dbiType == DBI::SQL_CHAR )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_WCHAR ) ) { #--CHAR
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_CHAR;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( ($dbiType == DBI::SQL_VARCHAR )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_WVARCHAR )) { #--VARCHAR
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_VARCHAR;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( ( $dbiType == DBI::SQL_LONGVARCHAR )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_WLONGVARCHAR )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_CLOB ) ) { #--CLOB
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_CLOB;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( ( $dbiType == DBI::SQL_DATE )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_TYPE_DATE ) ) { #--DATE
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_DATE;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( ( $dbiType == DBI::SQL_TIME )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_TYPE_TIME ) ) { #--TIME
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_TIME;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( ( $dbiType == DBI::SQL_INTERVAL )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_YEAR )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_MONTH )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_DAY )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_HOUR )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_MINUTE )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_SECOND )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_YEAR_TO_MONTH )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_DAY_TO_HOUR )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_DAY_TO_MINUTE )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_DAY_TO_SECOND )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_HOUR_TO_MINUTE )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_HOUR_TO_SECOND )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_MINUTE_TO_SECOND ) ) { #--INTERVAL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_INTERVAL;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( ( $dbiType == DBI::SQL_BINARY )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_VARBINARY )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_LONGVARBINARY )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_BLOB ) ) { #--BLOB
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $dbiType == DBI::SQL_BLOB;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_VARCHAR; #-- default: VARCHAR
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;sub validateModifyPrebuiltTable {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $schemaname, $snapshotname, $sth_source, $sth_target) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- compare column names, types and position
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for ( my $i = 0 ; $i &amp;lt; $sth_source-&amp;gt;{NUM_OF_FIELDS} ; $i++ ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $columnName = $sth_source-&amp;gt;{NAME}-&amp;gt;[$i];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (getUnifiedSqlType($sth_source-&amp;gt;{TYPE}-&amp;gt;[$i]) ne getUnifiedSqlType($sth_target-&amp;gt;{TYPE}-&amp;gt;[$i])) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Types of column $columnName mismatch&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth_source-&amp;gt;{PRECISION}-&amp;gt;[$i] &amp;gt; $sth_target-&amp;gt;{PRECISION}-&amp;gt;[$i]) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Precision of column $columnName on source exceeds precision on target&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth_source-&amp;gt;{SCALE}-&amp;gt;[$i] &amp;gt; $sth_target-&amp;gt;{SCALE}-&amp;gt;[$i]) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Scale of column $columnName on source exceeds scale on target&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ( $sth_source-&amp;gt;{NULLABLE}-&amp;gt;[$i] ne $sth_target-&amp;gt;{NULLABLE}-&amp;gt;[$i] ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $n;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $n1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (! $sth_source-&amp;gt;{NULLABLE}-&amp;gt;[$i]) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $n = 'NOT NULLABLE';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $n1 = 'NULLABLE';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $n = 'NULLABLE';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $n1 = 'NOT NULLABLE';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog WARNING, &amp;quot;Column $columnName is $n on source but is $n1 on target&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Prebuilt table matches source query.&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- tests if the $pbt column exists
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;SELECT pbt\$
&lt;br&gt;FROM $schemaname.$snapshotname
&lt;br&gt;WHERE 1=0
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $err = $sth-&amp;gt;err;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;finish();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh-&amp;gt;commit;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- column $pbt does not exist
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;ALTER TABLE $schemaname.$snapshotname
&lt;br&gt;ADD COLUMN pbt\$ NUMERIC default 0
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh-&amp;gt;do($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not add the 'pbt\$' column to $schemaname.$snapshotname. SQL=$sql. [&amp;quot;.$dbh-&amp;gt;errstr.']';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog WARNING, &amp;quot;Column \$pbt already exists on $schemaname.$snapshotname&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;UPDATE $schemaname.$snapshotname
&lt;br&gt;SET pbt\$=0
&lt;br&gt;WHERE pbt\$ IS NULL
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh-&amp;gt;do($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not set 'pbt\$' column on existing rows to 0 on $schemaname.$snapshotname. SQL=$sql. [&amp;quot;.$dbh-&amp;gt;errstr.']';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh-&amp;gt;commit;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;ALTER TABLE $schemaname.$snapshotname
&lt;br&gt;ALTER COLUMN pbt\$ SET NOT NULL
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh-&amp;gt;do($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not modify the 'pbt\$' column to NOT NULL on $schemaname.$snapshotname. SQL=$sql. [&amp;quot;.$dbh-&amp;gt;errstr.']';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;CREATE INDEX ${snapshotname}_pbt\$_ix
&lt;br&gt;ON $schemaname.$snapshotname (pbt\$)
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh-&amp;gt;do($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog WARNING, &amp;quot;Could not create index on 'pbt\$' column on $schemaname.$snapshotname. SQL=$sql. [&amp;quot;.$dbh-&amp;gt;errstr.']';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh-&amp;gt;commit;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;CREATE OR REPLACE FUNCTION $schemaname.${snapshotname}_pbt\$_trgfn()
&lt;br&gt;RETURNS trigger AS
&lt;br&gt;\$BODYFN\$
&lt;br&gt;BEGIN
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IF (TG_OP = 'UPDATE') THEN
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IF ((OLD.pbt\$ &amp;lt;&amp;gt; 0) OR (NEW.pbt\$ &amp;lt;&amp;gt; 0)) THEN
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RAISE EXCEPTION 'Invalid operation on snapshot-based data!';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; END IF;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ELSIF (TG_OP = 'DELETE') THEN
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IF (OLD.pbt\$ &amp;lt;&amp;gt; 0) THEN
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RAISE EXCEPTION 'Invalid operation on snapshot-based data!';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; END &amp;nbsp;IF;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ELSIF (TG_OP = 'INSERT') THEN
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IF ((NEW.pbt\$ IS NOT NULL) AND (NEW.pbt\$ &amp;lt;&amp;gt; 0)) THEN
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RAISE EXCEPTION 'You cannot insert snapshot-based data manually!';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; END IF;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; END IF;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RETURN NULL;
&lt;br&gt;END;
&lt;br&gt;\$BODYFN\$
&lt;br&gt;LANGUAGE 'plpgsql' VOLATILE;
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, $sql if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh-&amp;gt;do($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not create the prebuilt table trigger function for table '$schemaname.$snapshotname'. ERR='&amp;quot;.$dbh-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Create TRIGGER on the prebuilt table
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Creating trigger ${snapshotname}_pbt\$_trg on $schemaname.${snapshotname}&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;CREATE TRIGGER ${snapshotname}_pbt\$_trg AFTER INSERT OR UPDATE OR DELETE
&lt;br&gt;ON $schemaname.${snapshotname} FOR EACH ROW
&lt;br&gt;EXECUTE PROCEDURE $schemaname.${snapshotname}_pbt\$_trgfn ()
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh-&amp;gt;do($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog WARNING, &amp;quot;Could not create the prebuilt table trigger on table '$schemaname.$snapshotname'. ERR='&amp;quot;.$dbh-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;$BODY$
&lt;br&gt;&amp;nbsp; LANGUAGE 'plperlu' VOLATILE;
&lt;br&gt;ALTER FUNCTION public.create_snapshot(schemaname text, snapshotname text, query text, dblink text, kind text, pbt_table text) OWNER TO postgres;
&lt;br&gt;COMMENT ON FUNCTION public.create_snapshot(schemaname text, snapshotname text, query text, dblink text, kind text, pbt_table text) IS $$
&lt;br&gt;This function is part of PostgreSQL::Snapshots project.
&lt;br&gt;This is the function that creates a snapshot. It only creates the snapshot placeholder with the same structure as the query result. The snapshot needs to be refresh to become filled.
&lt;br&gt;$$;
&lt;br&gt;--
&lt;br&gt;-- ATTENTION: This is a free software. 
&lt;br&gt;-- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;View the LICENSE.txt file for license information
&lt;br&gt;--
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;-- FUNCTION: public.drop_snapshot
&lt;br&gt;--
&lt;br&gt;-- Removes a SNAPSHOT previously created with create_snapshot
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;CREATE OR REPLACE FUNCTION public.drop_snapshot(schemaname text, snapshotname text)
&lt;br&gt;&amp;nbsp; RETURNS bool AS
&lt;br&gt;$BODY$
&lt;br&gt;use strict;
&lt;br&gt;use DBI;
&lt;br&gt;use constant TRUE =&amp;gt; 1;
&lt;br&gt;use constant FALSE =&amp;gt; &amp;quot;&amp;quot;;
&lt;br&gt;#-- Function parameters
&lt;br&gt;my ($schemaname, $snapshotname) = @_;
&lt;br&gt;$schemaname = lc($schemaname);
&lt;br&gt;$snapshotname = lc($snapshotname);
&lt;br&gt;#-- Set this to 1 for debugging messages
&lt;br&gt;$main::DEBUG=0;
&lt;br&gt;#-- Localhost superuser connection
&lt;br&gt;my $dbh_local = DBI-&amp;gt;connect('dbi:Pg:dbname=labpeTeste', 'postgres', undef, {AutoCommit =&amp;gt; 0});
&lt;br&gt;my $dbh_remote;
&lt;br&gt;my $sql;
&lt;br&gt;my $sth;
&lt;br&gt;my $row;
&lt;br&gt;my $masterschema;
&lt;br&gt;my $mastername;
&lt;br&gt;my $snapshot;
&lt;br&gt;my $dblink;
&lt;br&gt;my $attr_href;
&lt;br&gt;my $affected;
&lt;br&gt;my $total;
&lt;br&gt;&lt;br&gt;if (! snapshotExists($dbh_local, $schemaname, $snapshotname)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Snapshot '$schemaname.$snapshotname' does not exist&amp;quot;;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;my $snapshot = getSnapshot($dbh_local, $schemaname, $snapshotname);
&lt;br&gt;if (&amp;quot;$snapshot-&amp;gt;{'dblinkid'}&amp;quot; eq '') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- refresh local
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_remote = $dbh_local;
&lt;br&gt;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dblink = getDblinkById($dbh_local, $snapshot-&amp;gt;{'dblinkid'});
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dblink) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #--create the remote database connection
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $attr_href = eval($dblink-&amp;gt;{'attributes'});
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_remote = dbiGetConnection(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dblink-&amp;gt;{'datasource'}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , $dblink-&amp;gt;{'username'}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , $dblink-&amp;gt;{'password'}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , $attr_href
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_remote = $dbh_local;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;($masterschema, $mastername) = retrieveMasterForSnapshot($dbh_remote, $snapshot);
&lt;br&gt;if (snapshotLogExists($dbh_remote, $masterschema, $mastername)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; call_driver_function($dbh_remote, 'snapshot_do', 'UNREGISTER', $masterschema, $mastername, $snapshot-&amp;gt;{'snapid'});
&lt;br&gt;}
&lt;br&gt;if (&amp;quot;$snapshot-&amp;gt;{'dblinkid'}&amp;quot; ne '') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_remote-&amp;gt;commit;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_remote-&amp;gt;disconnect;
&lt;br&gt;}
&lt;br&gt;#-- Then delete the SNAPSHOT entry in public.pg_snapshots
&lt;br&gt;$sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;DELETE FROM public.pg_snapshots 
&lt;br&gt;WHERE schemaname=?
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AND snapshotname=?
&lt;br&gt;SQL
&lt;br&gt;$sth = $dbh_local-&amp;gt;prepare($sql);
&lt;br&gt;$sth-&amp;gt;execute(($schemaname, $snapshotname));
&lt;br&gt;if (! $sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Snapshot entry removed&amp;quot; if $main::DEBUG==1;
&lt;br&gt;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not remove Snapshot entry '$schemaname.$snapshotname'. $sth-&amp;gt;{errstr}&amp;quot;;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;if (&amp;quot;$snapshot-&amp;gt;{'pbt_table'}&amp;quot; ne '') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $pbt_table = $snapshot-&amp;gt;{'pbt_table'};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $row;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; setTriggerStatus($dbh_local, $snapshot-&amp;gt;{'schemaname'}, $snapshot-&amp;gt;{'pbt_table'}, &amp;quot;$snapshot-&amp;gt;{'pbt_table'}_pbt\$_trg&amp;quot;, FALSE);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Remove all rows based on this snapshot
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;DELETE FROM $schemaname.${pbt_table}
&lt;br&gt;WHERE pbt\$ = ?
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh_local-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $affected = $sth-&amp;gt;execute(($snapshot-&amp;gt;{'snapid'}));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not delete snapshot based rows from prebuilt table. SQL=$sql.&amp;quot;.$sth-&amp;gt;errstr;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_local-&amp;gt;commit;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Prebuilt table snapshot rows deleted: $affected&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Find out whether we are the last snapshot using this prebuilt table
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;SELECT count(*) as total
&lt;br&gt;FROM public.pg_snapshots
&lt;br&gt;WHERE schemaname=?
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AND pbt_table=?
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($total) = sqlLookup($dbh_local, $sql, ($schemaname, $pbt_table));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($total eq 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;We are the last snapshot on this prebuilt table!&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Drop pbt$ column index
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;DROP INDEX ${pbt_table}_pbt\$_ix
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_local-&amp;gt;do($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh_local-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog WARNING, &amp;quot;Could not drop the prebuilt table pbt\$ column index on table '$schemaname.$pbt_table'. ERR='&amp;quot;.$dbh_local-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Prebuilt table pbt\$ column index dropped.&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Drop pbt$ column on Prebuilt table
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;ALTER TABLE $schemaname.${pbt_table}
&lt;br&gt;DROP COLUMN pbt\$
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_local-&amp;gt;do($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh_local-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not drop the prebuilt table pbt\$ column on table '$schemaname.$pbt_table'. ERR='&amp;quot;.$dbh_local-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Prebuilt table pbt\$ column dropped.&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Drop triggers on Prebuilt table
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;DROP TRIGGER ${pbt_table}_pbt\$_trg ON $schemaname.${pbt_table}
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_local-&amp;gt;do($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh_local-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not drop the prebuilt table trigger on table '$schemaname.$pbt_table'. ERR='&amp;quot;.$dbh_local-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Prebuilt table trigger dropped.&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Drop trigger's function
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;DROP FUNCTION $schemaname.${pbt_table}_pbt\$_trgfn();
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_local-&amp;gt;do($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh_local-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not drop the prebuilt table trigger function '$schemaname.${pbt_table}_trgfn()'. ERR='&amp;quot;.$dbh_local-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Prebuilt table trigger function dropped.&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; setTriggerStatus($dbh_local, $snapshot-&amp;gt;{'schemaname'}, $snapshot-&amp;gt;{'pbt_table'}, &amp;quot;$snapshot-&amp;gt;{'pbt_table'}_pbt\$_trg&amp;quot;, TRUE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Actually drop the SNAPSHOT placeholder
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;DROP TABLE $schemaname.$snapshotname
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = spi_exec_query($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;{status} eq 'SPI_OK_UTILITY') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Snapshot dropped&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not drop Snapshot '$schemaname.$snapshotname'. $sth-&amp;gt;{status}&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;$dbh_local-&amp;gt;commit;
&lt;br&gt;$dbh_local-&amp;gt;disconnect;
&lt;br&gt;#-- All done. Let's return TRUE
&lt;br&gt;return TRUE;
&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: sqlLookup
&lt;br&gt;#-- Returns a one row result from a SQL query
&lt;br&gt;#--
&lt;br&gt;sub sqlLookup {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $sql, @params) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return sqlLookup2 ($dbh, $sql, \@params, TRUE);
&lt;br&gt;}
&lt;br&gt;sub sqlLookupSoft {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $sql, @params) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return sqlLookup2 ($dbh, $sql, \@params, FALSE);
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;sub sqlLookup2 {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $sql, $params, $errorsAreFatal) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @row;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Lookup at SQL:$sql with &amp;quot;.((@$params ne 0) ? join(',', @$params) : '&amp;lt;none&amp;gt;') if $main::DEBUG==1;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (@$params ne 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(@$params);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($errorsAreFatal) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Fatal error! SQL=$sql ERROR=&amp;quot;.$sth-&amp;gt;errstr;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @row = $sth-&amp;gt;fetchrow_array;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;finish;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return @row;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: snapshotExists
&lt;br&gt;#-- Returns whether a snapshot exists or not
&lt;br&gt;#--
&lt;br&gt;sub snapshotExists {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $schemaname, $snapshotname) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $row;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;SELECT count(*) as total
&lt;br&gt;FROM public.pg_snapshots
&lt;br&gt;WHERE schemaname=?
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; and snapshotname=?
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(($schemaname, $snapshotname));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not find public.pg_snapshots !!!&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $row = $sth-&amp;gt;fetchrow_hashref;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return ($row-&amp;gt;{'total'} ne 0);
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: getSnapshot
&lt;br&gt;#-- Returns the named SNAPSHOT
&lt;br&gt;#--
&lt;br&gt;sub getSnapshot {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $schemaname, $snapshotname) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Get snapshot info
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = 'SELECT * FROM public.pg_snapshots WHERE schemaname=? AND snapshotname=?';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(($schemaname, $snapshotname));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $sth-&amp;gt;fetchrow_hashref;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: getDblinkById
&lt;br&gt;#-- Returns a DBLINK by its ID
&lt;br&gt;#--
&lt;br&gt;sub getDblinkById {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $dblinkid) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #--get dblink info
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = 'SELECT * FROM public.pg_dblinks WHERE dblinkid=?';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(($dblinkid));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;DBLINK '$dblinkid' does not exist!&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $sth-&amp;gt;fetchrow_hashref;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: dbiGetConnection
&lt;br&gt;#-- Connects to a DBI datasource and returns a connection handle
&lt;br&gt;#--
&lt;br&gt;sub dbiGetConnection {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($datasource, $username, $password, $attributes) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $dbh;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh = DBI-&amp;gt;connect(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $datasource
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , $username
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , $password
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , $attributes
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($DBI::errstr) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;lt;&amp;lt;ERR;
&lt;br&gt;Could not connect to database
&lt;br&gt;data source: $datasource
&lt;br&gt;user: $username
&lt;br&gt;password: $password
&lt;br&gt;dbh attributes:
&lt;br&gt;$attributes
&lt;br&gt;&lt;br&gt;$DBI::errstr
&lt;br&gt;ERR
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $dbh;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: retrieveMasterForSnapshot
&lt;br&gt;#-- Retrieve the MASTER tables for a SNAPSHOT
&lt;br&gt;#--
&lt;br&gt;sub retrieveMasterForSnapshot {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $snapshot) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $masterschema;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $mastername;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $relatedCount;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $tablename;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @related=();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @tables=();
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $tablename = $snapshot-&amp;gt;{'query'};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @related = $tablename =~ m/(from|join) +((([0-9a-z_\$]+|&amp;quot;.+&amp;quot;)\.)?([0-9a-z_\$]+|&amp;quot;.+&amp;quot;)( *, *(([0-9a-z_\$]+|&amp;quot;.+&amp;quot;)\.)?([0-9a-z_\$]+|&amp;quot;.+&amp;quot;))*)/gi;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (my $i = 1; $i &amp;lt; @related; $i += 9) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; push(@tables, @related[$i]);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (@tables eq 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, 'Origin TABLES not found !';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (@tables eq 1) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $tablename = @tables[0];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;TABLE=[$tablename]&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ($masterschema, $mastername) = split(/\./, $tablename);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;MASTERSCHEMA=[$masterschema] MASTERNAME=[$mastername]&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($mastername eq undef) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- No Schema
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, 'Sorry, due to the complexity of your query, I could not guess the Schema name of your tables, so I will try a COMPLETE REFRESH instead.';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $mastername = $masterschema;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $snapshot-&amp;gt;{'kind'} = 'C';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $masterschema = undef;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return ($masterschema, $mastername);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (($snapshot-&amp;gt;{'kind'} eq 'F') || ($snapshot-&amp;gt;{'kind'} eq 'R')) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Refresh FAST only work with one-table only queries. Falling back to COMPLETE REFRESH. TABLES=[&amp;quot; . join(',', @tables) . ']';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $snapshot-&amp;gt;{'kind'} = 'C';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return (undef, undef);
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: snapshotLogExists
&lt;br&gt;#-- Returns whether a master object has a SNAPSHOT LOG
&lt;br&gt;#--
&lt;br&gt;sub snapshotLogExists {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $masterschema, $mastername) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $result = call_driver_function($dbh, 'snapshotlog_exists', undef, $masterschema, $mastername, undef);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return ($result eq 'T');
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: call_driver_function
&lt;br&gt;#-- Calls a driver function (native) on the database pointed by the database handle ($dbh)
&lt;br&gt;#--
&lt;br&gt;sub call_driver_function {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $function_name, $operation, $masterschema, $mastername, $additional) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $masterschema = uc($masterschema);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $mastername = uc($mastername);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Calling DRIVER function $function_name ($operation, $masterschema, $mastername, $additional)&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($function_name eq 'snapshot_do') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dbi_execute_stored_procedure($dbh, 'snapshot_do', ('123456', $operation, $masterschema, $mastername, $additional));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'snapshotlog_exists') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'snapshotlog_exists', ($masterschema, $mastername));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'last_log_refresh') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'last_log_refresh' , ($masterschema, $mastername, $additional));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'snapshotlog_columns') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'snapshotlog_columns', ($masterschema, $mastername));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'snapshotlog_name') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'snapshotlog_name', ($masterschema, $mastername));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'count_log_modified_rows') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'count_log_modified_rows', ($masterschema, $mastername, $additional));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'snapshotlog_ud_filter') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'snapshotlog_ud_filter', ($additional));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'snapshotlog_iu_filter') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'snapshotlog_iu_filter', ($additional));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not call DRIVER function: $function_name&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh-&amp;gt;commit;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;sub dbi_execute_stored_procedure {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; use DBI::Const::GetInfoType;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $procname, @parameters) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $dbname = lc($dbh-&amp;gt;get_info( $GetInfoType{SQL_DBMS_NAME} ));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $qmarks = '?,' x @parameters;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; chop $qmarks;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbname eq 'oracle') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;BEGIN $procname($qmarks); END;&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($dbname eq 'postgresql') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;SELECT $procname($qmarks)&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;SELECT $procname($qmarks)&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $dbh-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(@parameters);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $sth-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;sub dbi_call_function {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; use DBI::Const::GetInfoType;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $funcname, @parameters) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $dbname = lc($dbh-&amp;gt;get_info( $GetInfoType{SQL_DBMS_NAME} ));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @row;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $qmarks = '?,' x @parameters;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; chop $qmarks;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbname eq 'oracle') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;SELECT $funcname($qmarks) FROM DUAL&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($dbname eq 'postgresql') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;SELECT $funcname($qmarks)&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;SELECT $funcname($qmarks)&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $dbh-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(@parameters);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $sth-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @row = $sth-&amp;gt;fetchrow_array;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $result = @row[0];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $result;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: setTriggerStatus
&lt;br&gt;#-- Enable/Disable a trigger
&lt;br&gt;#--
&lt;br&gt;sub setTriggerStatus {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $schemaname, $tablename, $triggername, $status) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $tgenabled = ($status == TRUE) ? 'TRUE' : 'FALSE';
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;SELECT c.oid
&lt;br&gt;FROM pg_class c
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
&lt;br&gt;WHERE n.nspname=? 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AND c.relname=?
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($tableid) = sqlLookup($dbh, $sql, ($schemaname, $tablename));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (&amp;quot;$tableid&amp;quot; eq &amp;quot;&amp;quot;) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not retrieve TABLEID for table $schemaname.$tablename&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Disabling trigger for table ID=$tableid NAME=$triggername&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;UPDATE pg_trigger 
&lt;br&gt;SET tgenabled = $tgenabled 
&lt;br&gt;WHERE tgrelid=? 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AND tgname=?
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, $sql if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(($tableid, $triggername));
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Dummy update to refresh new trigger status
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $sth-&amp;gt;errstr;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;UPDATE pg_class
&lt;br&gt;SET relname=relname
&lt;br&gt;WHERE oid=?
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(($tableid));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $sth-&amp;gt;errstr;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;$BODY$
&lt;br&gt;&amp;nbsp; LANGUAGE 'plperlu' VOLATILE;
&lt;br&gt;ALTER FUNCTION public.drop_snapshot(schemaname text, snapshotname text) OWNER TO postgres;
&lt;br&gt;COMMENT ON FUNCTION public.drop_snapshot(schemaname text, snapshotname text) IS $$
&lt;br&gt;This function is part of PostgreSQL::Snapshots project.
&lt;br&gt;This is the function that removes a snapshot.
&lt;br&gt;$$;
&lt;br&gt;--
&lt;br&gt;-- ATTENTION: This is a free software. 
&lt;br&gt;-- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;View the LICENSE.txt file for license information
&lt;br&gt;--
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;-- FUNCTION: public.refresh_snapshot
&lt;br&gt;--
&lt;br&gt;-- Refreshes(Fills) a previously created SNAPSHOT
&lt;br&gt;-- It can refresh using the FORCE, FAST or COMPLETE method
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;CREATE OR REPLACE FUNCTION public.refresh_snapshot(schemaname text, snapshotname text)
&lt;br&gt;&amp;nbsp; RETURNS bool AS
&lt;br&gt;$BODY$
&lt;br&gt;use strict;
&lt;br&gt;use DBI;
&lt;br&gt;use constant TRUE =&amp;gt; 1;
&lt;br&gt;use constant FALSE =&amp;gt; &amp;quot;&amp;quot;;
&lt;br&gt;#-- Function parameters
&lt;br&gt;my ($schemaname, $snapshotname) = @_;
&lt;br&gt;$schemaname = lc($schemaname);
&lt;br&gt;$snapshotname = lc($snapshotname);
&lt;br&gt;#-- Set this to 1 for debugging messages
&lt;br&gt;$main::DEBUG=0;
&lt;br&gt;#-- Localhost superuser connection
&lt;br&gt;my $dbh_local = DBI-&amp;gt;connect('dbi:Pg:dbname=labpeTeste', 'postgres', undef, {AutoCommit =&amp;gt; 0});
&lt;br&gt;#-- Remote database connection
&lt;br&gt;my $dbh;
&lt;br&gt;#-- Start time of this function
&lt;br&gt;my $start_time = time();
&lt;br&gt;my $sql = '';
&lt;br&gt;my $rs;
&lt;br&gt;my $row;
&lt;br&gt;#-- Number of records refreshed
&lt;br&gt;my $recs;
&lt;br&gt;&lt;br&gt;if (! snapshotExists($dbh_local, $schemaname, $snapshotname)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Snapshot '$schemaname.$snapshotname' does not exist&amp;quot;;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;my $snapshot = getSnapshot($dbh_local, $schemaname, $snapshotname);
&lt;br&gt;my $snapname = (&amp;quot;$snapshot-&amp;gt;{'pbt_table'}&amp;quot; eq '') ? $snapshotname : $snapshot-&amp;gt;{'pbt_table'};
&lt;br&gt;&lt;br&gt;#-- Test for object's privileges
&lt;br&gt;my ($hasInsert, $hasDelete) = testObjectPrivileges($schemaname,$snapname,('insert', 'delete'));
&lt;br&gt;if (! $hasInsert) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;You don't have INSERT privilege on '$schemaname.$snapshotname' SNAPSHOT&amp;quot;;
&lt;br&gt;}
&lt;br&gt;if (! $hasDelete) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;You don't have DELETE privilege on '$schemaname.$snapshotname' SNAPSHOT&amp;quot;;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;if (&amp;quot;$snapshot-&amp;gt;{'dblinkid'}&amp;quot; eq '') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- refresh local
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $recs = refreshSnapshot($dbh_local, $snapshot, undef);
&lt;br&gt;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- refresh remote
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $recs = refreshSnapshot($dbh_local, $snapshot, getDblinkById($dbh_local, $snapshot-&amp;gt;{'dblinkid'}));
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#-- Compute the elapsed time
&lt;br&gt;my $stop_time = time();
&lt;br&gt;my $secs = $stop_time - $start_time;
&lt;br&gt;elog NOTICE, &amp;quot;Refreshed $recs records in $secs seconds.&amp;quot;;
&lt;br&gt;$sql = &amp;quot;UPDATE public.pg_snapshots SET elapsedtime=? WHERE schemaname=? and snapshotname=?&amp;quot;;
&lt;br&gt;$rs=$dbh_local-&amp;gt;prepare($sql);
&lt;br&gt;$rs-&amp;gt;execute(($secs, $schemaname, $snapshotname));
&lt;br&gt;if ($rs-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Could not update snapshot '$snapshot-&amp;gt;{schemaname}.$snapshot-&amp;gt;{snapshotname}' information. Error:&amp;quot; . $rs-&amp;gt;errstr;
&lt;br&gt;}
&lt;br&gt;$dbh_local-&amp;gt;commit;
&lt;br&gt;$dbh_local-&amp;gt;disconnect;
&lt;br&gt;&lt;br&gt;#-- Renew internal statistics about the refreshed object
&lt;br&gt;$dbh_local = DBI-&amp;gt;connect('dbi:Pg:dbname=labpeTeste', 'postgres', undef, {AutoCommit =&amp;gt; 1});
&lt;br&gt;&lt;br&gt;if (! vacuum($dbh_local, $snapshot-&amp;gt;{schemaname}, $snapname)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Could not vacuum snapshot '$schemaname.$snapname':&amp;quot; . $dbh_local-&amp;gt;errstr;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;$dbh_local-&amp;gt;commit;
&lt;br&gt;$dbh_local-&amp;gt;disconnect;
&lt;br&gt;&lt;br&gt;#-- All done. Let's return TRUE
&lt;br&gt;return TRUE;
&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: sqlLookup
&lt;br&gt;#-- Returns a one row result from a SQL query
&lt;br&gt;#--
&lt;br&gt;sub sqlLookup {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $sql, @params) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return sqlLookup2 ($dbh, $sql, \@params, TRUE);
&lt;br&gt;}
&lt;br&gt;sub sqlLookupSoft {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $sql, @params) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return sqlLookup2 ($dbh, $sql, \@params, FALSE);
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;sub sqlLookup2 {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $sql, $params, $errorsAreFatal) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @row;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Lookup at SQL:$sql with &amp;quot;.((@$params ne 0) ? join(',', @$params) : '&amp;lt;none&amp;gt;') if $main::DEBUG==1;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (@$params ne 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(@$params);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($errorsAreFatal) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Fatal error! SQL=$sql ERROR=&amp;quot;.$sth-&amp;gt;errstr;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @row = $sth-&amp;gt;fetchrow_array;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;finish;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return @row;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: snapshotExists
&lt;br&gt;#-- Returns whether a snapshot exists or not
&lt;br&gt;#--
&lt;br&gt;sub snapshotExists {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $schemaname, $snapshotname) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $row;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;SELECT count(*) as total
&lt;br&gt;FROM public.pg_snapshots
&lt;br&gt;WHERE schemaname=?
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; and snapshotname=?
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(($schemaname, $snapshotname));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not find public.pg_snapshots !!!&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $row = $sth-&amp;gt;fetchrow_hashref;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return ($row-&amp;gt;{'total'} ne 0);
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: testObjectPrivileges
&lt;br&gt;#-- Tests the passed privileges of the current user against the target databse object and returns a result array
&lt;br&gt;#--
&lt;br&gt;sub testObjectPrivileges {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($schemaname,$snapshotname,@privileges) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @result=();
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Create the query
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = 'SELECT ';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (my $i=0; $i &amp;lt; @privileges; ++$i) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $privilege = @privileges[$i];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;$sql has_table_privilege('$schemaname.$snapshotname', '$privilege') as has_$privilege,&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; chop $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, $sql if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = spi_exec_query($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (my $i=0; $i &amp;lt; @privileges; ++$i) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $privilege = @privileges[$i];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @result[$i] = $sth-&amp;gt;{rows}[0]-&amp;gt;{&amp;quot;has_${privilege}&amp;quot;} eq 't';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, 'PRIVILEGES:('.join(',', @privileges).')=('.join(',', @result).')' if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return @result;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: getSnapshot
&lt;br&gt;#-- Returns the named SNAPSHOT
&lt;br&gt;#--
&lt;br&gt;sub getSnapshot {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $schemaname, $snapshotname) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Get snapshot info
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = 'SELECT * FROM public.pg_snapshots WHERE schemaname=? AND snapshotname=?';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(($schemaname, $snapshotname));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $sth-&amp;gt;fetchrow_hashref;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: refreshSnapshot
&lt;br&gt;#-- Refresh a SNAPSHOT with a database query result
&lt;br&gt;#--
&lt;br&gt;&lt;br&gt;#-- Perl trim function to remove whitespace from the start and end of the string
&lt;br&gt;sub trim($)
&lt;br&gt;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $string = shift;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $string =~ s/^\s+//;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $string =~ s/\s+$//;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $string;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#-- Returns the current date/time
&lt;br&gt;sub getNow {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $now = trim(`date &amp;quot;+%Y-%m-%d %H:%M:%S&amp;quot;`);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $now;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;sub refreshSnapshot {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh_local, $snapshot, $dblink) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $recs = 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $attr_href;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $dbh_remote;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $masterschema;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $mastername;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $kind;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $lastRefresh;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $refreshTime;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dblink) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #--create the remote database connection
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $attr_href = eval($dblink-&amp;gt;{'attributes'});
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_remote = dbiGetConnection(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dblink-&amp;gt;{'datasource'}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , $dblink-&amp;gt;{'username'}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , $dblink-&amp;gt;{'password'}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , $attr_href
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_remote = $dbh_local;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_remote-&amp;gt;{LongReadLen} = 64 * 1024; #--LOB &amp;lt;= 64Kb
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($snapshot-&amp;gt;{'kind'} eq 'C') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $masterschema = undef;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $mastername = undef;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $kind = 'C';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $lastRefresh = undef;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ($masterschema, $mastername, $kind, $lastRefresh) = prepareForRefresh($dbh_remote, $snapshot);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $refreshTime = getNow();
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($kind eq 'C') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Refresh Complete
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $recs = performCompleteRefresh($dbh_local, $dbh_remote, $snapshot);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Refresh FAST
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $recs = performFastRefresh($dbh_local, $dbh_remote, $snapshot, $masterschema, $mastername, $lastRefresh);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; finalizeRefresh($dbh_remote, $masterschema, $mastername, $snapshot-&amp;gt;{'snapid'}, $refreshTime);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (snapshotLogExists($dbh_remote, $masterschema, $mastername)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, 'Purging Log' if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; purgeSnapshotLog($dbh_remote, $masterschema, $mastername);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($recs eq '0E0') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $recs = 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dblink) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_remote-&amp;gt;disconnect;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $recs;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: getDblinkById
&lt;br&gt;#-- Returns a DBLINK by its ID
&lt;br&gt;#--
&lt;br&gt;sub getDblinkById {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $dblinkid) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #--get dblink info
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = 'SELECT * FROM public.pg_dblinks WHERE dblinkid=?';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(($dblinkid));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;DBLINK '$dblinkid' does not exist!&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $sth-&amp;gt;fetchrow_hashref;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: vacuum
&lt;br&gt;#-- Performs a VACUUM ANALYZE on a target object
&lt;br&gt;#--
&lt;br&gt;sub vacuum {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $schemaname, $snapshotname) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;VACUUM ANALYZE $schemaname.$snapshotname&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh-&amp;gt;do($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return (! $dbh-&amp;gt;err);
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#--Dependencies
&lt;br&gt;#--
&lt;br&gt;#-- SUB: dbiGetConnection
&lt;br&gt;#-- Connects to a DBI datasource and returns a connection handle
&lt;br&gt;#--
&lt;br&gt;sub dbiGetConnection {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($datasource, $username, $password, $attributes) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $dbh;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh = DBI-&amp;gt;connect(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $datasource
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , $username
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , $password
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , $attributes
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($DBI::errstr) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;lt;&amp;lt;ERR;
&lt;br&gt;Could not connect to database
&lt;br&gt;data source: $datasource
&lt;br&gt;user: $username
&lt;br&gt;password: $password
&lt;br&gt;dbh attributes:
&lt;br&gt;$attributes
&lt;br&gt;&lt;br&gt;$DBI::errstr
&lt;br&gt;ERR
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $dbh;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: prepareForRefresh
&lt;br&gt;#-- Prepares the local SNAPSHOT for the refresh process, removing old rows, old logs, etc.
&lt;br&gt;#--
&lt;br&gt;sub prepareForRefresh {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $snapshot) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $kind = 'C';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $lastRefresh = undef;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $snapid = $snapshot-&amp;gt;{'snapid'};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($masterschema, $mastername) = retrieveMasterForSnapshot($dbh, $snapshot);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($masterschema ne undef) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (snapshotLogExists($dbh, $masterschema, $mastername)) { #-- has snapshot log
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; call_driver_function($dbh, 'snapshot_do', 'REGISTER', $masterschema, $mastername, $snapid);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $lastRefresh = getLastSnapshotLogRefresh($dbh, $masterschema, $mastername, $snapid);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Last refresh on $lastRefresh&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $kind = getRefreshMethod($dbh, $snapshot, $masterschema, $mastername, $lastRefresh);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Refresh method=$kind&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return ($masterschema, $mastername, $kind, $lastRefresh);
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: performCompleteRefresh
&lt;br&gt;#-- Performs a COMPLETE REFRESH on a snapshot
&lt;br&gt;#--
&lt;br&gt;sub performCompleteRefresh {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh_local, $dbh_remote, $snapshot) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth_local;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $recs;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $errors;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $snapshotname;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $targetColumnList;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #--Fetches the remote database query
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = $snapshot-&amp;gt;{'query'};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;sql is \n$sql&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh_remote-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh_remote-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not fetch remote query: $sql [&amp;quot;.$dbh_remote-&amp;gt;errstr.&amp;quot;]&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Parameterized query placeholders (question marks)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $qms = '?,' x $sth-&amp;gt;{NUM_OF_FIELDS}; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; chop($qms);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $snapshotname = ($snapshot-&amp;gt;{'pbt_table'} eq '') ? $snapshot-&amp;gt;{'snapshotname'} : $snapshot-&amp;gt;{'pbt_table'};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $targetColumnList = join(',', getColumnList($sth));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($snapshot-&amp;gt;{'pbt_table'} eq '') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #--Truncates (empty) the local SNAPSHOT
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;TRUNCATE $snapshot-&amp;gt;{'schemaname'}.$snapshotname
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_local-&amp;gt;do($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (! $dbh_local-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Snapshot truncated&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not truncate snapshot: $sql [&amp;quot;.$dbh_local-&amp;gt;errstr.&amp;quot;]&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; setTriggerStatus($dbh_local, $snapshot-&amp;gt;{'schemaname'}, $snapshotname, &amp;quot;${snapshotname}_pbt\$_trg&amp;quot;, FALSE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $targetColumnList = &amp;quot;pbt\$,$targetColumnList&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $qms = &amp;quot;$snapshot-&amp;gt;{'snapid'},$qms&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Deletes all rows where pbt$ eq $snapid
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;DELETE FROM $snapshot-&amp;gt;{'schemaname'}.$snapshotname
&lt;br&gt;WHERE pbt\$ = ?
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth_aux = $dbh_local-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth_aux-&amp;gt;execute(($snapshot-&amp;gt;{'snapid'}));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (! $sth_aux-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Snapshot cleaned.&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not clean snapshot: $sql [&amp;quot;.$sth_aux-&amp;gt;errstr.&amp;quot;]&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_local-&amp;gt;commit;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Fill the SNAPSHOT with the remote database query results
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Prepare the INSERT query that will be executed for each returned query
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;INSERT INTO $snapshot-&amp;gt;{'schemaname'}.$snapshotname($targetColumnList)
&lt;br&gt;VALUES ($qms)
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, $sql if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth_local = $dbh_local-&amp;gt;prepare($sql);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Set the type of target row parameters to the same type of source row columns
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @types = getSthColumnTypes($sth);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (my $count=0; $count &amp;lt; $sth-&amp;gt;{NUM_OF_FIELDS}; $count++) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth_local-&amp;gt;bind_param($count + 1, undef, @types[$count]);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Loop through all fetched records and insert them one at a time into the SNAPSHOT
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $recs = $errors = 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while(my @row = $sth-&amp;gt;fetchrow_array) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth_local-&amp;gt;execute(@row);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth_local-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($errors eq 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $sth_local-&amp;gt;errstr;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ++$errors;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ++$recs;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (($recs % 1000) == 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_local-&amp;gt;commit;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Commit. Record #$recs&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $sth-&amp;gt;errstr;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_local-&amp;gt;commit;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth_local-&amp;gt;finish;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;finish;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;All $recs records processed. $errors errors.&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($snapshot-&amp;gt;{'pbt_table'} ne '') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; setTriggerStatus($dbh_local, $snapshot-&amp;gt;{'schemaname'}, $snapshotname, &amp;quot;${snapshotname}_pbt\$_trg&amp;quot;, TRUE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Returns the number of records inserted
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $recs-$errors;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: performFastRefresh
&lt;br&gt;#-- Performs a FAST REFRESH on a snapshot
&lt;br&gt;#--
&lt;br&gt;sub performFastRefresh {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh_local, $dbh_remote, $snapshot, $masterschema, $mastername, $lastRefresh) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth_local;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth_remote;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $masterKeys = getSnapshotLogColumns($dbh_remote, $masterschema, $mastername);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $qms;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $recs;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $errors;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $where;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @types;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($logKeys, $arrLogKeys) = getLogKeys ($masterKeys);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @keys = ($masterKeys, $logKeys, @$arrLogKeys);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $snapshotLogName = getSnapshotLogName($dbh_remote, $masterschema, $mastername);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $snapshotname;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $targetColumnList;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Remove old records from the snapshot
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $deleted = deleteOldSnapshotRecords($dbh_local, $dbh_remote, $snapshot, $masterschema, $mastername, $lastRefresh, @keys);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @arrMasterKeys = getSourceKeysFromQuery($snapshot-&amp;gt;{'query'}, split(',', $masterKeys));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $filter = '';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (my $i = 0; $i &amp;lt; @arrMasterKeys; ++$i) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $filter .= ' AND source.'.@arrMasterKeys[$i].'=keys.'.@$arrLogKeys[$i];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $filter = substr($filter, 5);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $logFilter = getInsertedUpdatedLogRecordsFilter($dbh_remote, $lastRefresh);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $source = $snapshot-&amp;gt;{'query'};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;SELECT source.*
&lt;br&gt;FROM ($source) source,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (SELECT $logKeys
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FROM $masterschema.$snapshotLogName
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; WHERE $logFilter) keys
&lt;br&gt;WHERE $filter
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Filter SQL is: $sql&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;LastRefresh is: $lastRefresh&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth_remote = $dbh_remote-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh_remote-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not apply filter rules to original query: $sql [&amp;quot;.$dbh_remote-&amp;gt;errstr.&amp;quot;]&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Fill it with the result query
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth_remote-&amp;gt;execute();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh_remote-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not retrieve records to insert: $sql [&amp;quot;.$dbh_remote-&amp;gt;errstr.&amp;quot;]&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $qms = '?,' x $sth_remote-&amp;gt;{NUM_OF_FIELDS};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; chop($qms);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($snapshot-&amp;gt;{'pbt_table'} ne '') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $qms = &amp;quot;$snapshot-&amp;gt;{'snapid'},$qms&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $snapshotname = ($snapshot-&amp;gt;{'pbt_table'} eq '') ? $snapshot-&amp;gt;{'snapshotname'} : $snapshot-&amp;gt;{'pbt_table'};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $targetColumnList = join(',', getColumnList($sth_remote));
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($snapshot-&amp;gt;{'pbt_table'} ne '') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $targetColumnList = &amp;quot;pbt\$,$targetColumnList&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;INSERT INTO $snapshot-&amp;gt;{'schemaname'}.$snapshotname($targetColumnList)
&lt;br&gt;VALUES ($qms)
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth_local = $dbh_local-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh_local-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not add new records into snapshot: $sql [&amp;quot;.$dbh_local-&amp;gt;errstr.&amp;quot;]&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @types = getSthColumnTypes($sth_remote);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (my $count=0; $count &amp;lt; $sth_remote-&amp;gt;{NUM_OF_FIELDS}; $count++) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth_local-&amp;gt;bind_param($count + 1, undef, @types[$count]);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, 'Fetching records.' if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Loop through all fetched records and insert them one at a time into the SNAPSHOT
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $recs = 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $errors = 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; setTriggerStatus($dbh_local, $snapshot-&amp;gt;{'schemaname'}, $snapshotname, &amp;quot;${snapshotname}_pbt\$_trg&amp;quot;, FALSE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while(my @row = $sth_remote-&amp;gt;fetchrow_array) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth_local-&amp;gt;execute(@row);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth_local-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ++$errors;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ++$recs;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (($recs % 1000) == 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_local-&amp;gt;commit;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Inserted. Record #$recs&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; setTriggerStatus($dbh_local, $snapshot-&amp;gt;{'schemaname'}, $snapshotname, &amp;quot;${snapshotname}_pbt\$_trg&amp;quot;, TRUE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (! $sth_remote-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $recs = $recs - $errors;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Inserted $recs modified records&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($errors &amp;gt; 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;$errors errors on insertion process&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could insert modified snapshot records: $sql [&amp;quot;.$sth_remote-&amp;gt;errstr.&amp;quot;]&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_local-&amp;gt;commit;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth_local-&amp;gt;finish;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $recs;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: finalizeRefresh
&lt;br&gt;#-- Finalize the refresh process updating control fields.
&lt;br&gt;#--
&lt;br&gt;sub finalizeRefresh {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $masterschema, $mastername, $snapid, $refreshTime) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($masterschema ne undef) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (snapshotLogExists($dbh, $masterschema, $mastername)) { #-- has snapshot log
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Setting refresh time to $refreshTime&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; updateLastSnapshotLogRefresh($dbh, $masterschema, $mastername, $refreshTime, $snapid);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; updateNullSnaptimeRows($dbh, $masterschema, $mastername, $refreshTime);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: purgeSnapshotLog
&lt;br&gt;#-- Removes old SNAPSHOT LOG entries
&lt;br&gt;#--
&lt;br&gt;sub purgeSnapshotLog {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $masterschema, $mastername) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; call_driver_function($dbh, 'snapshot_do', 'PURGELOG', $masterschema, $mastername, undef);
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: call_driver_function
&lt;br&gt;#-- Calls a driver function (native) on the database pointed by the database handle ($dbh)
&lt;br&gt;#--
&lt;br&gt;sub call_driver_function {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $function_name, $operation, $masterschema, $mastername, $additional) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $masterschema = uc($masterschema);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $mastername = uc($mastername);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Calling DRIVER function $function_name ($operation, $masterschema, $mastername, $additional)&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($function_name eq 'snapshot_do') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dbi_execute_stored_procedure($dbh, 'snapshot_do', ('123456', $operation, $masterschema, $mastername, $additional));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'snapshotlog_exists') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'snapshotlog_exists', ($masterschema, $mastername));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'last_log_refresh') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'last_log_refresh' , ($masterschema, $mastername, $additional));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'snapshotlog_columns') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'snapshotlog_columns', ($masterschema, $mastername));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'snapshotlog_name') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'snapshotlog_name', ($masterschema, $mastername));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'count_log_modified_rows') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'count_log_modified_rows', ($masterschema, $mastername, $additional));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'snapshotlog_ud_filter') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'snapshotlog_ud_filter', ($additional));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'snapshotlog_iu_filter') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'snapshotlog_iu_filter', ($additional));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not call DRIVER function: $function_name&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh-&amp;gt;commit;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;sub dbi_execute_stored_procedure {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; use DBI::Const::GetInfoType;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $procname, @parameters) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $dbname = lc($dbh-&amp;gt;get_info( $GetInfoType{SQL_DBMS_NAME} ));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $qmarks = '?,' x @parameters;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; chop $qmarks;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbname eq 'oracle') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;BEGIN $procname($qmarks); END;&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($dbname eq 'postgresql') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;SELECT $procname($qmarks)&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;SELECT $procname($qmarks)&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $dbh-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(@parameters);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $sth-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;sub dbi_call_function {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; use DBI::Const::GetInfoType;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $funcname, @parameters) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $dbname = lc($dbh-&amp;gt;get_info( $GetInfoType{SQL_DBMS_NAME} ));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @row;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $qmarks = '?,' x @parameters;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; chop $qmarks;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbname eq 'oracle') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;SELECT $funcname($qmarks) FROM DUAL&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($dbname eq 'postgresql') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;SELECT $funcname($qmarks)&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;SELECT $funcname($qmarks)&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $dbh-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(@parameters);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $sth-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @row = $sth-&amp;gt;fetchrow_array;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $result = @row[0];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $result;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: setTriggerStatus
&lt;br&gt;#-- Enable/Disable a trigger
&lt;br&gt;#--
&lt;br&gt;sub setTriggerStatus {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $schemaname, $tablename, $triggername, $status) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $tgenabled = ($status == TRUE) ? 'TRUE' : 'FALSE';
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;SELECT c.oid
&lt;br&gt;FROM pg_class c
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
&lt;br&gt;WHERE n.nspname=? 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AND c.relname=?
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($tableid) = sqlLookup($dbh, $sql, ($schemaname, $tablename));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (&amp;quot;$tableid&amp;quot; eq &amp;quot;&amp;quot;) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not retrieve TABLEID for table $schemaname.$tablename&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Disabling trigger for table ID=$tableid NAME=$triggername&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;UPDATE pg_trigger 
&lt;br&gt;SET tgenabled = $tgenabled 
&lt;br&gt;WHERE tgrelid=? 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AND tgname=?
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, $sql if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(($tableid, $triggername));
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Dummy update to refresh new trigger status
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $sth-&amp;gt;errstr;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;UPDATE pg_class
&lt;br&gt;SET relname=relname
&lt;br&gt;WHERE oid=?
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(($tableid));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $sth-&amp;gt;errstr;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: getColumnList
&lt;br&gt;#-- Returns an array with all columns on a statement
&lt;br&gt;#--
&lt;br&gt;sub getColumnList {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($sth) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @cols = ();
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for ( my $i = 0 ; $i &amp;lt; $sth-&amp;gt;{NUM_OF_FIELDS} ; $i++ ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; push @cols, $sth-&amp;gt;{NAME}-&amp;gt;[$i];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return @cols;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- getSourceKeysFromQuery
&lt;br&gt;#--
&lt;br&gt;sub getSourceKeysFromQuery {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($query, @masterKeys) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @keys=();
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @related = $query =~ m/ +([0-9a-z_\$]+|&amp;quot;.+&amp;quot;) +as +([0-9a-z_\$]+|&amp;quot;.+&amp;quot;)/gi;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $found;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (my $i = 0; $i &amp;lt; @masterKeys; ++$i) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $found = FALSE;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (my $j = 0; $j &amp;lt; @related; $j += 2) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (@masterKeys[$i] eq @related[$j]) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; push(@keys, @related[$j+1]);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $found = TRUE;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; last;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (! $found) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; push(@keys, @masterKeys[$i]);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return @keys;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: retrieveMasterForSnapshot
&lt;br&gt;#-- Retrieve the MASTER tables for a SNAPSHOT
&lt;br&gt;#--
&lt;br&gt;sub retrieveMasterForSnapshot {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $snapshot) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $masterschema;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $mastername;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $relatedCount;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $tablename;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @related=();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @tables=();
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $tablename = $snapshot-&amp;gt;{'query'};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @related = $tablename =~ m/(from|join) +((([0-9a-z_\$]+|&amp;quot;.+&amp;quot;)\.)?([0-9a-z_\$]+|&amp;quot;.+&amp;quot;)( *, *(([0-9a-z_\$]+|&amp;quot;.+&amp;quot;)\.)?([0-9a-z_\$]+|&amp;quot;.+&amp;quot;))*)/gi;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (my $i = 1; $i &amp;lt; @related; $i += 9) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; push(@tables, @related[$i]);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (@tables eq 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, 'Origin TABLES not found !';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (@tables eq 1) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $tablename = @tables[0];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;TABLE=[$tablename]&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ($masterschema, $mastername) = split(/\./, $tablename);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;MASTERSCHEMA=[$masterschema] MASTERNAME=[$mastername]&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($mastername eq undef) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- No Schema
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, 'Sorry, due to the complexity of your query, I could not guess the Schema name of your tables, so I will try a COMPLETE REFRESH instead.';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $mastername = $masterschema;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $snapshot-&amp;gt;{'kind'} = 'C';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $masterschema = undef;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return ($masterschema, $mastername);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (($snapshot-&amp;gt;{'kind'} eq 'F') || ($snapshot-&amp;gt;{'kind'} eq 'R')) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Refresh FAST only work with one-table only queries. Falling back to COMPLETE REFRESH. TABLES=[&amp;quot; . join(',', @tables) . ']';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $snapshot-&amp;gt;{'kind'} = 'C';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return (undef, undef);
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: snapshotLogExists
&lt;br&gt;#-- Returns whether a master object has a SNAPSHOT LOG
&lt;br&gt;#--
&lt;br&gt;sub snapshotLogExists {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $masterschema, $mastername) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $result = call_driver_function($dbh, 'snapshotlog_exists', undef, $masterschema, $mastername, undef);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return ($result eq 'T');
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: getLastSnapshotLogRefresh
&lt;br&gt;#-- Returns the date/time of the snapshot's last refresh
&lt;br&gt;#--
&lt;br&gt;sub getLastSnapshotLogRefresh {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function arguments
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $masterschema, $mastername, $snapid) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 	call_driver_function($dbh, 'last_log_refresh', undef, $masterschema, $mastername, $snapid);
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: getRefreshMethod
&lt;br&gt;#-- Returns the best refresh method supported by the SNAPSHOT refreshing process
&lt;br&gt;#--
&lt;br&gt;sub getRefreshMethod {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $snapshot, $masterschema, $mastername, $lastRefresh) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $kind = $snapshot-&amp;gt;{'kind'};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $row;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (($lastRefresh eq undef) || ($lastRefresh eq '1900-01-01 00:00:00')) { #-- It's the snapshot first refresh: always COMPLETE
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, 'First Refresh detected.' if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $kind = 'C';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif (($kind eq 'R') or ($kind eq 'F')) { #-- The snapshot was created with REFRESH FORCE or REFRESH FAST
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Test if LOG exists
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (snapshotLogExists($dbh, $masterschema, $mastername)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- count the rows at LOG
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $logcount = countSnapshotLogModifiedRows($dbh, $masterschema, $mastername, $lastRefresh);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- count the rows at MASTER
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (&amp;quot;$snapshot-&amp;gt;{'pbt_table'}&amp;quot; ne '') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;SELECT count(*) as total
&lt;br&gt;FROM $masterschema.$snapshot-&amp;gt;{'pbt_table'}
&lt;br&gt;WHERE pbt\$ = $snapshot-&amp;gt;{'snapid'}
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;SELECT count(*) as total
&lt;br&gt;FROM $masterschema.$mastername
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($mastercount) = sqlLookup($dbh, $sql, ());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Number of modified records: LOG=$logcount MASTER=$mastercount&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- FAST only if count(LOG) le count(MASTER) / 4
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (($kind eq 'F') || ($logcount le $mastercount)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $kind = 'F';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Huge number of modified records!&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $kind = 'C';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, 'Snapshot Log does not exist.' if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $kind = 'C';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (($snapshot-&amp;gt;{'kind'} eq 'F') and ($kind ne 'F')) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Can't do REFRESH FAST
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, 'Refresh FAST not supported. Did you set up a SNAPSHOT LOG correctly ?';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $kind;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: updateLastSnapshotLogRefresh
&lt;br&gt;#-- Updates the SNAPSHOT LOG catalog with the SNAPSHOT last refresh
&lt;br&gt;#--
&lt;br&gt;sub updateLastSnapshotLogRefresh {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $masterschema, $mastername, $refreshTime, $snapid) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; call_driver_function($dbh, 'snapshot_do', 'REFRESHED', $masterschema, $mastername, $refreshTime.'|'.$snapid);
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: updateNullSnaptimeRows
&lt;br&gt;#-- Updates the SNAPSHOT LOG rows that were not viewed by anyone (snaptime column is NULL)
&lt;br&gt;#--
&lt;br&gt;sub updateNullSnaptimeRows {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $masterschema, $mastername, $refreshTime) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; call_driver_function($dbh, 'snapshot_do', 'UPDATE_NULL', $masterschema, $mastername, $refreshTime);
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: getInsertedUpdatedLogRecordsFilter
&lt;br&gt;#-- Returns the filter for retrieving snapshot log's inserted or updated records
&lt;br&gt;#--
&lt;br&gt;sub getInsertedUpdatedLogRecordsFilter {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $lastRefresh) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return call_driver_function($dbh, 'snapshotlog_iu_filter', undef, undef, undef, $lastRefresh);
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: countSnapshotLogModifiedRows
&lt;br&gt;#-- Returns the number of modified rows on the snapshot log
&lt;br&gt;#--
&lt;br&gt;sub countSnapshotLogModifiedRows {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $masterschema, $mastername, $lastRefresh) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return call_driver_function($dbh, 'count_log_modified_rows', undef, $masterschema, $mastername, $lastRefresh);
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: getSthColumnTypes
&lt;br&gt;#-- Returns an array in which every index is the corresponding SQL data type for each column index of the STATEMENT parameter
&lt;br&gt;#--
&lt;br&gt;sub getSthColumnTypes {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($sth) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @types;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (my $i = 0; $i &amp;lt; $sth-&amp;gt;{NUM_OF_FIELDS}; ++$i) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $dbiType = $sth-&amp;gt;{TYPE}-&amp;gt;[$i];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @types[$i] = map2PgType(getUnifiedSqlType($dbiType));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return @types;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: map2PgType
&lt;br&gt;#-- Maps a DBI type to a PostgreSQL native type or a SQL type supported by PostgreSQL
&lt;br&gt;#--
&lt;br&gt;sub map2PgType {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; use DBD::Pg;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbiType) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $pgType;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #--------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL datatype codes
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_GUID &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-11)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_WLONGVARCHAR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-10)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_WVARCHAR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(-9)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_WCHAR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-8)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_BIT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-7)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TINYINT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-6)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_BIGINT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(-5)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_LONGVARBINARY &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-4)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_VARBINARY &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-3)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_BINARY &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(-2)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_LONGVARCHAR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-1)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_UNKNOWN_TYPE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_ALL_TYPES &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_CHAR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_NUMERIC &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_DECIMAL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_SMALLINT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_FLOAT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 6
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_REAL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;7
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_DOUBLE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;8
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_DATETIME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;9
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_DATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;9
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 10
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TIME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 10
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TIMESTAMP &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;11
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_VARCHAR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;12
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_BOOLEAN &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;16
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_UDT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;17
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_UDT_LOCATOR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;18
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_ROW &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;19
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_REF &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;20
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_BLOB &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_BLOB_LOCATOR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 31
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_CLOB &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 40
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_CLOB_LOCATOR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 41
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_ARRAY &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;50
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_ARRAY_LOCATOR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;51
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_MULTISET &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 55
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_MULTISET_LOCATOR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 56
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TYPE_DATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;91
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TYPE_TIME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;92
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TYPE_TIMESTAMP &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 93
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TYPE_TIME_WITH_TIMEZONE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;94
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TYPE_TIMESTAMP_WITH_TIMEZONE &amp;nbsp; 95
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_YEAR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 101
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_MONTH &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;102
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_DAY &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;103
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_HOUR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 104
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_MINUTE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 105
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_SECOND &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 106
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_YEAR_TO_MONTH &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;107
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_DAY_TO_HOUR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;108
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_DAY_TO_MINUTE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;109
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_DAY_TO_SECOND &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;110
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_HOUR_TO_MINUTE &amp;nbsp; &amp;nbsp; &amp;nbsp; 111
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_HOUR_TO_SECOND &amp;nbsp; &amp;nbsp; &amp;nbsp; 112
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_MINUTE_TO_SECOND &amp;nbsp; &amp;nbsp; 113
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #--------------------------------
&lt;br&gt;&lt;br&gt;#--PG_BOOL PG_BYTEA PG_CHAR PG_INT8 PG_INT2 PG_INT4 PG_TEXT PG_OID
&lt;br&gt;#--PG_FLOAT4 PG_FLOAT8 PG_ABSTIME PG_RELTIME PG_TINTERVAL PG_BPCHAR
&lt;br&gt;#--PG_VARCHAR PG_DATE PG_TIME PG_DATETIME PG_TIMESPAN PG_TIMESTAMP
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ( $dbiType == DBI::SQL_INTEGER ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $pgType = { pg_type =&amp;gt; DBD::Pg::PG_INT8 };
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $dbiType == DBI::SQL_SMALLINT ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $pgType = { pg_type =&amp;gt; DBD::Pg::PG_INT4 };
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $dbiType == DBI::SQL_TIMESTAMP ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $pgType = DBI::SQL_TIMESTAMP;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $dbiType == DBI::SQL_NUMERIC ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $pgType = DBI::SQL_NUMERIC;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $dbiType == DBI::SQL_BOOLEAN ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $pgType = DBI::SQL_BOOLEAN;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $dbiType == DBI::SQL_CHAR ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $pgType = DBI::SQL_CHAR;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $dbiType == DBI::SQL_VARCHAR ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $pgType = { pg_type =&amp;gt; DBD::Pg::PG_VARCHAR };
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $dbiType == DBI::SQL_CLOB ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $pgType = { pg_type =&amp;gt; DBD::Pg::PG_VARCHAR };
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $dbiType == DBI::SQL_DATE ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $pgType = DBI::SQL_DATE;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $dbiType == DBI::SQL_TIME ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $pgType = DBI::SQL_TIME;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $dbiType == DBI::SQL_INTERVAL ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $pgType = DBI::SQL_INTERVAL;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( $dbiType == DBI::SQL_BLOB ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $pgType = { pg_type =&amp;gt; DBD::Pg::PG_BYTEA };
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $pgType = { pg_type =&amp;gt; DBD::Pg::PG_TEXT };
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $pgType;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: getSnapshotLogColumns
&lt;br&gt;#-- Returns the snapshot log's filter/pk/oid columns
&lt;br&gt;#--
&lt;br&gt;sub getSnapshotLogColumns {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $masterschema, $mastername) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $result = call_driver_function($dbh, 'snapshotlog_columns', undef, $masterschema, $mastername, undef);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $result;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: getLogKeys
&lt;br&gt;#-- Maps the MASTER keys to SNAPSHOT LOG keys
&lt;br&gt;#--
&lt;br&gt;sub getLogKeys {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($masterKeys) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @arrLogKeys = ();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $logKeys;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @keys = split(/,/, $masterKeys);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (my $i = 0; $i &amp;lt; @keys; ++$i) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $col = @keys[$i];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($col eq 'oid') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; push (@arrLogKeys, 'm_row$$');
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; push (@arrLogKeys, $col);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $logKeys = join(',', @arrLogKeys);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return ($logKeys, \@arrLogKeys);
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: getSnapshotLogName
&lt;br&gt;#-- Returns the snapshot log's table name
&lt;br&gt;#--
&lt;br&gt;sub getSnapshotLogName {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $masterschema, $mastername) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return call_driver_function($dbh, 'snapshotlog_name', undef, $masterschema, $mastername, undef);
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: deleteOldSnapshotRecords
&lt;br&gt;#-- Removes old records from the local snapshot based on the snapshot log
&lt;br&gt;#--
&lt;br&gt;sub deleteOldSnapshotRecords {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh_local, $dbh_remote, $snapshot, $masterschema, $mastername, $lastRefresh, @keys) = @_;	
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $filter;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth_local;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth_remote;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $qms;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $recs;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sqlRow;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($masterKeys, $logKeys, @arrLogKeys) = @keys;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $snapshotLogName = getSnapshotLogName($dbh_remote, $masterschema, $mastername);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $snapshotname;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Delete modified/removed records from SNAPSHOT
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $filter = getUpdatedDeletedLogRecordsFilter($dbh_remote, $lastRefresh);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;SELECT $logKeys
&lt;br&gt;FROM $masterschema.$snapshotLogName
&lt;br&gt;WHERE $filter
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth_remote = $dbh_remote-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh_remote-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not retrieve records to delete: $sql [&amp;quot;.$dbh_remote-&amp;gt;errstr.&amp;quot;]&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth_remote-&amp;gt;execute();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth_remote-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not retrieve records to delete: $sql [&amp;quot;.$sth_remote-&amp;gt;errstr.&amp;quot;]&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @master = getSourceKeysFromQuery($snapshot-&amp;gt;{'query'}, split(',', $masterKeys));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sqlRow = '';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (my $i=0; $i &amp;lt; @master; ++$i) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sqlRow .= &amp;quot; AND &amp;quot; . @master-&amp;gt;[$i] . '=?';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sqlRow = substr($sqlRow, 5);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $snapshotname = ($snapshot-&amp;gt;{'pbt_table'} eq '') ? $snapshot-&amp;gt;{'snapshotname'} : $snapshot-&amp;gt;{'pbt_table'};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;DELETE FROM $snapshot-&amp;gt;{'schemaname'}.$snapshotname 
&lt;br&gt;WHERE $sqlRow
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($snapshot-&amp;gt;{'pbt_table'} ne '') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql .= &amp;quot; AND pbt\$ = $snapshot-&amp;gt;{'snapid'}&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth_local = $dbh_local-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh_local-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not erase old records from snapshot: $sql [&amp;quot;.$dbh_local-&amp;gt;errstr.&amp;quot;]&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $recs = 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; setTriggerStatus($dbh_local, $snapshot-&amp;gt;{'schemaname'}, $snapshotname, &amp;quot;${snapshotname}_pbt\$_trg&amp;quot;, FALSE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while(my @row = $sth_remote-&amp;gt;fetchrow_array) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth_local-&amp;gt;execute(@row);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth_local-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $sth_local-&amp;gt;errstr;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ++$recs;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (($recs % 1000) == 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_local-&amp;gt;commit;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Deleted. Record #$recs&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; setTriggerStatus($dbh_local, $snapshot-&amp;gt;{'schemaname'}, $snapshotname, &amp;quot;${snapshotname}_pbt\$_trg&amp;quot;, TRUE);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (! $sth_remote-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Deleted $recs modified records&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could delete modified snapshot records: $sql [&amp;quot;.$sth_remote-&amp;gt;errstr.&amp;quot;]&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh_local-&amp;gt;commit;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth_local-&amp;gt;finish;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $recs;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: getSnapshotLogName
&lt;br&gt;#-- Returns the snapshot log's table name
&lt;br&gt;#--
&lt;br&gt;sub getSnapshotLogName {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $masterschema, $mastername) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return call_driver_function($dbh, 'snapshotlog_name', undef, $masterschema, $mastername, undef);
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: getUnifiedSqlType
&lt;br&gt;#-- Maps a set of SQL types into a single SQL type
&lt;br&gt;#--
&lt;br&gt;sub getUnifiedSqlType {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbiType) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #--------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL datatype codes
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_GUID &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-11)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_WLONGVARCHAR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-10)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_WVARCHAR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(-9)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_WCHAR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-8)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_BIT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-7)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TINYINT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-6)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_BIGINT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(-5)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_LONGVARBINARY &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-4)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_VARBINARY &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-3)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_BINARY &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(-2)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_LONGVARCHAR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (-1)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_UNKNOWN_TYPE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_ALL_TYPES &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_CHAR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_NUMERIC &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_DECIMAL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_SMALLINT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_FLOAT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 6
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_REAL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;7
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_DOUBLE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;8
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_DATETIME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;9
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_DATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;9
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 10
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TIME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 10
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TIMESTAMP &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;11
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_VARCHAR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;12
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_BOOLEAN &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;16
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_UDT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;17
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_UDT_LOCATOR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;18
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_ROW &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;19
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_REF &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;20
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_BLOB &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_BLOB_LOCATOR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 31
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_CLOB &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 40
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_CLOB_LOCATOR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 41
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_ARRAY &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;50
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_ARRAY_LOCATOR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;51
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_MULTISET &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 55
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_MULTISET_LOCATOR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 56
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TYPE_DATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;91
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TYPE_TIME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;92
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TYPE_TIMESTAMP &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 93
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TYPE_TIME_WITH_TIMEZONE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;94
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_TYPE_TIMESTAMP_WITH_TIMEZONE &amp;nbsp; 95
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_YEAR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 101
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_MONTH &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;102
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_DAY &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;103
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_HOUR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 104
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_MINUTE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 105
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_SECOND &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 106
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_YEAR_TO_MONTH &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;107
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_DAY_TO_HOUR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;108
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_DAY_TO_MINUTE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;109
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_DAY_TO_SECOND &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;110
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_HOUR_TO_MINUTE &amp;nbsp; &amp;nbsp; &amp;nbsp; 111
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_HOUR_TO_SECOND &amp;nbsp; &amp;nbsp; &amp;nbsp; 112
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- SQL_INTERVAL_MINUTE_TO_SECOND &amp;nbsp; &amp;nbsp; 113
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #--------------------------------
&lt;br&gt;&lt;br&gt;#--PG_BOOL PG_BYTEA PG_CHAR PG_INT8 PG_INT2 PG_INT4 PG_TEXT PG_OID
&lt;br&gt;#--PG_FLOAT4 PG_FLOAT8 PG_ABSTIME PG_RELTIME PG_TINTERVAL PG_BPCHAR
&lt;br&gt;#--PG_VARCHAR PG_DATE PG_TIME PG_DATETIME PG_TIMESPAN PG_TIMESTAMP
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (($dbiType == DBI::SQL_INTEGER)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_INTEGER;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif (($dbiType == DBI::SQL_SMALLINT)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_SMALLINT;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif (($dbiType == DBI::SQL_TYPE_TIME_WITH_TIMEZONE)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ($dbiType == DBI::SQL_TYPE_TIMESTAMP_WITH_TIMEZONE)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_DATETIME )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_TIMESTAMP )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_TYPE_TIMESTAMP ) ) { #--TIMESTAMP
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_TIMESTAMP;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif (($dbiType == DBI::SQL_NUMERIC )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ($dbiType == DBI::SQL_DECIMAL )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ($dbiType == DBI::SQL_FLOAT )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ($dbiType == DBI::SQL_REAL )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ($dbiType == DBI::SQL_DOUBLE )
&lt;br&gt;#--		|| ($dbiType == DBI::SQL_BIGINT )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ($dbiType == DBI::SQL_TINYINT )) { #--NUMERIC
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_NUMERIC;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( ( $dbiType == DBI::SQL_BOOLEAN )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_BIT ) ) { #--BOOLEAN
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_BOOLEAN;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( ($dbiType == DBI::SQL_CHAR )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_WCHAR ) ) { #--CHAR
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_CHAR;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( ($dbiType == DBI::SQL_VARCHAR )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_WVARCHAR )) { #--VARCHAR
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_VARCHAR;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( ( $dbiType == DBI::SQL_LONGVARCHAR )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_WLONGVARCHAR )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_CLOB ) ) { #--CLOB
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_CLOB;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( ( $dbiType == DBI::SQL_DATE )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_TYPE_DATE ) ) { #--DATE
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_DATE;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( ( $dbiType == DBI::SQL_TIME )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_TYPE_TIME ) ) { #--TIME
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_TIME;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( ( $dbiType == DBI::SQL_INTERVAL )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_YEAR )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_MONTH )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_DAY )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_HOUR )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_MINUTE )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_SECOND )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_YEAR_TO_MONTH )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_DAY_TO_HOUR )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_DAY_TO_MINUTE )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_DAY_TO_SECOND )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_HOUR_TO_MINUTE )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_HOUR_TO_SECOND )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_INTERVAL_MINUTE_TO_SECOND ) ) { #--INTERVAL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_INTERVAL;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ( ( $dbiType == DBI::SQL_BINARY )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_VARBINARY )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_LONGVARBINARY )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; || ( $dbiType == DBI::SQL_BLOB ) ) { #--BLOB
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $dbiType == DBI::SQL_BLOB;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return DBI::SQL_VARCHAR; #-- default: VARCHAR
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: getUpdatedDeletedLogRecordsFilter
&lt;br&gt;#-- Returns the filter for retrieving snapshot log's updated or deleted records
&lt;br&gt;#--
&lt;br&gt;sub getUpdatedDeletedLogRecordsFilter {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $lastRefresh) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return call_driver_function($dbh, 'snapshotlog_ud_filter', undef, undef, undef, $lastRefresh);
&lt;br&gt;}
&lt;br&gt;$BODY$
&lt;br&gt;&amp;nbsp; LANGUAGE 'plperlu' VOLATILE;
&lt;br&gt;ALTER FUNCTION refresh_snapshot(schemaname text, snapshotname text) OWNER TO postgres;
&lt;br&gt;COMMENT ON FUNCTION refresh_snapshot(schemaname text, snapshotname text) IS $$
&lt;br&gt;This function is part of PostgreSQL::Snapshots project.
&lt;br&gt;This is the function that refreshes the snapshot. The refreshing process may take a long time depending on the size of the result, the connection speed, etc. This is not a memory consuming process once all the process is divided in transaction chunks of 1000 records. It uses more CPU (because of Perl) and network (because of the resultset size) than memory.
&lt;br&gt;$$;
&lt;br&gt;--
&lt;br&gt;-- ATTENTION: This is a free software. 
&lt;br&gt;-- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;View the LICENSE.txt file for license information
&lt;br&gt;--
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;-- FUNCTION: public.create_snapshot_log
&lt;br&gt;--
&lt;br&gt;-- Creates a SNAPSHOT LOG on a TABLE to be used on FAST refreshes
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;CREATE OR REPLACE FUNCTION public.create_snapshot_log(schemaname text, mastername text, withwhat text)
&lt;br&gt;&amp;nbsp; RETURNS bool AS
&lt;br&gt;$BODY$
&lt;br&gt;use strict;
&lt;br&gt;use DBI;
&lt;br&gt;use constant TRUE =&amp;gt; 1;
&lt;br&gt;use constant FALSE =&amp;gt; &amp;quot;&amp;quot;;
&lt;br&gt;#-- Function parameters
&lt;br&gt;my ($schemaname, $mastername, $withwhat) = @_;
&lt;br&gt;#-- Set this to 1 for debugging messages
&lt;br&gt;$main::DEBUG=0;
&lt;br&gt;#-- Localhost superuser connection
&lt;br&gt;my $dbh_local = DBI-&amp;gt;connect('dbi:Pg:dbname=labpeTeste', 'postgres', undef, {AutoCommit =&amp;gt; 0});
&lt;br&gt;#-- variables
&lt;br&gt;my $sql;
&lt;br&gt;my $rs;
&lt;br&gt;my $row;
&lt;br&gt;my $sth;
&lt;br&gt;my $masterKeyColumns;
&lt;br&gt;my $logKeyColumns;
&lt;br&gt;my $masterPkColumns;
&lt;br&gt;my $masterFilterColumns;
&lt;br&gt;my $flag;
&lt;br&gt;my $log;
&lt;br&gt;&lt;br&gt;#-- Test if the SNAPSHOT LOG already exists
&lt;br&gt;if (snapshotLogExists($dbh_local, $schemaname, $mastername)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Snapshot log on '$schemaname.$mastername' already exists! SQL=$sql&amp;quot;;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;if (! objectExists($dbh_local, $schemaname, $mastername)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Master '$schemaname.$mastername' does not exist! SQL=$sql&amp;quot;;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;($flag, $masterKeyColumns, $logKeyColumns, $masterPkColumns, $masterFilterColumns) = getKeyColumns($dbh_local, $schemaname, $mastername, $withwhat);
&lt;br&gt;elog NOTICE, 'KEY='.join(',', keys %$logKeyColumns) . ' TYPES='.join(',', values %$logKeyColumns) . ' FLAG='.$flag if $main::DEBUG == 1;
&lt;br&gt;&lt;br&gt;#-- Create the Snapshot's Log Table
&lt;br&gt;$log = createSnapshotLogTable($schemaname, $mastername, $logKeyColumns);
&lt;br&gt;createSnapshotLogTableIndexes($schemaname, $mastername, $log, $logKeyColumns);
&lt;br&gt;createSnapshotLogTrigger($dbh_local, $schemaname, $mastername, $log, $masterKeyColumns, $logKeyColumns);
&lt;br&gt;&lt;br&gt;createSnapshotLogEntry($dbh_local, $schemaname, $mastername, $flag, $log, $masterPkColumns, $masterFilterColumns);
&lt;br&gt;&lt;br&gt;#--call_driver_function($dbh_local, 'snapshot_do', 'REGISTER', $schemaname, $mastername, $snapid);
&lt;br&gt;&lt;br&gt;$dbh_local-&amp;gt;commit;
&lt;br&gt;$dbh_local-&amp;gt;disconnect;
&lt;br&gt;#-- All done. Let's return TRUE
&lt;br&gt;return TRUE;
&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: sqlLookup
&lt;br&gt;#-- Returns a one row result from a SQL query
&lt;br&gt;#--
&lt;br&gt;sub sqlLookup {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $sql, @params) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return sqlLookup2 ($dbh, $sql, \@params, TRUE);
&lt;br&gt;}
&lt;br&gt;sub sqlLookupSoft {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $sql, @params) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return sqlLookup2 ($dbh, $sql, \@params, FALSE);
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;sub sqlLookup2 {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $sql, $params, $errorsAreFatal) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @row;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Lookup at SQL:$sql with &amp;quot;.((@$params ne 0) ? join(',', @$params) : '&amp;lt;none&amp;gt;') if $main::DEBUG==1;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (@$params ne 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(@$params);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($errorsAreFatal) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Fatal error! SQL=$sql ERROR=&amp;quot;.$sth-&amp;gt;errstr;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @row = $sth-&amp;gt;fetchrow_array;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;finish;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return @row;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: snapshotLogExists
&lt;br&gt;#-- Returns whether a master object has a SNAPSHOT LOG
&lt;br&gt;#--
&lt;br&gt;sub snapshotLogExists {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $masterschema, $mastername) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $result = call_driver_function($dbh, 'snapshotlog_exists', undef, $masterschema, $mastername, undef);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return ($result eq 'T');
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: objectExists
&lt;br&gt;#-- Returns whether an object exists or not
&lt;br&gt;#--
&lt;br&gt;sub objectExists {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $schemaname, $snapshotname) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $row;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;SELECT count(*) as total
&lt;br&gt;FROM pg_catalog.pg_class c
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
&lt;br&gt;WHERE n.nspname=? AND c.relname = ?
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(($schemaname, $snapshotname));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $row = $sth-&amp;gt;fetchrow_hashref;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return ($row-&amp;gt;{total} ne 0);
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: getKeyColumns
&lt;br&gt;#-- Returns the keys(on master and on snapshot log) involved on a &amp;quot;create snapshot WITH&amp;quot; statement
&lt;br&gt;#--
&lt;br&gt;sub getKeyColumns {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $schemaname, $mastername, $withwhat) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my %masterKeyColumns = ();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my %logKeyColumns = ();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my %masterFilterColumns = ();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my %masterPkColumns = ();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my %tbFields = ();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @pk;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $fields;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $flag = 0x20; #-- ALL=0x20 HASPK=0x40 ROWID=0x01 PK=0x02 FILTER=0x04
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Get object's metadata
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = getObjectMeta($dbh, $schemaname, $mastername);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Creates a hashmap for FIELD NAME to FIELD TYPE mapping
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (my $i = 0; $i &amp;lt; $sth-&amp;gt;{NUM_OF_FIELDS}; ++$i) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $fieldname = lc($sth-&amp;gt;{NAME}-&amp;gt;[$i]);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $type = $dbh-&amp;gt;type_info( [ $sth-&amp;gt;{TYPE}-&amp;gt;[$i] ] )-&amp;gt;{TYPE_NAME};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %tbFields-&amp;gt;{$fieldname} = $type;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Get the table's primary key fields
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @pk = $dbh-&amp;gt;primary_key( undef, $schemaname, $mastername );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh-&amp;gt;commit;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #elog NOTICE, 'MASTER=(FIELDS:'.join(',', keys %tbFields).' TYPES:'.join(',', values %tbFields).' PK:'.join(',', @pk).')' &amp;nbsp;if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $withwhat = lc($withwhat);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $fields = '';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ( $withwhat =~ m/.*\(.*\).*/ ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- We have parenthesis = additional fields
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $fields = $withwhat;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Save the additional fields
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $fields =~ s/^.*\((.*)\).*$/$1/;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Remove the additional fields from WITH
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $withwhat =~ s/^(.*)\(.*\)(.*)$/$1$2/;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Parse the remaining arguments of WITH
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @aux = split(/,/, $withwhat);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (my $i=0; $i &amp;lt; @aux; ++$i) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (@aux[$i] eq 'oid') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $flag |= 0x01;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %masterKeyColumns-&amp;gt;{'oid'}=1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %logKeyColumns-&amp;gt;{'m_row$$'}='oid';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif (@aux[$i] eq 'primary key') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $flag |= 0x02;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $flag |= 0x40;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (@pk eq 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, 'Source does not have a PRIMARY KEY';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (my $j=0; $j &amp;lt; @pk; ++$j) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %masterPkColumns-&amp;gt;{@pk[$j]}=1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %masterKeyColumns-&amp;gt;{@pk[$j]}=1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %logKeyColumns-&amp;gt;{@pk[$j]}=%tbFields-&amp;gt;{@pk[$j]};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, 'Syntax error on WITH clause: '.@aux[$i];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Parse the additional fields of WITH
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @aux = split(/,/, $fields);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (my $i=0; $i &amp;lt; @aux; ++$i) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $column = @aux[$i];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (%tbFields-&amp;gt;{$column} eq undef) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Column not found: [$column]&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %masterFilterColumns-&amp;gt;{$column}=1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %masterKeyColumns-&amp;gt;{$column}=1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %logKeyColumns-&amp;gt;{$column} = %tbFields-&amp;gt;{$column};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $flag |= 0x04;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #--elog NOTICE, 'KEY='.join(',', keys %logKeyColumns) . ' TYPES='.join(',', values %logKeyColumns) if $main::DEBUG == 1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return ($flag, \%masterKeyColumns, \%logKeyColumns, \%masterPkColumns, \%masterFilterColumns);
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: createSnapshotLogTable
&lt;br&gt;#-- Creates the SNAPSHOT LOG table
&lt;br&gt;#--
&lt;br&gt;sub createSnapshotLogTable {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($schemaname, $mastername, $logKeyColumns) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $strcolumns = '';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while (my ($key,$value) = each %$logKeyColumns) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;$key=&amp;gt;$value&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $entry = &amp;quot;$key $value&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $strcolumns = &amp;quot;$strcolumns$entry,\n&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;CREATE TABLE $schemaname.mlog\$_$mastername (
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $strcolumns
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; snaptime\$\$	timestamp,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dmltype\$\$	varchar(1),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; old_new\$\$	varchar(1),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; change_vector\$\$	varchar(255)
&lt;br&gt;)
&lt;br&gt;SQL
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, $sql if $main::DEBUG==1;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = spi_exec_query($sql);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;{status} ne 'SPI_OK_UTILITY') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not create the snapshot log for table '$schemaname.$mastername'. STATUS='&amp;quot;.$sth-&amp;gt;status.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return &amp;quot;mlog\$_$mastername&amp;quot;;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: createSnapshotLogTableIndexes
&lt;br&gt;#-- Creates the INDEXES on the SNAPSHOT LOG table, for performance reasons only
&lt;br&gt;#--
&lt;br&gt;sub createSnapshotLogTableIndexes {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($schemaname, $mastername, $log, $logKeyColumns) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Create the Snapshot's Log Table Indexes
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $keys = join(',', keys %$logKeyColumns);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;CREATE INDEX ${log}_ix1 on $schemaname.$log ($keys);
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = spi_exec_query($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;{status} ne 'SPI_OK_UTILITY') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not create the snapshot log index for table '$schemaname.$mastername'. STATUS='&amp;quot;.$sth-&amp;gt;status.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;CREATE INDEX ${log}_ix2 on $schemaname.$log (snaptime\$\$, dmltype\$\$);
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = spi_exec_query($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;{status} ne 'SPI_OK_UTILITY') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not create the snapshot log index for table '$schemaname.$mastername'. STATUS='&amp;quot;.$sth-&amp;gt;status.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: createSnapshotLogTrigger
&lt;br&gt;#-- Creates the triggers on the MASTER object in order to fill the SNAPSHOT LOG entries
&lt;br&gt;#--
&lt;br&gt;sub createSnapshotLogTrigger {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $schemaname, $mastername, $log, $masterKeyColumns, $logKeyColumns) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Local variables
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Get object's metadata
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = getObjectMeta($dbh, $schemaname, $mastername);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Create the PL/PgSQL code for computing the CHANGEVECTOR field
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $all_unset_cv = '0' x ($sth-&amp;gt;{NUM_OF_FIELDS} / 8);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $all_set_cv = 'F' x ($sth-&amp;gt;{NUM_OF_FIELDS} / 8);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (($sth-&amp;gt;{NUM_OF_FIELDS} % 8) ne 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $all_unset_cv = $all_unset_cv . '0';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $all_set_cv = $all_set_cv.sprintf(&amp;quot;%x&amp;quot;,(2^($sth-&amp;gt;{NUM_OF_FIELDS} % 8)-1));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $compute_change_vector = '';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (my $i = 0; $i &amp;lt; $sth-&amp;gt;{NUM_OF_FIELDS}; ++$i) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $fieldname = $sth-&amp;gt;{NAME}-&amp;gt;[$i];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $value = 2**$i;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $compute_change_vector = $compute_change_vector . &amp;lt;&amp;lt;SQL;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IF (OLD.$fieldname &amp;lt;&amp;gt; NEW.$fieldname) THEN
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CVB = CVB + $value;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; END IF;
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((($i + 1) % 8) eq 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $compute_change_vector = $compute_change_vector . &amp;lt;&amp;lt;SQL;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CV = CV || to_hex(CVB);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ALL_CVB = ALL_CVB + CVB;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CVB = 0;
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (($sth-&amp;gt;{NUM_OF_FIELDS} % 8) ne 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $compute_change_vector = $compute_change_vector . &amp;lt;&amp;lt;SQL;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CV = CV || to_hex(CVB);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ALL_CVB = ALL_CVB + CVB;
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;finish;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh-&amp;gt;commit;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Create the TRIGGER function
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Creating trigger function $schemaname.${log}_trgfn()&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $oldMasterKeys = 'OLD.'.join(', OLD.', keys %$masterKeyColumns);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $newMasterKeys = 'NEW.'.join(', NEW.', keys %$masterKeyColumns);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;CREATE OR REPLACE FUNCTION $schemaname.${log}_trgfn()
&lt;br&gt;RETURNS trigger AS
&lt;br&gt;\$BODYFN\$
&lt;br&gt;DECLARE
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CV		varchar(255);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CVB		integer;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ALL_CVB		numeric;
&lt;br&gt;BEGIN
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IF (TG_OP = 'DELETE') THEN
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; INSERT INTO $schemaname.$log SELECT $oldMasterKeys,NULL,'D','O','$all_unset_cv';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ELSIF (TG_OP = 'UPDATE') THEN
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CV = '';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CVB = 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ALL_CVB = 0;
&lt;br&gt;$compute_change_vector
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IF (ALL_CVB &amp;gt; 0) THEN
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; INSERT INTO $schemaname.$log SELECT $oldMasterKeys,NULL,'U','O',CV;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; END IF;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IF (OLD.oid &amp;lt;&amp;gt; NEW.oid) THEN
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; INSERT INTO $schemaname.$log SELECT $newMasterKeys,NULL,'U','N',CV;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; END IF;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ELSIF (TG_OP = 'INSERT') THEN
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; INSERT INTO $schemaname.$log SELECT $newMasterKeys,NULL,'I','N','$all_set_cv';
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; END IF;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RETURN NULL;
&lt;br&gt;END;
&lt;br&gt;\$BODYFN\$
&lt;br&gt;LANGUAGE 'plpgsql' VOLATILE;
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, $sql if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh-&amp;gt;do($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not create the snapshot log trigger function for table '$schemaname.$mastername'. ERR='&amp;quot;.$dbh-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Create TRIGGER on master table
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Creating trigger ${log}_trg on $schemaname.${mastername}&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;CREATE TRIGGER ${log}_trg AFTER INSERT OR UPDATE OR DELETE
&lt;br&gt;ON $schemaname.${mastername} FOR EACH ROW
&lt;br&gt;EXECUTE PROCEDURE $schemaname.${log}_trgfn ()
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh-&amp;gt;do($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not create the snapshot log trigger on table '$schemaname.$mastername'. ERR='&amp;quot;.$dbh-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;sub createSnapshotLogEntry {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $schemaname, $mastername, $flag, $log, $masterPkColumns, $masterFilterColumns) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Add the Snapshot Log to the public.pg_mlogs table
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; INSERT INTO public.pg_mlogs(masterschema, mastername, flag, log)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; VALUES (?,?,?,?)
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not prepare the snapshot log entry on system table 'public.pg_mlogs'. ERROR='&amp;quot;.$sth-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(($schemaname, $mastername, $flag, $log));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not create the snapshot log entry on system table 'public.pg_mlogs'. ERROR='&amp;quot;.$sth-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $snaplogid;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @row;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SELECT snaplogid
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FROM public.pg_mlogs
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; WHERE masterschema=?
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AND mastername=?
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(($schemaname, $mastername));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $sth-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @row = $sth-&amp;gt;fetchrow_array;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $snaplogid = @row[0];
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, 'SNAPLOGID='.$snaplogid if $main::DEBUG == 1;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; createSnapshotLogEntryColumns($dbh, $schemaname, $mastername, $flag, $log, $snaplogid, $masterPkColumns, $masterFilterColumns);
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: call_driver_function
&lt;br&gt;#-- Calls a driver function (native) on the database pointed by the database handle ($dbh)
&lt;br&gt;#--
&lt;br&gt;sub call_driver_function {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $function_name, $operation, $masterschema, $mastername, $additional) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $masterschema = uc($masterschema);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $mastername = uc($mastername);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Calling DRIVER function $function_name ($operation, $masterschema, $mastername, $additional)&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($function_name eq 'snapshot_do') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dbi_execute_stored_procedure($dbh, 'snapshot_do', ('123456', $operation, $masterschema, $mastername, $additional));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'snapshotlog_exists') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'snapshotlog_exists', ($masterschema, $mastername));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'last_log_refresh') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'last_log_refresh' , ($masterschema, $mastername, $additional));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'snapshotlog_columns') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'snapshotlog_columns', ($masterschema, $mastername));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'snapshotlog_name') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'snapshotlog_name', ($masterschema, $mastername));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'count_log_modified_rows') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'count_log_modified_rows', ($masterschema, $mastername, $additional));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'snapshotlog_ud_filter') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'snapshotlog_ud_filter', ($additional));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'snapshotlog_iu_filter') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'snapshotlog_iu_filter', ($additional));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not call DRIVER function: $function_name&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh-&amp;gt;commit;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;sub dbi_execute_stored_procedure {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; use DBI::Const::GetInfoType;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $procname, @parameters) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $dbname = lc($dbh-&amp;gt;get_info( $GetInfoType{SQL_DBMS_NAME} ));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $qmarks = '?,' x @parameters;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; chop $qmarks;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbname eq 'oracle') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;BEGIN $procname($qmarks); END;&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($dbname eq 'postgresql') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;SELECT $procname($qmarks)&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;SELECT $procname($qmarks)&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $dbh-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(@parameters);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $sth-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;sub dbi_call_function {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; use DBI::Const::GetInfoType;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $funcname, @parameters) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $dbname = lc($dbh-&amp;gt;get_info( $GetInfoType{SQL_DBMS_NAME} ));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @row;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $qmarks = '?,' x @parameters;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; chop $qmarks;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbname eq 'oracle') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;SELECT $funcname($qmarks) FROM DUAL&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($dbname eq 'postgresql') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;SELECT $funcname($qmarks)&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;SELECT $funcname($qmarks)&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $dbh-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(@parameters);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $sth-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @row = $sth-&amp;gt;fetchrow_array;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $result = @row[0];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $result;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;#-- Dependencies
&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: getObjectMeta
&lt;br&gt;#-- Returns an empty result STATEMENT in order to retrieve the object's METADATA
&lt;br&gt;#--
&lt;br&gt;sub getObjectMeta {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $schemaname, $mastername) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;SELECT * from $schemaname.$mastername
&lt;br&gt;WHERE 1=0
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (! $sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $sth;
&lt;br&gt;}sub createSnapshotLogEntryColumns {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $schemaname, $mastername, $flag, $log, $snaplogid, $masterPkColumns, $masterFilterColumns) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Add the Snapshot Log Columna to the public.pg_mlog_refcols table
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; INSERT INTO public.pg_mlog_refcols(snaplogid, masterschema, mastername, colname, flag)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; VALUES (?,?,?,?,?)
&lt;br&gt;SQL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not prepare the snapshot log column entry on system table 'public.pg_mlog_refcols'. ERROR='&amp;quot;.$sth-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($flag &amp; 0x42) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- PK
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while (my ($key,$value) = each %$masterPkColumns) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute($snaplogid, $schemaname, $mastername, $key, 2);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not create the snapshot log column entry on system table 'public.pg_mlog_refcols'. ERROR='&amp;quot;.$sth-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($flag &amp; 0x04) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- FILTER
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while (my ($key,$value) = each %$masterFilterColumns) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute($snaplogid, $schemaname, $mastername, $key, 2);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not create the snapshot log column entry on system table 'public.pg_mlog_refcols'. ERROR='&amp;quot;.$sth-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;$BODY$
&lt;br&gt;&amp;nbsp; LANGUAGE 'plperlu' VOLATILE;
&lt;br&gt;ALTER FUNCTION public.create_snapshot_log(schemaname text, mastername text, withwhat text) OWNER TO postgres;
&lt;br&gt;COMMENT ON FUNCTION public.create_snapshot_log(schemaname text, mastername text, withwhat text) IS $$
&lt;br&gt;This function is part of PostgreSQL::Snapshots project.
&lt;br&gt;This is the function that creates a snapshot log.
&lt;br&gt;$$;
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;-- FUNCTION: public.drop_snapshot_log
&lt;br&gt;--
&lt;br&gt;-- Removes a previously created SNAPSHOT LOG
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;CREATE OR REPLACE FUNCTION public.drop_snapshot_log(schemaname text, mastername text)
&lt;br&gt;&amp;nbsp; RETURNS bool AS
&lt;br&gt;$BODY$
&lt;br&gt;use strict;
&lt;br&gt;use DBI;
&lt;br&gt;use constant TRUE =&amp;gt; 1;
&lt;br&gt;use constant FALSE =&amp;gt; &amp;quot;&amp;quot;;
&lt;br&gt;#-- Function parameters
&lt;br&gt;my ($schemaname, $mastername) = @_;
&lt;br&gt;#-- Set this to 1 for debugging messages
&lt;br&gt;$main::DEBUG=0;
&lt;br&gt;#-- Localhost superuser connection
&lt;br&gt;my $dbh_local = DBI-&amp;gt;connect('dbi:Pg:dbname=labpeTeste', 'postgres', undef, {AutoCommit =&amp;gt; 0});
&lt;br&gt;my $sql;
&lt;br&gt;my $rs;
&lt;br&gt;my $row;
&lt;br&gt;my $log;
&lt;br&gt;&lt;br&gt;if (! snapshotLogExists($dbh_local, $schemaname, $mastername)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Snapshot log on '$schemaname.$mastername' does not exist!&amp;quot;;
&lt;br&gt;}
&lt;br&gt;elog NOTICE, &amp;quot;Snapshot log on '$schemaname.$mastername' exists...&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&lt;br&gt;$log = getSnapshotLogName($dbh_local, $schemaname, $mastername);
&lt;br&gt;&lt;br&gt;elog NOTICE, &amp;quot;Snapshot log on '$schemaname.$mastername' is $log&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&lt;br&gt;$dbh_local-&amp;gt;commit;
&lt;br&gt;&lt;br&gt;#-- Drop the Snapshot's Log Table
&lt;br&gt;$sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;DROP TABLE $schemaname.$log
&lt;br&gt;SQL
&lt;br&gt;&lt;br&gt;$rs = spi_exec_query($sql);
&lt;br&gt;if ($rs-&amp;gt;{status} ne 'SPI_OK_UTILITY') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not drop Snapshot log '$schemaname.$log'. STATUS='&amp;quot;.$rs-&amp;gt;status.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;elog NOTICE, &amp;quot;Snapshot log '$log' dropped.&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&lt;br&gt;#-- Delete the Snapshot Log entry
&lt;br&gt;$sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;DELETE FROM public.pg_mlogs 
&lt;br&gt;WHERE masterschema=? 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AND mastername=?
&lt;br&gt;SQL
&lt;br&gt;&lt;br&gt;$rs = $dbh_local-&amp;gt;prepare($sql);
&lt;br&gt;$rs-&amp;gt;execute($schemaname, $mastername);
&lt;br&gt;if ($rs-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not delete snapshot log entry on system table 'public.pg_mlogs'. ERR='&amp;quot;.$rs-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;elog NOTICE, &amp;quot;Snapshot log entry removed.&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&lt;br&gt;#-- Drop triggers on master table
&lt;br&gt;$sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;DROP TRIGGER ${log}_trg ON $schemaname.${mastername}
&lt;br&gt;SQL
&lt;br&gt;&lt;br&gt;$dbh_local-&amp;gt;do($sql);
&lt;br&gt;if ($dbh_local-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not drop the snapshot log trigger on table '$schemaname.$mastername'. ERR='&amp;quot;.$dbh_local-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;elog NOTICE, &amp;quot;Snapshot log table trigger dropped.&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&lt;br&gt;#-- Drop trigger's function
&lt;br&gt;$sql = &amp;lt;&amp;lt;SQL;
&lt;br&gt;DROP FUNCTION $schemaname.${log}_trgfn();
&lt;br&gt;SQL
&lt;br&gt;&lt;br&gt;$dbh_local-&amp;gt;do($sql);
&lt;br&gt;if ($dbh_local-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not drop the snapshot log trigger function '$schemaname.mlog\$_${mastername}_trgfn()'. ERR='&amp;quot;.$dbh_local-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;elog NOTICE, &amp;quot;Snapshot log trigger function dropped.&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&lt;br&gt;$dbh_local-&amp;gt;commit;
&lt;br&gt;$dbh_local-&amp;gt;disconnect;
&lt;br&gt;#-- All done. Let's return TRUE
&lt;br&gt;return TRUE;
&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: sqlLookup
&lt;br&gt;#-- Returns a one row result from a SQL query
&lt;br&gt;#--
&lt;br&gt;sub sqlLookup {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $sql, @params) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return sqlLookup2 ($dbh, $sql, \@params, TRUE);
&lt;br&gt;}
&lt;br&gt;sub sqlLookupSoft {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $sql, @params) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return sqlLookup2 ($dbh, $sql, \@params, FALSE);
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;sub sqlLookup2 {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $sql, $params, $errorsAreFatal) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @row;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Lookup at SQL:$sql with &amp;quot;.((@$params ne 0) ? join(',', @$params) : '&amp;lt;none&amp;gt;') if $main::DEBUG==1;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (@$params ne 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(@$params);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($errorsAreFatal) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Fatal error! SQL=$sql ERROR=&amp;quot;.$sth-&amp;gt;errstr;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @row = $sth-&amp;gt;fetchrow_array;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;finish;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return @row;
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: snapshotLogExists
&lt;br&gt;#-- Returns whether a master object has a SNAPSHOT LOG
&lt;br&gt;#--
&lt;br&gt;sub snapshotLogExists {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #-- Function parameters
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $masterschema, $mastername) = @_;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $result = call_driver_function($dbh, 'snapshotlog_exists', undef, $masterschema, $mastername, undef);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return ($result eq 'T');
&lt;br&gt;}
&lt;br&gt;#--
&lt;br&gt;#-- SUB: getSnapshotLogName
&lt;br&gt;#-- Returns the snapshot log's table name
&lt;br&gt;#--
&lt;br&gt;sub getSnapshotLogName {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $masterschema, $mastername) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return call_driver_function($dbh, 'snapshotlog_name', undef, $masterschema, $mastername, undef);
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;#-- Dependencies
&lt;br&gt;&lt;br&gt;#--
&lt;br&gt;#-- SUB: call_driver_function
&lt;br&gt;#-- Calls a driver function (native) on the database pointed by the database handle ($dbh)
&lt;br&gt;#--
&lt;br&gt;sub call_driver_function {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $function_name, $operation, $masterschema, $mastername, $additional) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $masterschema = uc($masterschema);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $mastername = uc($mastername);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog NOTICE, &amp;quot;Calling DRIVER function $function_name ($operation, $masterschema, $mastername, $additional)&amp;quot; if $main::DEBUG==1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($function_name eq 'snapshot_do') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dbi_execute_stored_procedure($dbh, 'snapshot_do', ('123456', $operation, $masterschema, $mastername, $additional));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'snapshotlog_exists') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'snapshotlog_exists', ($masterschema, $mastername));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'last_log_refresh') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'last_log_refresh' , ($masterschema, $mastername, $additional));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'snapshotlog_columns') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'snapshotlog_columns', ($masterschema, $mastername));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'snapshotlog_name') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'snapshotlog_name', ($masterschema, $mastername));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'count_log_modified_rows') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'count_log_modified_rows', ($masterschema, $mastername, $additional));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'snapshotlog_ud_filter') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'snapshotlog_ud_filter', ($additional));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($function_name eq 'snapshotlog_iu_filter') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return dbi_call_function($dbh, 'snapshotlog_iu_filter', ($additional));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, &amp;quot;Could not call DRIVER function: $function_name&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dbh-&amp;gt;commit;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;sub dbi_execute_stored_procedure {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; use DBI::Const::GetInfoType;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $procname, @parameters) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $dbname = lc($dbh-&amp;gt;get_info( $GetInfoType{SQL_DBMS_NAME} ));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $qmarks = '?,' x @parameters;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; chop $qmarks;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbname eq 'oracle') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;BEGIN $procname($qmarks); END;&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($dbname eq 'postgresql') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;SELECT $procname($qmarks)&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;SELECT $procname($qmarks)&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $dbh-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(@parameters);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $sth-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;sub dbi_call_function {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; use DBI::Const::GetInfoType;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my ($dbh, $funcname, @parameters) = @_;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $dbname = lc($dbh-&amp;gt;get_info( $GetInfoType{SQL_DBMS_NAME} ));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sql;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $sth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my @row;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $qmarks = '?,' x @parameters;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; chop $qmarks;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbname eq 'oracle') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;SELECT $funcname($qmarks) FROM DUAL&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } elsif ($dbname eq 'postgresql') {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;SELECT $funcname($qmarks)&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;SELECT $funcname($qmarks)&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth = $dbh-&amp;gt;prepare($sql);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($dbh-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $dbh-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sth-&amp;gt;execute(@parameters);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($sth-&amp;gt;err) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; elog ERROR, $sth-&amp;gt;errstr.&amp;quot;' SQL='$sql'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @row = $sth-&amp;gt;fetchrow_array;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my $result = @row[0];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return $result;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;$BODY$
&lt;br&gt;&amp;nbsp; LANGUAGE 'plperlu' VOLATILE;
&lt;br&gt;ALTER FUNCTION public.drop_snapshot_log(schemaname text, mastername text) OWNER TO postgres;
&lt;br&gt;COMMENT ON FUNCTION public.drop_snapshot_log(schemaname text, mastername text) IS $$
&lt;br&gt;This function is part of PostgreSQL::Snapshots project.
&lt;br&gt;This is the function that drops a snapshot log.
&lt;br&gt;$$;
&lt;br&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-Problemas-com-Pg-snapshot-tp10664989p10664989.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10664988</id>
	<title>A RATOEIRA</title>
	<published>2006-12-12T05:02:42Z</published>
	<updated>2006-12-12T05:02:42Z</updated>
	<author>
		<name>viniciusasousa</name>
	</author>
	<content type="html">&lt;div&gt;&lt;BR&gt;Bom Dia !&lt;/div&gt;  &lt;div&gt;Espero que gosto da mensagem.&lt;/div&gt;  &lt;div&gt;&amp;nbsp;&lt;/div&gt;  &lt;div&gt;Até mais...&lt;/div&gt;&lt;BR&gt;&lt;BR&gt;&lt;div&gt;&lt;font color=&quot;#0000bf&quot;&gt;&lt;em&gt;&lt;strong&gt;Vinicius Amorim de Sousa&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;&lt;br&gt;Analista de Sistemas - Desenvolvedor J2EE&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#0080ff&quot;&gt;&lt;font color=&quot;#0000bf&quot;&gt;(31) 9145 7051 -&amp;nbsp;Belo Horizonte - MG&lt;/font&gt; &lt;/font&gt;  &lt;div&gt;&lt;font color=&quot;#0080ff&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;#32;
		&lt;hr size=1&gt; 
Você quer respostas para suas perguntas? Ou você sabe muito e quer compartilhar seu conhecimento? Experimente o &lt;a href=&quot;http://us.rd.yahoo.com/mail/br/tagline/answers/*http://br.answers.yahoo.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Yahoo! Respostas&lt;/a&gt;!&lt;br /&gt;&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;
&lt;HTML&gt;&lt;HEAD&gt;
&lt;META http-equiv=Content-Type content=&quot;text/html; charset=iso-8859-1&quot;&gt;
&lt;META content=&quot;MSHTML 6.00.2800.1578&quot; name=GENERATOR&gt;&lt;/HEAD&gt;
&lt;BODY&gt;
&lt;DIV&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class=OutlookMessageHeader dir=ltr align=left&gt;&lt;FONT face=Tahoma size=2&gt;&lt;B&gt;Assunto:&lt;/B&gt; A RATOEIRA&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;P&gt;__________________________________________________&lt;BR&gt;Fale com seus amigos de 
graça com o novo Yahoo! Messenger &lt;BR&gt;http://br.messenger.yahoo.com/ 
&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;
&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;ratoeira.pps&lt;/strong&gt; (385K) &lt;a href=&quot;http://old.nabble.com/attachment/10664988/0/ratoeira.pps&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/A-RATOEIRA-tp10664988p10664988.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10607276</id>
	<title>Re: Muitos Processos postgres no Linux</title>
	<published>2006-12-06T05:00:07Z</published>
	<updated>2006-12-06T05:00:07Z</updated>
	<author>
		<name>Alexandre Biancuzzi</name>
	</author>
	<content type="html">&lt;html xmlns:v=&quot;urn:schemas-microsoft-com:vml&quot; xmlns:o=&quot;urn:schemas-microsoft-com:office:office&quot; xmlns:w=&quot;urn:schemas-microsoft-com:office:word&quot; xmlns:st1=&quot;urn:schemas-microsoft-com:office:smarttags&quot; xmlns=&quot;http://www.w3.org/TR/REC-html40&quot;&gt;

&lt;head&gt;
&lt;meta http-equiv=Content-Type content=&quot;text/html; charset=iso-8859-1&quot;&gt;
&lt;meta name=Generator content=&quot;Microsoft Word 11 (filtered medium)&quot;&gt;
&lt;!--[if !mso]&gt;
&lt;style&gt;
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;o:SmartTagType namespaceuri=&quot;urn:schemas-microsoft-com:office:smarttags&quot; name=&quot;PlaceType&quot; /&gt;
&lt;o:SmartTagType namespaceuri=&quot;urn:schemas-microsoft-com:office:smarttags&quot; name=&quot;PlaceName&quot; /&gt;
&lt;o:SmartTagType namespaceuri=&quot;urn:schemas-microsoft-com:office:smarttags&quot; name=&quot;place&quot; /&gt;
&lt;!--[if !mso]&gt;
&lt;style&gt;
st1\:*{behavior:url(#default#ieooui) }
&lt;/style&gt;
&lt;![endif]--&gt;


&lt;/head&gt;

&lt;body lang=PT-BR link=blue vlink=blue&gt;

&lt;div class=Section1&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:
10.0pt;font-family:Verdana;color:blue'&gt;Então...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:
10.0pt;font-family:Verdana;color:blue'&gt;Fechar eu tenho certeza que fecha.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:
10.0pt;font-family:Verdana;color:blue'&gt;Monitorei os processos por um bom tempo.
E todos os processos postgres abrem e fecham. Ou seja, a conexão está abrindo e
fechando.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:
10.0pt;font-family:Verdana;color:blue'&gt;Mas em determinados momentos travam.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:
10.0pt;font-family:Verdana;color:blue'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:
10.0pt;font-family:Verdana;color:blue'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:
10.0pt;font-family:Verdana;color:blue'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;div&gt;

&lt;div class=MsoNormal align=center style='text-align:center'&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span lang=EN-US style='font-size:12.0pt'&gt;

&lt;hr size=2 width=&quot;100%&quot; align=center tabindex=-1&gt;

&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Tahoma&gt;&lt;span lang=EN-US style='font-size:10.0pt;font-family:Tahoma;font-weight:bold'&gt;From:&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=2 face=Tahoma&gt;&lt;span lang=EN-US style='font-size:10.0pt;font-family:Tahoma'&gt;
&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607276&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-bounces@...&lt;/a&gt;
[mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607276&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-bounces@...&lt;/a&gt;] &lt;b&gt;&lt;span style='font-weight:
bold'&gt;On Behalf Of &lt;/span&gt;&lt;/b&gt;Fernando Amorim&lt;br&gt;
&lt;b&gt;&lt;span style='font-weight:bold'&gt;Sent:&lt;/span&gt;&lt;/b&gt; quarta-feira, 6 de dezembro
de 2006 10:50&lt;br&gt;
&lt;b&gt;&lt;span style='font-weight:bold'&gt;To:&lt;/span&gt;&lt;/b&gt; Grupo de Usuários do
PostgreSQL no Brasil&lt;br&gt;
&lt;b&gt;&lt;span style='font-weight:bold'&gt;Subject:&lt;/span&gt;&lt;/b&gt; Re: [PostgreSQL-Brasil]
Muitos Processos postgres no Linux&lt;/span&gt;&lt;/font&gt;&lt;span lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:
12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='margin-bottom:12.0pt'&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:12.0pt'&gt;Meu velho tente fazer o
seguinte, feche a conexão do e depois feche o statemente e o resultset se vc
vinher a utilizar o mesmo.&lt;br&gt;
&lt;br&gt;
outra coisa, eu não tenho certeza que vc ira fechar a conexao com&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;font-family:Verdana;
color:blue'&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;font-family:Verdana;color:blue'&gt;stmt.getConnection().close();&lt;br&gt;
&lt;/span&gt;&lt;/font&gt;&lt;font size=2 color=black face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;font-family:Verdana;color:black'&gt;caso a opção anterior
não funcione tente pegar o Objeto connection e fechar o mesmo com conn.close();&lt;br&gt;
&lt;br&gt;
espero que ajude.&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;span class=gmailquote&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:12.0pt'&gt;On 12/6/06, &lt;b&gt;&lt;span style='font-weight:bold'&gt;Alexandre
Biancuzzi&lt;/span&gt;&lt;/b&gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607276&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;biancuzzi@...&lt;/a&gt;&amp;gt; wrote:&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;div link=blue vlink=blue&gt;

&lt;div&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;Opa!&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;É pra já.&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;public class Datasource {&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
private Statement stmt;&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
private String _NomeBanco;&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
private String _Server;&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
private String _UID;&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
private String _Pass;&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
public Datasource(String NomeBanco, String Server, String UID, &lt;st1:place w:st=&quot;on&quot;&gt;&lt;st1:PlaceName w:st=&quot;on&quot;&gt;String&lt;/st1:PlaceName&gt; &lt;st1:PlaceType w:st=&quot;on&quot;&gt;Pass&lt;/st1:PlaceType&gt;&lt;/st1:place&gt;){&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/font&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;_NomeBanco = NomeBanco;&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
_Server = Server;&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
_UID = UID;&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
_Pass =
Pass;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/font&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;font-family:Verdana;color:blue'&gt;private Connection
AbreConn() throws SQLException, ClassNotFoundException{&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
try{&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Class.forName(&amp;quot;org.postgresql.Driver&amp;quot;);&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
String url = &amp;quot;jdbc:postgresql://&amp;quot; + _Server + &amp;quot;/&amp;quot; +
_NomeBanco + &amp;quot;?charSet=LATIN1&amp;quot;;&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
return DriverManager.getConnection(url, _UID, _Pass);&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/font&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;}catch(SQLException ex){&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
throw new SQLException(&amp;quot;Erro ao abrir a conexão\n &amp;quot; +
ex.getMessage());&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/font&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;font-family:Verdana;color:blue'&gt;public void FechaConn()
throws SQLException{&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
if(!stmt.getConnection().isClosed()){&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
stmt.getConnection().close();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/font&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;}&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/font&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;font-family:Verdana;color:blue'&gt;public ResultSet
getBySQL(String strSQL) throws Exception{&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
try{&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
stmt = AbreConn().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
return
stmt.executeQuery(strSQL);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}catch(Exception ex){&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
throw new Exception(ex.getMessage());&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}finally{&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
FechaConn();&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
public void AddBySQL(String strSQL) throws SQLException,
ClassNotFoundException{&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
try{&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
stmt = AbreConn().createStatement();&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
stmt.executeUpdate(strSQL);&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}catch(SQLException ex){&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
throw new SQLException(ex.getMessage());&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}catch(ClassNotFoundException ex2){&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
throw new SQLException(ex2.getMessage());&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/font&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;}finally{&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
FechaConn();&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}}&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=2 color=blue face=Verdana&gt;&lt;span style='font-size:10.0pt;
font-family:Verdana;color:blue'&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;div&gt;

&lt;div class=MsoNormal align=center style='text-align:center'&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span lang=EN-US style='font-size:12.0pt'&gt;

&lt;hr size=2 width=&quot;100%&quot; align=center&gt;

&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;

&lt;p&gt;&lt;b&gt;&lt;font size=2 face=Tahoma&gt;&lt;span lang=EN-US style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'&gt;From:&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=2 face=Tahoma&gt;&lt;span lang=EN-US style='font-size:10.0pt;font-family:Tahoma'&gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607276&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-bounces@...&lt;/a&gt;
[mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607276&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;brasil-usuarios-bounces@...&lt;/a&gt;]
&lt;b&gt;&lt;span style='font-weight:bold'&gt;On Behalf Of &lt;/span&gt;&lt;/b&gt;Fernando Amorim&lt;br&gt;
&lt;b&gt;&lt;span style='font-weight:bold'&gt;Sent:&lt;/span&gt;&lt;/b&gt; quarta-feira, 6 de dezembro
de 2006 10:25&lt;br&gt;
&lt;b&gt;&lt;span style='font-weight:bold'&gt;To:&lt;/span&gt;&lt;/b&gt; Grupo de Usuários do
PostgreSQL no Brasil&lt;br&gt;
&lt;b&gt;&lt;span style='font-weight:bold'&gt;Subject:&lt;/span&gt;&lt;/b&gt; Re: [PostgreSQL-Brasil]
Muitos Processos postgres no Linux&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;div&gt;&lt;span id=&quot;q_10f57c7e07656a27_3&quot;&gt;

&lt;p&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:12.0pt'&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p style='margin-bottom:12.0pt'&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:12.0pt'&gt;Tive esse problema mais foi devido ao fato das
conexões não estarem sendo fechadas apropriada mente.&lt;br&gt;
&lt;br&gt;
Qual servidor de aplicação vc esta utilizando?&lt;br&gt;
Mostre o codigo que fecha as conexões.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:12.0pt'&gt;On
12/6/06, &lt;b&gt;&lt;span style='font-weight:bold'&gt;Iannsp&lt;/span&gt;&lt;/b&gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=10607276&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;iannsp@...&lt;/a&gt;&amp;gt; wrote:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:12.0pt'&gt;Olá
Alexandre, procure fazer um lenvantamento de quantos usuarios estao&lt;br&gt;
trabalhando comcomitantenmente em seu site, ou seja, a carga de conexoes&lt;br&gt;
ao banco que seu site gera.&lt;br&gt;
cruze estas informações com algum tipo de medição de qual a carga que o &lt;br&gt;
SGDB esta preparado para receber . Esta informação voce pode conseguir&lt;br&gt;
de uma forma aproximada ou até exata, se voce estabelecer um testes&lt;br&gt;
baseado em seu banco de dados usando um aplicativo do proprio postgreSQL &lt;br&gt;
chamado pgbench, em minha pagina tenho um artigo sobre ele em&lt;br&gt;
&lt;a href=&quot;http://www.ianntech.com.br/index.php?Tab=1&amp;amp;item=9&amp;amp;subitem=40&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.ianntech.com.br/index.php?Tab=1&amp;amp;item=9&amp;amp;subitem=40&lt;/a&gt;
e fico &lt;br&gt;
feliz se este artigo puder ajuda-lo.&lt;br&gt;
No mais o que me parecer é que o SGDB esta recebendo mais tarefas do que&lt;br&gt;
esta capacitado para realizar concomitantemente e por isso voce tem o&lt;br&gt;
delay na sua aplicação.&lt;br&gt;
&lt;br&gt;
Alexandre Biancuzzi escreveu:&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Pessoal,&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Estou enfrentando um problema meio grave com o Postgre + java no linux.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Tenho um software de comércio eletrônico que está dando umas travadas. &lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Visualizando os processos no linux, aparecem vários processos postgres&lt;br&gt;
&amp;gt; como o exemplo abaixo:&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; postgres&amp;nbsp;&amp;nbsp;
323&amp;nbsp;&amp;nbsp;0.0&amp;nbsp;&amp;nbsp;0.3&amp;nbsp;&amp;nbsp;16960&amp;nbsp;&amp;nbsp;3712
?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;S&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17:34&amp;nbsp;&amp;nbsp;
0:00&lt;br&gt;
&amp;gt; postgres: MotoStore BaseDados 127.0.0.1(50950) UPDATE waiting&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; postgres&amp;nbsp;&amp;nbsp; 432&amp;nbsp;&amp;nbsp;0.0&amp;nbsp;&amp;nbsp;0.9&amp;nbsp;&amp;nbsp;16960
10204
?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;S&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17:35&amp;nbsp;&amp;nbsp;
0:00&lt;br&gt;
&amp;gt; postgres: MotoStore BaseDados 127.0.0.1(50994) SELECT&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; postgres&amp;nbsp;&amp;nbsp; 436&amp;nbsp;&amp;nbsp;0.0&amp;nbsp;&amp;nbsp;1.0&amp;nbsp;&amp;nbsp;16960
10492
?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;S&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17:35&amp;nbsp;&amp;nbsp;
0:00 &lt;br&gt;
&amp;gt; postgres: MotoStore BaseDados 127.0.0.1(50996) SELECT&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; postgres&amp;nbsp;&amp;nbsp; 441&amp;nbsp;&amp;nbsp;0.0&amp;nbsp;&amp;nbsp;1.0&amp;nbsp;&amp;nbsp;16960
10460
?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;S&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17:35&amp;nbsp;&amp;nbsp;
0:00&lt;br&gt;
&amp;gt; postgres: MotoStore BaseDados 127.0.0.1(50997) SELECT&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; postgres&amp;nbsp;&amp;nbsp; 608&amp;nbsp;&amp;nbsp; 0.0&amp;nbsp;&amp;nbsp;1.0&amp;nbsp;&amp;nbsp;16960
10616
?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;S&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17:36&amp;nbsp;&amp;nbsp;
0:00&lt;br&gt;
&amp;gt; postgres: MotoStore BaseDados 127.0.0.1(51013) SELECT&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; postgres&amp;nbsp;&amp;nbsp; 618&amp;nbsp;&amp;nbsp;0.0&amp;nbsp;&amp;nbsp;1.0&amp;nbsp;&amp;nbsp;16960
10620
?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;S&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17:36&amp;nbsp;&amp;nbsp;
0:00&lt;br&gt;
&amp;gt; postgres: MotoStore BaseDados 127.0.0.1(51014) SELECT&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; postgres&amp;nbsp;&amp;nbsp; 649&amp;nbsp;&amp;nbsp;0.0&amp;nbsp;&amp;nbsp;1.0&amp;nbsp;&amp;nbsp;16960
10460
?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;S&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17:36&amp;nbsp;&amp;nbsp;
0:00&lt;br&gt;
&amp;gt; postgres: MotoStore BaseDados 127.0.0.1(51015) SELECT&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; postgres&amp;nbsp;&amp;nbsp; 653&amp;nbsp;&amp;nbsp;0.0&amp;nbsp;&amp;nbsp;1.0&amp;nbsp;&amp;nbsp;16960
10608
?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;D&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17:36&amp;nbsp;&amp;nbsp;
0:00 &lt;br&gt;
&amp;gt; postgres: MotoStore BaseDados 127.0.0.1(51016) SELECT&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Em certos momentos, o número de processos postgres aumenta&lt;br&gt;
&amp;gt; vertiginosamente (mais 50 processos) que acabam deixando o site muito &lt;br&gt;
&amp;gt; lento. Já procurei sobre o problema e não encontrei nada para ter&lt;br&gt;
&amp;gt; referência.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Já chequei todos os códigos de acesso ao banco e todos abrem e fecham&lt;br&gt;
&amp;gt; a conexão.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Esse é o código que uso para abrir retornar ResultSet e adicionar registro&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; public ResultSet getBySQL(String strSQL) throws Exception{&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try{&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
stmt =&lt;br&gt;
&amp;gt; AbreConn().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,&lt;br&gt;
&amp;gt; ResultSet.CONCUR_READ_ONLY);&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
return stmt.executeQuery(strSQL); &lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}catch(Exception
ex){&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
throw new Exception(ex.getMessage());&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}finally{&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
FechaConn(); &lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void
AddBySQL(String strSQL) throws SQLException,&lt;br&gt;
&amp;gt; ClassNotFoundException{&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try{&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
stmt = AbreConn().createStatement();&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
stmt.executeUpdate(strSQL);&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}catch(SQLException
ex){&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
throw new SQLException(ex.getMessage());&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}catch(ClassNotFoundException
ex2){&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
throw new SQLException(ex2.getMessage ());&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}finally{&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
FechaConn();&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Alguém tem alguma luz sobre o problema?&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Atenciosamente,&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Alexandre Biancuzzi&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; ------------------------------------------------------------------------&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; _______________________________________________&lt;br&gt;
&amp;gt; Grupo de Usuários do PostgreSQL no Brasil&lt;br&gt;
&amp;gt; Antes de perguntar consulte o manual&lt;br&gt;
&amp;gt; &lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/
&lt;/a&gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Para editar suas opções ou sair da lista acesse a página da lista em:&lt;br&gt;
&amp;gt; &lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
--&lt;br&gt;
Ivo Nascimento&lt;br&gt;
Iann tech - Desenvolvendo soluções com performance e segurança&lt;br&gt;
&lt;a href=&quot;http://www.ianntech.com.br&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.ianntech.com.br&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
_______________________________________________&lt;br&gt;
Grupo de Usuários do PostgreSQL no Brasil&lt;br&gt;
Antes de perguntar consulte o manual&lt;br&gt;
&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Para editar suas opções ou sair da lista acesse a página da lista em: &lt;br&gt;
&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:12.0pt'&gt;&lt;br&gt;
&lt;br clear=all&gt;
&lt;br&gt;
-- &lt;br&gt;
Antonio Fernando Amorim&lt;br&gt;
WebDeveloper - SCJP &lt;br&gt;
Cel: 99698502 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;/span&gt;

&lt;p class=MsoNormal style='margin-bottom:12.0pt'&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:12.0pt'&gt;&lt;br&gt;
_______________________________________________&lt;br&gt;
Grupo de Usuários do PostgreSQL no Brasil&lt;br&gt;
Antes de perguntar consulte o manual&lt;br&gt;
&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Para editar suas opções ou sair da lista acesse a página da lista em:&lt;br&gt;
&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:
12.0pt'&gt;&lt;br&gt;
&lt;br clear=all&gt;
&lt;br&gt;
-- &lt;br&gt;
Antonio Fernando Amorim&lt;br&gt;
WebDeveloper - SCJP&lt;br&gt;
Cel: 99698502 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/body&gt;

&lt;/html&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-Muitos-Processos-postgres-no-Linux-tp10607276p10607276.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-10664996</id>
	<title>Procedimento: Backup banco por banco S.O. Windows</title>
	<published>2006-12-05T12:01:21Z</published>
	<updated>2006-12-05T12:01:21Z</updated>
	<author>
		<name>Clésio Braga</name>
	</author>
	<content type="html">Pessoal,
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Boa tarde ! Há alguns dias atrás coloquei uma questão sobre backup banco 
&lt;br&gt;por banco, algumas pessoas retornaram com sugestões interessantes.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Assim, elaborei um procedimento que reuniu algumas dessas sugestões e 
&lt;br&gt;aplicou-se perfeitamente na necessidade do cliente.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Caso alguém tenha um local para anexá-lo, pode ficar a vontade, espero 
&lt;br&gt;que seja útil.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Observação: O procedimento aplica-se ao Sistema Operacional Windows, mas 
&lt;br&gt;com alguns ajustes pode ser utilizado no Linux.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Att,
&lt;br&gt;&lt;br&gt;Clésio Braga
&lt;br&gt;Inovar Consultoria
&lt;br&gt;Uberlândia-MG
&lt;br&gt;&lt;br&gt;_________________________________________________________________
&lt;br&gt;MSN Busca: fácil, rápido, direto ao ponto. &amp;nbsp;&lt;a href=&quot;http://search.msn.com.br&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://search.msn.com.br&lt;/a&gt;&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;Grupo de Usuários do PostgreSQL no Brasil
&lt;br&gt;Antes de perguntar consulte o manual
&lt;br&gt;&lt;a href=&quot;http://pgdocptbr.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgdocptbr.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Para editar suas opções ou sair da lista acesse a página da lista em:
&lt;br&gt;&lt;a href=&quot;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pgfoundry.org/mailman/listinfo/brasil-usuarios&lt;/a&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;Procedimento-BackupPostgrebancoporbanco.doc&lt;/strong&gt; (93K) &lt;a href=&quot;http://old.nabble.com/attachment/10664996/0/Procedimento-BackupPostgrebancoporbanco.doc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Procedimento%3A-Backup-banco-por-banco-S.O.-Windows-tp10664996p10664996.html" />
</entry>

</feed>
