From 535b07873d4680700a2e39857854b9f40e4dcc5d Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Tue, 9 Oct 2007 03:21:00 +0000
Subject: [PATCH] Update Brazilian FAQ.

Euler Taveira de Oliveira
---
 doc/src/FAQ/FAQ_brazilian.html | 125 +++++++++++++++++----------------
 1 file changed, 66 insertions(+), 59 deletions(-)

diff --git a/doc/src/FAQ/FAQ_brazilian.html b/doc/src/FAQ/FAQ_brazilian.html
index 6ada06fa238..c099a0010d5 100644
--- a/doc/src/FAQ/FAQ_brazilian.html
+++ b/doc/src/FAQ/FAQ_brazilian.html
@@ -10,7 +10,7 @@
   alink="#0000ff">
     <H1>Perguntas Frequentes (FAQ) sobre PostgreSQL</H1>
 
-    <P>&Uacute;ltima atualiza&ccedil;&atilde;o: S&aacute;b Out 14 19:08:19 EDT 2006</P>
+    <P>&Uacute;ltima atualiza&ccedil;&atilde;o: Qui Set 27 02:14:24 EDT 2007</P>
 
     <P>Mantenedor atual: Bruce Momjian (<A href=
     "mailto:bruce@momjian.us">bruce@momjian.us</A>)
@@ -43,6 +43,7 @@
      <A href="#item1.11">1.11</A>) Como eu posso aprender <SMALL>SQL</SMALL>?<BR>
      <A href="#item1.12">1.12</A>) Como posso submeter uma corre&ccedil;&atilde;o (patch) ou me juntar a equipe de desenvolvimento?<BR>
      <A href="#item1.13">1.13</A>) Como &eacute; o PostgreSQL comparado a outros <SMALL>SGBD</SMALL>s?<BR>
+		 <A href="#item1.14">1.14</A>) O PostgreSQL gerenciar� as mudan&ccedil;as de hor&aacute;rio devido ao hor&aacute;rio de ver&atilde;o em v&aacute;rios pa&iacute;ses?<BR>
      
 
      <H2 align="center">Perguntas sobre Clientes</H2>
@@ -57,7 +58,7 @@
     <A href="#item3.3">3.3</A>) Como eu ajusto o servidor de banco de dados para obter uma performance melhor?<BR>
     <A href="#item3.4">3.4</A>) Quais caracter&iacute;sticas de depura&ccedil;&atilde;o est&atilde;o dispon&iacute;veis?<BR>
     <A href="#item3.5">3.5</A>) Por que eu recebo <I>"Sorry, too many clients"</I> quando eu tento conectar?<BR>
-	<A href="#item3.6">3.6</A>) Qual &eacute; o processo de atualiza&ccedil;&atilde;o do PostgreSQL?</H3>
+    <A href="#item3.6">3.6</A>) Qual &eacute; o processo de atualiza&ccedil;&atilde;o do PostgreSQL?<BR>
     <A href="#item3.7">3.7</A>) Que tipo de hardware eu devo usar?<BR>
 
 
@@ -70,7 +71,7 @@
      <A href="#item4.6">4.6</A>) Por que minhas consultas est&atilde;o lentas? Por que elas n&atilde;o est&atilde;o utilizando meus &iacute;ndices?<BR>
      <A href="#item4.7">4.7</A>) Como eu vejo como o otimizador de consultas est&aacute; avaliando minha consulta?<BR>
 	 <A href="#item4.8">4.8</A>) Como eu fa&ccedil;o buscas com express&otilde;es regulares e buscas com express&otilde;es regulares sem diferenciar mau&uacute;sculas de min&uacute;sculas? Como eu utilizo um &iacute;ndice para buscas sem distinguir mai&uacute;sculas de min&uacute;sculas?<BR>
