]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Backpatch FAQ entry for null concatenation.
authorBruce Momjian <bruce@momjian.us>
Mon, 11 Dec 2006 22:48:08 +0000 (22:48 +0000)
committerBruce Momjian <bruce@momjian.us>
Mon, 11 Dec 2006 22:48:08 +0000 (22:48 +0000)
doc/FAQ
doc/FAQ_AIX
doc/FAQ_HPUX
doc/FAQ_IRIX
doc/FAQ_MINGW
doc/FAQ_SCO
doc/FAQ_Solaris
doc/src/FAQ/FAQ.html
doc/src/sgml/ref/psql-ref.sgml

diff --git a/doc/FAQ b/doc/FAQ
index 701e7603fd864e239c859502506f7a6c300949c0..f539aa3d031cb252da7b3060afd2e5cc10460eb3 100644 (file)
--- a/doc/FAQ
+++ b/doc/FAQ
@@ -1,7 +1,7 @@
 
                 Frequently Asked Questions (FAQ) for PostgreSQL
                                        
-   Last updated: Sat Dec 2 07:15:34 EST 2006
+   Last updated: Mon Dec 11 17:45:54 EST 2006
    
    Current maintainer: Bruce Momjian (bruce@momjian.us)
    
@@ -59,8 +59,9 @@
    4.8) How do I perform regular expression searches and case-insensitive
    regular expression searches? How do I use an index for
    case-insensitive searches?
-   4.9) In a query, how do I detect if a field is NULL? How can I sort on
-   whether a field is NULL or not?
+   4.9) In a query, how do I detect if a field is NULL? How do I
+   concatenate possible NULLs? How can I sort on whether a field is NULL
+   or not?
    4.10) What is the difference between the various character types?
    4.11.1) How do I create a serial/auto-incrementing field?
    4.11.2) How do I get the value of a SERIAL insert?
    upper and lowercase characters, it can not have identical values that
    differ only in case. To force a particular case to be stored in the
    column, use a CHECK constraint or a trigger.
+   4.9) In a query, how do I detect if a field is NULL? How do I
+   concatenate possible NULLs? How can I sort on whether a field is NULL
+   or not?
    
-  4.9) In a query, how do I detect if a field is NULL? How can I sort on
-  whether a field is NULL or not?
+  4.9) In a query, how do I detect if a field is NULL? How do I concatenate
+  possible NULLs? How can I sort on whether a field is NULL or not?
   
    You test the column with IS NULL and IS NOT NULL, like this:
    SELECT *
    FROM tab
    WHERE col IS NULL;
 
+   To concatentate with possible NULLs, use COALESCE(), like this:
+   SELECT COALESCE(col1, '') || COALESCE(col2, '')
+   FROM tab
+
    To sort by the NULL status, use the IS NULL and IS NOT NULL modifiers
    in your ORDER BY clause. Things that are true will sort higher than
    things that are false, so the following will put NULL entries at the
index c4211cbb1fcb003d873384d2d5865cef900367ed..35183a0fee911bc6a5166bb03560c34c7bd0a44a 100644 (file)
@@ -1,5 +1,22 @@
+=======================================================
+Frequently Asked Questions (FAQ) for PostgreSQL
+AIX Specific
+TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
+=======================================================
+Last updated:        $Date: 2006/12/11 22:48:07 $
+
+Topics
+
+- AIX 4.3.2 Port Report
+- AIX 5.3 Additional Information
+- AIX, readline, and postgres 8.1.x:
+- AIX Memory Management: An Overview
+- Statistics Collector Fun on AIX
+
+-----
+
 From: Zeugswetter Andreas <ZeugswetterA@spardat.at>
-$Date: 2006/09/20 02:10:11 $
+$Date: 2006/12/11 22:48:07 $
 
 On AIX 4.3.2 PostgreSQL compiled with the native IBM compiler xlc
 (vac.C 5.0.1) passes all regression tests.  Other versions of OS and
index 227adbefd59cea330c95dfad6b3d17f4067fdadf..3df23654e377fc3ea66087b76c09c0c32da88eff 100644 (file)
@@ -1,9 +1,9 @@
 =======================================================
