aboutsummaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/FAQ/FAQ.html51
-rw-r--r--doc/src/sgml/ref/psql-ref.sgml4
2 files changed, 33 insertions, 22 deletions
diff --git a/doc/src/FAQ/FAQ.html b/doc/src/FAQ/FAQ.html
index 301903a5114..b04db6b4748 100644
--- a/doc/src/FAQ/FAQ.html
+++ b/doc/src/FAQ/FAQ.html
@@ -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
@@ -281,7 +281,7 @@
</ul>
</li>
</ul>
-
+
<H3 id="item1.9">1.9) How do I find out about known bugs or
missing features?</H3>
@@ -307,7 +307,7 @@
<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>
@@ -318,7 +318,7 @@
<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
@@ -370,7 +370,7 @@
"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>
@@ -503,7 +503,7 @@
<P>There are three major areas for potential performance
improvement:</P>
-
+
<DL>
<DT><B>Query Changes</B></DT>
@@ -583,7 +583,7 @@
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
@@ -638,7 +638,7 @@
<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
@@ -660,7 +660,7 @@
</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.
diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml
index 0cba5772dcf..100a3d00a4b 100644
--- a/doc/src/sgml/ref/psql-ref.sgml
+++ b/doc/src/sgml/ref/psql-ref.sgml
@@ -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>