-	 <A href="#item4.9">4.9</A>) Em uma consulta, como eu detecto se um campo &eacute; <SMALL>NULL</SMALL>? Como eu posso ordenar por um campo que &eacute; <SMALL>NULL</SMALL> ou n&atilde;o?<BR>
+	 <A href="#item4.9">4.9</A>) Em uma consulta, como eu detecto se um campo &eacute; <SMALL>NULL</SMALL>? Como eu posso concatenar poss&iacute;veis <SMALL>NULL</SMALL>s? Como eu posso ordenar por um campo que &eacute; <SMALL>NULL</SMALL> ou n&atilde;o?<BR>
     <A href="#item4.10">4.10</A>) Qual &eacute; a diferen&ccedil;a entre os v&aacute;rios tipos de dado de caracteres?<BR>
 	<A href="#item4.11.1">4.11.1</A>) Como eu crio um campo serial/auto incremento?<BR>
     <A href="#item4.11.2">4.11.2</A>) Como eu consigo o valor de um campo
@@ -88,7 +89,7 @@
 	does not exist" ao acessar tabelas tempor&aacute;rias em fun&ccedil;&otilde;es PL/PgSQL?<BR>
     <A href="#item4.20">4.20</A>) Quais solu&ccedil;&otilde;es de replica&ccedil;&atilde;o est&atilde;o dispon&iacute;veis?<BR>
 	<A href="#item4.21">4.21</A>) Por que os nomes de minhas tabelas e colunas n&atilde;o
-	s&atilde;o reconhecidos em minha consulta?<BR>
+	s&atilde;o reconhecidos em minha consulta? Por que as mai&uacute;sculas n&atilde;o s&atilde;o preservadas?<BR>
      
 
     <HR>
@@ -97,10 +98,9 @@
 
     <H3 id="item1.1">1.1) O que &eacute; PostgreSQL? Como ele &eacute; pronunciado?</H3>
 
-	<P>PostgreSQL &eacute; pronunciado <I>Post-Gres-Q-L</I>, e &eacute;, &agrave;s vezes, referido apenas como
-	<I>Postgres</I>. Um arquivo de &aacute;udio est&aacute; dispon&iacute;vel em
-	<a href="http://www.postgresql.org/files/postgresql.mp3">formato MP3</a> para
-	aqueles que gostariam de ouvir a pron&uacute;ncia.</P>
+		<P>PostgreSQL &eacute; pronunciado <I>Post-Gres-Q-L</I>, mas tamb&eacute;m pode ser referido apenas como <I>Postgres</I> principalmente em conversa&ccedil;&otilde;es.
+	(Para os curiosos que querem saber como se diz "PostgreSQL", um
+	<a href="http://www.postgresql.org/files/postgresql.mp3">arquivo de &aacute;udio</a> est&aacute; dispon&iacute;vel).</P>
 
 	<P>O PostgreSQL &eacute; um sistema de banco de dados objeto-relacional que tem as
 	caracter&iacute;sticas de sistemas de bancos de dados comerciais tradicionais com
@@ -125,7 +125,7 @@
 	voc&ecirc; precisa &eacute; se inscrever nas listas de discuss&atilde;o e participar das
 	discuss&otilde;es. Veja a <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html">
 	FAQ do desenvolvedor</A> para obter informa&ccedil;&otilde;es como se envolver com o
-	desenvolvimento do PostgreSQL.</P>
+	desenvolvimento do Postgres.</P>
 
     <H3 id="item1.3">1.3) Qual &eacute; a licen&ccedil;a do PostgreSQL?</H3>
 
@@ -169,7 +169,7 @@
 	baseados no NT tais como Win200 SP4, WinXP e Win2003. Um instalador pr&eacute;-empacotado est&aacute;
 	dispon&iacute;vel em <a href= "http://pgfoundry.org/projects/pginstaller">
 	http://pgfoundry.org/projects/pginstaller</a>. Vers&otilde;es do Windows baseadas no MS-DOS
-	(Win95, Win98, WinMe) podem executar o PostgreSQL utilizando o Cygwin.</P>
+	(Win95, Win98, WinMe) podem executar o Postgres utilizando o Cygwin.</P>
 
 	<p>H&aacute; tamb&eacute;m uma vers&atilde;o para o Novell Netware 6 em
 	<a href="http://forge.novell.com">http://forge.novell.com</a>
@@ -181,13 +181,13 @@
 
 	<P>Via navegador web, utilize <a href="http://www.postgresql.org/ftp/">
 	http://www.postgresql.org/ftp/</a> e via ftp, utilize