-Frequently Asked Questions (FAQ) for PostgreSQL 7.3
+Frequently Asked Questions (FAQ) for PostgreSQL
 HP-UX Specific
 TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
 =======================================================
-last updated:           $Date: 2006/07/19 02:37:00 $
+last updated:           $Date: 2006/12/11 22:48:07 $
 
 current maintainer:     Tom Lane (tgl@sss.pgh.pa.us)
 original author:        Tom Lane (tgl@sss.pgh.pa.us)
@@ -21,7 +21,7 @@ Section 1:      Installing PostgreSQL
 
 1.1)   What do I need to install PostgreSQL on HP-UX?
 
-PostgreSQL 7.3 should work on Series 700/800 PA-RISC machines running
+PostgreSQL 7.3+ should work on Series 700/800 PA-RISC machines running
 HP-UX 10.X or 11.X, given appropriate system patch levels and build
 tools.  At least one developer routinely tests on HPUX 10.20 and we
 have reports of successful installations on HPUX 11.00 and 11.11.
index ad2fef58722d875cf293d20b2fc8fd6aba3fb6ee..98a473f34aeb914a6780fcf199b1a93cec2b19f2 100644 (file)
@@ -3,7 +3,7 @@ Frequently Asked Questions (FAQ) for PostgreSQL
 IRIX Specific
 TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
 =======================================================
-last updated:           $Date: 2002/11/11 20:04:05 $
+last updated:           $Date: 2006/12/11 22:48:07 $
 
 current maintainer:     Luis Amigo (lamigo@atc.unican.es)
 original author:        Luis Amigo (lamigo@atc.unican.es)
index 88e6d90850ded7577bffb1873b2f76e12d9e8208..6a227978b794694c899fc86ea2df888834af5bf8 100644 (file)
@@ -8,14 +8,14 @@
    The most recent version of this document can be viewed at
    http://www.postgresql.org/docs/faqs.FAQ_MINGW.html.
    
-   The FAQ for running PostgreSQL on native Win32 is at
-   http://pginstaller.projects.postgresql.org/FAQ_windows.html.
+   The FAQ Running & Installing PostgreSQL On Native Windows is at
+   http://pginstaller.projects.postgresql.org/faq/FAQ_windows.html.
    
    The native Win32 port is built from source using MinGW tools.  There
    is also a precompiled binary installer called pginstaller which you
    can find at from http://pgfoundry.org/projects/pginstaller.  It is a
    fully native build and uses no additional software like MinGW. The
-   ready-made instlaler files are available on the main PostgreSQL ftp
+   ready-made installer files are available on the main PostgreSQL ftp
    servers in the binary/win32 directory.
    
 Tools for Building Binaries
index 02da4506d4c71189cefc8f1b3a506ed7f0c98bf4..ce2cbea3638b1816ef53ce3eac10655e48aa24fb 100644 (file)
@@ -1,14 +1,16 @@
-============================================================
-Frequently Asked Questions (FAQ) for PostgreSQL 7.3
-SCO UnixWare and OpenServer specific
-to be read in conjunction with the installation instructions
-============================================================
-last updated:           $Date: 2004/08/04 21:33:39 $
+=======================================================
+Frequently Asked Questions (FAQ) for PostgreSQL
+IRIX Specific
+TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
+=======================================================
+last updated:           $Date: 2006/12/11 22:48:07 $
 
 current maintainer:     Billy G. Allie (Bill.Allie@mug.org)
 original author:        Andrew Merrill (andrew@compclass.com)
 
 
+Consult http://buildfarm.postgresql.org/ for latest information.
+
 PostgreSQL 8.0 can be built on SCO UnixWare 7 and SCO OpenServer 5.
 On OpenServer, you can use either the OpenServer Development Kit or 
 the Universal Development Kit.
index 8db10a614ba9d50cc5a4d9eab8c38bc221de5391..e44ffa051350eb7e3ef4191ef63dc643a97b7ba5 100644 (file)
@@ -3,7 +3,7 @@ Frequently Asked Questions (FAQ) for PostgreSQL
 Sun Solaris specific
 To be read in conjunction with the installation instructions.
 ============================================================
-Last updated:        $Date: 2006/12/03 16:43:05 $
+Last updated:        $Date: 2006/12/11 22:48:07 $
 
 
 Contents:
