OSDN Git Service
Peter Eisentraut [Sat, 30 Dec 2000 17:11:32 +0000 (17:11 +0000)]
Refinements
Peter Eisentraut [Sat, 30 Dec 2000 16:48:49 +0000 (16:48 +0000)]
Remove C++ comment.
Vadim B. Mikheev [Sat, 30 Dec 2000 15:19:57 +0000 (15:19 +0000)]
1. WAL needs in zero-ed content of newly initialized page.
2. Log record for PageRepaireFragmentation now keeps array
of !LP_USED offnums to redo cleanup properly.
Peter Eisentraut [Sat, 30 Dec 2000 15:03:09 +0000 (15:03 +0000)]
Add mention of sysctl(8) for IPC tuning on Linux.
Peter Eisentraut [Sat, 30 Dec 2000 14:47:06 +0000 (14:47 +0000)]
Remove incorrect assert.
Vadim B. Mikheev [Sat, 30 Dec 2000 06:52:34 +0000 (06:52 +0000)]
Fixed misprint in heap update WALoging.
Tatsuo Ishii [Sat, 30 Dec 2000 06:10:43 +0000 (06:10 +0000)]
Imporve messages.
Tom Lane [Sat, 30 Dec 2000 02:48:04 +0000 (02:48 +0000)]
Apparently, special float8 comparison file for Alpha is only needed
when using vendor cc, not gcc.
Tom Lane [Sat, 30 Dec 2000 02:34:56 +0000 (02:34 +0000)]
Clean up spinlock assembly code slightly (just cosmetic improvements)
for Alpha gcc case. For Alpha non-gcc case, replace use of
__INTERLOCKED_TESTBITSS_QUAD builtin with __LOCK_LONG_RETRY and
__UNLOCK_LONG. The former does not execute an MB instruction and
therefore was guaranteed not to work on multiprocessor machines.
The LOCK_LONG builtins produce code that is the same in all essential
details as the gcc assembler code.
Tom Lane [Sat, 30 Dec 2000 01:20:55 +0000 (01:20 +0000)]
Paranoia about possible values of errno after a shmget/semget failure.
In theory we should always get EEXIST if there's a key collision, but
if the kernel code tests error conditions in a weird order, perhaps
EACCES or EIDRM could occur too.
Tom Lane [Sat, 30 Dec 2000 00:50:44 +0000 (00:50 +0000)]
Remove obsolete and unportable enable_plpgsql script. createlang has
been the supported and documented way to do this for a long time...
Peter Eisentraut [Sat, 30 Dec 2000 00:24:09 +0000 (00:24 +0000)]
Fix unportable use of '!' in shell commands.
Tom Lane [Fri, 29 Dec 2000 22:46:37 +0000 (22:46 +0000)]
column and tuple numbers should be int not size_t.
Tom Lane [Fri, 29 Dec 2000 21:31:21 +0000 (21:31 +0000)]
Fix failure in CreateCheckPoint on some Alpha boxes --- it's not OK to
assume that TAS() will always succeed the first time, even if the lock
is known to be free. Also, make sure that code will eventually time out
and report a stuck spinlock, rather than looping forever. Small cleanups
in s_lock.h, too.
Vadim B. Mikheev [Fri, 29 Dec 2000 20:47:17 +0000 (20:47 +0000)]
MUST update (in-memory) data page BEFORE XLogInsert to log
NEW page content if WAL will decide to backup page.
Tom Lane [Fri, 29 Dec 2000 20:39:09 +0000 (20:39 +0000)]
stamp-h needs to be made by config.status, not elsewhere, per recipe in
Autoconf manual. In particular, touching it before creating config.status
is guaranteed to lose.
Vadim B. Mikheev [Fri, 29 Dec 2000 08:08:59 +0000 (08:08 +0000)]
nbtree_xlog_newroot: set meta flag in meta page opaque.
Bruce Momjian [Thu, 28 Dec 2000 23:56:46 +0000 (23:56 +0000)]
Attached are patches for two fixes to reduce memory usage by the JDBC
drivers.
The first fix fixes the PreparedStatement object to not allocate
unnecessary objects when converting native types to Stings. The old
code used the following format:
(new Integer(x)).toString()
whereas this can more efficiently be occompilshed by:
Integer.toString(x);
avoiding the unnecessary object creation.
The second fix is to release some resources on the close() of a
ResultSet. Currently the close() method on ResultSet is a noop. The
purpose of the close() method is to release resources when the ResultSet
is no longer needed. The fix is to free the tuples cached by the
ResultSet when it is closed (by clearing out the Vector object that
stores the tuples). This is important for my application, as I have a
cache of Statement objects that I reuse. Since the Statement object
maintains a reference to the ResultSet and the ResultSet kept references
to the old tuples, my cache was holding on to a lot of memory.
Barry Lind
Peter Eisentraut [Thu, 28 Dec 2000 17:34:52 +0000 (17:34 +0000)]
Qualify %.in rule to avoid triggering on configure.in, repair unportable
attempt to install more than one file per 'install' invocation, clean up
some other oddities.
Vadim B. Mikheev [Thu, 28 Dec 2000 13:00:29 +0000 (13:00 +0000)]
New WAL version - CRC and data blocks backup.
Tom Lane [Thu, 28 Dec 2000 01:51:15 +0000 (01:51 +0000)]
Let's try this again on accepting the correct range of Oid input values
for 64-bit platforms ...
Tom Lane [Thu, 28 Dec 2000 00:16:11 +0000 (00:16 +0000)]
Correct erroneous documentation of PQsetnonblocking().
Tom Lane [Wed, 27 Dec 2000 23:59:14 +0000 (23:59 +0000)]
Fix portability problems recently exposed by regression tests on Alphas.
1. Distinguish cases where a Datum representing a tuple datatype is an OID
from cases where it is a pointer to TupleTableSlot, and make sure we use
the right typlen in each case.
2. Make fetchatt() and related code support 8-byte by-value datatypes on
machines where Datum is 8 bytes. Centralize knowledge of the available
by-value datatype sizes in two macros in tupmacs.h, so that this will be
easier if we ever have to do it again.
Bruce Momjian [Wed, 27 Dec 2000 05:44:57 +0000 (05:44 +0000)]
Update TODO list.
Index: TODO
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/doc/TODO,v
retrieving revision 1.309
diff -r1.309 TODO
3c3
< Last updated: Sat Dec 23 09:48:47 EST 2000
---
> Last updated: Wed Dec 27 00:44:44 EST 2000
60a61,70
> * Add replication of distributed databases [replication]
> o automatic fallover
> o load balancing
> o master/slave replication
> o multi-master replication
> o partition data across servers
> o sample implementation in contrib/rserv
> o queries across databases or servers (two-phase commit)
> * Point-in-time data recovery using backup and write-ahead log
> * Allow row re-use without vacuum(Vadim)
112c122
< * Make file in/out interface to TOAST columns
---
> * Make binary/file in/out interface for TOAST columns
122a133
> * Automatically create rules on views so they are updateable, per SQL92
173c184
< * allow psql \d to show temporary table schema
---
> * allow psql \d to show temporary table structure
195d205
< * Add replication of distributed databases [replication]
200a211,212
> * Incremental backups
> * Allow SQL92 schemas
205d216
< * Allow row re-use without vacuum(Vadim)
229a241
> * Allow Java server-side programming
278a291
> * Automatically keep clustering on a table
329d341
<
\9b5~
Peter Eisentraut [Tue, 26 Dec 2000 20:47:07 +0000 (20:47 +0000)]
Only install the integrated HTML documentation set (not the individual
books separately), in directory $(docdir)/html.
Peter Eisentraut [Tue, 26 Dec 2000 20:12:49 +0000 (20:12 +0000)]
Add id attribute to sect1 tag.
Peter Eisentraut [Tue, 26 Dec 2000 00:10:37 +0000 (00:10 +0000)]
Fix some cross reference links.
Peter Eisentraut [Mon, 25 Dec 2000 23:15:27 +0000 (23:15 +0000)]
Refine some things to create better looking man pages.
Tom Lane [Sat, 23 Dec 2000 19:55:16 +0000 (19:55 +0000)]
Improve comments.
Tom Lane [Sat, 23 Dec 2000 18:49:41 +0000 (18:49 +0000)]
Compute reasonable cost and output-row-count estimates for LIMIT plan
nodes.
Peter Eisentraut [Sat, 23 Dec 2000 16:24:29 +0000 (16:24 +0000)]
Some of the stuff documented here hasn't existed since Postgres95.
Bruce Momjian [Sat, 23 Dec 2000 14:48:57 +0000 (14:48 +0000)]
Update TODO list.
Index: TODO
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/doc/TODO,v
retrieving revision 1.308
diff -r1.308 TODO
3c3
< Last updated: Thu Dec 21 14:45:00 EST 2000
---
> Last updated: Sat Dec 23 09:48:47 EST 2000
72a73
> * Remove unused files during database vacuum or postmaster startup
Peter Eisentraut [Sat, 23 Dec 2000 11:10:55 +0000 (11:10 +0000)]
Remove unused file (the information is already contained elsewhere).
Tom Lane [Sat, 23 Dec 2000 04:05:31 +0000 (04:05 +0000)]
Replace overly-cute coding with code that (a) has defined behavior
according to the ANSI C spec, (b) gets the boundary conditions right,
and (c) is about a third as long and three times more intelligible.
Tom Lane [Fri, 22 Dec 2000 23:12:07 +0000 (23:12 +0000)]
Small cleanup of temp-table handling. Disallow creation of a non-temp
table that inherits from a temp table. Make sure the right things happen
if one creates a temp table, creates another temp that inherits from it,
then renames the first one. (Previously, system would end up trying to
delete the temp tables in the wrong order.)
Peter Eisentraut [Fri, 22 Dec 2000 21:51:58 +0000 (21:51 +0000)]
Make use of <email> tag for marking up email addresses.
Tom Lane [Fri, 22 Dec 2000 21:36:09 +0000 (21:36 +0000)]
Repair not-too-well-thought-out code to do rangechecking of OIDs on
64-bit machines. Also, make oidvectorin use the same code as oidin.
Vadim B. Mikheev [Fri, 22 Dec 2000 20:04:43 +0000 (20:04 +0000)]
Avoid XLogFlush for clean buffers in BufferSync.
Peter Eisentraut [Fri, 22 Dec 2000 19:31:56 +0000 (19:31 +0000)]
Avoid using the terms 'installation', 'site', or 'instance' when referring
to the thing you get from running initdb. That's called a database cluster
(per SQL).
Tom Lane [Fri, 22 Dec 2000 19:21:37 +0000 (19:21 +0000)]
Improve error message for case where DROP TABLE is rejected because
table has a child table.
Peter Eisentraut [Fri, 22 Dec 2000 18:57:50 +0000 (18:57 +0000)]
Replace incorrect uses of 'which' with 'that'. (so-called "wicked which")
Tom Lane [Fri, 22 Dec 2000 18:35:09 +0000 (18:35 +0000)]
Add 'ONLY' to queries generated by RI triggers, so as to preserve pre-7.1
semantics of RI operations. Eventually we ought to look at making RI
work properly across inheritance trees, but not for 7.1 ...
Tom Lane [Fri, 22 Dec 2000 18:06:46 +0000 (18:06 +0000)]
Fix broken markup.
Tom Lane [Fri, 22 Dec 2000 18:00:24 +0000 (18:00 +0000)]
Change default output formatting for CIDR to be unabbreviated, per
recommendation from Paul Vixie. Add a new abbrev() function to produce
abbreviated format as text. No forced initdb, but new function is not
available unless you do an initdb or add the pg_proc row manually.
Michael Meskes [Fri, 22 Dec 2000 12:43:14 +0000 (12:43 +0000)]
- Fixed bug in a connect statement using varchars.
- Synced parser.
Tatsuo Ishii [Fri, 22 Dec 2000 07:59:32 +0000 (07:59 +0000)]
Fix PQsetdbLogin() backward compatibility problem.
If pghost == "" and pgport == "" then PQsetdbLogin() fails with a
error message:
Is the postmaster running locally
and accepting connections on Unix socket '/tmp/.s.PGSQL.0'?
I see many applications such as PHP fails due to this behavior.
Now if pgport == "", then it is assumed to be a DEF_PGPORT_STR. This
is the same behavior as the version prior 7.1.
Tom Lane [Fri, 22 Dec 2000 07:07:58 +0000 (07:07 +0000)]
Clean up CREATE TYPE/OPERATOR/AGGREGATE productions, so that parser
will not accept types named with operator names or vice versa.
Bruce Momjian [Fri, 22 Dec 2000 03:08:52 +0000 (03:08 +0000)]
In looking at the 7.1beta1 code for JDBC, I noticed that support was
added to support character set encodings. However I noticed that the
encoding that is used isn't obtained from the DB. Since Java uses
unicode UCS2 internally the character set encoding is used to translate
strings from/to the DB encoding. So it seems logical that the code
would get the encoding from the DB instead of the current method of
requiring the user pass it as a parameter.
Attached is a patch that gets the DB encoding from the DB in the same
manner as is done in libpq/fe-connect.c. The patch is created off of
the latest CVS sources (Connection.java version 1.10).
Barry Lind
Tom Lane [Fri, 22 Dec 2000 00:51:54 +0000 (00:51 +0000)]
Revise lock manager to support "session level" locks as well as "transaction
level" locks. A session lock is not released at transaction commit (but it
is released on transaction abort, to ensure recovery after an elog(ERROR)).
In VACUUM, use a session lock to protect the master table while vacuuming a
TOAST table, so that the TOAST table can be done in an independent
transaction.
I also took this opportunity to do some cleanup and renaming in the lock
code. The previously noted bug in ProcLockWakeup, that it couldn't wake up
any waiters beyond the first non-wakeable waiter, is now fixed. Also found
a previously unknown bug of the same kind (failure to scan all members of
a lock queue in some cases) in DeadLockCheck. This might have led to failure
to detect a deadlock condition, resulting in indefinite waits, but it's
difficult to characterize the conditions required to trigger a failure.
Peter Eisentraut [Thu, 21 Dec 2000 22:55:27 +0000 (22:55 +0000)]
Get rid of the little "v"s in front of version numbers, substituting the
full word "version" where appropriate.
Peter Eisentraut [Thu, 21 Dec 2000 22:30:39 +0000 (22:30 +0000)]
Updates
Peter Eisentraut [Thu, 21 Dec 2000 20:48:16 +0000 (20:48 +0000)]
Repair round(numeric) function. An initdb would be required to get the
fixed version, otherwise you'll continue to encounter breakage.
Bruce Momjian [Thu, 21 Dec 2000 19:45:07 +0000 (19:45 +0000)]
Update TODO list.
Index: TODO
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/doc/TODO,v
retrieving revision 1.307
diff -r1.307 TODO
3c3
< Last updated: Thu Dec 21 14:12:04 EST 2000
---
> Last updated: Thu Dec 21 14:45:00 EST 2000
32d31
< * Prevent BETWEEN from using duplicate nodes
Bruce Momjian [Thu, 21 Dec 2000 19:12:11 +0000 (19:12 +0000)]
Update TODO list.
Index: TODO
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/doc/TODO,v
retrieving revision 1.306
diff -r1.306 TODO
3c3
< Last updated: Fri Dec 15 17:44:57 EST 2000
---
> Last updated: Thu Dec 21 14:12:04 EST 2000
31a32
> * Prevent BETWEEN from using duplicate nodes
Bruce Momjian [Thu, 21 Dec 2000 19:08:05 +0000 (19:08 +0000)]
>openssl req -new -text -out cert.req (you will have to enter a password)
>mv privkey.pem cert.pem.pw
>openssl rsa -in cert.pem.pw -out cert.pem (this removes the password)
>openssl req -x509 -in cert.req -text -key cert.pem -out cert.cert
then
cp cert.pem $PGDATA/server.key
cp cert.cert $PGDATA/server.crt
Thank you; this works.
Oliver Elphick
Bruce Momjian [Thu, 21 Dec 2000 18:47:05 +0000 (18:47 +0000)]
responce->response
Alfred Perlstein
Tom Lane [Thu, 21 Dec 2000 17:36:15 +0000 (17:36 +0000)]
Fix longstanding bug with VIEW using BETWEEN: OffsetVarNodes would get
applied to the duplicated subtree twice. Probably someday we should
fix the parser not to generate multiple links to the same subtree,
but for now a quick copyObject() is the path of least resistance.
Thomas G. Lockhart [Thu, 21 Dec 2000 15:28:05 +0000 (15:28 +0000)]
Rename undocumented utility SyncSyncID to MasterSync.
Thomas G. Lockhart [Thu, 21 Dec 2000 15:26:04 +0000 (15:26 +0000)]
Rename undocumented utility SyncSyncID to MasterSync.
Document MasterSync.
Fix up a couple of print statements to respect $verbose and $debug.
Tom Lane [Wed, 20 Dec 2000 22:54:02 +0000 (22:54 +0000)]
Remove multi.c and single.c, which have been dead code for
over two years.
Tom Lane [Wed, 20 Dec 2000 21:51:52 +0000 (21:51 +0000)]
Prevent freshly-started backend from ignoring SIGUSR1, per race condition
observed by Inoue. Also, don't call ProcRemove() from postmaster if we
have detected a backend crash --- too risky if shared memory is corrupted.
It's not needed anyway, considering we are going to reinitialize shared
memory and semaphores as soon as the last child is dead.
Thomas G. Lockhart [Wed, 20 Dec 2000 17:23:39 +0000 (17:23 +0000)]
Update info for BeOS and MacOS-X-darwin as supported platforms.
Thomas G. Lockhart [Wed, 20 Dec 2000 17:22:35 +0000 (17:22 +0000)]
rserv replication toolkit from Vadim Mikheev.
Thomas G. Lockhart [Wed, 20 Dec 2000 17:22:26 +0000 (17:22 +0000)]
Add rserv replication toolkit from Vadim Mikheev.
Thomas G. Lockhart [Wed, 20 Dec 2000 17:20:24 +0000 (17:20 +0000)]
Utility to convert MySQL schema dumps to SQL92 and PostgreSQL conventions.
Peter Mount [Wed, 20 Dec 2000 16:22:49 +0000 (16:22 +0000)]
Finished build.xml and updated Driver.java.in and buildDriver to match how Makefile and ANT operate.
Bruce Momjian [Wed, 20 Dec 2000 15:44:00 +0000 (15:44 +0000)]
Fix typo.
Bruce Momjian [Wed, 20 Dec 2000 03:19:24 +0000 (03:19 +0000)]
On Sunday 17 December 2000 15:07, Bruce Momjian wrote:
> We need additions to alter_table.sgml for the new OWNER option mention
> in the features list.
Here it is.
--
Mark Hollomon
Bruce Momjian [Wed, 20 Dec 2000 03:02:52 +0000 (03:02 +0000)]
Add mention of Alpha
Bruce Momjian [Wed, 20 Dec 2000 02:15:20 +0000 (02:15 +0000)]
Holloman -> Hollomon. Sorry.
Tatsuo Ishii [Wed, 20 Dec 2000 00:44:49 +0000 (00:44 +0000)]
Add description about automatic encoding conversion
between Unicode and other encodings.
Peter Eisentraut [Tue, 19 Dec 2000 22:12:47 +0000 (22:12 +0000)]
Rename --accounts-only to --globals-only, polish documentation.
Peter Eisentraut [Tue, 19 Dec 2000 18:16:26 +0000 (18:16 +0000)]
Polish PL/Perl documentation. The README file got shrunk to being a
pointer into the real documentation.
Peter Eisentraut [Tue, 19 Dec 2000 17:52:27 +0000 (17:52 +0000)]
Remove inclusions of <malloc.h>.
Peter Eisentraut [Tue, 19 Dec 2000 17:35:46 +0000 (17:35 +0000)]
Correct results of usage examples.
Peter Mount [Tue, 19 Dec 2000 17:33:39 +0000 (17:33 +0000)]
Finally created ant build.xml file
Tom Lane [Tue, 19 Dec 2000 00:54:59 +0000 (00:54 +0000)]
Mention fallback case for type coercion in description
of function resolution procedure.
Tom Lane [Mon, 18 Dec 2000 23:39:37 +0000 (23:39 +0000)]
Document the array_dims() function, and make some other small improvements
in the docs for arrays.
Bruce Momjian [Mon, 18 Dec 2000 18:45:05 +0000 (18:45 +0000)]
>> Here is a patch for the beos port (All regression tests are OK).
>> xlog.c : special case for beos to avoid 'link' which does not work yet
>> beos/sem.c : implementation of new sem_ctl call (GETPID) and a new
>sem_op
>> flag (IPCNOWAIT)
>> dynloader/beos.c : add a verification of symbol validity (seem that
the
>> loader sometime return OK with an invalid symbol)
>> postmaster.c : add beos forking support for the new checkpoint
process
>> postgres.c : remove beos special case for getrusage
>> beos.h : Correction of a bas definition of AF_UNIX, misc defnitions
>>
>>
>> thanks
>>
>>
>> cyril
Cyril VELTER
Tom Lane [Mon, 18 Dec 2000 17:33:42 +0000 (17:33 +0000)]
Ensure that 'errno' is saved and restored by all signal handlers that
might change it. Experimentation shows that the signal handler call
mechanism does not save/restore errno for you, at least not on Linux
or HPUX, so this is definitely a real risk.
Bruce Momjian [Mon, 18 Dec 2000 16:30:07 +0000 (16:30 +0000)]
Updates for 7.1 branding.
Michael Meskes [Mon, 18 Dec 2000 11:33:55 +0000 (11:33 +0000)]
- Synced gram.y and preproc.y.
- Synced keyword.c.
- Added several small patches from Christof.
Tom Lane [Mon, 18 Dec 2000 06:50:51 +0000 (06:50 +0000)]
Make sure make_rels_by_clause_joins doesn't return multiple references
to same joinrel. Although make_rels_by_joins doesn't mind, GEQO has
an Assert that doesn't like this.
Bruce Momjian [Mon, 18 Dec 2000 04:32:09 +0000 (04:32 +0000)]
Large objects in single "table".
Bruce Momjian [Mon, 18 Dec 2000 04:20:44 +0000 (04:20 +0000)]
Updates from Tom Lane.
Bruce Momjian [Mon, 18 Dec 2000 04:07:10 +0000 (04:07 +0000)]
Fix upgrade mention to 7.1.
Tom Lane [Mon, 18 Dec 2000 02:45:47 +0000 (02:45 +0000)]
Tweak regressplans.sh to use any already-set PGOPTIONS.
Tom Lane [Mon, 18 Dec 2000 01:37:56 +0000 (01:37 +0000)]
Repair mishandling of PRIMARY KEY declaration that references an
inherited column, per bug report from Elphick 12/15/00.
Tom Lane [Mon, 18 Dec 2000 00:44:50 +0000 (00:44 +0000)]
Clean up backend-exit-time cleanup behavior. Use on_shmem_exit callbacks
to ensure that we have released buffer refcounts and so forth, rather than
putting ad-hoc operations before (some of the calls to) proc_exit. Add
commentary to discourage future hackers from repeating that mistake.
Peter Eisentraut [Sun, 17 Dec 2000 17:50:46 +0000 (17:50 +0000)]
Add missing tags.
Peter Eisentraut [Sun, 17 Dec 2000 11:25:58 +0000 (11:25 +0000)]
Bump version to 7.1. (No "beta1", since we're just going to forget to
change it again anyway.)
Peter Eisentraut [Sun, 17 Dec 2000 11:22:00 +0000 (11:22 +0000)]
Update SysV IPC information.
Tom Lane [Sun, 17 Dec 2000 05:55:26 +0000 (05:55 +0000)]
Update type-coercion discussions to reflect current reality.
Tom Lane [Sun, 17 Dec 2000 05:50:23 +0000 (05:50 +0000)]
Misc. cleanups.
Tom Lane [Sun, 17 Dec 2000 05:47:57 +0000 (05:47 +0000)]
Outer join updates, miscellaneous polishing.
Tom Lane [Sun, 17 Dec 2000 04:32:29 +0000 (04:32 +0000)]
Tweak select_common_type() to deal with possibility of multiple preferred
types in a category --- it was taking the last preferred type among the
inputs, rather than the first one as intended.
Tom Lane [Sat, 16 Dec 2000 22:44:47 +0000 (22:44 +0000)]
Update some obsolete info about GEQO.
Bruce Momjian [Sat, 16 Dec 2000 20:12:42 +0000 (20:12 +0000)]
Add 7.1 features list
Tom Lane [Sat, 16 Dec 2000 19:33:23 +0000 (19:33 +0000)]
A little wordsmithing in the pattern-matching section.
Tom Lane [Sat, 16 Dec 2000 18:33:13 +0000 (18:33 +0000)]
Add note that COALESCE and NULLIF are shorthand forms of CASE.