-	<A href="ftp://ftp.PostgreSQL.org/pub/">
-	ftp://ftp.PostgreSQL.org/pub/</A>.</P>
+	<A href="ftp://ftp.postgresql.org/pub/">
+	ftp://ftp.postgresql.org/pub/</A>.</P>
 
 
     <H3 id="item1.6">1.6) Qual &eacute; a &uacute;ltima vers&atilde;o?</H3>
 
-    <P>A &uacute;ltima vers&atilde;o do PostgreSQL &eacute; a vers&atilde;o 8.1.5.</P>
+    <P>A &uacute;ltima vers&atilde;o do PostgreSQL &eacute; a vers&atilde;o 8.2.5.</P>
 
 	<P>N&oacute;s planejamos lan&ccedil;ar vers&otilde;es novas a cada ano com vers&otilde;es
 	corretivas em alguns meses.</P>
@@ -211,8 +211,8 @@
     <P>Visite o formul&aacute;rio que reporta bugs do PostgreSQL em <A href=
     "http://www.postgresql.org/support/submitbug">http://www.postgresql.org/support/submitbug</A>.</P>
     <P>Verifique tamb&eacute;m o nosso ftp <A href=
-    "ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub</A> para
-    ver se h&aacute; uma vers&atilde;o mais recente do PostgreSQL.</P>
+    "ftp://ftp.postgresql.org/pub">ftp://ftp.postgresql.org/pub</A> para
+    ver se h&aacute; uma vers&atilde;o mais recente do Postgres.</P>
 
 	<P>Bugs submetidos utilizando o formul&aacute;rio ou informado a qualquer
 	lista de discuss&atilde;o do PostgreSQL tipicamente gera uma das seguintes
@@ -220,7 +220,7 @@
 	<ul>
 	<li>N&atilde;o &eacute; um bug e o porqu&ecirc;</li>
 	<li>&Eacute; um bug conhecido e j&aacute; est&aacute; na lista de
-	<A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES (TODO)</A></li>
+	<A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A></li>
 	<li>O bug foi corrigido na vers&atilde;o atual</li>
 	<li>O bug foi corrigido mas n&atilde;o foi empacotado em um vers&atilde;o oficial</li>
 	<li>Um pedido foi feito para obter informa&ccedil;&otilde;es detalhadas:
@@ -236,7 +236,7 @@
 		<ul>
 	<li>Uma corre&ccedil;&atilde;o &eacute; criada e ser&aacute; inclu&iacute;da na pr&oacute;xima vers&atilde;o</li>
 	<li>O bug n&atilde;o pode ser corrigido imediatamente e &eacute; adicionado
-	a lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES (TODO)</A></li>
+	a lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A></li>
 	</ul>
 	</li>
 	</ul>
@@ -245,13 +245,13 @@
 	ou funcionalidades ausentes?</H3>
 
 	<P>O PostgreSQL suporta um subconjunto extendido do <SMALL>SQL:2003</SMALL>.
-	Veja nossa lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES (TODO)</A>
+	Veja nossa lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A>
 	que cont&eacute;m bugs conhecidos, funcionalidades ausentes e planos futuros.</P>
 
 	<P>Uma solicita&ccedil;&atilde;o de funcionalidade geralmente resulta em uma das
 	seguintes respostas:</P>
 	<ul>
-	<li>A funcionalidade j&aacute; est&aacute; na lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES (TODO)</A></li>
+	<li>A funcionalidade j&aacute; est&aacute; na lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A></li>
 	<li>A funcionalidade n&atilde;o &eacute; desej&aacute;vel porque:
 		<ul>
 		<li>Ela duplica uma funcionalidade existente que j&aacute; segue o
@@ -262,16 +262,16 @@
 		</ul>
 	</li>
 	<li>A nova funcionalidade &eacute; adicionada a lista de
-	<A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES (TODO)</A></li>
+	<A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A></li>
 	</ul>
 
 	<P>O PostgreSQL n&atilde;o utiliza sistema de acompanhamento de bugs porque
 	n&oacute;s achamos mais eficiente responder diretamente o e-mail e manter a