index 301903a51140520d8966733928d034b91dc73a58..b04db6b47483d863d503fd0e8a1814a9efb17906 100644 (file)
@@ -10,7 +10,7 @@
   alink="#0000ff">
     <H1>Frequently Asked Questions (FAQ) for PostgreSQL</H1>
 
-    <P>Last updated: Sat Dec  2 07:15:34 EST 2006</P>
+    <P>Last updated: Mon Dec 11 17:45:54 EST 2006</P>
 
     <P>Current maintainer: Bruce Momjian (<A href=
     "mailto:bruce@momjian.us">bruce@momjian.us</A>)
@@ -42,7 +42,7 @@
      development team?<BR>
      <A href="#item1.13">1.13</A>) How does PostgreSQL compare to other
     <SMALL>DBMS</SMALL>s?<BR>
-     
+
 
     <H2 align="center">User Client Questions</H2>
     <A href="#item2.1">2.1</A>) What interfaces are available for
@@ -51,7 +51,7 @@
     PostgreSQL with Web pages?<BR>
      <A href="#item2.3">2.3</A>) Does PostgreSQL have a graphical user
     interface?<BR>
-     
+
 
     <H2 align="center">Administrative Questions</H2>
     <A href="#item3.1">3.1</A>) How do I install PostgreSQL somewhere other
@@ -86,8 +86,8 @@
     searches and case-insensitive regular expression searches? How do I
     use an index for case-insensitive searches?<BR>
      <A href="#item4.9">4.9</A>) In a query, how do I detect if a field
-    is <SMALL>NULL</SMALL>?  How can I sort on whether a field is <SMALL>
-    NULL</SMALL> or not?<BR>
+    is <SMALL>NULL</SMALL>?  How do I concatenate possible <SMALL>NULL</SMALL>s?
+    How can I sort on whether a field is <SMALL> NULL</SMALL> or not?<BR>
      <A href="#item4.10">4.10</A>) What is the difference between the
     various character types?<BR>
      <A href="#item4.11.1">4.11.1</A>) How do I create a
        </ul>
     </li>
     </ul>
-       
+
     <H3 id="item1.9">1.9) How do I find out about known bugs or
     missing features?</H3>
 
     <li>The new feature is added to the
     <A href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A> list</li>
     </ul>
-    
+
     <P>PostgreSQL does not use a bug tracking system because we find
     it more efficient to respond directly to email and keep the
     <A href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A>
     <a href="http://www.postgresql.org/developer/sourcecode/">CVS</a>
     log messages.  Even the release notes do not list every change
     made to the software.</P>
-    
+
     <H3 id="item1.10">1.10) What documentation is available?</H3>
 
     <P>PostgreSQL includes extensive documentation, including a large
     "http://mysite.verizon.net/Graeme_Birchall/id1.html">http://mysite.verizon.net/Graeme_Birchall/id1.html</A>
     </LI>
     </UL>
-    
+
     <H3 id="item1.12">1.12) How do I submit a patch or join the development
     team?</H3>
 
 
     <P>There are three major areas for potential performance
     improvement:</P>
-    
+
     <DL>
     <DT><B>Query Changes</B></DT>
 
     PostgreSQL minor releases are designed to fix only common bugs
     with the least risk.  The community considers <i>not</i> upgrading
     more risky that upgrading.</P>
-    
+
     <P>Major releases (e.g. from 7.3 to 7.4) often change the internal
     format of system tables and data files. These changes are often complex,
     so we don't maintain backward compatibility for data files. A dump/reload
 
     <P>There are also system tables beginning with <I>pg_</I> that describe
     these too.</P>
-    
+
     <P>Use <I>psql -l</I> will list all databases.</P>
 
     <P>Also try the file <I>pgsql/src/tutorial/syscat.source</I>. It
 </PRE>
     <P>You might then want to do <I>VACUUM FULL tab</I> to reclaim the
     disk space used by the expired rows.</P>
-    
+
     <H3 id="item4.4">4.4) What is the maximum size for a row, a
     table, and a database?</H3>
 