-	lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES (TODO)</A>
+	lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A>
 	atualizada. Na pr&aacute;tica, bugs n&atilde;o duram muito no programa; e bugs que afetam
 	uma grande quantidade de usu&aacute;rios s&atilde;o corrigidos rapidamente. O &uacute;nico lugar
 	para encontrar todas as mudan&ccedil;as, melhorias e corre&ccedil;&otilde;es em uma vers&atilde;o do
-	PostgreSQL &eacute; ler as mensagens de log do
+	Postgres &eacute; ler as mensagens de log do
 	<a href="http://www.postgresql.org/developer/sourcecode/">CVS</a>. At&eacute; mesmo
 	as notas de lan&ccedil;amento n&atilde;o listam todas as mudan&ccedil;as feitas no programa.</P>
 
@@ -280,7 +280,7 @@
 	<P>O PostgreSQL inclui vasta documenta&ccedil;&atilde;o, incluindo um manual extenso,
 	p&aacute;ginas de manuais (man pages) e alguns exemplos teste. Veja o diret&oacute;rio
 	<I>/doc</I>. Voc&ecirc; tamb&eacute;m pode pesquisar os manuais online em <A href=
-	"http://www.PostgreSQL.org/docs">http://www.PostgreSQL.org/docs</A>.
+	"http://www.postgresql.org/docs">http://www.postgresql.org/docs</A>.
 	</P>
 
 	<P>H&aacute; dois livros sobre PostgreSQL dispon&iacute;veis online em <A href=
@@ -290,7 +290,8 @@
 	H&aacute; uma lista de livros sobre PostgreSQL dispon&iacute;veis para compra. Um dos mais
 	populares &eacute; o do Korry Douglas. Uma lista de an&aacute;lise sobre os livros pode ser
 	encontrada em <A href=
-	"http://techdocs.postgresql.org/techdocs/bookreviews.php">http://techdocs.PostgreSQL.org/techdocs/bookreviews.php</A>.
+	"http://techdocs.postgresql.org/techdocs/bookreviews.php">http://techdocs.postgresql.org/techdocs/bookreviews.php</A>.
+	H&aacute; tamb&eacute;m uma cole&ccedil;&atilde;o de artigos t&eacute;cnicos sbore PostgreSQL em <A href="http://techdocs.postgresql.org/">http://techdocs.postgresql.org/</A>.</P>
 
 	<P>O programa cliente de linha de comando <I>psql</I> tem alguns comandos \d para
 	mostrar informa&ccedil;&otilde;es sobre tipos, operadores, fun&ccedil;&otilde;es, agrega&ccedil;&otilde;es, etc. - utilize \?
@@ -352,7 +353,7 @@
 
       <DT><B>Suporte</B></DT>
 
-      <DD>Nossas listas de discuss&atilde;o fornecem contato com um grupo de desenvolvedores e usu&aacute;rios para ajudar a resolver muitos problemas encontrados. Enquanto n&oacute;s n&atilde;o podemos garantir o conserto, <SMALL>SGBD</SMALL>s comerciais nem sempre fornecem tamb&eacute;m. Com acesso direto aos desenvolvedores, a comunidade de usu&aacute;rios, manuais e o c&oacute;digo fonte faz com que o suporte do PostgreSQL seja superior ao de outros <SMALL>SGBD</SMALL>s. H&aacute; suporte comercial por incidente dispon&iacute;veis para aqueles que precisam de um. (Veja <A href="#item1.7">se&ccedil;&atilde;o 1.7 da FAQ</A>.)<BR>
+      <DD>Nossas listas de discuss&atilde;o fornecem contato com um grupo de desenvolvedores e usu&aacute;rios para ajudar a resolver muitos problemas encontrados. Enquanto n&oacute;s n&atilde;o podemos garantir o conserto, <SMALL>SGBD</SMALL>s comerciais nem sempre fornecem tamb&eacute;m. Com acesso direto aos desenvolvedores, a comunidade de usu&aacute;rios, manuais e o c&oacute;digo fonte faz com que o suporte do PostgreSQL seja superior ao de outros <SMALL>SGBD</SMALL>s. H&aacute; suporte comercial por incidente dispon&iacute;veis para aqueles que precisam de um. (Veja <A href="#item1.7">se&ccedil;&atilde;o 1.7 da FAQ</A>).<BR>
       <BR>
       </DD>
 