@@ -735,7 +735,7 @@ table?</TD><TD>unlimited</TD></TR>
 
     <P><SMALL>NULL</SMALL>s are stored as bitmaps, so they
     use very little space.</P>
-    
+
     <H3 id="item4.6">4.6) Why are my queries slow?  Why don't they
     use my indexes?</H3>
 
@@ -760,7 +760,7 @@ table?</TD><TD>unlimited</TD></TR>
     However, <SMALL>LIMIT</SMALL> combined with <SMALL>ORDER BY</SMALL>
     often will use an index because only a small portion of the table
     is returned.</P>
-    
+
     <P>If you believe the optimizer is incorrect in choosing a
     sequential scan, use <CODE>SET enable_seqscan TO 'off'</CODE> and
     run query again to see if an index scan is indeed faster.</P>
@@ -823,10 +823,14 @@ table?</TD><TD>unlimited</TD></TR>
     identical values that differ only in case. To force a particular
     case to be stored in the column, use a <SMALL>CHECK</SMALL>
     constraint or a trigger.</P>
-                                        
+
+     <A href="#item4.9">4.9</A>) In a query, how do I detect if a field
+    is <SMALL>NULL</SMALL>?  How do I concatenate possible <SMALL>NULL</SMALL>s?
+    How can I sort on whether a field is <SMALL> NULL</SMALL> or not?<BR>
+
     <H3 id="item4.9">4.9) In a query, how do I detect if a field
-    is <SMALL>NULL</SMALL>?  How can I sort on whether a field is <SMALL>
-    NULL</SMALL> or not?</H3>
+    is <SMALL>NULL</SMALL>?  How do I concatenate possible <SMALL>NULL</SMALL>s?
+    How can I sort on whether a field is <SMALL> NULL</SMALL> or not?</H3>
 
     <P>You test the column with <SMALL>IS NULL</SMALL> and <SMALL>IS
     NOT NULL</SMALL>, like this:</P>
@@ -837,6 +841,13 @@ table?</TD><TD>unlimited</TD></TR>
    WHERE col IS NULL;
 </PRE>
 
+   <P>To concatentate with possible <SMALL>NULL</SMALL>s, use <I>COALESCE()</I>,
+   like this:</P>
+<PRE>
+   SELECT COALESCE(col1, '') || COALESCE(col2, '')
+   FROM tab
+</PRE>
+
    <P>To sort by the <SMALL>NULL</SMALL> status, use the <SMALL>IS NULL</SMALL>
    and <SMALL>IS NOT NULL</SMALL> modifiers in your <SMALL>ORDER BY</SMALL> clause.
    Things that are <I>true</I> will sort higher than things that are <I>false</I>,
@@ -937,7 +948,7 @@ length</TD></TR>
     execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
     new_id = execute("SELECT currval('person_id_seq')");
 </PRE>
-    
+
     <H3 id="item4.11.3">4.11.3) Doesn't <I>currval()</I>
     lead to a race condition with other users?</H3>
 
@@ -1091,7 +1102,7 @@ length</TD></TR>
     double-quotes around table or column names during table creation.
     When double-quotes are used, table and column names (called
     identifiers) are stored <a
-    href="http://www.postgresql.org/docs/8.2/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS">
+    href="http://www.postgresql.org/docs/current/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS">
     case-sensitive</a>, meaning you must use double-quotes when
     referencing the names in a query.  Some interfaces, like pgAdmin,
     automatically double-quote identifiers during table creation.
index 0cba5772dcfb66ae2625f978c0839512e599d5ca..100a3d00a4b7dd9fa3eda1550dd559dc318bb129 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.175.2.2 2006/12/06 15:40:32 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.175.2.3 2006/12/11 22:48:08 momjian Exp $
 PostgreSQL documentation
 -->
 
@@ -89,7 +89,7 @@ PostgreSQL documentation
       <acronym>SQL</acronym> and <application>psql</application>
       meta-commands with this option. To achieve that, you could
       pipe the string into <application>psql</application>, like
-      this: <literal>echo "\x \\ SELECT * FROM foo;" | psql</literal>.
+      this: <literal>echo '\x \\ SELECT * FROM foo;' | psql</literal>.
       (<literal>\\</> is the separator meta-command.)
       </para>
       <para>