@@ -363,6 +364,10 @@
       </DD>
     </DL>
 
+		<H3 id="item1.14">1.14) O PostgreSQL gerenciar&aacute; mudan&ccedil;as no hor&aacute;rio devido ao hor&aacute;rio de ver&atilde;o em v&aacute;rios pa&iacute;ses?</H3>
+
+		<P>Mudan&ccedil;as no hor&aacute;rio de ver&atilde;o dos USA foram inclu&iacute;das nas vers&otilde;es 8.0 .[4+] do PostgreSQL e em todas as vers&otilde;es grandes, i.e. 8.1. Mudan&ccedil;as no Canad&aacute; e Austr&aacute;lia Oeste foram inclu&iacute;das na 8.0.[10+], 8.1.[6+] e em todas as vers&otilde;es grandes subsequentes. Vers&otilde;es do PostgreSQL anteriores a 8.0 utilizam o banco de dados de zona hor&aacute;ria do sistema operacional para informa&ccedil;&otilde;es sobre hor&aacute;rio de ver&atilde;o.</P>
+
     <HR>
 
     <H2 align="center">Perguntas sobre Clientes</H2>
@@ -482,15 +487,12 @@
 
 	<H3 id="item3.6">3.6) Qual &eacute; o processo de atualiza&ccedil;&atilde;o do PostgreSQL?</H3>
 
-	<P>O time do PostgreSQL faz somente pequenas mudan&ccedil;as entre vers&otilde;es corretivas, ent&atilde;o atualizar da vers&atilde;o 7.4.8 para 7.4.9 n&atilde;o requer uma exporta&ccedil;&atilde;o e uma importa&ccedil;&atilde;o; basta para o servidor de banco de dados, instalar os bin&aacute;rios atualizados e reiniciar o servidor.</P>
-
-	<P>Todos os usu&aacute;rios devem atualizar para as vers&otilde;es corretivas mais recentes 
-	assim que elas estiverem dispon&iacute;veis. Enquanto cada atualiza&ccedil;&atilde;o tem algum risco,
-	vers&otilde;es corretivas do PostgreSQL s&atilde;o projetadas para corrigir somente bugs comuns
-	com um risco m&iacute;nimo. A comunidade considera <i>n&atilde;o</i> atualizar mais
-	perigoso do que atualizar.</P>
-
-	<P>Vers&otilde;es novas (i.e. da 7.3 para 7.4) geralmente muda-se o formato interno das tabelas de sistema e dos arquivo de dados. Essas mudan&ccedil;as geralmente s&atilde;o complexas, ent&atilde;o n&oacute;s n&atilde;o mantemos compatibilidade para os arquivos de dados. Uma exporta&ccedil;&atilde;o/importa&ccedil;&atilde;o de um banco de dados &eacute; necess&aacute;ria para atualiza&ccedil;&otilde;es entre vers&otilde;es.</P>
+	<P>Veja <a
+	href="http://www.postgresql.org/support/versioning">http://www.postgresql.org/support/versioning</a>
+	para discuss�o geral sobre atualiza��es e <a href=
+	"http://www.postgresql.org/docs/current/static/install-upgrading.html">
+	http://www.postgresql.org/docs/current/static/install-upgrading.html</a>
+	para instru&ccedil;&otilde;es espec&iacute;ficas.</P>
 
     <H3 id="item3.7">3.7) Que tipo de hardware eu devo usar?</H3>
 
@@ -589,29 +591,29 @@
 	melhor garantida por um &iacute;ndice de uma fun&ccedil;&atilde;o de um hash MD5 de uma coluna longa, e
 	indexa&ccedil;&atilde;o de texto longo permite a busca de palavras dentro da coluna.</P>
 
-    <H3 name="item4.5">4.5) Quanto espa&ccedil;o em disco &eacute; necess&aacute;rio para armazenar dados de um arquivo texto?</H3>
+    <H3 id="item4.5">4.5) Quanto espa&ccedil;o em disco &eacute; necess&aacute;rio para armazenar dados de um arquivo texto?</H3>
 
     <P>Um banco de dados PostgreSQL ir&aacute; requerer at&eacute; cinco vezes a quantidade de espa&ccedil;o requerida para armazenar dados em um arquivo texto.</P>
 
-    <P>Como um exemplo, considere um arquivo com 100.000 linhas contendo um inteiro e uma descri&ccedil;&atilde;o em cada linha. Suponha que o tamanho m&eacute;dio da descri&ccedil;&atilde;o &eacute; de vinte bytes. O arquivo ter&aacute; 2,8 MB. O tamanho do arquivo do banco de dados PostgreSQL que cont&eacute;m esses dados pode ser estimado em 5,6 MB:</P>
+    <P>Como um exemplo, considere um arquivo com 100.000 linhas contendo um inteiro e uma descri&ccedil;&atilde;o em cada linha. Suponha que o tamanho m&eacute;dio da descri&ccedil;&atilde;o &eacute; de vinte bytes. O arquivo ter&aacute; 2,8 MB. O tamanho do arquivo do banco de dados PostgreSQL que cont&eacute;m esses dados pode ser estimado em 5,2 MB:</P>
 <PRE>
-    28 bytes: cada cabe&ccedil;alho de registro (aproximadamente)
+    24 bytes: cada cabe&ccedil;alho de registro (aproximadamente)
     24 bytes: um campo int e um campo texto
    + 4 bytes: ponteiro na p&aacute;gina para a tupla
    -------------------------------------------
-    56 bytes por registro
+    52 bytes por registro
 
-   O tamanho de uma p&aacute;gina de dados no PostgreSQL &eacute; 8192 bytes (8 KB), ent&atilde;o:
+   O tamanho de uma p&aacute;gina de dados no Postgres &eacute; 8192 bytes (8 KB), ent&atilde;o:
 
    8192 bytes por p&aacute;gina
-   ------------------------   =  146 registros por p&aacute;gina do banco de dados (arredondado para baixo)
-     56 bytes por registro
+   ------------------------   =  158 registros por p&aacute;gina do banco de dados (arredondado para baixo)
+     52 bytes por registro
 
    100000 registros de dados
-   ----------------------------  =  685 p&aacute;ginas do banco de dados (arredondado para cima)
-      146 registros por p&aacute;gina
+   ----------------------------  =  633 p&aacute;ginas do banco de dados (arredondado para cima)
+      158 registros por p&aacute;gina
 
-685 p&aacute;ginas do banco de dados * 8192 bytes por p&aacute;gina  =  5.611.520 bytes (5,6 MB)
+633 p&aacute;ginas do banco de dados * 8192 bytes por p&aacute;gina  =  5.185.536 bytes (5,2 MB)
 </PRE>
 
 	<P>&Iacute;ndices n&atilde;o requerem muito espa&ccedil;o, mas cont&eacute;m
@@ -704,7 +706,7 @@
 	Para for&ccedil;ar uma letra mai&uacute;scula ou min&uacute;scula a ser armazenada na coluna, utilize
 	uma restri&ccedil;&atilde;o <SMALL>CHECK</SMALL> ou um gatilho.</P>
 
-	<H3 id="item4.9">4.9) Em uma consulta, como eu detecto se um campo &eacute; <SMALL>NULL</SMALL>? Como eu posso ordenar por um campo que &eacute; <SMALL>NULL</SMALL> ou n&atilde;o?</H3>
+	<H3 id="item4.9">4.9) Em uma consulta, como eu detecto se um campo &eacute; <SMALL>NULL</SMALL>? Como eu posso concatenar poss&iacute;veis <SMALL>NULL</SMALL>s? Como eu posso ordenar por um campo que &eacute; <SMALL>NULL</SMALL> ou n&atilde;o?</H3>
 
     <P>Voc&ecirc; testa a coluna com <SMALL>IS NULL</SMALL> e <SMALL>IS
     NOT NULL</SMALL>, como a seguir:</P>
@@ -715,6 +717,12 @@
    WHERE col IS NULL;
 </PRE>
 
+	<P>Para concatenar com poss&iacute;veis <SMALL>NULL</SMALL>s, utilize <I>COALESCE()</I>, assim:</P>
+<PRE>
+   SELECT COALESCE(col1, '') || COALESCE(col2, '')
+   FROM tab
+</PRE>
+
 	<P>Para ordenar pelo status <SMALL>NULL</SMALL>, utilize os modificadores
 	<SMALL>IS NULL</SMALL> e <SMALL>IS NOT NULL</SMALL> na sua cl&aacute;usula
 	<SMALL>ORDER BY</SMALL>. Coisas que s&atilde;o <I>verdadeiro</I> ser&atilde;o ordenadas acima
@@ -802,7 +810,7 @@ comprimento</TD></TR>
     novo_id = execute("SELECT currval('pessoa_id_seq')");
 </PRE>
 
-    <H3 name="4.11.3">4.11.3) <I>currval()</I> n&atilde;o lida com condi&ccedil;&atilde;o de corrida com outros usu&aacute;rios?</H3>
+    <H3 id="item4.11.3">4.11.3) <I>currval()</I> n&atilde;o lida com condi&ccedil;&atilde;o de corrida com outros usu&aacute;rios?</H3>
 
     <P>N&atilde;o. <I>currval()</I> retorna o valor atual atribuido pela sua sess&atilde;o, e n&atilde;o por todas as sess&otilde;es.</P>
 
@@ -810,13 +818,12 @@ comprimento</TD></TR>
 
     <P>Para melhorar a concorr&ecirc;ncia, valores da sequ&ecirc;ncia s&atilde;o atribu&iacute;dos a transa&ccedil;&otilde;es correntes e n&atilde;o s&atilde;o travados at&eacute; que a transa&ccedil;&atilde;o seja finalizada. Isso causa intervalos na numera&ccedil;&atilde;o por causa de transa&ccedil;&otilde;es abortadas.</P>
 
-    <H3 id="4.16">4.16) O que &eacute; um <SMALL>OID</SMALL>? O que &eacute; um <SMALL>CTID</SMALL>?</H3>
+    <H3 id="item4.12">4.12) O que &eacute; um <SMALL>OID</SMALL>? O que &eacute; um <SMALL>CTID</SMALL>?</H3>
 
-	<P>Cada registro que &eacute; criado no PostgreSQL recebe um <SMALL>OID</SMALL> &uacute;nico
-	a menos que seja criado com <SMALL>WITHOUT OIDS</SMALL>.
+	<P>Se uma tabela &eacute; criada com <SMALL>WITH OIDS</SMALL>, cada registro recebe um <SMALL>OID</SMALL> &uacute;nico.
 	O<SMALL>ID</SMALL>s s&atilde;o automaticamente atribu&iacute;dos como inteiros de 4 bytes
 	que s&atilde;o &uacute;nicos ao longo de toda instala&ccedil;&atilde;o. Contudo, eles s&atilde;o limitados em
-	4 bilh&otilde;es, e ent&atilde;o os O<SMALL>ID</SMALL>s come&ccedil;am a ser duplicados. O PostgreSQL
+	4 bilh&otilde;es e, ent&atilde;o, os O<SMALL>ID</SMALL>s come&ccedil;am a ser duplicados. O PostgreSQL
 	utiliza <SMALL>OID</SMALL>s para ligar as tabelas do sistema.</P>
 
 	<P>Para numerar registros nas tabelas do usu&aacute;rios, &eacute; melhor utilizar
@@ -852,7 +859,7 @@ comprimento</TD></TR>
 	CREATE TABLE teste (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
 </PRE>
 
-    <H3 id="item4.23">4.23) Como eu fa&ccedil;o uma jun&ccedil;&atilde;o externa (outer join)?</H3>
+    <H3 id="item4.16">4.16) Como eu fa&ccedil;o uma jun&ccedil;&atilde;o externa (outer join)?</H3>
 
     <P>PostgreSQL suporta jun&ccedil;&otilde;es externas utilizando a sintaxe padr&atilde;o do SQL. Aqui temos dois exemplos:</P>
 <PRE>
@@ -874,7 +881,7 @@ comprimento</TD></TR>
 	A palavra <SMALL>OUTER</SMALL> &eacute; opcional e &eacute; assumida nas
 	jun&ccedil;&otilde;es <SMALL>LEFT</SMALL>, <SMALL>RIGHT</SMALL> e <SMALL>FULL</SMALL>.
 	Jun&ccedil;&otilde;es ordin&aacute;rias s&atilde;o chamadas jun&ccedil;&otilde;es
-	naturais (<SMALL>INNER</SMALL>).</P>
+	internas (<SMALL>INNER</SMALL>).</P>
 
 	<H3 id="item4.17">4.17) Como eu fa&ccedil;o consultas utilizando m&uacute;ltiplos bancos de dados?</H3>
 
@@ -891,8 +898,8 @@ comprimento</TD></TR>
     <H3 id="item4.18">4.18) Como eu retorno m&uacute;ltiplos registros ou colunas de uma fun&ccedil;&atilde;o?</H3>
 
 	<P>&Eacute; f&aacute;cil utilizando fun&ccedil;&otilde;es que retornam conjunto,
-	<a href="http://techdocs.postgresql.org/guides/SetReturningFunctions">
-	http://techdocs.postgresql.org/guides/SetReturningFunctions</a>.</P>
+	<a href="http://www.postgresql.org/docs/techdocs.17">
+	http://www.postgresql.org/docs/techdocs.17</a>.</P>
 
 	<H3 id="item4.19">4.19) Por que eu obtenho erros "relation with OID ######
 	does not exist" ao acessar tabelas tempor&aacute;rias em fun&ccedil;&otilde;es PL/PgSQL?</H3>
@@ -912,22 +919,22 @@ comprimento</TD></TR>
 	<P>Replica&ccedil;&atilde;o com m&uacute;ltiplos mestres permite que consultas leitura/escrita sejam
 	enviadas para m&uacute;ltiplos computadores replicadores. Esta capacidade tamb&eacute;m tem
 	um s&eacute;rio impacto na performance por causa da necessidade de sincronizar as mudan&ccedil;as
-	entre os servidores. <A href="http://pgfoundry.org/projects/pgcluster/">Pgcluster</a>
+	entre os servidores. <A href="http://pgfoundry.org/projects/pgcluster/">PGCluster</a>
 	&eacute; a solu&ccedil;&atilde;o mais popular dispon&iacute;vel livremente para PostgreSQL.</P>
 
 	<P>H&aacute; tamb&eacute;m solu&ccedil;&otilde;es de replica&ccedil;&atilde;o comerciais e baseadas em hardware dispon&iacute;veis
 	que suportam uma variedade de modelos de replica&ccedil;&atilde;o.</P>
 
 	<H3 id="item4.21">4.21) Por que os nomes de minhas tabelas e colunas n&atilde;o
-	s&atilde;o reconhecidos em minha consulta?</H3>
+	s&atilde;o reconhecidos em minha consulta? Por que as mai&uacute;sculas n&atilde;o s&atilde;o preservadas?</H3>
 
-	<P>O caso mais comum &eacute; o uso de aspas ao redor dos nomes da tabela ou coluna
+	<P>A causa mais comum de nomes desconhecidos &eacute; o uso de aspas ao redor dos nomes da tabela ou coluna
 	durante a cria&ccedil;&atilde;o da tabela. Ao utilizar aspas, nomes de tabela e coluna
 	(chamados de identificadores) s&atilde;o armazenados <a
-	href="http://www.postgresql.org/docs/8.0/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS">
+	href="http://www.postgresql.org/docs/current/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS">
 	como especificado</a>, significando que voc&ecirc; deve utilizar aspas quando se
 	referir aos nomes na consulta. Algumas interfaces, como pgAdmin,
-	automaticamente coloca aspas nos identificadores durante a cria&ccedil;&atilde;o da tabela.
+	automaticamente colocam aspas nos identificadores durante a cria&ccedil;&atilde;o da tabela.
 	Ent&atilde;o, para identificadores serem reconhecidos, voc&ecirc; deve:
 	<UL>
 	<LI>Evitar colocar aspas no identificador ao criar tabelas</LI>
-- 
GitLab