From 0d9fc5afd6eda651d2ef0a4776e08f02d32a96de Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Mon, 5 Jan 1998 03:35:55 +0000
Subject: [PATCH] Change elog(WARN) to elog(ERROR) and elog(ABORT).

---
 src/backend/access/common/heaptuple.c      |  28 ++---
 src/backend/access/common/indextuple.c     |  12 +--
 src/backend/access/common/printtup.c       |   6 +-
 src/backend/access/common/tupdesc.c        |   6 +-
 src/backend/access/gist/gist.c             |   6 +-
 src/backend/access/gist/gistscan.c         |   6 +-
 src/backend/access/hash/hashinsert.c       |   6 +-
 src/backend/access/hash/hashovfl.c         |  14 +--
 src/backend/access/hash/hashpage.c         |  24 ++---
 src/backend/access/hash/hashscan.c         |   4 +-
 src/backend/access/hash/hashutil.c         |   4 +-
 src/backend/access/heap/heapam.c           |  28 ++---
 src/backend/access/heap/hio.c              |   6 +-
 src/backend/access/index/genam.c           |  10 +-
 src/backend/access/index/indexam.c         |   6 +-
 src/backend/access/index/istrat.c          |  14 +--
 src/backend/access/nbtree/nbtinsert.c      |   6 +-
 src/backend/access/nbtree/nbtpage.c        |  14 +--
 src/backend/access/nbtree/nbtscan.c        |   8 +-
 src/backend/access/nbtree/nbtsearch.c      |  14 +--
 src/backend/access/nbtree/nbtsort.c        |  12 +--
 src/backend/access/nbtree/nbtutils.c       |   8 +-
 src/backend/access/rtree/rtproc.c          |  10 +-
 src/backend/access/rtree/rtree.c           |   6 +-
 src/backend/access/rtree/rtscan.c          |   8 +-
 src/backend/access/transam/transam.c       |   8 +-
 src/backend/access/transam/transsup.c      |   4 +-
 src/backend/access/transam/varsup.c        |  12 +--
 src/backend/access/transam/xact.c          |   4 +-
 src/backend/bootstrap/bootparse.y          |   6 +-
 src/backend/bootstrap/bootstrap.c          |  10 +-
 src/backend/catalog/catalog.c              |   8 +-
 src/backend/catalog/heap.c                 |  34 +++---
 src/backend/catalog/index.c                |  28 ++---
 src/backend/catalog/pg_aggregate.c         |  48 ++++-----
 src/backend/catalog/pg_operator.c          |  20 ++--
 src/backend/catalog/pg_proc.c              |  18 ++--
 src/backend/catalog/pg_type.c              |  10 +-
 src/backend/commands/_deadcode/version.c   |   4 +-
 src/backend/commands/cluster.c             |   8 +-
 src/backend/commands/command.c             |  24 ++---
 src/backend/commands/copy.c                |  36 +++----
 src/backend/commands/creatinh.c            |  18 ++--
 src/backend/commands/dbcommands.c          |  26 ++---
 src/backend/commands/defind.c              |  44 ++++----
 src/backend/commands/define.c              |  40 +++----
 src/backend/commands/proclang.c            |  16 +--
 src/backend/commands/recipe.c              |  12 +--
 src/backend/commands/remove.c              |  36 +++----
 src/backend/commands/rename.c              |  28 ++---
 src/backend/commands/sequence.c            |  40 +++----
 src/backend/commands/trigger.c             |  50 ++++-----
 src/backend/commands/user.c                |  12 +--
 src/backend/commands/vacuum.c              |  14 +--
 src/backend/commands/view.c                |   4 +-
 src/backend/executor/execAmi.c             |   4 +-
 src/backend/executor/execMain.c            |  18 ++--
 src/backend/executor/execProcnode.c        |   4 +-
 src/backend/executor/execQual.c            |  28 ++---
 src/backend/executor/execTuples.c          |   6 +-
 src/backend/executor/execUtils.c           |   6 +-
 src/backend/executor/nodeAgg.c             |  12 +--
 src/backend/executor/nodeHash.c            |  10 +-
 src/backend/executor/nodeIndexscan.c       |  10 +-
 src/backend/executor/nodeSort.c            |   4 +-
 src/backend/executor/nodeTee.c             |   4 +-
 src/backend/lib/stringinfo.c               |   8 +-
 src/backend/libpq/be-fsstubs.c             |  24 ++---
 src/backend/libpq/be-pqexec.c              |   8 +-
 src/backend/libpq/pqcomm.c                 |  10 +-
 src/backend/nodes/equalfuncs.c             |   4 +-
 src/backend/nodes/list.c                   |   4 +-
 src/backend/nodes/read.c                   |   4 +-
 src/backend/nodes/readfuncs.c              |   8 +-
 src/backend/optimizer/geqo/geqo_erx.c      |   8 +-
 src/backend/optimizer/geqo/geqo_eval.c     |   4 +-
 src/backend/optimizer/geqo/geqo_misc.c     |   4 +-
 src/backend/optimizer/path/predmig.c       |  10 +-
 src/backend/optimizer/path/prune.c         |   4 +-
 src/backend/optimizer/path/xfunc.c         |  24 ++---
 src/backend/optimizer/plan/createplan.c    |  12 +--
 src/backend/optimizer/plan/planmain.c      |   4 +-
 src/backend/optimizer/plan/planner.c       |  24 ++---
 src/backend/optimizer/plan/setrefs.c       |  10 +-
 src/backend/optimizer/util/plancat.c       |  22 ++--
 src/backend/parser/analyze.c               |  26 ++---
 src/backend/parser/gram.y                  |  96 ++++++++---------
 src/backend/parser/keywords.c              |   4 +-
 src/backend/parser/parse_agg.c             |  20 ++--
 src/backend/parser/parse_clause.c          |  14 +--
 src/backend/parser/parse_expr.c            |  30 +++---
 src/backend/parser/parse_func.c            |  32 +++---
 src/backend/parser/parse_node.c            |  18 ++--
 src/backend/parser/parse_oper.c            |  20 ++--
 src/backend/parser/parse_relation.c        |  26 ++---
 src/backend/parser/parse_target.c          |  24 ++---
 src/backend/parser/parse_type.c            |  26 ++---
 src/backend/parser/scan.c                  |  28 ++---
 src/backend/parser/scan.l                  |  26 ++---
 src/backend/port/dynloader/linux.c         |   4 +-
 src/backend/rewrite/rewriteDefine.c        |  16 +--
 src/backend/rewrite/rewriteHandler.c       |   4 +-
 src/backend/rewrite/rewriteRemove.c        |  10 +-
 src/backend/rewrite/rewriteSupport.c       |   6 +-
 src/backend/storage/buffer/buf_init.c      |   6 +-
 src/backend/storage/buffer/buf_table.c     |  10 +-
 src/backend/storage/buffer/bufmgr.c        |  10 +-
 src/backend/storage/buffer/freelist.c      |   4 +-
 src/backend/storage/buffer/localbuf.c      |   4 +-
 src/backend/storage/file/fd.c              |   6 +-
 src/backend/storage/ipc/ipc.c              |   4 +-
 src/backend/storage/ipc/shmem.c            |  10 +-
 src/backend/storage/large_object/inv_api.c |  10 +-
 src/backend/storage/lmgr/lmgr.c            |  10 +-
 src/backend/storage/lmgr/lock.c            |   6 +-
 src/backend/storage/lmgr/multi.c           |  12 +--
 src/backend/storage/lmgr/proc.c            |  10 +-
 src/backend/storage/page/bufpage.c         |   4 +-
 src/backend/storage/smgr/md.c              |   8 +-
 src/backend/storage/smgr/smgr.c            |  26 ++---
 src/backend/storage/smgr/smgrtype.c        |   6 +-
 src/backend/tcop/aclchk.c                  |  32 +++---
 src/backend/tcop/fastpath.c                |  18 ++--
 src/backend/tcop/postgres.c                |  18 ++--
 src/backend/tcop/pquery.c                  |   4 +-
 src/backend/tcop/utility.c                 |  32 +++---
 src/backend/tcop/variable.c                |  30 +++---
 src/backend/utils/adt/acl.c                |  34 +++---
 src/backend/utils/adt/arrayfuncs.c         |  52 ++++-----
 src/backend/utils/adt/bool.c               |   4 +-
 src/backend/utils/adt/cash.c               |  42 ++++----
 src/backend/utils/adt/chunk.c              |  12 +--
 src/backend/utils/adt/date.c               |  12 +--
 src/backend/utils/adt/datetime.c           |  42 ++++----
 src/backend/utils/adt/datum.c              |   8 +-
 src/backend/utils/adt/dt.c                 |  70 ++++++------
 src/backend/utils/adt/filename.c           |  10 +-
 src/backend/utils/adt/float.c              |  46 ++++----
 src/backend/utils/adt/geo_ops.c            |  66 ++++++------
 src/backend/utils/adt/int.c                |   6 +-
 src/backend/utils/adt/nabstime.c           |  12 +--
 src/backend/utils/adt/numutils.c           |  20 ++--
 src/backend/utils/adt/oidname.c            |   4 +-
 src/backend/utils/adt/regexp.c             |   4 +-
 src/backend/utils/adt/regproc.c            |  14 +--
 src/backend/utils/adt/selfuncs.c           |  22 ++--
 src/backend/utils/adt/sets.c               |   6 +-
 src/backend/utils/adt/varchar.c            |  10 +-
 src/backend/utils/adt/varlena.c            |  18 ++--
 src/backend/utils/cache/catcache.c         |   8 +-
 src/backend/utils/cache/fcache.c           |  12 +--
 src/backend/utils/cache/lsyscache.c        |   6 +-
 src/backend/utils/cache/relcache.c         |  30 +++---
 src/backend/utils/cache/syscache.c         |  12 +--
 src/backend/utils/error/elog.c             |  10 +-
 src/backend/utils/fmgr/dfmgr.c             |  16 +--
 src/backend/utils/fmgr/fmgr.c              |  22 ++--
 src/backend/utils/misc/database.c          |   4 +-
 src/backend/utils/sort/psort.c             |   8 +-
 src/include/utils/elog.h                   |  13 ++-
 src/test/regress/expected/abstime.out      |   6 +-
 src/test/regress/expected/alter_table.out  |   8 +-
 src/test/regress/expected/boolean.out      |   2 +-
 src/test/regress/expected/box.out          |   4 +-
 src/test/regress/expected/circle.out       |   6 +-
 src/test/regress/expected/datetime.out     |   4 +-
 src/test/regress/expected/errors.out       | 118 ++++++++++-----------
 src/test/regress/expected/float4.out       |  10 +-
 src/test/regress/expected/float8.out       |  18 ++--
 src/test/regress/expected/geometry.out     |   2 +-
 src/test/regress/expected/int2.out         |   6 +-
 src/test/regress/expected/int4.out         |   6 +-
 src/test/regress/expected/lseg.out         |  10 +-
 src/test/regress/expected/oid.out          |   2 +-
 src/test/regress/expected/oidint2.out      |   4 +-
 src/test/regress/expected/oidint4.out      |   4 +-
 src/test/regress/expected/oidname.out      |   6 +-
 src/test/regress/expected/path.out         |   4 +-
 src/test/regress/expected/point.out        |   6 +-
 src/test/regress/expected/polygon.out      |  10 +-
 src/test/regress/expected/reltime.out      |   4 +-
 src/test/regress/expected/strings.out      |   6 +-
 src/test/regress/expected/timespan.out     |   4 +-
 src/test/regress/expected/tinterval.out    |   4 +-
 src/test/regress/expected/triggers.out     |  12 +--
 src/test/regress/regress.c                 |  34 +++---
 src/tutorial/C-code/beard.c                |  12 +--
 src/tutorial/C-code/complex.c              |   2 +-
 188 files changed, 1436 insertions(+), 1433 deletions(-)

diff --git a/src/backend/access/common/heaptuple.c b/src/backend/access/common/heaptuple.c
index 263f29cb68e..48702bb8e1e 100644
--- a/src/backend/access/common/heaptuple.c
+++ b/src/backend/access/common/heaptuple.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.28 1997/11/02 15:24:09 vadim Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.29 1998/01/05 03:28:57 momjian Exp $
  *
  * NOTES
  *	  The old interface functions have been converted to macros
@@ -93,7 +93,7 @@ ComputeDataSize(TupleDesc tupleDesc,
 				break;
 			default:
 				if (att[i]->attlen < sizeof(int32))
-					elog(WARN, "ComputeDataSize: attribute %d has len %d",
+					elog(ABORT, "ComputeDataSize: attribute %d has len %d",
 						 i, att[i]->attlen);
 				if (att[i]->attalign == 'd')
 					data_length = DOUBLEALIGN(data_length) + att[i]->attlen;
@@ -194,7 +194,7 @@ DataFill(char *data,
 				break;
 			default:
 				if (att[i]->attlen < sizeof(int32))
-					elog(WARN, "DataFill: attribute %d has len %d",
+					elog(ABORT, "DataFill: attribute %d has len %d",
 						 i, att[i]->attlen);
 				if (att[i]->attalign == 'd')
 				{
@@ -249,10 +249,10 @@ heap_attisnull(HeapTuple tup, int attnum)
 				break;
 
 			case 0:
-				elog(WARN, "heap_attisnull: zero attnum disallowed");
+				elog(ABORT, "heap_attisnull: zero attnum disallowed");
 
 			default:
-				elog(WARN, "heap_attisnull: undefined negative attnum");
+				elog(ABORT, "heap_attisnull: undefined negative attnum");
 		}
 
 	return (0);
@@ -290,7 +290,7 @@ heap_sysattrlen(AttrNumber attno)
 			return sizeof f->t_cmax;
 
 		default:
-			elog(WARN, "sysattrlen: System attribute number %d unknown.", attno);
+			elog(ABORT, "sysattrlen: System attribute number %d unknown.", attno);
 			return 0;
 	}
 }
@@ -328,7 +328,7 @@ heap_sysattrbyval(AttrNumber attno)
 			break;
 		default:
 			byval = true;
-			elog(WARN, "sysattrbyval: System attribute number %d unknown.",
+			elog(ABORT, "sysattrbyval: System attribute number %d unknown.",
 				 attno);
 			break;
 	}
@@ -358,7 +358,7 @@ heap_getsysattr(HeapTuple tup, Buffer b, int attnum)
 		case MaxCommandIdAttributeNumber:
 			return ((Datum) (long) tup->t_cmax);
 		default:
-			elog(WARN, "heap_getsysattr: undefined attnum %d", attnum);
+			elog(ABORT, "heap_getsysattr: undefined attnum %d", attnum);
 	}
 	return ((Datum) NULL);
 }
@@ -538,7 +538,7 @@ fastgetattr(HeapTuple tup,
 				default:
 					if (att[j]->attlen < sizeof(int32))
 					{
-						elog(WARN,
+						elog(ABORT,
 							 "fastgetattr: attribute %d has len %d",
 							 j, att[j]->attlen);
 					}
@@ -598,7 +598,7 @@ fastgetattr(HeapTuple tup,
 					break;
 				default:
 					if (att[i]->attlen < sizeof(int32))
-						elog(WARN,
+						elog(ABORT,
 							 "fastgetattr2: attribute %d has len %d",
 							 i, att[i]->attlen);
 					if (att[i]->attalign == 'd')
@@ -657,7 +657,7 @@ fastgetattr(HeapTuple tup,
 				break;
 			default:
 				if (att[attnum]->attlen < sizeof(int32))
-					elog(WARN, "fastgetattr3: attribute %d has len %d",
+					elog(ABORT, "fastgetattr3: attribute %d has len %d",
 						 attnum, att[attnum]->attlen);
 				if (att[attnum]->attalign == 'd')
 					off = DOUBLEALIGN(off);
@@ -686,7 +686,7 @@ heap_copytuple(HeapTuple tuple)
 	/* XXX For now, just prevent an undetectable executor related error */
 	if (tuple->t_len > MAXTUPLEN)
 	{
-		elog(WARN, "palloctup: cannot handle length %d tuples",
+		elog(ABORT, "palloctup: cannot handle length %d tuples",
 			 tuple->t_len);
 	}
 
@@ -773,7 +773,7 @@ heap_formtuple(TupleDesc tupleDescriptor,
 	}
 
 	if (numberOfAttributes > MaxHeapAttributeNumber)
-		elog(WARN, "heap_formtuple: numberOfAttributes of %d > %d",
+		elog(ABORT, "heap_formtuple: numberOfAttributes of %d > %d",
 			 numberOfAttributes, MaxHeapAttributeNumber);
 
 	if (hasnull)
@@ -883,7 +883,7 @@ heap_modifytuple(HeapTuple tuple,
 		}
 		else if (repl[attoff] != 'r')
 		{
-			elog(WARN, "heap_modifytuple: repl is \\%3d", repl[attoff]);
+			elog(ABORT, "heap_modifytuple: repl is \\%3d", repl[attoff]);
 
 		}
 		else
diff --git a/src/backend/access/common/indextuple.c b/src/backend/access/common/indextuple.c
index 273de3b4c45..baa295b91ba 100644
--- a/src/backend/access/common/indextuple.c
+++ b/src/backend/access/common/indextuple.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/common/indextuple.c,v 1.20 1997/11/02 15:24:11 vadim Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/common/indextuple.c,v 1.21 1998/01/05 03:28:59 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -56,7 +56,7 @@ index_formtuple(TupleDesc tupleDescriptor,
 	int			numberOfAttributes = tupleDescriptor->natts;
 
 	if (numberOfAttributes > MaxIndexAttributeNumber)
-		elog(WARN, "index_formtuple: numberOfAttributes of %d > %d",
+		elog(ABORT, "index_formtuple: numberOfAttributes of %d > %d",
 			 numberOfAttributes, MaxIndexAttributeNumber);
 
 
@@ -103,7 +103,7 @@ index_formtuple(TupleDesc tupleDescriptor,
 	 */
 
 	if (size & 0xE000)
-		elog(WARN, "index_formtuple: data takes %d bytes: too big", size);
+		elog(ABORT, "index_formtuple: data takes %d bytes: too big", size);
 
 
 	infomask |= size;
@@ -314,7 +314,7 @@ fastgetiattr(IndexTuple tup,
 						off = (att[j]->attalign == 'd') ?
 							DOUBLEALIGN(off) : LONGALIGN(off);
 					else
-						elog(WARN, "fastgetiattr: attribute %d has len %d",
+						elog(ABORT, "fastgetiattr: attribute %d has len %d",
 							 j, att[j]->attlen);
 					break;
 
@@ -382,7 +382,7 @@ fastgetiattr(IndexTuple tup,
 							DOUBLEALIGN(off) + att[i]->attlen :
 							LONGALIGN(off) + att[i]->attlen;
 					else
-						elog(WARN, "fastgetiattr2: attribute %d has len %d",
+						elog(ABORT, "fastgetiattr2: attribute %d has len %d",
 							 i, att[i]->attlen);
 
 					break;
@@ -409,7 +409,7 @@ fastgetiattr(IndexTuple tup,
 				break;
 			default:
 				if (att[attnum]->attlen < sizeof(int32))
-					elog(WARN, "fastgetattr3: attribute %d has len %d",
+					elog(ABORT, "fastgetattr3: attribute %d has len %d",
 						 attnum, att[attnum]->attlen);
 				if (att[attnum]->attalign == 'd')
 					off = DOUBLEALIGN(off);
diff --git a/src/backend/access/common/printtup.c b/src/backend/access/common/printtup.c
index b116b309fb7..23fa7204eff 100644
--- a/src/backend/access/common/printtup.c
+++ b/src/backend/access/common/printtup.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/common/printtup.c,v 1.20 1997/12/08 04:42:43 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/common/printtup.c,v 1.21 1998/01/05 03:29:00 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -45,7 +45,7 @@ typtoout(Oid type)
 		return ((Oid)
 				((TypeTupleForm) GETSTRUCT(typeTuple))->typoutput);
 
-	elog(WARN, "typtoout: Cache lookup of type %d failed", type);
+	elog(ABORT, "typtoout: Cache lookup of type %d failed", type);
 	return (InvalidOid);
 }
 
@@ -62,7 +62,7 @@ gettypelem(Oid type)
 		return ((Oid)
 				((TypeTupleForm) GETSTRUCT(typeTuple))->typelem);
 
-	elog(WARN, "typtoout: Cache lookup of type %d failed", type);
+	elog(ABORT, "typtoout: Cache lookup of type %d failed", type);
 	return (InvalidOid);
 }
 
diff --git a/src/backend/access/common/tupdesc.c b/src/backend/access/common/tupdesc.c
index 1a8d2975cc4..9c04bcc98c8 100644
--- a/src/backend/access/common/tupdesc.c
+++ b/src/backend/access/common/tupdesc.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/common/tupdesc.c,v 1.29 1997/11/25 21:58:35 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/common/tupdesc.c,v 1.30 1998/01/05 03:29:01 momjian Exp $
  *
  * NOTES
  *	  some of the executor utility code such as "ExecTypeFromTL" should be
@@ -321,7 +321,7 @@ TupleDescInitEntry(TupleDesc desc,
 	 *	RelationNameCreateHeapRelation() calls BuildDesc() which
 	 *	calls this routine and since EMP does not exist yet, the
 	 *	system cache lookup below fails.  That's fine, but rather
-	 *	then doing a elog(WARN) we just leave that information
+	 *	then doing a elog(ABORT) we just leave that information
 	 *	uninitialized, return false, then fix things up later.
 	 *	-cim 6/14/90
 	 * ----------------
@@ -508,7 +508,7 @@ BuildDescForRelation(List *schema, char *relname)
 				TupleDescMakeSelfReference(desc, attnum, relname);
 			}
 			else
-				elog(WARN, "DefineRelation: no such type %s",
+				elog(ABORT, "DefineRelation: no such type %s",
 					 typename);
 		}
 
diff --git a/src/backend/access/gist/gist.c b/src/backend/access/gist/gist.c
index 34a5122742a..db4cb4358cc 100644
--- a/src/backend/access/gist/gist.c
+++ b/src/backend/access/gist/gist.c
@@ -130,7 +130,7 @@ gistbuild(Relation heap,
 	 */
 
 	if (oldPred == NULL && (nb = RelationGetNumberOfBlocks(index)) != 0)
-		elog(WARN, "%.16s already contains data", &(index->rd_rel->relname.data[0]));
+		elog(ABORT, "%.16s already contains data", &(index->rd_rel->relname.data[0]));
 
 	/* initialize the root page (if this is a new index) */
 	if (oldPred == NULL)
@@ -1182,7 +1182,7 @@ initGISTstate(GISTSTATE *giststate, Relation index)
 							   0, 0, 0);
 	itupform = (IndexTupleForm) GETSTRUCT(htup);
 	if (!HeapTupleIsValid(htup))
-		elog(WARN, "initGISTstate: index %d not found", index->rd_id);
+		elog(ABORT, "initGISTstate: index %d not found", index->rd_id);
 	giststate->haskeytype = itupform->indhaskeytype;
 	if (giststate->haskeytype)
 	{
@@ -1193,7 +1193,7 @@ initGISTstate(GISTSTATE *giststate, Relation index)
 								   0, 0);
 		if (!HeapTupleIsValid(htup))
 		{
-			elog(WARN, "initGISTstate: no attribute tuple %d %d",
+			elog(ABORT, "initGISTstate: no attribute tuple %d %d",
 				 itupform->indexrelid, FirstOffsetNumber);
 			return;
 		}
diff --git a/src/backend/access/gist/gistscan.c b/src/backend/access/gist/gistscan.c
index ee5d93e0565..11335dc2180 100644
--- a/src/backend/access/gist/gistscan.c
+++ b/src/backend/access/gist/gistscan.c
@@ -83,7 +83,7 @@ gistrescan(IndexScanDesc s, bool fromEnd, ScanKey key)
 
 	if (!IndexScanIsValid(s))
 	{
-		elog(WARN, "gistrescan: invalid scan.");
+		elog(ABORT, "gistrescan: invalid scan.");
 		return;
 	}
 
@@ -281,7 +281,7 @@ gistdropscan(IndexScanDesc s)
 	}
 
 	if (l == (GISTScanList) NULL)
-		elog(WARN, "GiST scan list corrupted -- cannot find 0x%lx", s);
+		elog(ABORT, "GiST scan list corrupted -- cannot find 0x%lx", s);
 
 	if (prev == (GISTScanList) NULL)
 		GISTScans = l->gsl_next;
@@ -397,7 +397,7 @@ adjustiptr(IndexScanDesc s,
 					break;
 
 				default:
-					elog(WARN, "Bad operation in GiST scan adjust: %d", op);
+					elog(ABORT, "Bad operation in GiST scan adjust: %d", op);
 			}
 		}
 	}
diff --git a/src/backend/access/hash/hashinsert.c b/src/backend/access/hash/hashinsert.c
index f76aba41794..87d7fca798f 100644
--- a/src/backend/access/hash/hashinsert.c
+++ b/src/backend/access/hash/hashinsert.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/hash/hashinsert.c,v 1.10 1997/09/08 02:20:16 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/hash/hashinsert.c,v 1.11 1998/01/05 03:29:15 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -49,7 +49,7 @@ _hash_doinsert(Relation rel, HashItem hitem)
 	/* we need a scan key to do our search, so build one */
 	itup = &(hitem->hash_itup);
 	if ((natts = rel->rd_rel->relnatts) != 1)
-		elog(WARN, "Hash indices valid for only one index key.");
+		elog(ABORT, "Hash indices valid for only one index key.");
 	itup_scankey = _hash_mkscankey(rel, itup, metap);
 
 	/*
@@ -167,7 +167,7 @@ _hash_insertonpg(Relation rel,
 			if (PageGetFreeSpace(page) < itemsz)
 			{
 				/* it doesn't fit on an empty page -- give up */
-				elog(WARN, "hash item too large");
+				elog(ABORT, "hash item too large");
 			}
 		}
 		_hash_checkpage(page, LH_OVERFLOW_PAGE);
diff --git a/src/backend/access/hash/hashovfl.c b/src/backend/access/hash/hashovfl.c
index 03e479cdcc6..a86a72f974b 100644
--- a/src/backend/access/hash/hashovfl.c
+++ b/src/backend/access/hash/hashovfl.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/hash/hashovfl.c,v 1.13 1997/09/18 20:19:43 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/hash/hashovfl.c,v 1.14 1998/01/05 03:29:20 momjian Exp $
  *
  * NOTES
  *	  Overflow pages look like ordinary relation pages.
@@ -65,7 +65,7 @@ _hash_addovflpage(Relation rel, Buffer *metabufp, Buffer buf)
 	oaddr = _hash_getovfladdr(rel, metabufp);
 	if (oaddr == InvalidOvflAddress)
 	{
-		elog(WARN, "_hash_addovflpage: problem with _hash_getovfladdr.");
+		elog(ABORT, "_hash_addovflpage: problem with _hash_getovfladdr.");
 	}
 	ovflblkno = OADDR_TO_BLKNO(OADDR_OF(SPLITNUM(oaddr), OPAGENUM(oaddr)));
 	Assert(BlockNumberIsValid(ovflblkno));
@@ -172,7 +172,7 @@ _hash_getovfladdr(Relation rel, Buffer *metabufp)
 	{
 		if (++splitnum >= NCACHED)
 		{
-			elog(WARN, OVMSG);
+			elog(ABORT, OVMSG);
 		}
 		metap->OVFL_POINT = splitnum;
 		metap->SPARES[splitnum] = metap->SPARES[splitnum - 1];
@@ -190,7 +190,7 @@ _hash_getovfladdr(Relation rel, Buffer *metabufp)
 		free_page++;
 		if (free_page >= NCACHED)
 		{
-			elog(WARN, OVMSG);
+			elog(ABORT, OVMSG);
 		}
 
 		/*
@@ -206,7 +206,7 @@ _hash_getovfladdr(Relation rel, Buffer *metabufp)
 		if (_hash_initbitmap(rel, metap, OADDR_OF(splitnum, offset),
 							 1, free_page))
 		{
-			elog(WARN, "overflow_page: problem with _hash_initbitmap.");
+			elog(ABORT, "overflow_page: problem with _hash_initbitmap.");
 		}
 		metap->SPARES[splitnum]++;
 		offset++;
@@ -214,7 +214,7 @@ _hash_getovfladdr(Relation rel, Buffer *metabufp)
 		{
 			if (++splitnum >= NCACHED)
 			{
-				elog(WARN, OVMSG);
+				elog(ABORT, OVMSG);
 			}
 			metap->OVFL_POINT = splitnum;
 			metap->SPARES[splitnum] = metap->SPARES[splitnum - 1];
@@ -262,7 +262,7 @@ found:
 	offset = (i ? bit - metap->SPARES[i - 1] : bit);
 	if (offset >= SPLITMASK)
 	{
-		elog(WARN, OVMSG);
+		elog(ABORT, OVMSG);
 	}
 
 	/* initialize this page */
diff --git a/src/backend/access/hash/hashpage.c b/src/backend/access/hash/hashpage.c
index 9de4f28f428..f819ad82dec 100644
--- a/src/backend/access/hash/hashpage.c
+++ b/src/backend/access/hash/hashpage.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/hash/hashpage.c,v 1.13 1997/09/18 20:19:46 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/hash/hashpage.c,v 1.14 1998/01/05 03:29:22 momjian Exp $
  *
  * NOTES
  *	  Postgres hash pages look like ordinary relation pages.  The opaque
@@ -85,7 +85,7 @@ _hash_metapinit(Relation rel)
 
 	if ((nblocks = RelationGetNumberOfBlocks(rel)) != 0)
 	{
-		elog(WARN, "Cannot initialize non-empty hash table %s",
+		elog(ABORT, "Cannot initialize non-empty hash table %s",
 			 RelationGetRelationName(rel));
 	}
 
@@ -146,7 +146,7 @@ _hash_metapinit(Relation rel)
 	 * created the first two buckets above.
 	 */
 	if (_hash_initbitmap(rel, metap, OADDR_OF(lg2nelem, 1), lg2nelem + 1, 0))
-		elog(WARN, "Problem with _hash_initbitmap.");
+		elog(ABORT, "Problem with _hash_initbitmap.");
 
 	/* all done */
 	_hash_wrtnorelbuf(rel, metabuf);
@@ -192,7 +192,7 @@ _hash_getbuf(Relation rel, BlockNumber blkno, int access)
 
 	if (blkno == P_NEW)
 	{
-		elog(WARN, "_hash_getbuf: internal error: hash AM does not use P_NEW");
+		elog(ABORT, "_hash_getbuf: internal error: hash AM does not use P_NEW");
 	}
 	switch (access)
 	{
@@ -201,7 +201,7 @@ _hash_getbuf(Relation rel, BlockNumber blkno, int access)
 			_hash_setpagelock(rel, blkno, access);
 			break;
 		default:
-			elog(WARN, "_hash_getbuf: invalid access (%d) on new blk: %s",
+			elog(ABORT, "_hash_getbuf: invalid access (%d) on new blk: %s",
 				 access, RelationGetRelationName(rel));
 			break;
 	}
@@ -228,7 +228,7 @@ _hash_relbuf(Relation rel, Buffer buf, int access)
 			_hash_unsetpagelock(rel, blkno, access);
 			break;
 		default:
-			elog(WARN, "_hash_relbuf: invalid access (%d) on blk %x: %s",
+			elog(ABORT, "_hash_relbuf: invalid access (%d) on blk %x: %s",
 				 access, blkno, RelationGetRelationName(rel));
 	}
 
@@ -287,7 +287,7 @@ _hash_chgbufaccess(Relation rel,
 			_hash_relbuf(rel, *bufp, from_access);
 			break;
 		default:
-			elog(WARN, "_hash_chgbufaccess: invalid access (%d) on blk %x: %s",
+			elog(ABORT, "_hash_chgbufaccess: invalid access (%d) on blk %x: %s",
 				 from_access, blkno, RelationGetRelationName(rel));
 			break;
 	}
@@ -335,7 +335,7 @@ _hash_setpagelock(Relation rel,
 				RelationSetSingleRLockPage(rel, &iptr);
 				break;
 			default:
-				elog(WARN, "_hash_setpagelock: invalid access (%d) on blk %x: %s",
+				elog(ABORT, "_hash_setpagelock: invalid access (%d) on blk %x: %s",
 					 access, blkno, RelationGetRelationName(rel));
 				break;
 		}
@@ -362,7 +362,7 @@ _hash_unsetpagelock(Relation rel,
 				RelationUnsetSingleRLockPage(rel, &iptr);
 				break;
 			default:
-				elog(WARN, "_hash_unsetpagelock: invalid access (%d) on blk %x: %s",
+				elog(ABORT, "_hash_unsetpagelock: invalid access (%d) on blk %x: %s",
 					 access, blkno, RelationGetRelationName(rel));
 				break;
 		}
@@ -546,7 +546,7 @@ _hash_splitpage(Relation rel,
 		_hash_checkpage(opage, LH_OVERFLOW_PAGE);
 		if (PageIsEmpty(opage))
 		{
-			elog(WARN, "_hash_splitpage: empty overflow page %d", oblkno);
+			elog(ABORT, "_hash_splitpage: empty overflow page %d", oblkno);
 		}
 		oopaque = (HashPageOpaque) PageGetSpecialPointer(opage);
 	}
@@ -588,7 +588,7 @@ _hash_splitpage(Relation rel,
 				/* we're guaranteed that an ovfl page has at least 1 tuple */
 				if (PageIsEmpty(opage))
 				{
-					elog(WARN, "_hash_splitpage: empty ovfl page %d!",
+					elog(ABORT, "_hash_splitpage: empty ovfl page %d!",
 						 oblkno);
 				}
 				ooffnum = FirstOffsetNumber;
@@ -685,7 +685,7 @@ _hash_splitpage(Relation rel,
 				oopaque = (HashPageOpaque) PageGetSpecialPointer(opage);
 				if (PageIsEmpty(opage))
 				{
-					elog(WARN, "_hash_splitpage: empty overflow page %d",
+					elog(ABORT, "_hash_splitpage: empty overflow page %d",
 						 oblkno);
 				}
 				ooffnum = FirstOffsetNumber;
diff --git a/src/backend/access/hash/hashscan.c b/src/backend/access/hash/hashscan.c
index 777fb3a5cfa..5a708dd2298 100644
--- a/src/backend/access/hash/hashscan.c
+++ b/src/backend/access/hash/hashscan.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/hash/hashscan.c,v 1.11 1997/09/08 21:40:48 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/hash/hashscan.c,v 1.12 1998/01/05 03:29:24 momjian Exp $
  *
  * NOTES
  *	  Because we can be doing an index scan on a relation while we
@@ -76,7 +76,7 @@ _hash_dropscan(IndexScanDesc scan)
 	}
 
 	if (chk == (HashScanList) NULL)
-		elog(WARN, "hash scan list trashed; can't find 0x%lx", scan);
+		elog(ABORT, "hash scan list trashed; can't find 0x%lx", scan);
 
 	if (last == (HashScanList) NULL)
 		HashScans = chk->hashsl_next;
diff --git a/src/backend/access/hash/hashutil.c b/src/backend/access/hash/hashutil.c
index 573c6c2dd4f..2540e1f049e 100644
--- a/src/backend/access/hash/hashutil.c
+++ b/src/backend/access/hash/hashutil.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/hash/hashutil.c,v 1.11 1997/09/08 02:20:25 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/hash/hashutil.c,v 1.12 1998/01/05 03:29:26 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -79,7 +79,7 @@ _hash_formitem(IndexTuple itup)
 
 	/* disallow nulls in hash keys */
 	if (itup->t_info & INDEX_NULL_MASK)
-		elog(WARN, "hash indices cannot include null keys");
+		elog(ABORT, "hash indices cannot include null keys");
 
 	/* make a copy of the index tuple with room for the sequence number */
 	tuplen = IndexTupleSize(itup);
diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index fc3ba7b273f..d31ccde6a73 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.23 1997/11/21 18:03:55 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.24 1998/01/05 03:29:29 momjian Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -295,7 +295,7 @@ heapgettup(Relation relation,
 
 #ifndef NO_BUFFERISVALID
 		if (!BufferIsValid(*b))
-			elog(WARN, "heapgettup: failed ReadBuffer");
+			elog(ABORT, "heapgettup: failed ReadBuffer");
 #endif
 
 		dp = (Page) BufferGetPage(*b);
@@ -334,7 +334,7 @@ heapgettup(Relation relation,
 #ifndef NO_BUFFERISVALID
 		if (!BufferIsValid(*b))
 		{
-			elog(WARN, "heapgettup: failed ReadBuffer");
+			elog(ABORT, "heapgettup: failed ReadBuffer");
 		}
 #endif
 
@@ -381,7 +381,7 @@ heapgettup(Relation relation,
 #ifndef NO_BUFFERISVALID
 		if (!BufferIsValid(*b))
 		{
-			elog(WARN, "heapgettup: failed ReadBuffer");
+			elog(ABORT, "heapgettup: failed ReadBuffer");
 		}
 #endif
 
@@ -477,7 +477,7 @@ heapgettup(Relation relation,
 #ifndef NO_BUFFERISVALID
 		if (!BufferIsValid(*b))
 		{
-			elog(WARN, "heapgettup: failed ReadBuffer");
+			elog(ABORT, "heapgettup: failed ReadBuffer");
 		}
 #endif
 		dp = (Page) BufferGetPage(*b);
@@ -545,7 +545,7 @@ heap_open(Oid relationId)
 
 	if (RelationIsValid(r) && r->rd_rel->relkind == RELKIND_INDEX)
 	{
-		elog(WARN, "%s is an index relation", r->rd_rel->relname.data);
+		elog(ABORT, "%s is an index relation", r->rd_rel->relname.data);
 	}
 
 	return (r);
@@ -574,7 +574,7 @@ heap_openr(char *relationName)
 
 	if (RelationIsValid(r) && r->rd_rel->relkind == RELKIND_INDEX)
 	{
-		elog(WARN, "%s is an index relation", r->rd_rel->relname.data);
+		elog(ABORT, "%s is an index relation", r->rd_rel->relname.data);
 	}
 
 	return (r);
@@ -626,7 +626,7 @@ heap_beginscan(Relation relation,
 	 * ----------------
 	 */
 	if (RelationIsValid(relation) == false)
-		elog(WARN, "heap_beginscan: !RelationIsValid(relation)");
+		elog(ABORT, "heap_beginscan: !RelationIsValid(relation)");
 
 	/* ----------------
 	 * set relation level read lock
@@ -808,7 +808,7 @@ heap_getnext(HeapScanDesc scandesc,
 	 * ----------------
 	 */
 	if (sdesc == NULL)
-		elog(WARN, "heap_getnext: NULL relscan");
+		elog(ABORT, "heap_getnext: NULL relscan");
 
 	/* ----------------
 	 *	initialize return buffer to InvalidBuffer
@@ -1051,7 +1051,7 @@ heap_fetch(Relation relation,
 #ifndef NO_BUFFERISVALID
 	if (!BufferIsValid(buffer))
 	{
-		elog(WARN, "heap_fetch: %s relation: ReadBuffer(%lx) failed",
+		elog(ABORT, "heap_fetch: %s relation: ReadBuffer(%lx) failed",
 			 &relation->rd_rel->relname, (long) tid);
 	}
 #endif
@@ -1216,7 +1216,7 @@ heap_delete(Relation relation, ItemPointer tid)
 #ifndef NO_BUFFERISVALID
 	if (!BufferIsValid(b))
 	{							/* XXX L_SH better ??? */
-		elog(WARN, "heap_delete: failed ReadBuffer");
+		elog(ABORT, "heap_delete: failed ReadBuffer");
 	}
 #endif							/* NO_BUFFERISVALID */
 
@@ -1249,7 +1249,7 @@ heap_delete(Relation relation, ItemPointer tid)
 		/* XXX call something else */
 		ReleaseBuffer(b);
 
-		elog(WARN, "heap_delete: (am)invalid tid");
+		elog(ABORT, "heap_delete: (am)invalid tid");
 	}
 
 	/* ----------------
@@ -1329,7 +1329,7 @@ heap_replace(Relation relation, ItemPointer otid, HeapTuple tup)
 	if (!BufferIsValid(buffer))
 	{
 		/* XXX L_SH better ??? */
-		elog(WARN, "amreplace: failed ReadBuffer");
+		elog(ABORT, "amreplace: failed ReadBuffer");
 	}
 #endif							/* NO_BUFFERISVALID */
 
@@ -1385,7 +1385,7 @@ heap_replace(Relation relation, ItemPointer otid, HeapTuple tup)
 	if (!tuple)
 	{
 		ReleaseBuffer(buffer);
-		elog(WARN, "heap_replace: (am)invalid otid");
+		elog(ABORT, "heap_replace: (am)invalid otid");
 	}
 
 	/* XXX order problems if not atomic assignment ??? */
diff --git a/src/backend/access/heap/hio.c b/src/backend/access/heap/hio.c
index 21202b15376..41e3b9e45db 100644
--- a/src/backend/access/heap/hio.c
+++ b/src/backend/access/heap/hio.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Id: hio.c,v 1.11 1997/09/08 02:20:30 momjian Exp $
+ *	  $Id: hio.c,v 1.12 1998/01/05 03:29:30 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -60,7 +60,7 @@ RelationPutHeapTuple(Relation relation,
 #ifndef NO_BUFFERISVALID
 	if (!BufferIsValid(buffer))
 	{
-		elog(WARN, "RelationPutHeapTuple: no buffer for %ld in %s",
+		elog(ABORT, "RelationPutHeapTuple: no buffer for %ld in %s",
 			 blockIndex, &relation->rd_rel->relname);
 	}
 #endif
@@ -157,7 +157,7 @@ RelationPutHeapTupleAtEnd(Relation relation, HeapTuple tuple)
 		PageInit(pageHeader, BufferGetPageSize(buffer), 0);
 
 		if (len > PageGetFreeSpace(pageHeader))
-			elog(WARN, "Tuple is too big: size %d", len);
+			elog(ABORT, "Tuple is too big: size %d", len);
 	}
 
 	offnum = PageAddItem((Page) pageHeader, (Item) tuple,
diff --git a/src/backend/access/index/genam.c b/src/backend/access/index/genam.c
index 83655b7d618..f503326e99f 100644
--- a/src/backend/access/index/genam.c
+++ b/src/backend/access/index/genam.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/index/genam.c,v 1.9 1997/09/08 02:20:33 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/index/genam.c,v 1.10 1998/01/05 03:29:32 momjian Exp $
  *
  * NOTES
  *	  many of the old access method routines have been turned into
@@ -101,7 +101,7 @@ RelationGetIndexScan(Relation relation,
 	IndexScanDesc scan;
 
 	if (!RelationIsValid(relation))
-		elog(WARN, "RelationGetIndexScan: relation invalid");
+		elog(ABORT, "RelationGetIndexScan: relation invalid");
 
 	scan = (IndexScanDesc) palloc(sizeof(IndexScanDescData));
 
@@ -150,7 +150,7 @@ IndexScanRestart(IndexScanDesc scan,
 				 ScanKey key)
 {
 	if (!IndexScanIsValid(scan))
-		elog(WARN, "IndexScanRestart: invalid scan");
+		elog(ABORT, "IndexScanRestart: invalid scan");
 
 	ItemPointerSetInvalid(&scan->previousItemData);
 	ItemPointerSetInvalid(&scan->currentItemData);
@@ -191,7 +191,7 @@ void
 IndexScanEnd(IndexScanDesc scan)
 {
 	if (!IndexScanIsValid(scan))
-		elog(WARN, "IndexScanEnd: invalid scan");
+		elog(ABORT, "IndexScanEnd: invalid scan");
 
 	pfree(scan);
 }
@@ -274,7 +274,7 @@ void
 IndexScanRestorePosition(IndexScanDesc scan)
 {
 	if (scan->flags & ScanUnmarked)
-		elog(WARN, "IndexScanRestorePosition: no mark to restore");
+		elog(ABORT, "IndexScanRestorePosition: no mark to restore");
 
 	scan->previousItemData = scan->previousMarkData;
 	scan->currentItemData = scan->currentMarkData;
diff --git a/src/backend/access/index/indexam.c b/src/backend/access/index/indexam.c
index d28b79e202b..16d57de0b37 100644
--- a/src/backend/access/index/indexam.c
+++ b/src/backend/access/index/indexam.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/index/indexam.c,v 1.17 1997/09/12 04:07:15 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/index/indexam.c,v 1.18 1998/01/05 03:29:34 momjian Exp $
  *
  * INTERFACE ROUTINES
  *		index_open		- open an index relation by relationId
@@ -103,13 +103,13 @@ Assert(RelationIsValid(relation)); \
 #define GET_REL_PROCEDURE(x,y) \
 		 procedure = relation->rd_am->y; \
 		 if (! RegProcedureIsValid(procedure)) \
-		 elog(WARN, "index_%s: invalid %s regproc", \
+		 elog(ABORT, "index_%s: invalid %s regproc", \
 			  CppAsString(x), CppAsString(y))
 
 #define GET_SCAN_PROCEDURE(x,y) \
 		 procedure = scan->relation->rd_am->y; \
 		 if (! RegProcedureIsValid(procedure)) \
-		 elog(WARN, "index_%s: invalid %s regproc", \
+		 elog(ABORT, "index_%s: invalid %s regproc", \
 			  CppAsString(x), CppAsString(y))
 
 
diff --git a/src/backend/access/index/istrat.c b/src/backend/access/index/istrat.c
index 36693592c46..4a5c1da3b0e 100644
--- a/src/backend/access/index/istrat.c
+++ b/src/backend/access/index/istrat.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/index/Attic/istrat.c,v 1.13 1997/11/20 23:20:07 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/index/Attic/istrat.c,v 1.14 1998/01/05 03:29:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -349,7 +349,7 @@ RelationGetStrategy(Relation relation,
 	{
 		if (!StrategyNumberIsValid(strategy))
 		{
-			elog(WARN, "RelationGetStrategy: corrupted evaluation");
+			elog(ABORT, "RelationGetStrategy: corrupted evaluation");
 		}
 	}
 
@@ -481,7 +481,7 @@ RelationInvokeStrategy(Relation relation,
 		}
 	}
 
-	elog(WARN, "RelationInvokeStrategy: cannot evaluate strategy %d",
+	elog(ABORT, "RelationInvokeStrategy: cannot evaluate strategy %d",
 		 strategy);
 
 	/* not reached, just to make compiler happy */
@@ -514,7 +514,7 @@ OperatorRelationFillScanKeyEntry(Relation operatorRelation,
 	tuple = heap_getnext(scan, false, (Buffer *) NULL);
 	if (!HeapTupleIsValid(tuple))
 	{
-		elog(WARN, "OperatorObjectIdFillScanKeyEntry: unknown operator %lu",
+		elog(ABORT, "OperatorObjectIdFillScanKeyEntry: unknown operator %lu",
 			 (uint32) operatorObjectId);
 	}
 
@@ -525,7 +525,7 @@ OperatorRelationFillScanKeyEntry(Relation operatorRelation,
 
 	if (!RegProcedureIsValid(entry->sk_procedure))
 	{
-		elog(WARN,
+		elog(ABORT,
 		"OperatorObjectIdFillScanKeyEntry: no procedure for operator %lu",
 			 (uint32) operatorObjectId);
 	}
@@ -567,7 +567,7 @@ IndexSupportInitialize(IndexStrategy indexStrategy,
 	scan = heap_beginscan(relation, false, false, 1, entry);
 	tuple = heap_getnext(scan, 0, (Buffer *) NULL);
 	if (!HeapTupleIsValid(tuple))
-		elog(WARN, "IndexSupportInitialize: corrupted catalogs");
+		elog(ABORT, "IndexSupportInitialize: corrupted catalogs");
 
 	/*
 	 * XXX note that the following assumes the INDEX tuple is well formed
@@ -583,7 +583,7 @@ IndexSupportInitialize(IndexStrategy indexStrategy,
 		{
 			if (attributeIndex == 0)
 			{
-				elog(WARN, "IndexSupportInitialize: no pg_index tuple");
+				elog(ABORT, "IndexSupportInitialize: no pg_index tuple");
 			}
 			break;
 		}
diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index d216b89f7ec..c57c1e6f767 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.22 1997/12/09 01:40:30 thomas Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.23 1998/01/05 03:29:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -123,7 +123,7 @@ _bt_doinsert(Relation rel, BTItem btitem, bool index_is_unique, Relation heapRel
 				htup = heap_fetch(heapRel, true, &(itup->t_tid), NULL);
 				if (htup != (HeapTuple) NULL)
 				{				/* it is a duplicate */
-					elog(WARN, "Cannot insert a duplicate key into a unique index");
+					elog(ABORT, "Cannot insert a duplicate key into a unique index");
 				}
 				/* get next offnum */
 				if (offset < maxoff)
@@ -1442,7 +1442,7 @@ _bt_updateitem(Relation rel,
 	 * if(IndexTupleDSize(newItem->bti_itup) >
 	 * IndexTupleDSize(item->bti_itup)) { elog(NOTICE, "trying to
 	 * overwrite a smaller value with a bigger one in _bt_updateitem");
-	 * elog(WARN, "this is not good."); }
+	 * elog(ABORT, "this is not good."); }
 	 */
 
 	oldIndexTuple = &(item->bti_itup);
diff --git a/src/backend/access/nbtree/nbtpage.c b/src/backend/access/nbtree/nbtpage.c
index 5cb1279c74a..7e0f76398d3 100644
--- a/src/backend/access/nbtree/nbtpage.c
+++ b/src/backend/access/nbtree/nbtpage.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtpage.c,v 1.13 1997/09/18 20:19:49 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtpage.c,v 1.14 1998/01/05 03:29:50 momjian Exp $
  *
  *	NOTES
  *	   Postgres btree pages look like ordinary relation pages.	The opaque
@@ -97,7 +97,7 @@ _bt_metapinit(Relation rel)
 
 	if ((nblocks = RelationGetNumberOfBlocks(rel)) != 0)
 	{
-		elog(WARN, "Cannot initialize non-empty btree %s",
+		elog(ABORT, "Cannot initialize non-empty btree %s",
 			 RelationGetRelationName(rel));
 	}
 
@@ -146,20 +146,20 @@ _bt_checkmeta(Relation rel)
 	op = (BTPageOpaque) PageGetSpecialPointer(metap);
 	if (!(op->btpo_flags & BTP_META))
 	{
-		elog(WARN, "Invalid metapage for index %s",
+		elog(ABORT, "Invalid metapage for index %s",
 			 RelationGetRelationName(rel));
 	}
 	metad = BTPageGetMeta(metap);
 
 	if (metad->btm_magic != BTREE_MAGIC)
 	{
-		elog(WARN, "Index %s is not a btree",
+		elog(ABORT, "Index %s is not a btree",
 			 RelationGetRelationName(rel));
 	}
 
 	if (metad->btm_version != BTREE_VERSION)
 	{
-		elog(WARN, "Version mismatch on %s:  version %d file, version %d code",
+		elog(ABORT, "Version mismatch on %s:  version %d file, version %d code",
 			 RelationGetRelationName(rel),
 			 metad->btm_version, BTREE_VERSION);
 	}
@@ -204,13 +204,13 @@ _bt_getroot(Relation rel, int access)
 
 	if (metad->btm_magic != BTREE_MAGIC)
 	{
-		elog(WARN, "Index %s is not a btree",
+		elog(ABORT, "Index %s is not a btree",
 			 RelationGetRelationName(rel));
 	}
 
 	if (metad->btm_version != BTREE_VERSION)
 	{
-		elog(WARN, "Version mismatch on %s:  version %d file, version %d code",
+		elog(ABORT, "Version mismatch on %s:  version %d file, version %d code",
 			 RelationGetRelationName(rel),
 			 metad->btm_version, BTREE_VERSION);
 	}
diff --git a/src/backend/access/nbtree/nbtscan.c b/src/backend/access/nbtree/nbtscan.c
index 7263a09dcf5..510c72d2c80 100644
--- a/src/backend/access/nbtree/nbtscan.c
+++ b/src/backend/access/nbtree/nbtscan.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/Attic/nbtscan.c,v 1.10 1997/09/08 20:54:24 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/Attic/nbtscan.c,v 1.11 1998/01/05 03:29:52 momjian Exp $
  *
  *
  * NOTES
@@ -77,7 +77,7 @@ _bt_dropscan(IndexScanDesc scan)
 	}
 
 	if (chk == (BTScanList) NULL)
-		elog(WARN, "btree scan list trashed; can't find 0x%lx", scan);
+		elog(ABORT, "btree scan list trashed; can't find 0x%lx", scan);
 
 	if (last == (BTScanList) NULL)
 		BTScans = chk->btsl_next;
@@ -154,7 +154,7 @@ _bt_scandel(IndexScanDesc scan, int op, BlockNumber blkno, OffsetNumber offno)
 				_bt_step(scan, &buf, BackwardScanDirection);
 				break;
 			default:
-				elog(WARN, "_bt_scandel: bad operation '%d'", op);
+				elog(ABORT, "_bt_scandel: bad operation '%d'", op);
 				/* NOTREACHED */
 		}
 		so->btso_curbuf = buf;
@@ -179,7 +179,7 @@ _bt_scandel(IndexScanDesc scan, int op, BlockNumber blkno, OffsetNumber offno)
 				_bt_step(scan, &buf, BackwardScanDirection);
 				break;
 			default:
-				elog(WARN, "_bt_scandel: bad operation '%d'", op);
+				elog(ABORT, "_bt_scandel: bad operation '%d'", op);
 				/* NOTREACHED */
 		}
 		so->btso_mrkbuf = buf;
diff --git a/src/backend/access/nbtree/nbtsearch.c b/src/backend/access/nbtree/nbtsearch.c
index 39a18ccc8a9..a0f6fa7b34a 100644
--- a/src/backend/access/nbtree/nbtsearch.c
+++ b/src/backend/access/nbtree/nbtsearch.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtsearch.c,v 1.27 1997/10/22 19:02:52 vadim Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtsearch.c,v 1.28 1998/01/05 03:29:53 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -617,7 +617,7 @@ _bt_compare(Relation rel,
 		 */
 		if (!P_RIGHTMOST(opaque))
 		{
-			elog(WARN, "_bt_compare: invalid comparison to high key");
+			elog(ABORT, "_bt_compare: invalid comparison to high key");
 		}
 
 #if 0
@@ -839,7 +839,7 @@ _bt_first(IndexScanDesc scan, ScanDirection dir)
 	/* _bt_orderkeys disallows it, but it's place to add some code latter */
 	if (so->keyData[0].sk_flags & SK_ISNULL)
 	{
-		elog(WARN, "_bt_first: btree doesn't support is(not)null, yet");
+		elog(ABORT, "_bt_first: btree doesn't support is(not)null, yet");
 		return ((RetrieveIndexResult) NULL);
 	}
 	proc = index_getprocid(rel, 1, BTORDER_PROC);
@@ -1331,7 +1331,7 @@ _bt_twostep(IndexScanDesc scan, Buffer *bufP, ScanDirection dir)
 	 * us up less often since they're only done by the vacuum daemon.
 	 */
 
-	elog(WARN, "btree synchronization error:  concurrent update botched scan");
+	elog(ABORT, "btree synchronization error:  concurrent update botched scan");
 
 	return (false);
 }
@@ -1416,7 +1416,7 @@ _bt_endpoint(IndexScanDesc scan, ScanDirection dir)
 	if (ScanDirectionIsForward(dir))
 	{
 		if (!P_LEFTMOST(opaque))/* non-leftmost page ? */
-			elog(WARN, "_bt_endpoint: leftmost page (%u) has not leftmost flag", blkno);
+			elog(ABORT, "_bt_endpoint: leftmost page (%u) has not leftmost flag", blkno);
 		start = P_RIGHTMOST(opaque) ? P_HIKEY : P_FIRSTKEY;
 
 		/*
@@ -1440,7 +1440,7 @@ _bt_endpoint(IndexScanDesc scan, ScanDirection dir)
 		if (PageIsEmpty(page))
 		{
 			if (start != P_HIKEY)		/* non-rightmost page */
-				elog(WARN, "_bt_endpoint: non-rightmost page (%u) is empty", blkno);
+				elog(ABORT, "_bt_endpoint: non-rightmost page (%u) is empty", blkno);
 
 			/*
 			 * It's left- & right- most page - root page, - and it's
@@ -1512,7 +1512,7 @@ _bt_endpoint(IndexScanDesc scan, ScanDirection dir)
 	}
 	else
 	{
-		elog(WARN, "Illegal scan direction %d", dir);
+		elog(ABORT, "Illegal scan direction %d", dir);
 	}
 
 	btitem = (BTItem) PageGetItem(page, PageGetItemId(page, start));
diff --git a/src/backend/access/nbtree/nbtsort.c b/src/backend/access/nbtree/nbtsort.c
index 2f1cc3aba8a..1d17bd0eaa3 100644
--- a/src/backend/access/nbtree/nbtsort.c
+++ b/src/backend/access/nbtree/nbtsort.c
@@ -5,7 +5,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Id: nbtsort.c,v 1.24 1997/09/18 20:19:53 momjian Exp $
+ *	  $Id: nbtsort.c,v 1.25 1998/01/05 03:29:55 momjian Exp $
  *
  * NOTES
  *
@@ -212,7 +212,7 @@ _bt_isortcmp(BTSortKey *k1, BTSortKey *k2)
 	if (_bt_inspool->isunique && !equal_isnull)
 	{
 		_bt_spooldestroy((void *) _bt_inspool);
-		elog(WARN, "Cannot create unique index. Table contains non-unique values");
+		elog(ABORT, "Cannot create unique index. Table contains non-unique values");
 	}
 	return (0);					/* 1 = 2 */
 }
@@ -333,7 +333,7 @@ _bt_pqadd(BTPriQueue *q, BTPriQueueElem *e)
 
 	if (q->btpq_nelem >= MAXELEM)
 	{
-		elog(WARN, "_bt_pqadd: queue overflow");
+		elog(ABORT, "_bt_pqadd: queue overflow");
 	}
 
 	child = q->btpq_nelem++;
@@ -426,7 +426,7 @@ _bt_tapecreate(char *fname)
 
 	if (tape == (BTTapeBlock *) NULL)
 	{
-		elog(WARN, "_bt_tapecreate: out of memory");
+		elog(ABORT, "_bt_tapecreate: out of memory");
 	}
 
 	tape->bttb_magic = BTTAPEMAGIC;
@@ -563,7 +563,7 @@ _bt_spoolinit(Relation index, int ntapes, bool isunique)
 
 	if (btspool == (BTSpool *) NULL || fname == (char *) NULL)
 	{
-		elog(WARN, "_bt_spoolinit: out of memory");
+		elog(ABORT, "_bt_spoolinit: out of memory");
 	}
 	MemSet((char *) btspool, 0, sizeof(BTSpool));
 	btspool->bts_ntapes = ntapes;
@@ -577,7 +577,7 @@ _bt_spoolinit(Relation index, int ntapes, bool isunique)
 	if (btspool->bts_itape == (BTTapeBlock **) NULL ||
 		btspool->bts_otape == (BTTapeBlock **) NULL)
 	{
-		elog(WARN, "_bt_spoolinit: out of memory");
+		elog(ABORT, "_bt_spoolinit: out of memory");
 	}
 
 	for (i = 0; i < ntapes; ++i)
diff --git a/src/backend/access/nbtree/nbtutils.c b/src/backend/access/nbtree/nbtutils.c
index 1eef73fb3fe..33b5cc56d89 100644
--- a/src/backend/access/nbtree/nbtutils.c
+++ b/src/backend/access/nbtree/nbtutils.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtutils.c,v 1.15 1997/09/18 20:19:55 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtutils.c,v 1.16 1998/01/05 03:29:56 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -119,7 +119,7 @@ _bt_orderkeys(Relation relation, BTScanOpaque so)
 
 	cur = &key[0];
 	if (cur->sk_attno != 1)
-		elog(WARN, "_bt_orderkeys: key(s) for attribute 1 missed");
+		elog(ABORT, "_bt_orderkeys: key(s) for attribute 1 missed");
 
 	if (numberOfKeys == 1)
 	{
@@ -159,7 +159,7 @@ _bt_orderkeys(Relation relation, BTScanOpaque so)
 		{
 			if (cur->sk_attno != attno + 1 && i < numberOfKeys)
 			{
-				elog(WARN, "_bt_orderkeys: key(s) for attribute %d missed", attno + 1);
+				elog(ABORT, "_bt_orderkeys: key(s) for attribute %d missed", attno + 1);
 			}
 
 			/*
@@ -296,7 +296,7 @@ _bt_formitem(IndexTuple itup)
 	/*
 	 * see comments in btbuild
 	 *
-	 * if (itup->t_info & INDEX_NULL_MASK) elog(WARN, "btree indices cannot
+	 * if (itup->t_info & INDEX_NULL_MASK) elog(ABORT, "btree indices cannot
 	 * include null keys");
 	 */
 
diff --git a/src/backend/access/rtree/rtproc.c b/src/backend/access/rtree/rtproc.c
index d8c4ad42c34..a78ea22892a 100644
--- a/src/backend/access/rtree/rtproc.c
+++ b/src/backend/access/rtree/rtproc.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtproc.c,v 1.12 1997/09/18 20:19:56 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtproc.c,v 1.13 1998/01/05 03:29:59 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -29,7 +29,7 @@ rt_box_union(BOX *a, BOX *b)
 	BOX		   *n;
 
 	if ((n = (BOX *) palloc(sizeof(*n))) == (BOX *) NULL)
-		elog(WARN, "Cannot allocate box for union");
+		elog(ABORT, "Cannot allocate box for union");
 
 	n->high.x = Max(a->high.x, b->high.x);
 	n->high.y = Max(a->high.y, b->high.y);
@@ -45,7 +45,7 @@ rt_box_inter(BOX *a, BOX *b)
 	BOX		   *n;
 
 	if ((n = (BOX *) palloc(sizeof(*n))) == (BOX *) NULL)
-		elog(WARN, "Cannot allocate box for union");
+		elog(ABORT, "Cannot allocate box for union");
 
 	n->high.x = Min(a->high.x, b->high.x);
 	n->high.y = Min(a->high.y, b->high.y);
@@ -94,7 +94,7 @@ rt_poly_union(POLYGON *a, POLYGON *b)
 	p = (POLYGON *) PALLOCTYPE(POLYGON);
 
 	if (!PointerIsValid(p))
-		elog(WARN, "Cannot allocate polygon for union");
+		elog(ABORT, "Cannot allocate polygon for union");
 
 	MemSet((char *) p, 0, sizeof(POLYGON));		/* zero any holes */
 	p->size = sizeof(POLYGON);
@@ -136,7 +136,7 @@ rt_poly_inter(POLYGON *a, POLYGON *b)
 	p = (POLYGON *) PALLOCTYPE(POLYGON);
 
 	if (!PointerIsValid(p))
-		elog(WARN, "Cannot allocate polygon for intersection");
+		elog(ABORT, "Cannot allocate polygon for intersection");
 
 	MemSet((char *) p, 0, sizeof(POLYGON));		/* zero any holes */
 	p->size = sizeof(POLYGON);
diff --git a/src/backend/access/rtree/rtree.c b/src/backend/access/rtree/rtree.c
index a51f3c36728..c85a6f7106d 100644
--- a/src/backend/access/rtree/rtree.c
+++ b/src/backend/access/rtree/rtree.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtree.c,v 1.19 1997/11/20 23:20:26 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtree.c,v 1.20 1998/01/05 03:30:02 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -125,7 +125,7 @@ rtbuild(Relation heap,
 	 */
 
 	if (oldPred == NULL && (nb = RelationGetNumberOfBlocks(index)) != 0)
-		elog(WARN, "%s already contains data", index->rd_rel->relname.data);
+		elog(ABORT, "%s already contains data", index->rd_rel->relname.data);
 
 	/* initialize the root page (if this is a new index) */
 	if (oldPred == NULL)
@@ -664,7 +664,7 @@ rtintinsert(Relation r,
 	 */
 
 	if (IndexTupleSize(old) != IndexTupleSize(ltup))
-		elog(WARN, "Variable-length rtree keys are not supported.");
+		elog(ABORT, "Variable-length rtree keys are not supported.");
 
 	/* install pointer to left child */
 	memmove(old, ltup, IndexTupleSize(ltup));
diff --git a/src/backend/access/rtree/rtscan.c b/src/backend/access/rtree/rtscan.c
index 73038a2ee8c..e6fd7ae3e1d 100644
--- a/src/backend/access/rtree/rtscan.c
+++ b/src/backend/access/rtree/rtscan.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtscan.c,v 1.13 1997/09/08 21:41:40 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtscan.c,v 1.14 1998/01/05 03:30:05 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -85,7 +85,7 @@ rtrescan(IndexScanDesc s, bool fromEnd, ScanKey key)
 
 	if (!IndexScanIsValid(s))
 	{
-		elog(WARN, "rtrescan: invalid scan.");
+		elog(ABORT, "rtrescan: invalid scan.");
 		return;
 	}
 
@@ -284,7 +284,7 @@ rtdropscan(IndexScanDesc s)
 	}
 
 	if (l == (RTScanList) NULL)
-		elog(WARN, "rtree scan list corrupted -- cannot find 0x%lx", s);
+		elog(ABORT, "rtree scan list corrupted -- cannot find 0x%lx", s);
 
 	if (prev == (RTScanList) NULL)
 		RTScans = l->rtsl_next;
@@ -400,7 +400,7 @@ adjustiptr(IndexScanDesc s,
 					break;
 
 				default:
-					elog(WARN, "Bad operation in rtree scan adjust: %d", op);
+					elog(ABORT, "Bad operation in rtree scan adjust: %d", op);
 			}
 		}
 	}
diff --git a/src/backend/access/transam/transam.c b/src/backend/access/transam/transam.c
index 02b7fa97693..8985e5ff0c6 100644
--- a/src/backend/access/transam/transam.c
+++ b/src/backend/access/transam/transam.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/transam/transam.c,v 1.14 1997/11/02 15:24:42 vadim Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/transam/transam.c,v 1.15 1998/01/05 03:30:07 momjian Exp $
  *
  * NOTES
  *	  This file contains the high level access-method interface to the
@@ -183,7 +183,7 @@ TransactionLogTest(TransactionId transactionId, /* transaction id to test */
 	 *	  here the block didn't contain the information we wanted
 	 * ----------------
 	 */
-	elog(WARN, "TransactionLogTest: failed to get xidstatus");
+	elog(ABORT, "TransactionLogTest: failed to get xidstatus");
 
 	/*
 	 * so lint is happy...
@@ -308,7 +308,7 @@ TransRecover(Relation logRelation)
 	 */
 	TransGetLastRecordedTransaction(logRelation, logLastXid, &fail);
 	if (fail == true)
-		elog(WARN, "TransRecover: failed TransGetLastRecordedTransaction");
+		elog(ABORT, "TransRecover: failed TransGetLastRecordedTransaction");
 
 	/* ----------------
 	 *	  next get the "last" and "next" variables
@@ -322,7 +322,7 @@ TransRecover(Relation logRelation)
 	 * ----------------
 	 */
 	if (TransactionIdIsLessThan(varNextXid, logLastXid))
-		elog(WARN, "TransRecover: varNextXid < logLastXid");
+		elog(ABORT, "TransRecover: varNextXid < logLastXid");
 
 	/* ----------------
 	 *	  intregity test (2)
diff --git a/src/backend/access/transam/transsup.c b/src/backend/access/transam/transsup.c
index a80b769982a..4de186da4fd 100644
--- a/src/backend/access/transam/transsup.c
+++ b/src/backend/access/transam/transsup.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/transam/Attic/transsup.c,v 1.14 1997/11/02 15:24:44 vadim Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/transam/Attic/transsup.c,v 1.15 1998/01/05 03:30:10 momjian Exp $
  *
  * NOTES
  *	  This file contains support functions for the high
@@ -68,7 +68,7 @@ TransComputeBlockNumber(Relation relation,		/* relation to test */
 	if (relation == LogRelation)
 		itemsPerBlock = TP_NumXidStatusPerBlock;
 	else
-		elog(WARN, "TransComputeBlockNumber: unknown relation");
+		elog(ABORT, "TransComputeBlockNumber: unknown relation");
 
 	/* ----------------
 	 *	warning! if the transaction id's get too large
diff --git a/src/backend/access/transam/varsup.c b/src/backend/access/transam/varsup.c
index e082350cb66..2474a6ac81a 100644
--- a/src/backend/access/transam/varsup.c
+++ b/src/backend/access/transam/varsup.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/transam/varsup.c,v 1.13 1997/11/02 15:24:45 vadim Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/transam/varsup.c,v 1.14 1998/01/05 03:30:12 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -69,7 +69,7 @@ VariableRelationGetNextXid(TransactionId *xidP)
 	if (!BufferIsValid(buf))
 	{
 		SpinRelease(OidGenLockId);
-		elog(WARN, "VariableRelationGetNextXid: ReadBuffer failed");
+		elog(ABORT, "VariableRelationGetNextXid: ReadBuffer failed");
 	}
 
 	var = (VariableRelationContents) BufferGetBlock(buf);
@@ -112,7 +112,7 @@ VariableRelationPutNextXid(TransactionId xid)
 	if (!BufferIsValid(buf))
 	{
 		SpinRelease(OidGenLockId);
-		elog(WARN, "VariableRelationPutNextXid: ReadBuffer failed");
+		elog(ABORT, "VariableRelationPutNextXid: ReadBuffer failed");
 	}
 
 	var = (VariableRelationContents) BufferGetBlock(buf);
@@ -164,7 +164,7 @@ VariableRelationGetNextOid(Oid *oid_return)
 	if (!BufferIsValid(buf))
 	{
 		SpinRelease(OidGenLockId);
-		elog(WARN, "VariableRelationGetNextXid: ReadBuffer failed");
+		elog(ABORT, "VariableRelationGetNextXid: ReadBuffer failed");
 	}
 
 	var = (VariableRelationContents) BufferGetBlock(buf);
@@ -224,7 +224,7 @@ VariableRelationPutNextOid(Oid *oidP)
 	if (!PointerIsValid(oidP))
 	{
 		SpinRelease(OidGenLockId);
-		elog(WARN, "VariableRelationPutNextOid: invalid oid pointer");
+		elog(ABORT, "VariableRelationPutNextOid: invalid oid pointer");
 	}
 
 	/* ----------------
@@ -237,7 +237,7 @@ VariableRelationPutNextOid(Oid *oidP)
 	if (!BufferIsValid(buf))
 	{
 		SpinRelease(OidGenLockId);
-		elog(WARN, "VariableRelationPutNextOid: ReadBuffer failed");
+		elog(ABORT, "VariableRelationPutNextOid: ReadBuffer failed");
 	}
 
 	var = (VariableRelationContents) BufferGetBlock(buf);
diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c
index ea5f1146d88..119dcd97f47 100644
--- a/src/backend/access/transam/xact.c
+++ b/src/backend/access/transam/xact.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/transam/xact.c,v 1.17 1997/11/02 15:24:46 vadim Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/transam/xact.c,v 1.18 1998/01/05 03:30:13 momjian Exp $
  *
  * NOTES
  *		Transaction aborts can now occur two ways:
@@ -497,7 +497,7 @@ CommandCounterIncrement()
 	if (CurrentTransactionStateData.commandId == FirstCommandId)
 	{
 		CommandIdCounterOverflowFlag = true;
-		elog(WARN, "You may only have 2^32-1 commands per transaction");
+		elog(ABORT, "You may only have 2^32-1 commands per transaction");
 	}
 
 	CurrentTransactionStateData.scanCommandId =
diff --git a/src/backend/bootstrap/bootparse.y b/src/backend/bootstrap/bootparse.y
index 40a08e5220d..d9340f2544e 100644
--- a/src/backend/bootstrap/bootparse.y
+++ b/src/backend/bootstrap/bootparse.y
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/bootstrap/bootparse.y,v 1.10 1997/12/17 18:21:37 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/bootstrap/bootparse.y,v 1.11 1998/01/05 03:30:16 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -203,10 +203,10 @@ InsertStmt:
 		  LPAREN  tuplelist RPAREN
 				{
 					if (num_tuples_read != numattr)
-						elog(WARN,"incorrect number of values for tuple");
+						elog(ABORT,"incorrect number of values for tuple");
 					if (reldesc == (Relation)NULL)
 					{
-						elog(WARN,"must OPEN RELATION before INSERT\n");
+						elog(ABORT,"must OPEN RELATION before INSERT\n");
 						err_out();
 					}
 					if (DebugMode)
diff --git a/src/backend/bootstrap/bootstrap.c b/src/backend/bootstrap/bootstrap.c
index e620b3fdbac..b7592cfc660 100644
--- a/src/backend/bootstrap/bootstrap.c
+++ b/src/backend/bootstrap/bootstrap.c
@@ -7,7 +7,7 @@
  * Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.30 1998/01/01 05:40:28 thomas Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.31 1998/01/05 03:30:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -572,18 +572,18 @@ closerel(char *name)
 		if (reldesc)
 		{
 			if (namestrcmp(RelationGetRelationName(reldesc), name) != 0)
-				elog(WARN, "closerel: close of '%s' when '%s' was expected",
+				elog(ABORT, "closerel: close of '%s' when '%s' was expected",
 					 name, relname ? relname : "(null)");
 		}
 		else
-			elog(WARN, "closerel: close of '%s' before any relation was opened",
+			elog(ABORT, "closerel: close of '%s' before any relation was opened",
 				 name);
 
 	}
 
 	if (reldesc == NULL)
 	{
-		elog(WARN, "Warning: no opened relation to close.\n");
+		elog(ABORT, "Warning: no opened relation to close.\n");
 	}
 	else
 	{
@@ -879,7 +879,7 @@ gettype(char *type)
 		heap_close(rdesc);
 		return (gettype(type));
 	}
-	elog(WARN, "Error: unknown type '%s'.\n", type);
+	elog(ABORT, "Error: unknown type '%s'.\n", type);
 	err_out();
 	/* not reached, here to make compiler happy */
 	return 0;
diff --git a/src/backend/catalog/catalog.c b/src/backend/catalog/catalog.c
index 09eac542eea..5d123b7683d 100644
--- a/src/backend/catalog/catalog.c
+++ b/src/backend/catalog/catalog.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/catalog/catalog.c,v 1.10 1997/09/08 21:42:12 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/catalog/catalog.c,v 1.11 1998/01/05 03:30:22 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -132,7 +132,7 @@ newoid()
 
 	GetNewObjectId(&lastoid);
 	if (!OidIsValid(lastoid))
-		elog(WARN, "newoid: GetNewObjectId returns invalid oid");
+		elog(ABORT, "newoid: GetNewObjectId returns invalid oid");
 	return lastoid;
 }
 
@@ -162,7 +162,7 @@ fillatt(TupleDesc tupleDesc)
 	AttributeTupleForm *att = tupleDesc->attrs;
 
 	if (natts < 0 || natts > MaxHeapAttributeNumber)
-		elog(WARN, "fillatt: %d attributes is too large", natts);
+		elog(ABORT, "fillatt: %d attributes is too large", natts);
 	if (natts == 0)
 	{
 		elog(DEBUG, "fillatt: called with natts == 0");
@@ -178,7 +178,7 @@ fillatt(TupleDesc tupleDesc)
 									0, 0, 0);
 		if (!HeapTupleIsValid(tuple))
 		{
-			elog(WARN, "fillatt: unknown atttypid %ld",
+			elog(ABORT, "fillatt: unknown atttypid %ld",
 				 (*attributeP)->atttypid);
 		}
 		else
diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c
index 4384aa34a5b..87205aa82bc 100644
--- a/src/backend/catalog/heap.c
+++ b/src/backend/catalog/heap.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.41 1997/12/11 17:35:59 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.42 1998/01/05 03:30:27 momjian Exp $
  *
  * INTERFACE ROUTINES
  *		heap_create()			- Create an uncataloged heap relation
@@ -194,7 +194,7 @@ heap_create(char *name,
 
 	if (IsSystemRelationName(relname) && IsNormalProcessingMode())
 	{
-		elog(WARN,
+		elog(ABORT,
 		 "Illegal class name: %s -- pg_ is reserved for system catalogs",
 			 relname);
 	}
@@ -396,7 +396,7 @@ heap_create(char *name,
  *
  *		this is used to make certain the tuple descriptor contains a
  *		valid set of attribute names.  a problem simply generates
- *		elog(WARN) which aborts the current transaction.
+ *		elog(ABORT) which aborts the current transaction.
  * --------------------------------
  */
 static void
@@ -421,7 +421,7 @@ CheckAttributeNames(TupleDesc tupdesc)
 			if (nameeq(&(HeapAtt[j]->attname),
 					   &(tupdesc->attrs[i]->attname)))
 			{
-				elog(WARN,
+				elog(ABORT,
 					 "create: system attribute named \"%s\"",
 					 HeapAtt[j]->attname.data);
 			}
@@ -445,7 +445,7 @@ CheckAttributeNames(TupleDesc tupdesc)
 			if (nameeq(&(tupdesc->attrs[j]->attname),
 					   &(tupdesc->attrs[i]->attname)))
 			{
-				elog(WARN,
+				elog(ABORT,
 					 "create: repeated attribute \"%s\"",
 					 tupdesc->attrs[j]->attname.data);
 			}
@@ -762,7 +762,7 @@ heap_create_with_catalog(char relname[],
 	 */
 	AssertState(IsNormalProcessingMode() || IsBootstrapProcessingMode());
 	if (natts == 0 || natts > MaxHeapAttributeNumber)
-		elog(WARN, "amcreate: from 1 to %d attributes must be specified",
+		elog(ABORT, "amcreate: from 1 to %d attributes must be specified",
 			 MaxHeapAttributeNumber);
 
 	CheckAttributeNames(tupdesc);
@@ -777,7 +777,7 @@ heap_create_with_catalog(char relname[],
 	if (RelationAlreadyExists(pg_class_desc, relname))
 	{
 		heap_close(pg_class_desc);
-		elog(WARN, "amcreate: %s relation already exists", relname);
+		elog(ABORT, "amcreate: %s relation already exists", relname);
 	}
 
 	/* ----------------
@@ -910,7 +910,7 @@ RelationRemoveInheritance(Relation relation)
 		heap_endscan(scan);
 		heap_close(catalogRelation);
 
-		elog(WARN, "relation <%d> inherits \"%s\"",
+		elog(ABORT, "relation <%d> inherits \"%s\"",
 			 ((InheritsTupleForm) GETSTRUCT(tuple))->inhrel,
 			 RelationGetRelationName(relation));
 	}
@@ -1054,7 +1054,7 @@ DeletePgRelationTuple(Relation rdesc)
 	{
 		heap_endscan(pg_class_scan);
 		heap_close(pg_class_desc);
-		elog(WARN, "DeletePgRelationTuple: %s relation nonexistent",
+		elog(ABORT, "DeletePgRelationTuple: %s relation nonexistent",
 			 &rdesc->rd_rel->relname);
 	}
 
@@ -1187,7 +1187,7 @@ DeletePgTypeTuple(Relation rdesc)
 	{
 		heap_endscan(pg_type_scan);
 		heap_close(pg_type_desc);
-		elog(WARN, "DeletePgTypeTuple: %s type nonexistent",
+		elog(ABORT, "DeletePgTypeTuple: %s type nonexistent",
 			 &rdesc->rd_rel->relname);
 	}
 
@@ -1229,7 +1229,7 @@ DeletePgTypeTuple(Relation rdesc)
 		heap_endscan(pg_attribute_scan);
 		heap_close(pg_attribute_desc);
 
-		elog(WARN, "DeletePgTypeTuple: att of type %s exists in relation %d",
+		elog(ABORT, "DeletePgTypeTuple: att of type %s exists in relation %d",
 			 &rdesc->rd_rel->relname, relid);
 	}
 	heap_endscan(pg_attribute_scan);
@@ -1265,7 +1265,7 @@ heap_destroy_with_catalog(char *relname)
 	 */
 	rdesc = heap_openr(relname);
 	if (rdesc == NULL)
-		elog(WARN, "Relation %s Does Not Exist!", relname);
+		elog(ABORT, "Relation %s Does Not Exist!", relname);
 
 	RelationSetLockForWrite(rdesc);
 	rid = rdesc->rd_id;
@@ -1275,7 +1275,7 @@ heap_destroy_with_catalog(char *relname)
 	 * ----------------
 	 */
 	if (IsSystemRelationName(RelationGetRelationName(rdesc)->data))
-		elog(WARN, "amdestroy: cannot destroy %s relation",
+		elog(ABORT, "amdestroy: cannot destroy %s relation",
 			 &rdesc->rd_rel->relname);
 
 	/* ----------------
@@ -1516,7 +1516,7 @@ start:;
 
 	if (length(query->rtable) > 1 ||
 		flatten_tlist(query->targetList) != NIL)
-		elog(WARN, "DEFAULT: cannot use attribute(s)");
+		elog(ABORT, "DEFAULT: cannot use attribute(s)");
 	te = (TargetEntry *) lfirst(query->targetList);
 	resdom = te->resdom;
 	expr = te->expr;
@@ -1526,13 +1526,13 @@ start:;
 		if (((Const *) expr)->consttype != atp->atttypid)
 		{
 			if (*cast != 0)
-				elog(WARN, "DEFAULT: const type mismatched");
+				elog(ABORT, "DEFAULT: const type mismatched");
 			sprintf(cast, ":: %s", typeidTypeName(atp->atttypid));
 			goto start;
 		}
 	}
 	else if (exprType(expr) != atp->atttypid)
-		elog(WARN, "DEFAULT: type mismatched");
+		elog(ABORT, "DEFAULT: type mismatched");
 
 	adbin = nodeToString(expr);
 	oldcxt = MemoryContextSwitchTo((MemoryContext) CacheCxt);
@@ -1585,7 +1585,7 @@ StoreRelCheck(Relation rel, ConstrCheck *check)
 	query = (Query *) (queryTree_list->qtrees[0]);
 
 	if (length(query->rtable) > 1)
-		elog(WARN, "CHECK: only relation %.*s can be referenced",
+		elog(ABORT, "CHECK: only relation %.*s can be referenced",
 			 NAMEDATALEN, rel->rd_rel->relname.data);
 
 	plan = (Plan *) lfirst(planTree_list);
diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index 408908a140a..adf28cec626 100644
--- a/src/backend/catalog/index.c
+++ b/src/backend/catalog/index.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.31 1997/11/28 04:39:38 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.32 1998/01/05 03:30:30 momjian Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -237,7 +237,7 @@ GetHeapRelationOid(char *heapRelationName, char *indexRelationName)
 									 false);
 
 	if (OidIsValid(indoid))
-		elog(WARN, "Cannot create index: '%s' already exists",
+		elog(ABORT, "Cannot create index: '%s' already exists",
 			 indexRelationName);
 
 	/* ----------------
@@ -253,7 +253,7 @@ GetHeapRelationOid(char *heapRelationName, char *indexRelationName)
 	 * ----------------
 	 */
 	if (!OidIsValid(heapoid))
-		elog(WARN, "Cannot create index on '%s': relation does not exist",
+		elog(ABORT, "Cannot create index on '%s': relation does not exist",
 			 heapRelationName);
 
 	/* ----------------
@@ -306,7 +306,7 @@ BuildFuncTupleDesc(FuncIndexInfo *funcInfo)
 								ObjectIdGetDatum(retType),
 								0, 0, 0);
 	if (!HeapTupleIsValid(tuple))
-		elog(WARN, "Function %s return type does not exist", FIgetname(funcInfo));
+		elog(ABORT, "Function %s return type does not exist", FIgetname(funcInfo));
 
 	/*
 	 * Assign some of the attributes values. Leave the rest as 0.
@@ -374,7 +374,7 @@ ConstructTupleDescriptor(Oid heapoid,
 		 */
 		atnum = attNums[i];
 		if (atnum > natts)
-			elog(WARN, "Cannot create index: attribute %d does not exist",
+			elog(ABORT, "Cannot create index: attribute %d does not exist",
 				 atnum);
 		if (attributeList)
 		{
@@ -404,7 +404,7 @@ ConstructTupleDescriptor(Oid heapoid,
 			 * ----------------
 			 */
 			if (atnum <= FirstLowInvalidHeapAttributeNumber || atnum >= 0)
-				elog(WARN, "Cannot create index on system attribute: attribute number out of range (%d)", atnum);
+				elog(ABORT, "Cannot create index on system attribute: attribute number out of range (%d)", atnum);
 			atind = (-atnum) - 1;
 
 			from = (char *) (&sysatts[atind]);
@@ -450,7 +450,7 @@ ConstructTupleDescriptor(Oid heapoid,
 									  PointerGetDatum(IndexKeyType->name),
 									  0, 0, 0);
 			if (!HeapTupleIsValid(tup))
-				elog(WARN, "create index: type '%s' undefined",
+				elog(ABORT, "create index: type '%s' undefined",
 					 IndexKeyType->name);
 			((AttributeTupleForm) to)->atttypid = tup->t_oid;
 			((AttributeTupleForm) to)->attbyval =
@@ -1082,7 +1082,7 @@ index_create(char *heapRelationName,
 	 * ----------------
 	 */
 	if (numatts < 1)
-		elog(WARN, "must index at least one attribute");
+		elog(ABORT, "must index at least one attribute");
 
 	/* ----------------
 	 *	  get heap relation oid and open the heap relation
@@ -1297,7 +1297,7 @@ index_destroy(Oid indexId)
 	 * physically remove the file
 	 */
 	if (FileNameUnlink(relpath(indexRelation->rd_rel->relname.data)) < 0)
-		elog(WARN, "amdestroyr: unlink: %m");
+		elog(ABORT, "amdestroyr: unlink: %m");
 
 	index_close(indexRelation);
 }
@@ -1398,7 +1398,7 @@ UpdateStats(Oid relid, long reltuples, bool hasindex)
 	whichRel = RelationIdGetRelation(relid);
 
 	if (!RelationIsValid(whichRel))
-		elog(WARN, "UpdateStats: cannot open relation id %d", relid);
+		elog(ABORT, "UpdateStats: cannot open relation id %d", relid);
 
 	/* ----------------
 	 * Find the RELATION relation tuple for the given relation.
@@ -1407,7 +1407,7 @@ UpdateStats(Oid relid, long reltuples, bool hasindex)
 	pg_class = heap_openr(RelationRelationName);
 	if (!RelationIsValid(pg_class))
 	{
-		elog(WARN, "UpdateStats: could not open RELATION relation");
+		elog(ABORT, "UpdateStats: could not open RELATION relation");
 	}
 	key[0].sk_argument = ObjectIdGetDatum(relid);
 
@@ -1417,7 +1417,7 @@ UpdateStats(Oid relid, long reltuples, bool hasindex)
 	if (!HeapScanIsValid(pg_class_scan))
 	{
 		heap_close(pg_class);
-		elog(WARN, "UpdateStats: cannot scan RELATION relation");
+		elog(ABORT, "UpdateStats: cannot scan RELATION relation");
 	}
 
 	/* if the heap_open above succeeded, then so will this heap_getnext() */
@@ -1784,7 +1784,7 @@ IndexIsUnique(Oid indexId)
 								0, 0, 0);
 	if (!HeapTupleIsValid(tuple))
 	{
-		elog(WARN, "IndexIsUnique: can't find index id %d",
+		elog(ABORT, "IndexIsUnique: can't find index id %d",
 			 indexId);
 	}
 	index = (IndexTupleForm) GETSTRUCT(tuple);
@@ -1827,7 +1827,7 @@ IndexIsUniqueNoCache(Oid indexId)
 	tuple = heap_getnext(scandesc, 0, NULL);
 	if (!HeapTupleIsValid(tuple))
 	{
-		elog(WARN, "IndexIsUniqueNoCache: can't find index id %d",
+		elog(ABORT, "IndexIsUniqueNoCache: can't find index id %d",
 			 indexId);
 	}
 	index = (IndexTupleForm) GETSTRUCT(tuple);
diff --git a/src/backend/catalog/pg_aggregate.c b/src/backend/catalog/pg_aggregate.c
index 4c3b11c54c6..94ed8241bfc 100644
--- a/src/backend/catalog/pg_aggregate.c
+++ b/src/backend/catalog/pg_aggregate.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/catalog/pg_aggregate.c,v 1.9 1997/09/18 20:20:15 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/catalog/pg_aggregate.c,v 1.10 1998/01/05 03:30:32 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -84,16 +84,16 @@ AggregateCreate(char *aggName,
 
 	/* sanity checks */
 	if (!aggName)
-		elog(WARN, "AggregateCreate: no aggregate name supplied");
+		elog(ABORT, "AggregateCreate: no aggregate name supplied");
 
 	if (!aggtransfn1Name && !aggtransfn2Name)
-		elog(WARN, "AggregateCreate: aggregate must have at least one transition function");
+		elog(ABORT, "AggregateCreate: aggregate must have at least one transition function");
 
 	tup = SearchSysCacheTuple(TYPNAME,
 							  PointerGetDatum(aggbasetypeName),
 							  0, 0, 0);
 	if (!HeapTupleIsValid(tup))
-		elog(WARN, "AggregateCreate: Type '%s' undefined", aggbasetypeName);
+		elog(ABORT, "AggregateCreate: Type '%s' undefined", aggbasetypeName);
 	xbase = tup->t_oid;
 
 	if (aggtransfn1Name)
@@ -102,7 +102,7 @@ AggregateCreate(char *aggName,
 								  PointerGetDatum(aggtransfn1typeName),
 								  0, 0, 0);
 		if (!HeapTupleIsValid(tup))
-			elog(WARN, "AggregateCreate: Type '%s' undefined",
+			elog(ABORT, "AggregateCreate: Type '%s' undefined",
 				 aggtransfn1typeName);
 		xret1 = tup->t_oid;
 
@@ -114,16 +114,16 @@ AggregateCreate(char *aggName,
 								  PointerGetDatum(fnArgs),
 								  0);
 		if (!HeapTupleIsValid(tup))
-			elog(WARN, "AggregateCreate: '%s('%s', '%s') does not exist",
+			elog(ABORT, "AggregateCreate: '%s('%s', '%s') does not exist",
 				 aggtransfn1Name, aggtransfn1typeName, aggbasetypeName);
 		if (((Form_pg_proc) GETSTRUCT(tup))->prorettype != xret1)
-			elog(WARN, "AggregateCreate: return type of '%s' is not '%s'",
+			elog(ABORT, "AggregateCreate: return type of '%s' is not '%s'",
 				 aggtransfn1Name,
 				 aggtransfn1typeName);
 		xfn1 = tup->t_oid;
 		if (!OidIsValid(xfn1) || !OidIsValid(xret1) ||
 			!OidIsValid(xbase))
-			elog(WARN, "AggregateCreate: bogus function '%s'", aggfinalfnName);
+			elog(ABORT, "AggregateCreate: bogus function '%s'", aggfinalfnName);
 	}
 
 	if (aggtransfn2Name)
@@ -132,7 +132,7 @@ AggregateCreate(char *aggName,
 								  PointerGetDatum(aggtransfn2typeName),
 								  0, 0, 0);
 		if (!HeapTupleIsValid(tup))
-			elog(WARN, "AggregateCreate: Type '%s' undefined",
+			elog(ABORT, "AggregateCreate: Type '%s' undefined",
 				 aggtransfn2typeName);
 		xret2 = tup->t_oid;
 
@@ -144,30 +144,30 @@ AggregateCreate(char *aggName,
 								  PointerGetDatum(fnArgs),
 								  0);
 		if (!HeapTupleIsValid(tup))
-			elog(WARN, "AggregateCreate: '%s'('%s') does not exist",
+			elog(ABORT, "AggregateCreate: '%s'('%s') does not exist",
 				 aggtransfn2Name, aggtransfn2typeName);
 		if (((Form_pg_proc) GETSTRUCT(tup))->prorettype != xret2)
-			elog(WARN, "AggregateCreate: return type of '%s' is not '%s'",
+			elog(ABORT, "AggregateCreate: return type of '%s' is not '%s'",
 				 aggtransfn2Name, aggtransfn2typeName);
 		xfn2 = tup->t_oid;
 		if (!OidIsValid(xfn2) || !OidIsValid(xret2))
-			elog(WARN, "AggregateCreate: bogus function '%s'", aggfinalfnName);
+			elog(ABORT, "AggregateCreate: bogus function '%s'", aggfinalfnName);
 	}
 
 	tup = SearchSysCacheTuple(AGGNAME, PointerGetDatum(aggName),
 							  ObjectIdGetDatum(xbase),
 							  0, 0);
 	if (HeapTupleIsValid(tup))
-		elog(WARN,
+		elog(ABORT,
 			 "AggregateCreate: aggregate '%s' with base type '%s' already exists",
 			 aggName, aggbasetypeName);
 
 	/* more sanity checks */
 	if (aggtransfn1Name && aggtransfn2Name && !aggfinalfnName)
-		elog(WARN, "AggregateCreate: Aggregate must have final function with both transition functions");
+		elog(ABORT, "AggregateCreate: Aggregate must have final function with both transition functions");
 
 	if ((!aggtransfn1Name || !aggtransfn2Name) && aggfinalfnName)
-		elog(WARN, "AggregateCreate: Aggregate cannot have final function without both transition functions");
+		elog(ABORT, "AggregateCreate: Aggregate cannot have final function without both transition functions");
 
 	if (aggfinalfnName)
 	{
@@ -179,13 +179,13 @@ AggregateCreate(char *aggName,
 								  PointerGetDatum(fnArgs),
 								  0);
 		if (!HeapTupleIsValid(tup))
-			elog(WARN, "AggregateCreate: '%s'('%s','%s') does not exist",
+			elog(ABORT, "AggregateCreate: '%s'('%s','%s') does not exist",
 			   aggfinalfnName, aggtransfn1typeName, aggtransfn2typeName);
 		ffn = tup->t_oid;
 		proc = (Form_pg_proc) GETSTRUCT(tup);
 		fret = proc->prorettype;
 		if (!OidIsValid(ffn) || !OidIsValid(fret))
-			elog(WARN, "AggregateCreate: bogus function '%s'", aggfinalfnName);
+			elog(ABORT, "AggregateCreate: bogus function '%s'", aggfinalfnName);
 	}
 
 	/*
@@ -194,7 +194,7 @@ AggregateCreate(char *aggName,
 	 * aggregates to return NULL if they are evaluated on empty sets.
 	 */
 	if (OidIsValid(xfn2) && !agginitval2)
-		elog(WARN, "AggregateCreate: transition function 2 MUST have an initial value");
+		elog(ABORT, "AggregateCreate: transition function 2 MUST have an initial value");
 
 	/* initialize nulls and values */
 	for (i = 0; i < Natts_pg_aggregate; i++)
@@ -253,16 +253,16 @@ AggregateCreate(char *aggName,
 		nulls[Anum_pg_aggregate_agginitval2 - 1] = 'n';
 
 	if (!RelationIsValid(aggdesc = heap_openr(AggregateRelationName)))
-		elog(WARN, "AggregateCreate: could not open '%s'",
+		elog(ABORT, "AggregateCreate: could not open '%s'",
 			 AggregateRelationName);
 
 	tupDesc = aggdesc->rd_att;
 	if (!HeapTupleIsValid(tup = heap_formtuple(tupDesc,
 											   values,
 											   nulls)))
-		elog(WARN, "AggregateCreate: heap_formtuple failed");
+		elog(ABORT, "AggregateCreate: heap_formtuple failed");
 	if (!OidIsValid(heap_insert(aggdesc, tup)))
-		elog(WARN, "AggregateCreate: heap_insert failed");
+		elog(ABORT, "AggregateCreate: heap_insert failed");
 	heap_close(aggdesc);
 
 }
@@ -287,7 +287,7 @@ AggNameGetInitVal(char *aggName, Oid basetype, int xfuncno, bool *isNull)
 							  PointerGetDatum(basetype),
 							  0, 0);
 	if (!HeapTupleIsValid(tup))
-		elog(WARN, "AggNameGetInitVal: cache lookup failed for aggregate '%s'",
+		elog(ABORT, "AggNameGetInitVal: cache lookup failed for aggregate '%s'",
 			 aggName);
 	if (xfuncno == 1)
 	{
@@ -303,7 +303,7 @@ AggNameGetInitVal(char *aggName, Oid basetype, int xfuncno, bool *isNull)
 
 	aggRel = heap_openr(AggregateRelationName);
 	if (!RelationIsValid(aggRel))
-		elog(WARN, "AggNameGetInitVal: could not open \"%-.*s\"",
+		elog(ABORT, "AggNameGetInitVal: could not open \"%-.*s\"",
 			 AggregateRelationName);
 
 	/*
@@ -328,7 +328,7 @@ AggNameGetInitVal(char *aggName, Oid basetype, int xfuncno, bool *isNull)
 	if (!HeapTupleIsValid(tup))
 	{
 		pfree(strInitVal);
-		elog(WARN, "AggNameGetInitVal: cache lookup failed on aggregate transition function return type");
+		elog(ABORT, "AggNameGetInitVal: cache lookup failed on aggregate transition function return type");
 	}
 	initVal = fmgr(((TypeTupleForm) GETSTRUCT(tup))->typinput, strInitVal, -1);
 	pfree(strInitVal);
diff --git a/src/backend/catalog/pg_operator.c b/src/backend/catalog/pg_operator.c
index bbdd23701ad..10ffe731056 100644
--- a/src/backend/catalog/pg_operator.c
+++ b/src/backend/catalog/pg_operator.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/catalog/pg_operator.c,v 1.17 1997/11/25 21:58:46 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/catalog/pg_operator.c,v 1.18 1998/01/05 03:30:32 momjian Exp $
  *
  * NOTES
  *	  these routines moved here from commands/define.c and somewhat cleaned up.
@@ -171,7 +171,7 @@ OperatorGet(char *operatorName,
 		leftObjectId = TypeGet(leftTypeName, &leftDefined);
 
 		if (!OidIsValid(leftObjectId) || !leftDefined)
-			elog(WARN, "OperatorGet: left type '%s' nonexistent", leftTypeName);
+			elog(ABORT, "OperatorGet: left type '%s' nonexistent", leftTypeName);
 	}
 
 	if (rightTypeName)
@@ -179,13 +179,13 @@ OperatorGet(char *operatorName,
 		rightObjectId = TypeGet(rightTypeName, &rightDefined);
 
 		if (!OidIsValid(rightObjectId) || !rightDefined)
-			elog(WARN, "OperatorGet: right type '%s' nonexistent",
+			elog(ABORT, "OperatorGet: right type '%s' nonexistent",
 				 rightTypeName);
 	}
 
 	if (!((OidIsValid(leftObjectId) && leftDefined) ||
 		  (OidIsValid(rightObjectId) && rightDefined)))
-		elog(WARN, "OperatorGet: no argument types??");
+		elog(ABORT, "OperatorGet: no argument types??");
 
 	/* ----------------
 	 *	open the pg_operator relation
@@ -327,7 +327,7 @@ OperatorShellMake(char *operatorName,
 
 	if (!((OidIsValid(leftObjectId) && leftDefined) ||
 		  (OidIsValid(rightObjectId) && rightDefined)))
-		elog(WARN, "OperatorShellMake: no valid argument types??");
+		elog(ABORT, "OperatorShellMake: no valid argument types??");
 
 	/* ----------------
 	 *	open pg_operator
@@ -494,7 +494,7 @@ OperatorDef(char *operatorName,
 								   rightTypeName);
 
 	if (OidIsValid(operatorObjectId) && !definedOK)
-		elog(WARN, "OperatorDef: operator \"%s\" already defined",
+		elog(ABORT, "OperatorDef: operator \"%s\" already defined",
 			 operatorName);
 
 	if (leftTypeName)
@@ -505,7 +505,7 @@ OperatorDef(char *operatorName,
 
 	if (!((OidIsValid(leftTypeId && leftDefined)) ||
 		  (OidIsValid(rightTypeId && rightDefined))))
-		elog(WARN, "OperatorGet: no argument types??");
+		elog(ABORT, "OperatorGet: no argument types??");
 
 	for (i = 0; i < Natts_pg_operator; ++i)
 	{
@@ -668,7 +668,7 @@ OperatorDef(char *operatorName,
 				}
 
 				if (!OidIsValid(other_oid))
-					elog(WARN,
+					elog(ABORT,
 						 "OperatorDef: can't create operator '%s'",
 						 name[j]);
 				values[i++] = ObjectIdGetDatum(other_oid);
@@ -719,7 +719,7 @@ OperatorDef(char *operatorName,
 			setheapoverride(false);
 		}
 		else
-			elog(WARN, "OperatorDef: no operator %d", other_oid);
+			elog(ABORT, "OperatorDef: no operator %d", other_oid);
 
 		heap_endscan(pg_operator_scan);
 
@@ -994,7 +994,7 @@ OperatorCreate(char *operatorName,
 	int			definedOK;
 
 	if (!leftTypeName && !rightTypeName)
-		elog(WARN, "OperatorCreate : at least one of leftarg or rightarg must be defined");
+		elog(ABORT, "OperatorCreate : at least one of leftarg or rightarg must be defined");
 
 	/* ----------------
 	 *	get the oid's of the operator's associated operators, if possible.
diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c
index 464c8f68c6f..c8609f6a36b 100644
--- a/src/backend/catalog/pg_proc.c
+++ b/src/backend/catalog/pg_proc.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.11 1997/12/11 17:36:01 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.12 1998/01/05 03:30:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -87,13 +87,13 @@ ProcedureCreate(char *procedureName,
 		Value	   *t = lfirst(x);
 
 		if (parameterCount == 8)
-			elog(WARN, "Procedures cannot take more than 8 arguments");
+			elog(ABORT, "Procedures cannot take more than 8 arguments");
 
 		if (strcmp(strVal(t), "opaque") == 0)
 		{
 			if (strcmp(languageName, "sql") == 0)
 			{
-				elog(WARN, "ProcedureDefine: sql functions cannot take type \"opaque\"");
+				elog(ABORT, "ProcedureDefine: sql functions cannot take type \"opaque\"");
 			}
 			toid = 0;
 		}
@@ -103,7 +103,7 @@ ProcedureCreate(char *procedureName,
 
 			if (!OidIsValid(toid))
 			{
-				elog(WARN, "ProcedureCreate: arg type '%s' is not defined",
+				elog(ABORT, "ProcedureCreate: arg type '%s' is not defined",
 					 strVal(t));
 			}
 
@@ -124,7 +124,7 @@ ProcedureCreate(char *procedureName,
 							  0);
 
 	if (HeapTupleIsValid(tup))
-		elog(WARN, "ProcedureCreate: procedure %s already exists with same arguments",
+		elog(ABORT, "ProcedureCreate: procedure %s already exists with same arguments",
 			 procedureName);
 
 	if (!strcmp(languageName, "sql"))
@@ -152,7 +152,7 @@ ProcedureCreate(char *procedureName,
 							  0, 0, 0);
 
 	if (!HeapTupleIsValid(tup))
-		elog(WARN, "ProcedureCreate: no such language %s",
+		elog(ABORT, "ProcedureCreate: no such language %s",
 			 languageName);
 
 	languageObjectId = tup->t_oid;
@@ -161,7 +161,7 @@ ProcedureCreate(char *procedureName,
 	{
 		if (strcmp(languageName, "sql") == 0)
 		{
-			elog(WARN, "ProcedureCreate: sql functions cannot return type \"opaque\"");
+			elog(ABORT, "ProcedureCreate: sql functions cannot return type \"opaque\"");
 		}
 		typeObjectId = 0;
 	}
@@ -181,7 +181,7 @@ ProcedureCreate(char *procedureName,
 			typeObjectId = TypeShellMake(returnTypeName);
 			if (!OidIsValid(typeObjectId))
 			{
-				elog(WARN, "ProcedureCreate: could not create type '%s'",
+				elog(ABORT, "ProcedureCreate: could not create type '%s'",
 					 returnTypeName);
 			}
 		}
@@ -202,7 +202,7 @@ ProcedureCreate(char *procedureName,
 		defined &&
 		(relid = typeidTypeRelid(toid)) != 0 &&
 		get_attnum(relid, procedureName) != InvalidAttrNumber)
-		elog(WARN, "method %s already an attribute of type %s",
+		elog(ABORT, "method %s already an attribute of type %s",
 			 procedureName, strVal(lfirst(argList)));
 
 
diff --git a/src/backend/catalog/pg_type.c b/src/backend/catalog/pg_type.c
index 23854e275fa..5834c1fbf39 100644
--- a/src/backend/catalog/pg_type.c
+++ b/src/backend/catalog/pg_type.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/catalog/pg_type.c,v 1.15 1997/11/26 04:50:21 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/catalog/pg_type.c,v 1.16 1998/01/05 03:30:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -334,7 +334,7 @@ TypeCreate(char *typeName,
 	typeObjectId = TypeGet(typeName, &defined);
 	if (OidIsValid(typeObjectId) && defined)
 	{
-		elog(WARN, "TypeCreate: type %s already defined", typeName);
+		elog(ABORT, "TypeCreate: type %s already defined", typeName);
 	}
 
 	/* ----------------
@@ -347,7 +347,7 @@ TypeCreate(char *typeName,
 		elementObjectId = TypeGet(elementTypeName, &defined);
 		if (!defined)
 		{
-			elog(WARN, "TypeCreate: type %s is not defined", elementTypeName);
+			elog(ABORT, "TypeCreate: type %s is not defined", elementTypeName);
 		}
 	}
 
@@ -558,7 +558,7 @@ TypeRename(char *oldTypeName, char *newTypeName)
 	type_oid = TypeGet(newTypeName, &defined);
 	if (OidIsValid(type_oid) && defined)
 	{
-		elog(WARN, "TypeRename: type %s already defined", newTypeName);
+		elog(ABORT, "TypeRename: type %s already defined", newTypeName);
 	}
 
 	/* get the type tuple from the catalog index scan manager */
@@ -591,7 +591,7 @@ TypeRename(char *oldTypeName, char *newTypeName)
 	}
 	else
 	{
-		elog(WARN, "TypeRename: type %s not defined", oldTypeName);
+		elog(ABORT, "TypeRename: type %s not defined", oldTypeName);
 	}
 
 	/* finish up */
diff --git a/src/backend/commands/_deadcode/version.c b/src/backend/commands/_deadcode/version.c
index a9e88692b1e..18e31131e02 100644
--- a/src/backend/commands/_deadcode/version.c
+++ b/src/backend/commands/_deadcode/version.c
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/_deadcode/Attic/version.c,v 1.9 1997/12/11 17:36:08 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/_deadcode/Attic/version.c,v 1.10 1998/01/05 03:30:58 momjian Exp $
  *
  * NOTES
  *	  At the point the version is defined, 2 physical relations are created
@@ -195,7 +195,7 @@ setAttrList(char *bname)
 	rdesc = heap_openr(bname);
 	if (rdesc == NULL)
 	{
-		elog(WARN, "Unable to expand all -- amopenr failed ");
+		elog(ABORT, "Unable to expand all -- amopenr failed ");
 		return;
 	}
 	maxattrs = RelationGetNumberOfAttributes(rdesc);
diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c
index 560eb0ca71d..fe26fa463fe 100644
--- a/src/backend/commands/cluster.c
+++ b/src/backend/commands/cluster.c
@@ -14,7 +14,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/cluster.c,v 1.19 1997/11/28 17:26:55 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/cluster.c,v 1.20 1998/01/05 03:30:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -125,7 +125,7 @@ cluster(char oldrelname[], char oldindexname[])
 	OldHeap = heap_openr(oldrelname);
 	if (!RelationIsValid(OldHeap))
 	{
-		elog(WARN, "cluster: unknown relation: \"%s\"",
+		elog(ABORT, "cluster: unknown relation: \"%s\"",
 			 oldrelname);
 	}
 	OIDOldHeap = OldHeap->rd_id;/* Get OID for the index scan	*/
@@ -133,7 +133,7 @@ cluster(char oldrelname[], char oldindexname[])
 	OldIndex = index_openr(oldindexname);		/* Open old index relation	*/
 	if (!RelationIsValid(OldIndex))
 	{
-		elog(WARN, "cluster: unknown index: \"%s\"",
+		elog(ABORT, "cluster: unknown index: \"%s\"",
 			 oldindexname);
 	}
 	OIDOldIndex = OldIndex->rd_id;		/* OID for the index scan		  */
@@ -218,7 +218,7 @@ copy_heap(Oid OIDOldHeap)
 	OIDNewHeap = heap_create_with_catalog(NewName, tupdesc);
 
 	if (!OidIsValid(OIDNewHeap))
-		elog(WARN, "clusterheap: cannot create temporary heap relation\n");
+		elog(ABORT, "clusterheap: cannot create temporary heap relation\n");
 
 	NewHeap = heap_open(OIDNewHeap);
 
diff --git a/src/backend/commands/command.c b/src/backend/commands/command.c
index d33edbb7f9b..98d3d614cb7 100644
--- a/src/backend/commands/command.c
+++ b/src/backend/commands/command.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.21 1997/11/20 23:21:00 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.22 1998/01/05 03:30:39 momjian Exp $
  *
  * NOTES
  *	  The PortalExecutorHeapMemory crap needs to be eliminated
@@ -294,11 +294,11 @@ PerformAddAttribute(char *relationName,
 	 * normally, only the owner of a class can change its schema.
 	 */
 	if (IsSystemRelationName(relationName))
-		elog(WARN, "PerformAddAttribute: class \"%s\" is a system catalog",
+		elog(ABORT, "PerformAddAttribute: class \"%s\" is a system catalog",
 			 relationName);
 #ifndef NO_SECURITY
 	if (!pg_ownercheck(userName, relationName, RELNAME))
-		elog(WARN, "PerformAddAttribute: you do not own class \"%s\"",
+		elog(ABORT, "PerformAddAttribute: you do not own class \"%s\"",
 			 relationName);
 #endif
 
@@ -306,9 +306,9 @@ PerformAddAttribute(char *relationName,
 	 * we can't add a not null attribute
 	 */
 	if (colDef->is_not_null)
-		elog(WARN, "Can't add a NOT NULL attribute to an existing relation");
+		elog(ABORT, "Can't add a NOT NULL attribute to an existing relation");
 	if (colDef->defval)
-		elog(WARN, "ADD ATTRIBUTE: DEFAULT not yet implemented");
+		elog(ABORT, "ADD ATTRIBUTE: DEFAULT not yet implemented");
 
 	/*
 	 * if the first element in the 'schema' list is a "*" then we are
@@ -331,7 +331,7 @@ PerformAddAttribute(char *relationName,
 			relrdesc = heap_openr(relationName);
 			if (!RelationIsValid(relrdesc))
 			{
-				elog(WARN, "PerformAddAttribute: unknown relation: \"%s\"",
+				elog(ABORT, "PerformAddAttribute: unknown relation: \"%s\"",
 					 relationName);
 			}
 			myrelid = relrdesc->rd_id;
@@ -353,7 +353,7 @@ PerformAddAttribute(char *relationName,
 				relrdesc = heap_open(childrelid);
 				if (!RelationIsValid(relrdesc))
 				{
-					elog(WARN, "PerformAddAttribute: can't find catalog entry for inheriting class with oid %d",
+					elog(ABORT, "PerformAddAttribute: can't find catalog entry for inheriting class with oid %d",
 						 childrelid);
 				}
 				PerformAddAttribute((relrdesc->rd_rel->relname).data,
@@ -369,7 +369,7 @@ PerformAddAttribute(char *relationName,
 	if (!PointerIsValid(reltup))
 	{
 		heap_close(relrdesc);
-		elog(WARN, "PerformAddAttribute: relation \"%s\" not found",
+		elog(ABORT, "PerformAddAttribute: relation \"%s\" not found",
 			 relationName);
 	}
 
@@ -378,7 +378,7 @@ PerformAddAttribute(char *relationName,
 	 */
 	if (((Form_pg_class) GETSTRUCT(reltup))->relkind == RELKIND_INDEX)
 	{
-		elog(WARN, "PerformAddAttribute: index relation \"%s\" not changed",
+		elog(ABORT, "PerformAddAttribute: index relation \"%s\" not changed",
 			 relationName);
 		return;
 	}
@@ -389,7 +389,7 @@ PerformAddAttribute(char *relationName,
 	{
 		pfree(reltup);			/* XXX temp */
 		heap_close(relrdesc);	/* XXX temp */
-		elog(WARN, "PerformAddAttribute: relations limited to %d attributes",
+		elog(ABORT, "PerformAddAttribute: relations limited to %d attributes",
 			 MaxHeapAttributeNumber);
 		return;
 	}
@@ -450,7 +450,7 @@ PerformAddAttribute(char *relationName,
 			heap_endscan(attsdesc);		/* XXX temp */
 			heap_close(attrdesc);		/* XXX temp */
 			heap_close(relrdesc);		/* XXX temp */
-			elog(WARN, "PerformAddAttribute: attribute \"%s\" already exists in class \"%s\"",
+			elog(ABORT, "PerformAddAttribute: attribute \"%s\" already exists in class \"%s\"",
 				 key[1].sk_argument,
 				 relationName);
 			return;
@@ -478,7 +478,7 @@ PerformAddAttribute(char *relationName,
 
 		if (!HeapTupleIsValid(typeTuple))
 		{
-			elog(WARN, "Add: type \"%s\" nonexistent", p);
+			elog(ABORT, "Add: type \"%s\" nonexistent", p);
 		}
 		namestrcpy(&(attribute->attname), (char *) key[1].sk_argument);
 		attribute->atttypid = typeTuple->t_oid;
diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c
index fdc998b9418..4183ac68318 100644
--- a/src/backend/commands/copy.c
+++ b/src/backend/commands/copy.c
@@ -6,7 +6,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.35 1997/11/20 23:21:03 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.36 1998/01/05 03:30:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -115,15 +115,15 @@ DoCopy(char *relname, bool binary, bool oids, bool from, bool pipe,
 
 	rel = heap_openr(relname);
 	if (rel == NULL)
-		elog(WARN, "COPY command failed.  Class %s "
+		elog(ABORT, "COPY command failed.  Class %s "
 			 "does not exist.", relname);
 
 	result = pg_aclcheck(relname, UserName, required_access);
 	if (result != ACLCHECK_OK)
-		elog(WARN, "%s: %s", relname, aclcheck_error_strings[result]);
+		elog(ABORT, "%s: %s", relname, aclcheck_error_strings[result]);
 	/* Above should not return */
 	else if (!superuser() && !pipe)
-		elog(WARN, "You must have Postgres superuser privilege to do a COPY "
+		elog(ABORT, "You must have Postgres superuser privilege to do a COPY "
 			 "directly to or from a file.  Anyone can COPY to stdout or "
 			 "from stdin.  Psql's \\copy command also works for anyone.");
 	/* Above should not return. */
@@ -132,7 +132,7 @@ DoCopy(char *relname, bool binary, bool oids, bool from, bool pipe,
 		if (from)
 		{						/* copy from file to database */
 			if (rel->rd_rel->relkind == RELKIND_SEQUENCE)
-				elog(WARN, "You can't change sequence relation %s", relname);
+				elog(ABORT, "You can't change sequence relation %s", relname);
 			if (pipe)
 			{
 				if (IsUnderPostmaster)
@@ -147,7 +147,7 @@ DoCopy(char *relname, bool binary, bool oids, bool from, bool pipe,
 			{
 				fp = AllocateFile(filename, "r");
 				if (fp == NULL)
-					elog(WARN, "COPY command, running in backend with "
+					elog(ABORT, "COPY command, running in backend with "
 						 "effective uid %d, could not open file '%s' for "
 						 "reading.  Errno = %s (%d).",
 						 geteuid(), filename, strerror(errno), errno);
@@ -175,7 +175,7 @@ DoCopy(char *relname, bool binary, bool oids, bool from, bool pipe,
 				fp = AllocateFile(filename, "w");
 				umask(oumask);
 				if (fp == NULL)
-					elog(WARN, "COPY command, running in backend with "
+					elog(ABORT, "COPY command, running in backend with "
 						 "effective uid %d, could not open file '%s' for "
 						 "writing.  Errno = %s (%d).",
 						 geteuid(), filename, strerror(errno), errno);
@@ -560,7 +560,7 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim)
 				{
 					loaded_oid = oidin(string);
 					if (loaded_oid < BootstrapObjectIdData)
-						elog(WARN, "COPY TEXT: Invalid Oid");
+						elog(ABORT, "COPY TEXT: Invalid Oid");
 				}
 			}
 			for (i = 0; i < attr_count && !done; i++)
@@ -594,10 +594,10 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim)
 						!(rel->rd_att->attrs[i]->attbyval))
 					{
 #ifdef COPY_DEBUG
-						elog(WARN,
+						elog(ABORT,
 						 "copy from: line %d - Bad file format", lineno);
 #else
-						elog(WARN, "copy from: Bad file format");
+						elog(ABORT, "copy from: Bad file format");
 #endif
 					}
 				}
@@ -622,7 +622,7 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim)
 				{
 					fread(&loaded_oid, sizeof(int32), 1, fp);
 					if (loaded_oid < BootstrapObjectIdData)
-						elog(WARN, "COPY BINARY: Invalid Oid");
+						elog(ABORT, "COPY BINARY: Invalid Oid");
 				}
 				fread(&null_ct, sizeof(int32), 1, fp);
 				if (null_ct > 0)
@@ -661,7 +661,7 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim)
 								ptr += sizeof(int32);
 								break;
 							default:
-								elog(WARN, "COPY BINARY: impossible size!");
+								elog(ABORT, "COPY BINARY: impossible size!");
 								break;
 						}
 					}
@@ -837,7 +837,7 @@ GetOutputFunction(Oid type)
 	if (HeapTupleIsValid(typeTuple))
 		return ((int) ((TypeTupleForm) GETSTRUCT(typeTuple))->typoutput);
 
-	elog(WARN, "GetOutputFunction: Cache lookup of type %d failed", type);
+	elog(ABORT, "GetOutputFunction: Cache lookup of type %d failed", type);
 	return (InvalidOid);
 }
 
@@ -854,7 +854,7 @@ GetTypeElement(Oid type)
 	if (HeapTupleIsValid(typeTuple))
 		return ((int) ((TypeTupleForm) GETSTRUCT(typeTuple))->typelem);
 
-	elog(WARN, "GetOutputFunction: Cache lookup of type %d failed", type);
+	elog(ABORT, "GetOutputFunction: Cache lookup of type %d failed", type);
 	return (InvalidOid);
 }
 
@@ -870,7 +870,7 @@ GetInputFunction(Oid type)
 	if (HeapTupleIsValid(typeTuple))
 		return ((int) ((TypeTupleForm) GETSTRUCT(typeTuple))->typinput);
 
-	elog(WARN, "GetInputFunction: Cache lookup of type %d failed", type);
+	elog(ABORT, "GetInputFunction: Cache lookup of type %d failed", type);
 	return (InvalidOid);
 }
 
@@ -886,7 +886,7 @@ IsTypeByVal(Oid type)
 	if (HeapTupleIsValid(typeTuple))
 		return ((int) ((TypeTupleForm) GETSTRUCT(typeTuple))->typbyval);
 
-	elog(WARN, "GetInputFunction: Cache lookup of type %d failed", type);
+	elog(ABORT, "GetInputFunction: Cache lookup of type %d failed", type);
 
 	return (InvalidOid);
 }
@@ -1125,7 +1125,7 @@ CopyReadAttribute(FILE *fp, bool *isnull, char *delim)
 				case '.':
 					c = getc(fp);
 					if (c != '\n')
-						elog(WARN, "CopyReadAttribute - end of record marker corrupted");
+						elog(ABORT, "CopyReadAttribute - end of record marker corrupted");
 					return (NULL);
 					break;
 			}
@@ -1143,7 +1143,7 @@ CopyReadAttribute(FILE *fp, bool *isnull, char *delim)
 		if (!done)
 			attribute[i++] = c;
 		if (i == EXT_ATTLEN - 1)
-			elog(WARN, "CopyReadAttribute - attribute length too long");
+			elog(ABORT, "CopyReadAttribute - attribute length too long");
 	}
 	attribute[i] = '\0';
 	return (&attribute[0]);
diff --git a/src/backend/commands/creatinh.c b/src/backend/commands/creatinh.c
index 5fff19ea504..30ec08a3911 100644
--- a/src/backend/commands/creatinh.c
+++ b/src/backend/commands/creatinh.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/Attic/creatinh.c,v 1.22 1997/12/04 23:15:28 thomas Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/Attic/creatinh.c,v 1.23 1998/01/05 03:30:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -56,7 +56,7 @@ DefineRelation(CreateStmt *stmt)
 	List	   *constraints;
 
 	if (strlen(stmt->relname) >= NAMEDATALEN)
-		elog(WARN, "the relation name %s is >= %d characters long", stmt->relname,
+		elog(ABORT, "the relation name %s is >= %d characters long", stmt->relname,
 			 NAMEDATALEN);
 	StrNCpy(relname, stmt->relname, NAMEDATALEN);	/* make full length for
 														 * copy */
@@ -78,7 +78,7 @@ DefineRelation(CreateStmt *stmt)
 	numberOfAttributes = length(schema);
 	if (numberOfAttributes <= 0)
 	{
-		elog(WARN, "DefineRelation: %s",
+		elog(ABORT, "DefineRelation: %s",
 			 "please inherit from a relation or define an attribute");
 	}
 
@@ -108,7 +108,7 @@ DefineRelation(CreateStmt *stmt)
 					for (i = 0; i < ncheck; i++)
 					{
 						if (strcmp(check[i].ccname, cdef->name) == 0)
-							elog(WARN, "DefineRelation: name (%s) of CHECK constraint duplicated", cdef->name);
+							elog(ABORT, "DefineRelation: name (%s) of CHECK constraint duplicated", cdef->name);
 					}
 					check[ncheck].ccname = cdef->name;
 				}
@@ -218,7 +218,7 @@ MergeAttributes(List *schema, List *supers, List **supconstr)
 
 			if (!strcmp(coldef->colname, restdef->colname))
 			{
-				elog(WARN, "attribute '%s' duplicated",
+				elog(ABORT, "attribute '%s' duplicated",
 					 coldef->colname);
 			}
 		}
@@ -231,7 +231,7 @@ MergeAttributes(List *schema, List *supers, List **supconstr)
 		{
 			if (!strcmp(strVal(lfirst(entry)), strVal(lfirst(rest))))
 			{
-				elog(WARN, "relation '%s' duplicated",
+				elog(ABORT, "relation '%s' duplicated",
 					 strVal(lfirst(entry)));
 			}
 		}
@@ -252,12 +252,12 @@ MergeAttributes(List *schema, List *supers, List **supconstr)
 		relation = heap_openr(name);
 		if (relation == NULL)
 		{
-			elog(WARN,
+			elog(ABORT,
 			"MergeAttr: Can't inherit from non-existent superclass '%s'", name);
 		}
 		if (relation->rd_rel->relkind == 'S')
 		{
-			elog(WARN, "MergeAttr: Can't inherit from sequence superclass '%s'", name);
+			elog(ABORT, "MergeAttr: Can't inherit from sequence superclass '%s'", name);
 		}
 		tupleDesc = RelationGetTupleDescriptor(relation);
 		constr = tupleDesc->constr;
@@ -567,7 +567,7 @@ checkAttrExists(char *attributeName, char *attributeType, List *schema)
 			 */
 			if (strcmp(attributeType, def->typename->name) != 0)
 			{
-				elog(WARN, "%s and %s conflict for %s",
+				elog(ABORT, "%s and %s conflict for %s",
 					 attributeType, def->typename->name, attributeName);
 			}
 			return 1;
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c
index dc685022b20..83259a8e208 100644
--- a/src/backend/commands/dbcommands.c
+++ b/src/backend/commands/dbcommands.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.3 1997/12/11 17:36:04 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.4 1998/01/05 03:30:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -75,12 +75,12 @@ createdb(char *dbname, char *dbpath)
 	lp = ExpandDatabasePath(loc);
 
 	if (lp == NULL)
-		elog(WARN,"Unable to locate path '%s'"
+		elog(ABORT,"Unable to locate path '%s'"
 			"\n\tThis may be due to a missing environment variable"
 			" in the server",loc);
 
 	if (mkdir(lp,S_IRWXU) != 0)
-		elog(WARN,"Unable to create database directory %s",lp);
+		elog(ABORT,"Unable to create database directory %s",lp);
 
 	sprintf(buf, "%s %s%cbase%ctemplate1%c* %s",
 			COPY_CMD, DataDir, SEP_CHAR, SEP_CHAR, SEP_CHAR, lp);
@@ -123,7 +123,7 @@ destroydb(char *dbname)
 
 	path = ExpandDatabasePath(dbpath);
     if (path == NULL)
-		elog(WARN,"Unable to locate path '%s'"
+		elog(ABORT,"Unable to locate path '%s'"
 			"\n\tThis may be due to a missing environment variable"
 			" in the server",dbpath);
 
@@ -161,7 +161,7 @@ get_pg_dbtup(char *command, char *dbname, Relation dbrel)
 
 	scan = heap_beginscan(dbrel, 0, false, 1, &scanKey);
 	if (!HeapScanIsValid(scan))
-		elog(WARN, "%s: cannot begin scan of pg_database.", command);
+		elog(ABORT, "%s: cannot begin scan of pg_database.", command);
 
 	/*
 	 * since we want to return the tuple out of this proc, and we're going
@@ -185,7 +185,7 @@ get_pg_dbtup(char *command, char *dbname, Relation dbrel)
  *	check_permissions() -- verify that the user is permitted to do this.
  *
  *	If the user is not allowed to carry out this operation, this routine
- *	elog(WARN, ...)s, which will abort the xact.  As a side effect, the
+ *	elog(ABORT, ...)s, which will abort the xact.  As a side effect, the
  *	user's pg_user tuple OID is returned in userIdP and the target database's
  *	OID is returned in dbIdP.
  */
@@ -218,20 +218,20 @@ check_permissions(char *command,
 	/* Check to make sure user has permission to use createdb */
 	if (!use_createdb)
 	{
-		elog(WARN, "user \"%s\" is not allowed to create/destroy databases",
+		elog(ABORT, "user \"%s\" is not allowed to create/destroy databases",
 			 userName);
 	}
 
 	/* Make sure we are not mucking with the template database */
 	if (!strcmp(dbname, "template1"))
 	{
-		elog(WARN, "%s cannot be executed on the template database.", command);
+		elog(ABORT, "%s cannot be executed on the template database.", command);
 	}
 
 	/* Check to make sure database is not the currently open database */
 	if (!strcmp(dbname, GetDatabaseName()))
 	{
-		elog(WARN, "%s cannot be executed on an open database", command);
+		elog(ABORT, "%s cannot be executed on an open database", command);
 	}
 
 	/* Check to make sure database is owned by this user */
@@ -285,20 +285,20 @@ check_permissions(char *command,
 	if (dbfound && !strcmp(command, "createdb"))
 	{
 
-		elog(WARN, "createdb: database %s already exists.", dbname);
+		elog(ABORT, "createdb: database %s already exists.", dbname);
 
 	}
 	else if (!dbfound && !strcmp(command, "destroydb"))
 	{
 
-		elog(WARN, "destroydb: database %s does not exist.", dbname);
+		elog(ABORT, "destroydb: database %s does not exist.", dbname);
 
 	}
 	else if (dbfound && !strcmp(command, "destroydb")
 			 && dbowner != *userIdP && use_super == false)
 	{
 
-		elog(WARN, "%s: database %s is not owned by you.", command, dbname);
+		elog(ABORT, "%s: database %s is not owned by you.", command, dbname);
 
 	}
 
@@ -332,7 +332,7 @@ stop_vacuum(char *dbpath, char *dbname)
 		FreeFile(fp);
 		if (kill(pid, SIGKILLDAEMON1) < 0)
 		{
-			elog(WARN, "can't kill vacuum daemon (pid %d) on %s",
+			elog(ABORT, "can't kill vacuum daemon (pid %d) on %s",
 				 pid, dbname);
 		}
 	}
diff --git a/src/backend/commands/defind.c b/src/backend/commands/defind.c
index 9be89e1871a..485bc3f20cb 100644
--- a/src/backend/commands/defind.c
+++ b/src/backend/commands/defind.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/Attic/defind.c,v 1.18 1997/12/22 05:41:49 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/Attic/defind.c,v 1.19 1998/01/05 03:30:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -95,7 +95,7 @@ DefineIndex(char *heapRelationName,
 	numberOfAttributes = length(attributeList);
 	if (numberOfAttributes <= 0)
 	{
-		elog(WARN, "DefineIndex: must specify at least one attribute");
+		elog(ABORT, "DefineIndex: must specify at least one attribute");
 	}
 
 	/*
@@ -106,16 +106,16 @@ DefineIndex(char *heapRelationName,
 								0, 0, 0);
 	if (!HeapTupleIsValid(tuple))
 	{
-		elog(WARN, "DefineIndex: %s relation not found",
+		elog(ABORT, "DefineIndex: %s relation not found",
 			 heapRelationName);
 	}
 	relationId = tuple->t_oid;
 
 	if (unique && strcmp(accessMethodName, "btree") != 0)
-		elog(WARN, "DefineIndex: unique indices are only available with the btree access method");
+		elog(ABORT, "DefineIndex: unique indices are only available with the btree access method");
 
 	if (numberOfAttributes > 1 && strcmp(accessMethodName, "btree") != 0)
-		elog(WARN, "DefineIndex: multi-column indices are only available with the btree access method");
+		elog(ABORT, "DefineIndex: multi-column indices are only available with the btree access method");
 
 	/*
 	 * compute access method id
@@ -124,7 +124,7 @@ DefineIndex(char *heapRelationName,
 								0, 0, 0);
 	if (!HeapTupleIsValid(tuple))
 	{
-		elog(WARN, "DefineIndex: %s access method not found",
+		elog(ABORT, "DefineIndex: %s access method not found",
 			 accessMethodName);
 	}
 	accessMethodId = tuple->t_oid;
@@ -168,7 +168,7 @@ DefineIndex(char *heapRelationName,
 		nargs = length(funcIndex->args);
 		if (nargs > INDEX_MAX_KEYS)
 		{
-			elog(WARN,
+			elog(ABORT,
 				 "Too many args to function, limit of %d",
 				 INDEX_MAX_KEYS);
 		}
@@ -250,7 +250,7 @@ ExtendIndex(char *indexRelationName, Expr *predicate, List *rangetable)
 								0, 0, 0);
 	if (!HeapTupleIsValid(tuple))
 	{
-		elog(WARN, "ExtendIndex: %s index not found",
+		elog(ABORT, "ExtendIndex: %s index not found",
 			 indexRelationName);
 	}
 	indexId = tuple->t_oid;
@@ -264,7 +264,7 @@ ExtendIndex(char *indexRelationName, Expr *predicate, List *rangetable)
 								0, 0, 0);
 	if (!HeapTupleIsValid(tuple))
 	{
-		elog(WARN, "ExtendIndex: %s is not an index",
+		elog(ABORT, "ExtendIndex: %s is not an index",
 			 indexRelationName);
 	}
 
@@ -290,7 +290,7 @@ ExtendIndex(char *indexRelationName, Expr *predicate, List *rangetable)
 		pfree(predString);
 	}
 	if (oldPred == NULL)
-		elog(WARN, "ExtendIndex: %s is not a partial index",
+		elog(ABORT, "ExtendIndex: %s is not a partial index",
 			 indexRelationName);
 
 	/*
@@ -334,7 +334,7 @@ ExtendIndex(char *indexRelationName, Expr *predicate, List *rangetable)
 									ObjectIdGetDatum(indproc),
 									0, 0, 0);
 		if (!HeapTupleIsValid(tuple))
-			elog(WARN, "ExtendIndex: index procedure not found");
+			elog(ABORT, "ExtendIndex: index procedure not found");
 
 		namecpy(&(funcInfo->funcName),
 				&(((Form_pg_proc) GETSTRUCT(tuple))->proname));
@@ -388,7 +388,7 @@ CheckPredExpr(Node *predicate, List *rangeTable, Oid baseRelOid)
 	else if (or_clause(predicate) || and_clause(predicate))
 		clauses = ((Expr *) predicate)->args;
 	else
-		elog(WARN, "Unsupported partial-index predicate expression type");
+		elog(ABORT, "Unsupported partial-index predicate expression type");
 
 	foreach(clause, clauses)
 	{
@@ -409,11 +409,11 @@ CheckPredClause(Expr *predicate, List *rangeTable, Oid baseRelOid)
 		!IsA(pred_var, Var) ||
 		!IsA(pred_const, Const))
 	{
-		elog(WARN, "Unsupported partial-index predicate clause type");
+		elog(ABORT, "Unsupported partial-index predicate clause type");
 	}
 
 	if (getrelid(pred_var->varno, rangeTable) != baseRelOid)
-		elog(WARN,
+		elog(ABORT,
 		 "Partial-index predicates may refer only to the base relation");
 }
 
@@ -435,7 +435,7 @@ FuncIndexArgs(IndexElem *funcIndex,
 
 	if (!HeapTupleIsValid(tuple))
 	{
-		elog(WARN, "DefineIndex: %s class not found",
+		elog(ABORT, "DefineIndex: %s class not found",
 			 funcIndex->class);
 	}
 	*opOidP = tuple->t_oid;
@@ -457,7 +457,7 @@ FuncIndexArgs(IndexElem *funcIndex,
 
 		if (!HeapTupleIsValid(tuple))
 		{
-			elog(WARN,
+			elog(ABORT,
 				 "DefineIndex: attribute \"%s\" not found",
 				 arg);
 		}
@@ -488,7 +488,7 @@ NormIndexAttrs(List *attList,	/* list of IndexElem's */
 		attribute = lfirst(rest);
 
 		if (attribute->name == NULL)
-			elog(WARN, "missing attribute for define index");
+			elog(ABORT, "missing attribute for define index");
 
 		tuple = SearchSysCacheTuple(ATTNAME,
 									ObjectIdGetDatum(relId),
@@ -496,7 +496,7 @@ NormIndexAttrs(List *attList,	/* list of IndexElem's */
 									0, 0);
 		if (!HeapTupleIsValid(tuple))
 		{
-			elog(WARN,
+			elog(ABORT,
 				 "DefineIndex: attribute \"%s\" not found",
 				 attribute->name);
 		}
@@ -510,7 +510,7 @@ NormIndexAttrs(List *attList,	/* list of IndexElem's */
 			attribute->class = GetDefaultOpClass(attform->atttypid);
 			if (attribute->class == NULL)
 			{
-				elog(WARN,
+				elog(ABORT,
 					 "Can't find a default operator class for type %d.",
 					 attform->atttypid);
 			}
@@ -522,7 +522,7 @@ NormIndexAttrs(List *attList,	/* list of IndexElem's */
 
 		if (!HeapTupleIsValid(tuple))
 		{
-			elog(WARN, "DefineIndex: %s class not found",
+			elog(ABORT, "DefineIndex: %s class not found",
 				 attribute->class);
 		}
 		*opOidP++ = tuple->t_oid;
@@ -565,12 +565,12 @@ RemoveIndex(char *name)
 
 	if (!HeapTupleIsValid(tuple))
 	{
-		elog(WARN, "index \"%s\" nonexistent", name);
+		elog(ABORT, "index \"%s\" nonexistent", name);
 	}
 
 	if (((Form_pg_class) GETSTRUCT(tuple))->relkind != RELKIND_INDEX)
 	{
-		elog(WARN, "relation \"%s\" is of type \"%c\"",
+		elog(ABORT, "relation \"%s\" is of type \"%c\"",
 			 name,
 			 ((Form_pg_class) GETSTRUCT(tuple))->relkind);
 	}
diff --git a/src/backend/commands/define.c b/src/backend/commands/define.c
index 5fabdcb92df..5ea03bfcfb9 100644
--- a/src/backend/commands/define.c
+++ b/src/backend/commands/define.c
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/define.c,v 1.19 1997/12/05 01:12:40 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/define.c,v 1.20 1998/01/05 03:30:48 momjian Exp $
  *
  * DESCRIPTION
  *	  The "DefineFoo" routines take the parse tree and pick out the
@@ -140,7 +140,7 @@ compute_full_attributes(const List *parameters, int32 *byte_pct_p,
 			 * we don't have untrusted functions any more. The 4.2
 			 * implementation is lousy anyway so I took it out. -ay 10/94
 			 */
-			elog(WARN, "untrusted function has been decommissioned.");
+			elog(ABORT, "untrusted function has been decommissioned.");
 		}
 		else if (strcasecmp(param->name, "byte_pct") == 0)
 		{
@@ -275,7 +275,7 @@ CreateFunction(ProcedureStmt *stmt, CommandDest dest)
 		
 		if (!HeapTupleIsValid(languageTuple)) {
 
-		    elog(WARN,
+		    elog(ABORT,
 			 "Unrecognized language specified in a CREATE FUNCTION: "
 			 "'%s'.  Recognized languages are sql, C, internal "
 			 "and the created procedural languages.",
@@ -285,7 +285,7 @@ CreateFunction(ProcedureStmt *stmt, CommandDest dest)
 		/* Check that this language is a PL */
 		languageStruct = (Form_pg_language) GETSTRUCT(languageTuple);
 		if (!(languageStruct->lanispl)) {
-		    elog(WARN,
+		    elog(ABORT,
 		    	"Language '%s' isn't defined as PL", languageName);
 		}
 
@@ -294,7 +294,7 @@ CreateFunction(ProcedureStmt *stmt, CommandDest dest)
 		 * restricted to be defined by postgres superusers only
 		 */
 		if (languageStruct->lanpltrusted == false && !superuser()) {
-		    elog(WARN, "Only users with Postgres superuser privilege "
+		    elog(ABORT, "Only users with Postgres superuser privilege "
 		    	"are permitted to create a function in the '%s' "
 			"language.",
 			languageName);
@@ -313,7 +313,7 @@ CreateFunction(ProcedureStmt *stmt, CommandDest dest)
 	interpret_AS_clause(languageName, stmt->as, &prosrc_str, &probin_str);
 
 	if (strcmp(languageName, "sql") != 0 && lanisPL == false && !superuser())
-		elog(WARN,
+		elog(ABORT,
 			 "Only users with Postgres superuser privilege are permitted "
 			 "to create a function "
 			 "in the '%s' language.  Others may use the 'sql' language "
@@ -388,7 +388,7 @@ DefineOperator(char *oprName,
 		{
 			/* see gram.y, must be setof */
 			if (nodeTag(defel->arg) == T_TypeName)
-				elog(WARN, "setof type not implemented for leftarg");
+				elog(ABORT, "setof type not implemented for leftarg");
 
 			if (nodeTag(defel->arg) == T_String)
 			{
@@ -396,14 +396,14 @@ DefineOperator(char *oprName,
 			}
 			else
 			{
-				elog(WARN, "type for leftarg is malformed.");
+				elog(ABORT, "type for leftarg is malformed.");
 			}
 		}
 		else if (!strcasecmp(defel->defname, "rightarg"))
 		{
 			/* see gram.y, must be setof */
 			if (nodeTag(defel->arg) == T_TypeName)
-				elog(WARN, "setof type not implemented for rightarg");
+				elog(ABORT, "setof type not implemented for rightarg");
 
 			if (nodeTag(defel->arg) == T_String)
 			{
@@ -411,7 +411,7 @@ DefineOperator(char *oprName,
 			}
 			else
 			{
-				elog(WARN, "type for rightarg is malformed.");
+				elog(ABORT, "type for rightarg is malformed.");
 			}
 		}
 		else if (!strcasecmp(defel->defname, "procedure"))
@@ -474,7 +474,7 @@ DefineOperator(char *oprName,
 	 */
 	if (functionName == NULL)
 	{
-		elog(WARN, "Define: \"procedure\" unspecified");
+		elog(ABORT, "Define: \"procedure\" unspecified");
 	}
 
 	/* ----------------
@@ -579,16 +579,16 @@ DefineAggregate(char *aggName, List *parameters)
 	 * make sure we have our required definitions
 	 */
 	if (baseType == NULL)
-		elog(WARN, "Define: \"basetype\" unspecified");
+		elog(ABORT, "Define: \"basetype\" unspecified");
 	if (stepfunc1Name != NULL)
 	{
 		if (stepfunc1Type == NULL)
-			elog(WARN, "Define: \"stype1\" unspecified");
+			elog(ABORT, "Define: \"stype1\" unspecified");
 	}
 	if (stepfunc2Name != NULL)
 	{
 		if (stepfunc2Type == NULL)
-			elog(WARN, "Define: \"stype2\" unspecified");
+			elog(ABORT, "Define: \"stype2\" unspecified");
 	}
 
 	/*
@@ -635,7 +635,7 @@ DefineType(char *typeName, List *parameters)
 	 */
 	if (strlen(typeName) >= (NAMEDATALEN - 1))
 	{
-		elog(WARN, "DefineType: type names must be %d characters or less",
+		elog(ABORT, "DefineType: type names must be %d characters or less",
 			 NAMEDATALEN - 1);
 	}
 
@@ -699,7 +699,7 @@ DefineType(char *typeName, List *parameters)
 			}
 			else
 			{
-				elog(WARN, "DefineType: \"%s\" alignment  not recognized",
+				elog(ABORT, "DefineType: \"%s\" alignment  not recognized",
 					 a);
 			}
 		}
@@ -714,9 +714,9 @@ DefineType(char *typeName, List *parameters)
 	 * make sure we have our required definitions
 	 */
 	if (inputName == NULL)
-		elog(WARN, "Define: \"input\" unspecified");
+		elog(ABORT, "Define: \"input\" unspecified");
 	if (outputName == NULL)
-		elog(WARN, "Define: \"output\" unspecified");
+		elog(ABORT, "Define: \"output\" unspecified");
 
 	/* ----------------
 	 *	now have TypeCreate do all the real work.
@@ -766,7 +766,7 @@ static char *
 defGetString(DefElem *def)
 {
 	if (nodeTag(def->arg) != T_String)
-		elog(WARN, "Define: \"%s\" = what?", def->defname);
+		elog(ABORT, "Define: \"%s\" = what?", def->defname);
 	return (strVal(def->arg));
 }
 
@@ -779,6 +779,6 @@ defGetTypeLength(DefElem *def)
 			 !strcasecmp(strVal(def->arg), "variable"))
 		return -1;				/* variable length */
 
-	elog(WARN, "Define: \"%s\" = what?", def->defname);
+	elog(ABORT, "Define: \"%s\" = what?", def->defname);
 	return -1;
 }
diff --git a/src/backend/commands/proclang.c b/src/backend/commands/proclang.c
index caa1c8b832f..1044ce9a7b7 100644
--- a/src/backend/commands/proclang.c
+++ b/src/backend/commands/proclang.c
@@ -64,7 +64,7 @@ CreateProceduralLanguage(CreatePLangStmt * stmt)
 	 */
 	if (!superuser())
 	{
-		elog(WARN, "Only users with Postgres superuser privilege are "
+		elog(ABORT, "Only users with Postgres superuser privilege are "
 			 "permitted to create procedural languages");
 	}
 
@@ -80,7 +80,7 @@ CreateProceduralLanguage(CreatePLangStmt * stmt)
 								  0, 0, 0);
 	if (HeapTupleIsValid(langTup))
 	{
-		elog(WARN, "Language %s already exists", languageName);
+		elog(ABORT, "Language %s already exists", languageName);
 	}
 
 	/* ----------------
@@ -96,12 +96,12 @@ CreateProceduralLanguage(CreatePLangStmt * stmt)
 								  0);
 	if (!HeapTupleIsValid(procTup))
 	{
-		elog(WARN, "PL handler function %s() doesn't exist",
+		elog(ABORT, "PL handler function %s() doesn't exist",
 			 stmt->plhandler);
 	}
 	if (((Form_pg_proc) GETSTRUCT(procTup))->prorettype != InvalidOid)
 	{
-		elog(WARN, "PL handler function %s() isn't of return type Opaque",
+		elog(ABORT, "PL handler function %s() isn't of return type Opaque",
 			 stmt->plhandler);
 	}
 
@@ -155,7 +155,7 @@ DropProceduralLanguage(DropPLangStmt * stmt)
 	 */
 	if (!superuser())
 	{
-		elog(WARN, "Only users with Postgres superuser privilege are "
+		elog(ABORT, "Only users with Postgres superuser privilege are "
 			 "permitted to drop procedural languages");
 	}
 
@@ -171,12 +171,12 @@ DropProceduralLanguage(DropPLangStmt * stmt)
 								  0, 0, 0);
 	if (!HeapTupleIsValid(langTup))
 	{
-		elog(WARN, "Language %s doesn't exist", languageName);
+		elog(ABORT, "Language %s doesn't exist", languageName);
 	}
 
 	if (!((Form_pg_language) GETSTRUCT(langTup))->lanispl)
 	{
-		elog(WARN, "Language %s isn't a created procedural language",
+		elog(ABORT, "Language %s isn't a created procedural language",
 			 languageName);
 	}
 
@@ -195,7 +195,7 @@ DropProceduralLanguage(DropPLangStmt * stmt)
 
 	if (!HeapTupleIsValid(tup))
 	{
-		elog(WARN, "Language with name '%s' not found", languageName);
+		elog(ABORT, "Language with name '%s' not found", languageName);
 	}
 
 	heap_delete(rdesc, &(tup->t_ctid));
diff --git a/src/backend/commands/recipe.c b/src/backend/commands/recipe.c
index 288cbf9eb8b..e66aad9dc61 100644
--- a/src/backend/commands/recipe.c
+++ b/src/backend/commands/recipe.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/Attic/recipe.c,v 1.15 1997/11/28 17:27:08 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/Attic/recipe.c,v 1.16 1998/01/05 03:30:50 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -402,7 +402,7 @@ tg_rewriteQuery(TgRecipe * r,
 	{
 		if (nodeTag(orig->qual) == T_List)
 		{
-			elog(WARN, "tg_rewriteQuery: Whoa! why is my qual a List???");
+			elog(ABORT, "tg_rewriteQuery: Whoa! why is my qual a List???");
 		}
 		orig->qual = tg_rewriteParamsInExpr(orig->qual, inputQlist);
 	}
@@ -629,7 +629,7 @@ tg_rewriteParamsInExpr(Node *expression, QueryTreeList *inputQlist)
 						}
 						else
 						{
-							elog(WARN, "tg_rewriteParamsInExpr:can't substitute for parameter %d when that input is unconnected", p->paramid);
+							elog(ABORT, "tg_rewriteParamsInExpr:can't substitute for parameter %d when that input is unconnected", p->paramid);
 						}
 
 					}
@@ -719,13 +719,13 @@ getParamTypes(TgElement * elem, Oid typev[])
 	{
 		if (parameterCount == 8)
 		{
-			elog(WARN,
+			elog(ABORT,
 				 "getParamTypes: Ingredients cannot take > 8 arguments");
 		}
 		t = elem->inTypes->val[j];
 		if (strcmp(t, "opaque") == 0)
 		{
-			elog(WARN,
+			elog(ABORT,
 				 "getParamTypes: Ingredient functions cannot take type 'opaque'");
 		}
 		else
@@ -733,7 +733,7 @@ getParamTypes(TgElement * elem, Oid typev[])
 			toid = TypeGet(elem->inTypes->val[j], &defined);
 			if (!OidIsValid(toid))
 			{
-				elog(WARN, "getParamTypes: arg type '%s' is not defined", t);
+				elog(ABORT, "getParamTypes: arg type '%s' is not defined", t);
 			}
 			if (!defined)
 			{
diff --git a/src/backend/commands/remove.c b/src/backend/commands/remove.c
index 393b9e713e2..e8d0b727717 100644
--- a/src/backend/commands/remove.c
+++ b/src/backend/commands/remove.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/Attic/remove.c,v 1.18 1997/11/28 17:27:10 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/Attic/remove.c,v 1.19 1998/01/05 03:30:51 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -65,7 +65,7 @@ RemoveOperator(char *operatorName,		/* operator name */
 		typeId1 = TypeGet(typeName1, &defined);
 		if (!OidIsValid(typeId1))
 		{
-			elog(WARN, "RemoveOperator: type '%s' does not exist", typeName1);
+			elog(ABORT, "RemoveOperator: type '%s' does not exist", typeName1);
 			return;
 		}
 	}
@@ -75,7 +75,7 @@ RemoveOperator(char *operatorName,		/* operator name */
 		typeId2 = TypeGet(typeName2, &defined);
 		if (!OidIsValid(typeId2))
 		{
-			elog(WARN, "RemoveOperator: type '%s' does not exist", typeName2);
+			elog(ABORT, "RemoveOperator: type '%s' does not exist", typeName2);
 			return;
 		}
 	}
@@ -105,7 +105,7 @@ RemoveOperator(char *operatorName,		/* operator name */
 		if (!pg_ownercheck(userName,
 						   (char *) ObjectIdGetDatum(tup->t_oid),
 						   OPROID))
-			elog(WARN, "RemoveOperator: operator '%s': permission denied",
+			elog(ABORT, "RemoveOperator: operator '%s': permission denied",
 				 operatorName);
 #endif
 		ItemPointerCopy(&tup->t_ctid, &itemPointerData);
@@ -115,20 +115,20 @@ RemoveOperator(char *operatorName,		/* operator name */
 	{
 		if (OidIsValid(typeId1) && OidIsValid(typeId2))
 		{
-			elog(WARN, "RemoveOperator: binary operator '%s' taking '%s' and '%s' does not exist",
+			elog(ABORT, "RemoveOperator: binary operator '%s' taking '%s' and '%s' does not exist",
 				 operatorName,
 				 typeName1,
 				 typeName2);
 		}
 		else if (OidIsValid(typeId1))
 		{
-			elog(WARN, "RemoveOperator: right unary operator '%s' taking '%s' does not exist",
+			elog(ABORT, "RemoveOperator: right unary operator '%s' taking '%s' does not exist",
 				 operatorName,
 				 typeName1);
 		}
 		else
 		{
-			elog(WARN, "RemoveOperator: left unary operator '%s' taking '%s' does not exist",
+			elog(ABORT, "RemoveOperator: left unary operator '%s' taking '%s' does not exist",
 				 operatorName,
 				 typeName2);
 		}
@@ -272,7 +272,7 @@ RemoveType(char *typeName)		/* type name to be removed */
 #ifndef NO_SECURITY
 	userName = GetPgUserName();
 	if (!pg_ownercheck(userName, typeName, TYPNAME))
-		elog(WARN, "RemoveType: type '%s': permission denied",
+		elog(ABORT, "RemoveType: type '%s': permission denied",
 			 typeName);
 #endif
 
@@ -290,7 +290,7 @@ RemoveType(char *typeName)		/* type name to be removed */
 	{
 		heap_endscan(scan);
 		heap_close(relation);
-		elog(WARN, "RemoveType: type '%s' does not exist",
+		elog(ABORT, "RemoveType: type '%s' does not exist",
 			 typeName);
 	}
 	typeOid = tup->t_oid;
@@ -308,7 +308,7 @@ RemoveType(char *typeName)		/* type name to be removed */
 
 	if (!HeapTupleIsValid(tup))
 	{
-		elog(WARN, "RemoveType: type '%s': array stub not found",
+		elog(ABORT, "RemoveType: type '%s': array stub not found",
 			 typeName);
 	}
 	typeOid = tup->t_oid;
@@ -364,7 +364,7 @@ RemoveFunction(char *functionName,		/* function name to be removed */
 
 			if (!HeapTupleIsValid(tup))
 			{
-				elog(WARN, "RemoveFunction: type '%s' not found", typename);
+				elog(ABORT, "RemoveFunction: type '%s' not found", typename);
 			}
 			argList[i] = tup->t_oid;
 		}
@@ -380,7 +380,7 @@ RemoveFunction(char *functionName,		/* function name to be removed */
 	userName = GetPgUserName();
 	if (!pg_func_ownercheck(userName, functionName, nargs, argList))
 	{
-		elog(WARN, "RemoveFunction: function '%s': permission denied",
+		elog(ABORT, "RemoveFunction: function '%s': permission denied",
 			 functionName);
 	}
 #endif
@@ -420,7 +420,7 @@ RemoveFunction(char *functionName,		/* function name to be removed */
 	/* ok, function has been found */
 
 	if (the_proc->prolang == INTERNALlanguageId)
-		elog(WARN, "RemoveFunction: function \"%s\" is built-in",
+		elog(ABORT, "RemoveFunction: function \"%s\" is built-in",
 			 functionName);
 
 	ItemPointerCopy(&tup->t_ctid, &itemPointerData);
@@ -457,7 +457,7 @@ RemoveAggregate(char *aggName, char *aggType)
 		basetypeID = TypeGet(aggType, &defined);
 		if (!OidIsValid(basetypeID))
 		{
-			elog(WARN, "RemoveAggregate: type '%s' does not exist", aggType);
+			elog(ABORT, "RemoveAggregate: type '%s' does not exist", aggType);
 		}
 	}
 	else
@@ -473,12 +473,12 @@ RemoveAggregate(char *aggName, char *aggType)
 	{
 		if (aggType)
 		{
-			elog(WARN, "RemoveAggregate: aggregate '%s' on type '%s': permission denied",
+			elog(ABORT, "RemoveAggregate: aggregate '%s' on type '%s': permission denied",
 				 aggName, aggType);
 		}
 		else
 		{
-			elog(WARN, "RemoveAggregate: aggregate '%s': permission denied",
+			elog(ABORT, "RemoveAggregate: aggregate '%s': permission denied",
 				 aggName);
 		}
 	}
@@ -505,12 +505,12 @@ RemoveAggregate(char *aggName, char *aggType)
 		heap_close(relation);
 		if (aggType)
 		{
-			elog(WARN, "RemoveAggregate: aggregate '%s' for '%s' does not exist",
+			elog(ABORT, "RemoveAggregate: aggregate '%s' for '%s' does not exist",
 				 aggName, aggType);
 		}
 		else
 		{
-			elog(WARN, "RemoveAggregate: aggregate '%s' for all types does not exist",
+			elog(ABORT, "RemoveAggregate: aggregate '%s' for all types does not exist",
 				 aggName);
 		}
 	}
diff --git a/src/backend/commands/rename.c b/src/backend/commands/rename.c
index d96fb762f28..01b1168742e 100644
--- a/src/backend/commands/rename.c
+++ b/src/backend/commands/rename.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/Attic/rename.c,v 1.9 1997/09/08 02:22:14 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/Attic/rename.c,v 1.10 1998/01/05 03:30:52 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -81,12 +81,12 @@ renameatt(char *relname,
 	 * normally, only the owner of a class can change its schema.
 	 */
 	if (IsSystemRelationName(relname))
-		elog(WARN, "renameatt: class \"%s\" is a system catalog",
+		elog(ABORT, "renameatt: class \"%s\" is a system catalog",
 			 relname);
 #ifndef NO_SECURITY
 	if (!IsBootstrapProcessingMode() &&
 		!pg_ownercheck(userName, relname, RELNAME))
-		elog(WARN, "renameatt: you do not own class \"%s\"",
+		elog(ABORT, "renameatt: you do not own class \"%s\"",
 			 relname);
 #endif
 
@@ -109,7 +109,7 @@ renameatt(char *relname,
 		relrdesc = heap_openr(relname);
 		if (!RelationIsValid(relrdesc))
 		{
-			elog(WARN, "renameatt: unknown relation: \"%s\"",
+			elog(ABORT, "renameatt: unknown relation: \"%s\"",
 				 relname);
 		}
 		myrelid = relrdesc->rd_id;
@@ -134,7 +134,7 @@ renameatt(char *relname,
 			relrdesc = heap_open(childrelid);
 			if (!RelationIsValid(relrdesc))
 			{
-				elog(WARN, "renameatt: can't find catalog entry for inheriting class with oid %d",
+				elog(ABORT, "renameatt: can't find catalog entry for inheriting class with oid %d",
 					 childrelid);
 			}
 			childname = (relrdesc->rd_rel->relname).data;
@@ -149,7 +149,7 @@ renameatt(char *relname,
 	if (!PointerIsValid(reltup))
 	{
 		heap_close(relrdesc);
-		elog(WARN, "renameatt: relation \"%s\" nonexistent",
+		elog(ABORT, "renameatt: relation \"%s\" nonexistent",
 			 relname);
 		return;
 	}
@@ -160,12 +160,12 @@ renameatt(char *relname,
 	if (!PointerIsValid(oldatttup))
 	{
 		heap_close(attrdesc);
-		elog(WARN, "renameatt: attribute \"%s\" nonexistent",
+		elog(ABORT, "renameatt: attribute \"%s\" nonexistent",
 			 oldattname);
 	}
 	if (((AttributeTupleForm) GETSTRUCT(oldatttup))->attnum < 0)
 	{
-		elog(WARN, "renameatt: system attribute \"%s\" not renamed",
+		elog(ABORT, "renameatt: system attribute \"%s\" not renamed",
 			 oldattname);
 	}
 
@@ -174,7 +174,7 @@ renameatt(char *relname,
 	{
 		pfree(oldatttup);
 		heap_close(attrdesc);
-		elog(WARN, "renameatt: attribute \"%s\" exists",
+		elog(ABORT, "renameatt: attribute \"%s\" exists",
 			 newattname);
 	}
 
@@ -223,13 +223,13 @@ renamerel(char oldrelname[], char newrelname[])
 
 	if (IsSystemRelationName(oldrelname))
 	{
-		elog(WARN, "renamerel: system relation \"%s\" not renamed",
+		elog(ABORT, "renamerel: system relation \"%s\" not renamed",
 			 oldrelname);
 		return;
 	}
 	if (IsSystemRelationName(newrelname))
 	{
-		elog(WARN, "renamerel: Illegal class name: \"%s\" -- pg_ is reserved for system catalogs",
+		elog(ABORT, "renamerel: Illegal class name: \"%s\" -- pg_ is reserved for system catalogs",
 			 newrelname);
 		return;
 	}
@@ -240,7 +240,7 @@ renamerel(char oldrelname[], char newrelname[])
 	if (!PointerIsValid(oldreltup))
 	{
 		heap_close(relrdesc);
-		elog(WARN, "renamerel: relation \"%s\" does not exist",
+		elog(ABORT, "renamerel: relation \"%s\" does not exist",
 			 oldrelname);
 	}
 
@@ -249,7 +249,7 @@ renamerel(char oldrelname[], char newrelname[])
 	{
 		pfree(oldreltup);
 		heap_close(relrdesc);
-		elog(WARN, "renamerel: relation \"%s\" exists",
+		elog(ABORT, "renamerel: relation \"%s\" exists",
 			 newrelname);
 	}
 
@@ -257,7 +257,7 @@ renamerel(char oldrelname[], char newrelname[])
 	strcpy(oldpath, relpath(oldrelname));
 	strcpy(newpath, relpath(newrelname));
 	if (rename(oldpath, newpath) < 0)
-		elog(WARN, "renamerel: unable to rename file: %m");
+		elog(ABORT, "renamerel: unable to rename file: %m");
 
 	memmove((char *) (((Form_pg_class) GETSTRUCT(oldreltup))->relname.data),
 			newrelname,
diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c
index 25e5ef2c060..8429e18ac3a 100644
--- a/src/backend/commands/sequence.c
+++ b/src/backend/commands/sequence.c
@@ -175,7 +175,7 @@ DefineSequence(CreateSeqStmt *seq)
 	buf = ReadBuffer(rel, P_NEW);
 
 	if (!BufferIsValid(buf))
-		elog(WARN, "DefineSequence: ReadBuffer failed");
+		elog(ABORT, "DefineSequence: ReadBuffer failed");
 
 	page = (PageHeader) BufferGetPage(buf);
 
@@ -188,7 +188,7 @@ DefineSequence(CreateSeqStmt *seq)
 	heap_insert(rel, tuple);
 
 	if (WriteBuffer(buf) == STATUS_ERROR)
-		elog(WARN, "DefineSequence: WriteBuffer failed");
+		elog(ABORT, "DefineSequence: WriteBuffer failed");
 
 	RelationUnsetLockForWrite(rel);
 	heap_close(rel);
@@ -251,7 +251,7 @@ nextval(struct varlena * seqin)
 				if (rescnt > 0)
 					break;		/* stop caching */
 				if (seq->is_cycled != 't')
-					elog(WARN, "%s.nextval: got MAXVALUE (%d)",
+					elog(ABORT, "%s.nextval: got MAXVALUE (%d)",
 						 elm->name, maxv);
 				next = minv;
 			}
@@ -267,7 +267,7 @@ nextval(struct varlena * seqin)
 				if (rescnt > 0)
 					break;		/* stop caching */
 				if (seq->is_cycled != 't')
-					elog(WARN, "%s.nextval: got MINVALUE (%d)",
+					elog(ABORT, "%s.nextval: got MINVALUE (%d)",
 						 elm->name, minv);
 				next = maxv;
 			}
@@ -288,7 +288,7 @@ nextval(struct varlena * seqin)
 	seq->is_called = 't';
 
 	if (WriteBuffer(buf) == STATUS_ERROR)
-		elog(WARN, "%s.nextval: WriteBuffer failed", elm->name);
+		elog(ABORT, "%s.nextval: WriteBuffer failed", elm->name);
 
 	ItemPointerSet(&iptr, 0, FirstOffsetNumber);
 	RelationUnsetSingleWLockPage(elm->rel, &iptr);
@@ -311,7 +311,7 @@ currval(struct varlena * seqin)
 
 	if (elm->increment == 0)	/* nextval/read_info were not called */
 	{
-		elog(WARN, "%s.currval is not yet defined in this session", elm->name);
+		elog(ABORT, "%s.currval is not yet defined in this session", elm->name);
 	}
 
 	result = elm->last;
@@ -334,18 +334,18 @@ read_info(char *caller, SeqTable elm, Buffer *buf)
 	RelationSetSingleWLockPage(elm->rel, &iptr);
 
 	if (RelationGetNumberOfBlocks(elm->rel) != 1)
-		elog(WARN, "%s.%s: invalid number of blocks in sequence",
+		elog(ABORT, "%s.%s: invalid number of blocks in sequence",
 			 elm->name, caller);
 
 	*buf = ReadBuffer(elm->rel, 0);
 	if (!BufferIsValid(*buf))
-		elog(WARN, "%s.%s: ReadBuffer failed", elm->name, caller);
+		elog(ABORT, "%s.%s: ReadBuffer failed", elm->name, caller);
 
 	page = (PageHeader) BufferGetPage(*buf);
 	sm = (sequence_magic *) PageGetSpecialPointer(page);
 
 	if (sm->magic != SEQ_MAGIC)
-		elog(WARN, "%s.%s: bad magic (%08X)", elm->name, caller, sm->magic);
+		elog(ABORT, "%s.%s: bad magic (%08X)", elm->name, caller, sm->magic);
 
 	lp = PageGetItemId(page, FirstOffsetNumber);
 	Assert(ItemIdIsUsed(lp));
@@ -395,12 +395,12 @@ init_sequence(char *caller, char *name)
 	temp->rel = heap_openr(name);
 
 	if (!RelationIsValid(temp->rel))
-		elog(WARN, "%s.%s: sequence does not exist", name, caller);
+		elog(ABORT, "%s.%s: sequence does not exist", name, caller);
 
 	RelationSetWIntentLock(temp->rel);
 
 	if (temp->rel->rd_rel->relkind != RELKIND_SEQUENCE)
-		elog(WARN, "%s.%s: %s is not sequence !", name, caller, name);
+		elog(ABORT, "%s.%s: %s is not sequence !", name, caller, name);
 
 	if (elm != (SeqTable) NULL) /* we opened sequence from our */
 	{							/* SeqTable - check relid ! */
@@ -484,18 +484,18 @@ init_params(CreateSeqStmt *seq, SequenceTupleForm new)
 		else if (!strcasecmp(defel->defname, "cycle"))
 		{
 			if (defel->arg != (Node *) NULL)
-				elog(WARN, "DefineSequence: CYCLE ??");
+				elog(ABORT, "DefineSequence: CYCLE ??");
 			new->is_cycled = 't';
 		}
 		else
-			elog(WARN, "DefineSequence: option \"%s\" not recognized",
+			elog(ABORT, "DefineSequence: option \"%s\" not recognized",
 				 defel->defname);
 	}
 
 	if (increment_by == (DefElem *) NULL)		/* INCREMENT BY */
 		new->increment_by = 1;
 	else if ((new->increment_by = get_param(increment_by)) == 0)
-		elog(WARN, "DefineSequence: can't INCREMENT by 0");
+		elog(ABORT, "DefineSequence: can't INCREMENT by 0");
 
 	if (max_value == (DefElem *) NULL)	/* MAXVALUE */
 		if (new->increment_by > 0)
@@ -514,7 +514,7 @@ init_params(CreateSeqStmt *seq, SequenceTupleForm new)
 		new->min_value = get_param(min_value);
 
 	if (new->min_value >= new->max_value)
-		elog(WARN, "DefineSequence: MINVALUE (%d) can't be >= MAXVALUE (%d)",
+		elog(ABORT, "DefineSequence: MINVALUE (%d) can't be >= MAXVALUE (%d)",
 			 new->min_value, new->max_value);
 
 	if (last_value == (DefElem *) NULL) /* START WITH */
@@ -526,16 +526,16 @@ init_params(CreateSeqStmt *seq, SequenceTupleForm new)
 		new->last_value = get_param(last_value);
 
 	if (new->last_value < new->min_value)
-		elog(WARN, "DefineSequence: START value (%d) can't be < MINVALUE (%d)",
+		elog(ABORT, "DefineSequence: START value (%d) can't be < MINVALUE (%d)",
 			 new->last_value, new->min_value);
 	if (new->last_value > new->max_value)
-		elog(WARN, "DefineSequence: START value (%d) can't be > MAXVALUE (%d)",
+		elog(ABORT, "DefineSequence: START value (%d) can't be > MAXVALUE (%d)",
 			 new->last_value, new->max_value);
 
 	if (cache_value == (DefElem *) NULL)		/* CACHE */
 		new->cache_value = 1;
 	else if ((new->cache_value = get_param(cache_value)) <= 0)
-		elog(WARN, "DefineSequence: CACHE (%d) can't be <= 0",
+		elog(ABORT, "DefineSequence: CACHE (%d) can't be <= 0",
 			 new->cache_value);
 
 }
@@ -545,11 +545,11 @@ static int
 get_param(DefElem *def)
 {
 	if (def->arg == (Node *) NULL)
-		elog(WARN, "DefineSequence: \"%s\" value unspecified", def->defname);
+		elog(ABORT, "DefineSequence: \"%s\" value unspecified", def->defname);
 
 	if (nodeTag(def->arg) == T_Integer)
 		return (intVal(def->arg));
 
-	elog(WARN, "DefineSequence: \"%s\" is to be integer", def->defname);
+	elog(ABORT, "DefineSequence: \"%s\" is to be integer", def->defname);
 	return (-1);
 }
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index abc7815f918..3e48207cf7d 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -68,16 +68,16 @@ CreateTrigger(CreateTrigStmt * stmt)
 	int			i;
 
 	if (IsSystemRelationName(stmt->relname))
-		elog(WARN, "CreateTrigger: can't create trigger for system relation %s", stmt->relname);
+		elog(ABORT, "CreateTrigger: can't create trigger for system relation %s", stmt->relname);
 
 #ifndef NO_SECURITY
 	if (!pg_ownercheck(GetPgUserName(), stmt->relname, RELNAME))
-		elog(WARN, "%s: %s", stmt->relname, aclcheck_error_strings[ACLCHECK_NOT_OWNER]);
+		elog(ABORT, "%s: %s", stmt->relname, aclcheck_error_strings[ACLCHECK_NOT_OWNER]);
 #endif
 
 	rel = heap_openr(stmt->relname);
 	if (!RelationIsValid(rel))
-		elog(WARN, "CreateTrigger: there is no relation %s", stmt->relname);
+		elog(ABORT, "CreateTrigger: there is no relation %s", stmt->relname);
 
 	RelationSetLockForWrite(rel);
 
@@ -87,7 +87,7 @@ CreateTrigger(CreateTrigStmt * stmt)
 	if (stmt->row)
 		TRIGGER_SETT_ROW(tgtype);
 	else
-		elog(WARN, "CreateTrigger: STATEMENT triggers are unimplemented, yet");
+		elog(ABORT, "CreateTrigger: STATEMENT triggers are unimplemented, yet");
 
 	for (i = 0; i < 3 && stmt->actions[i]; i++)
 	{
@@ -95,21 +95,21 @@ CreateTrigger(CreateTrigStmt * stmt)
 		{
 			case 'i':
 				if (TRIGGER_FOR_INSERT(tgtype))
-					elog(WARN, "CreateTrigger: double INSERT event specified");
+					elog(ABORT, "CreateTrigger: double INSERT event specified");
 				TRIGGER_SETT_INSERT(tgtype);
 				break;
 			case 'd':
 				if (TRIGGER_FOR_DELETE(tgtype))
-					elog(WARN, "CreateTrigger: double DELETE event specified");
+					elog(ABORT, "CreateTrigger: double DELETE event specified");
 				TRIGGER_SETT_DELETE(tgtype);
 				break;
 			case 'u':
 				if (TRIGGER_FOR_UPDATE(tgtype))
-					elog(WARN, "CreateTrigger: double UPDATE event specified");
+					elog(ABORT, "CreateTrigger: double UPDATE event specified");
 				TRIGGER_SETT_UPDATE(tgtype);
 				break;
 			default:
-				elog(WARN, "CreateTrigger: unknown event specified");
+				elog(ABORT, "CreateTrigger: unknown event specified");
 				break;
 		}
 	}
@@ -125,7 +125,7 @@ CreateTrigger(CreateTrigStmt * stmt)
 		Form_pg_trigger pg_trigger = (Form_pg_trigger) GETSTRUCT(tuple);
 
 		if (namestrcmp(&(pg_trigger->tgname), stmt->trigname) == 0)
-			elog(WARN, "CreateTrigger: trigger %s already defined on relation %s",
+			elog(ABORT, "CreateTrigger: trigger %s already defined on relation %s",
 				 stmt->trigname, stmt->relname);
 		else
 			found++;
@@ -139,7 +139,7 @@ CreateTrigger(CreateTrigStmt * stmt)
 	if (!HeapTupleIsValid(tuple) ||
 		((Form_pg_proc) GETSTRUCT(tuple))->prorettype != 0 ||
 		((Form_pg_proc) GETSTRUCT(tuple))->pronargs != 0)
-		elog(WARN, "CreateTrigger: function %s () does not exist", stmt->funcname);
+		elog(ABORT, "CreateTrigger: function %s () does not exist", stmt->funcname);
 
 	if (((Form_pg_proc) GETSTRUCT(tuple))->prolang != ClanguageId)
 	{
@@ -150,12 +150,12 @@ CreateTrigger(CreateTrigStmt * stmt)
 									  0, 0, 0);
 		if (!HeapTupleIsValid(langTup))
 		{
-			elog(WARN, "CreateTrigger: cache lookup for PL failed");
+			elog(ABORT, "CreateTrigger: cache lookup for PL failed");
 		}
 
 		if (((Form_pg_language) GETSTRUCT(langTup))->lanispl == false)
 		{
-			elog(WARN, "CreateTrigger: only C and PL functions are supported");
+			elog(ABORT, "CreateTrigger: only C and PL functions are supported");
 		}
 	}
 
@@ -227,7 +227,7 @@ CreateTrigger(CreateTrigStmt * stmt)
 	if (!PointerIsValid(tuple))
 	{
 		heap_close(relrdesc);
-		elog(WARN, "CreateTrigger: relation %s not found in pg_class", stmt->relname);
+		elog(ABORT, "CreateTrigger: relation %s not found in pg_class", stmt->relname);
 	}
 	((Form_pg_class) GETSTRUCT(tuple))->reltriggers = found + 1;
 	RelationInvalidateHeapTuple(relrdesc, tuple);
@@ -266,12 +266,12 @@ DropTrigger(DropTrigStmt * stmt)
 
 #ifndef NO_SECURITY
 	if (!pg_ownercheck(GetPgUserName(), stmt->relname, RELNAME))
-		elog(WARN, "%s: %s", stmt->relname, aclcheck_error_strings[ACLCHECK_NOT_OWNER]);
+		elog(ABORT, "%s: %s", stmt->relname, aclcheck_error_strings[ACLCHECK_NOT_OWNER]);
 #endif
 
 	rel = heap_openr(stmt->relname);
 	if (!RelationIsValid(rel))
-		elog(WARN, "DropTrigger: there is no relation %s", stmt->relname);
+		elog(ABORT, "DropTrigger: there is no relation %s", stmt->relname);
 
 	RelationSetLockForWrite(rel);
 
@@ -293,7 +293,7 @@ DropTrigger(DropTrigStmt * stmt)
 			found++;
 	}
 	if (tgfound == 0)
-		elog(WARN, "DropTrigger: there is no trigger %s on relation %s",
+		elog(ABORT, "DropTrigger: there is no trigger %s on relation %s",
 			 stmt->trigname, stmt->relname);
 	if (tgfound > 1)
 		elog(NOTICE, "DropTrigger: found (and deleted) %d trigger %s on relation %s",
@@ -308,7 +308,7 @@ DropTrigger(DropTrigStmt * stmt)
 	if (!PointerIsValid(tuple))
 	{
 		heap_close(relrdesc);
-		elog(WARN, "DropTrigger: relation %s not found in pg_class", stmt->relname);
+		elog(ABORT, "DropTrigger: relation %s not found in pg_class", stmt->relname);
 	}
 	((Form_pg_class) GETSTRUCT(tuple))->reltriggers = found;
 	RelationInvalidateHeapTuple(relrdesc, tuple);
@@ -400,7 +400,7 @@ RelationBuildTriggers(Relation relation)
 		if (!HeapTupleIsValid(tuple))
 			continue;
 		if (found == ntrigs)
-			elog(WARN, "RelationBuildTriggers: unexpected record found for rel %.*s",
+			elog(ABORT, "RelationBuildTriggers: unexpected record found for rel %.*s",
 				 NAMEDATALEN, relation->rd_rel->relname.data);
 
 		pg_trigger = (Form_pg_trigger) GETSTRUCT(tuple);
@@ -422,7 +422,7 @@ RelationBuildTriggers(Relation relation)
 											 Anum_pg_trigger_tgargs,
 											 tgrel->rd_att, &isnull);
 		if (isnull)
-			elog(WARN, "RelationBuildTriggers: tgargs IS NULL for rel %.*s",
+			elog(ABORT, "RelationBuildTriggers: tgargs IS NULL for rel %.*s",
 				 NAMEDATALEN, relation->rd_rel->relname.data);
 		if (build->tgnargs > 0)
 		{
@@ -433,7 +433,7 @@ RelationBuildTriggers(Relation relation)
 												 Anum_pg_trigger_tgargs,
 												 tgrel->rd_att, &isnull);
 			if (isnull)
-				elog(WARN, "RelationBuildTriggers: tgargs IS NULL for rel %.*s",
+				elog(ABORT, "RelationBuildTriggers: tgargs IS NULL for rel %.*s",
 					 NAMEDATALEN, relation->rd_rel->relname.data);
 			p = (char *) VARDATA(val);
 			build->tgargs = (char **) palloc(build->tgnargs * sizeof(char *));
@@ -452,7 +452,7 @@ RelationBuildTriggers(Relation relation)
 	}
 
 	if (found < ntrigs)
-		elog(WARN, "RelationBuildTriggers: %d record not found for rel %.*s",
+		elog(ABORT, "RelationBuildTriggers: %d record not found for rel %.*s",
 			 ntrigs - found,
 			 NAMEDATALEN, relation->rd_rel->relname.data);
 
@@ -616,7 +616,7 @@ ExecCallTriggerFunc(Trigger * trigger)
 										0, 0, 0);
 		if (!HeapTupleIsValid(procTuple))
 		{
-			elog(WARN, "ExecCallTriggerFunc(): Cache lookup for proc %ld failed",
+			elog(ABORT, "ExecCallTriggerFunc(): Cache lookup for proc %ld failed",
 				 ObjectIdGetDatum(trigger->tgfoid));
 		}
 		procStruct = (Form_pg_proc) GETSTRUCT(procTuple);
@@ -626,7 +626,7 @@ ExecCallTriggerFunc(Trigger * trigger)
 										0, 0, 0);
 		if (!HeapTupleIsValid(langTuple))
 		{
-			elog(WARN, "ExecCallTriggerFunc(): Cache lookup for language %ld failed",
+			elog(ABORT, "ExecCallTriggerFunc(): Cache lookup for language %ld failed",
 				 ObjectIdGetDatum(procStruct->prolang));
 		}
 		langStruct = (Form_pg_language) GETSTRUCT(langTuple);
@@ -840,7 +840,7 @@ GetTupleForTrigger(Relation relation, ItemPointer tid, bool before)
 	b = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
 
 	if (!BufferIsValid(b))
-		elog(WARN, "GetTupleForTrigger: failed ReadBuffer");
+		elog(ABORT, "GetTupleForTrigger: failed ReadBuffer");
 
 	dp = (PageHeader) BufferGetPage(b);
 	lp = PageGetItemId(dp, ItemPointerGetOffsetNumber(tid));
@@ -863,7 +863,7 @@ GetTupleForTrigger(Relation relation, ItemPointer tid, bool before)
 		if (!tuple)
 		{
 			ReleaseBuffer(b);
-			elog(WARN, "GetTupleForTrigger: (am)invalid tid");
+			elog(ABORT, "GetTupleForTrigger: (am)invalid tid");
 		}
 	}
 
diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c
index 0cb18e2b018..6559ea732b2 100644
--- a/src/backend/commands/user.c
+++ b/src/backend/commands/user.c
@@ -102,7 +102,7 @@ void DefineUser(CreateUserStmt *stmt) {
   pg_user = GetPgUserName();
   if (pg_aclcheck(UserRelationName, pg_user, ACL_RD | ACL_WR | ACL_AP) != ACLCHECK_OK) {
     UserAbortTransactionBlock();
-    elog(WARN, "defineUser: user \"%s\" does not have SELECT and INSERT privilege for \"%s\"",
+    elog(ABORT, "defineUser: user \"%s\" does not have SELECT and INSERT privilege for \"%s\"",
                pg_user, UserRelationName);
     return;
   }
@@ -135,7 +135,7 @@ void DefineUser(CreateUserStmt *stmt) {
     RelationUnsetLockForWrite(pg_user_rel);
     heap_close(pg_user_rel);
     UserAbortTransactionBlock();
-    elog(WARN, "defineUser: user \"%s\" has already been created", stmt->user);
+    elog(ABORT, "defineUser: user \"%s\" has already been created", stmt->user);
     return;
   }
 
@@ -213,7 +213,7 @@ extern void AlterUser(AlterUserStmt *stmt) {
   pg_user = GetPgUserName();
   if (pg_aclcheck(UserRelationName, pg_user, ACL_RD | ACL_WR) != ACLCHECK_OK) {
     UserAbortTransactionBlock();
-    elog(WARN, "alterUser: user \"%s\" does not have SELECT and UPDATE privilege for \"%s\"",
+    elog(ABORT, "alterUser: user \"%s\" does not have SELECT and UPDATE privilege for \"%s\"",
                pg_user, UserRelationName);
     return;
   }
@@ -243,7 +243,7 @@ extern void AlterUser(AlterUserStmt *stmt) {
     RelationUnsetLockForWrite(pg_user_rel);
     heap_close(pg_user_rel);
     UserAbortTransactionBlock();
-    elog(WARN, "alterUser: user \"%s\" does not exist", stmt->user);
+    elog(ABORT, "alterUser: user \"%s\" does not exist", stmt->user);
     return;
   }
 
@@ -323,7 +323,7 @@ extern void RemoveUser(char* user) {
   pg_user = GetPgUserName();
   if (pg_aclcheck(UserRelationName, pg_user, ACL_RD | ACL_WR) != ACLCHECK_OK) {
     UserAbortTransactionBlock();
-    elog(WARN, "removeUser: user \"%s\" does not have SELECT and DELETE privilege for \"%s\"",
+    elog(ABORT, "removeUser: user \"%s\" does not have SELECT and DELETE privilege for \"%s\"",
                pg_user, UserRelationName);
     return;
   }
@@ -355,7 +355,7 @@ extern void RemoveUser(char* user) {
     RelationUnsetLockForWrite(pg_user_rel);
     heap_close(pg_user_rel);
     UserAbortTransactionBlock();
-    elog(WARN, "removeUser: user \"%s\" does not exist", user);
+    elog(ABORT, "removeUser: user \"%s\" does not exist", user);
     return;
   }
 
diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c
index 167aa0d4d62..d2a29a26a1f 100644
--- a/src/backend/commands/vacuum.c
+++ b/src/backend/commands/vacuum.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.55 1997/12/19 02:05:33 scrappy Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.56 1998/01/05 03:30:57 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -185,7 +185,7 @@ vc_init()
 	int			fd;
 
 	if ((fd = open("pg_vlock", O_CREAT | O_EXCL, 0600)) < 0)
-		elog(WARN, "can't create lock file -- another vacuum cleaner running?");
+		elog(ABORT, "can't create lock file -- another vacuum cleaner running?");
 
 	close(fd);
 
@@ -207,7 +207,7 @@ vc_shutdown()
 {
 	/* on entry, not in a transaction */
 	if (unlink("pg_vlock") < 0)
-		elog(WARN, "vacuum: can't destroy lock file!");
+		elog(ABORT, "vacuum: can't destroy lock file!");
 
 	/* okay, we're done */
 	VacuumRunning = false;
@@ -438,7 +438,7 @@ vc_vacone(Oid relid, bool analyze, List *va_cols)
 			List	   *le;
 
 			if (length(va_cols) > attr_cnt)
-				elog(WARN, "vacuum: too many attributes specified for relation %s",
+				elog(ABORT, "vacuum: too many attributes specified for relation %s",
 					 (RelationGetRelationName(onerel))->data);
 			attnums = (int *) palloc(attr_cnt * sizeof(int));
 			foreach(le, va_cols)
@@ -454,7 +454,7 @@ vc_vacone(Oid relid, bool analyze, List *va_cols)
 					attnums[tcnt++] = i;
 				else
 				{
-					elog(WARN, "vacuum: there is no attribute %s in %s",
+					elog(ABORT, "vacuum: there is no attribute %s in %s",
 						 col, (RelationGetRelationName(onerel))->data);
 				}
 			}
@@ -1139,7 +1139,7 @@ vc_rpfheap(VRelStats *vacrelstats, Relation onerel,
 								 InvalidOffsetNumber, LP_USED);
 			if (newoff == InvalidOffsetNumber)
 			{
-				elog(WARN, "\
+				elog(ABORT, "\
 failed to add item with len = %u to page %u (free space %u, nusd %u, noff %u)",
 					 tlen, ToVpd->vpd_blkno, ToVpd->vpd_free,
 					 ToVpd->vpd_nusd, ToVpd->vpd_noff);
@@ -1789,7 +1789,7 @@ vc_updstats(Oid relid, int npages, int ntups, bool hasindex, VRelStats *vacrelst
 	rsdesc = heap_beginscan(rd, false, false, 1, &rskey);
 
 	if (!HeapTupleIsValid(rtup = heap_getnext(rsdesc, 0, &rbuf)))
-		elog(WARN, "pg_class entry for relid %d vanished during vacuuming",
+		elog(ABORT, "pg_class entry for relid %d vanished during vacuuming",
 			 relid);
 
 	/* overwrite the existing statistics in the tuple */
diff --git a/src/backend/commands/view.c b/src/backend/commands/view.c
index 140378d17d9..c7431aaf670 100644
--- a/src/backend/commands/view.c
+++ b/src/backend/commands/view.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/view.c,v 1.17 1997/11/28 17:27:13 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/view.c,v 1.18 1998/01/05 03:30:59 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -89,7 +89,7 @@ DefineVirtualRelation(char *relname, List *tlist)
 	}
 	else
 	{
-		elog(WARN, "attempted to define virtual relation with no attrs");
+		elog(ABORT, "attempted to define virtual relation with no attrs");
 	}
 
 	/*
diff --git a/src/backend/executor/execAmi.c b/src/backend/executor/execAmi.c
index 15adc207158..1eefd2f43e5 100644
--- a/src/backend/executor/execAmi.c
+++ b/src/backend/executor/execAmi.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/executor/execAmi.c,v 1.12 1997/11/28 04:40:03 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/execAmi.c,v 1.13 1998/01/05 03:31:01 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -313,7 +313,7 @@ ExecReScan(Plan *node, ExprContext *exprCtxt, Plan *parent)
 			break;
 
 		default:
-			elog(WARN, "ExecReScan: not a seqscan or indexscan node.");
+			elog(ABORT, "ExecReScan: not a seqscan or indexscan node.");
 			return;
 	}
 }
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c
index 64876ff9ab3..646bed9ea62 100644
--- a/src/backend/executor/execMain.c
+++ b/src/backend/executor/execMain.c
@@ -26,7 +26,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.35 1997/11/28 17:27:20 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.36 1998/01/05 03:31:06 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -328,7 +328,7 @@ ExecCheckPerms(CmdType operation,
 								  ObjectIdGetDatum(relid),
 								  0, 0, 0);
 		if (!HeapTupleIsValid(htp))
-			elog(WARN, "ExecCheckPerms: bogus RT relid: %d",
+			elog(ABORT, "ExecCheckPerms: bogus RT relid: %d",
 				 relid);
 		StrNCpy(rname.data,
 				((Form_pg_class) GETSTRUCT(htp))->relname.data,
@@ -361,7 +361,7 @@ ExecCheckPerms(CmdType operation,
 					opstr = "write";
 					break;
 				default:
-					elog(WARN, "ExecCheckPerms: bogus operation %d",
+					elog(ABORT, "ExecCheckPerms: bogus operation %d",
 						 operation);
 			}
 		}
@@ -377,7 +377,7 @@ ExecCheckPerms(CmdType operation,
 	}
 	if (!ok)
 	{
-		elog(WARN, "%s: %s", rname.data, aclcheck_error_strings[aclcheck_result]);
+		elog(ABORT, "%s: %s", rname.data, aclcheck_error_strings[aclcheck_result]);
 	}
 }
 
@@ -447,7 +447,7 @@ InitPlan(CmdType operation, Query *parseTree, Plan *plan, EState *estate)
 		resultRelationDesc = heap_open(resultRelationOid);
 
 		if (resultRelationDesc->rd_rel->relkind == RELKIND_SEQUENCE)
-			elog(WARN, "You can't change sequence relation %s",
+			elog(ABORT, "You can't change sequence relation %s",
 				 resultRelationDesc->rd_rel->relname.data);
 
 		/*
@@ -778,10 +778,10 @@ ExecutePlan(EState *estate,
 										  "ctid",
 										  &datum,
 										  &isNull))
-					elog(WARN, "ExecutePlan: NO (junk) `ctid' was found!");
+					elog(ABORT, "ExecutePlan: NO (junk) `ctid' was found!");
 
 				if (isNull)
-					elog(WARN, "ExecutePlan: (junk) `ctid' is NULL!");
+					elog(ABORT, "ExecutePlan: (junk) `ctid' is NULL!");
 
 				tupleid = (ItemPointer) DatumGetPointer(datum);
 				tuple_ctid = *tupleid;	/* make sure we don't free the
@@ -1376,7 +1376,7 @@ ExecConstraints(char *caller, Relation rel, HeapTuple tuple)
 		for (attrChk = 1; attrChk <= rel->rd_att->natts; attrChk++)
 		{
 			if (rel->rd_att->attrs[attrChk - 1]->attnotnull && heap_attisnull(tuple, attrChk))
-				elog(WARN, "%s: Fail to add null value in not null attribute %s",
+				elog(ABORT, "%s: Fail to add null value in not null attribute %s",
 				  caller, rel->rd_att->attrs[attrChk - 1]->attname.data);
 		}
 	}
@@ -1386,7 +1386,7 @@ ExecConstraints(char *caller, Relation rel, HeapTuple tuple)
 		char	   *failed;
 
 		if ((failed = ExecRelCheck(rel, tuple)) != NULL)
-			elog(WARN, "%s: rejected due to CHECK constraint %s", caller, failed);
+			elog(ABORT, "%s: rejected due to CHECK constraint %s", caller, failed);
 	}
 
 	return (newtuple);
diff --git a/src/backend/executor/execProcnode.c b/src/backend/executor/execProcnode.c
index 8671e8e1b07..38c159534e9 100644
--- a/src/backend/executor/execProcnode.c
+++ b/src/backend/executor/execProcnode.c
@@ -11,7 +11,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/executor/execProcnode.c,v 1.5 1997/09/08 21:42:59 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/execProcnode.c,v 1.6 1998/01/05 03:31:08 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -368,7 +368,7 @@ ExecCountSlotsNode(Plan *node)
 			return ExecCountSlotsTee((Tee *) node);
 
 		default:
-			elog(WARN, "ExecCountSlotsNode: node not yet supported: %d",
+			elog(ABORT, "ExecCountSlotsNode: node not yet supported: %d",
 				 nodeTag(node));
 			break;
 	}
diff --git a/src/backend/executor/execQual.c b/src/backend/executor/execQual.c
index b4340fe60d7..99f460a785c 100644
--- a/src/backend/executor/execQual.c
+++ b/src/backend/executor/execQual.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/executor/execQual.c,v 1.20 1997/11/26 03:54:00 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/execQual.c,v 1.21 1998/01/05 03:31:11 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -148,7 +148,7 @@ ExecEvalArrayRef(ArrayRef *arrayRef,
 				return (Datum) NULL;
 		}
 		if (i != j)
-			elog(WARN,
+			elog(ABORT,
 				 "ExecEvalArrayRef: upper and lower indices mismatch");
 		lIndex = lower.indx;
 	}
@@ -429,7 +429,7 @@ ExecEvalParam(Param *expression, ExprContext *econtext, bool *isNull)
 						 */
 						if (strcmp(paramList->name, thisParameterName) != 0)
 						{
-							elog(WARN,
+							elog(ABORT,
 								 "ExecEvalParam: new/old params with same id & diff names");
 						}
 					}
@@ -439,7 +439,7 @@ ExecEvalParam(Param *expression, ExprContext *econtext, bool *isNull)
 					/*
 					 * oops! this is not supposed to happen!
 					 */
-					elog(WARN, "ExecEvalParam: invalid paramkind %d",
+					elog(ABORT, "ExecEvalParam: invalid paramkind %d",
 						 thisParameterKind);
 			}
 			if (!matchFound)
@@ -456,7 +456,7 @@ ExecEvalParam(Param *expression, ExprContext *econtext, bool *isNull)
 		 * ooops! we couldn't find this parameter in the parameter list.
 		 * Signal an error
 		 */
-		elog(WARN, "ExecEvalParam: Unknown value for parameter %s",
+		elog(ABORT, "ExecEvalParam: Unknown value for parameter %s",
 			 thisParameterName);
 	}
 
@@ -510,13 +510,13 @@ GetAttributeByNum(TupleTableSlot *slot,
 	Datum		retval;
 
 	if (!AttributeNumberIsValid(attrno))
-		elog(WARN, "GetAttributeByNum: Invalid attribute number");
+		elog(ABORT, "GetAttributeByNum: Invalid attribute number");
 
 	if (!AttrNumberIsForUserDefinedAttr(attrno))
-		elog(WARN, "GetAttributeByNum: cannot access system attributes here");
+		elog(ABORT, "GetAttributeByNum: cannot access system attributes here");
 
 	if (isNull == (bool *) NULL)
-		elog(WARN, "GetAttributeByNum: a NULL isNull flag was passed");
+		elog(ABORT, "GetAttributeByNum: a NULL isNull flag was passed");
 
 	if (TupIsNull(slot))
 	{
@@ -557,10 +557,10 @@ GetAttributeByName(TupleTableSlot *slot, char *attname, bool *isNull)
 	int			i;
 
 	if (attname == NULL)
-		elog(WARN, "GetAttributeByName: Invalid attribute name");
+		elog(ABORT, "GetAttributeByName: Invalid attribute name");
 
 	if (isNull == (bool *) NULL)
-		elog(WARN, "GetAttributeByName: a NULL isNull flag was passed");
+		elog(ABORT, "GetAttributeByName: a NULL isNull flag was passed");
 
 	if (TupIsNull(slot))
 	{
@@ -584,7 +584,7 @@ GetAttributeByName(TupleTableSlot *slot, char *attname, bool *isNull)
 	}
 
 	if (attrno == InvalidAttrNumber)
-		elog(WARN, "GetAttributeByName: attribute %s not found", attname);
+		elog(ABORT, "GetAttributeByName: attribute %s not found", attname);
 
 	retval = heap_getattr(slot->val,
 						  slot->ttc_buffer,
@@ -696,7 +696,7 @@ ExecMakeFunctionResult(Node *node,
 		bool		argDone;
 
 		if (fcache->nargs > MAXFMGRARGS)
-			elog(WARN, "ExecMakeFunctionResult: too many arguments");
+			elog(ABORT, "ExecMakeFunctionResult: too many arguments");
 
 		/*
 		 * If the setArg in the fcache is set we have an argument
@@ -1232,13 +1232,13 @@ ExecEvalExpr(Node *expression,
 						retDatum = (Datum) ExecEvalNot(expr, econtext, isNull);
 						break;
 					default:
-						elog(WARN, "ExecEvalExpr: unknown expression type");
+						elog(ABORT, "ExecEvalExpr: unknown expression type");
 						break;
 				}
 				break;
 			}
 		default:
-			elog(WARN, "ExecEvalExpr: unknown expression type");
+			elog(ABORT, "ExecEvalExpr: unknown expression type");
 			break;
 	}
 
diff --git a/src/backend/executor/execTuples.c b/src/backend/executor/execTuples.c
index 8c9635ea438..40be0b3d5de 100644
--- a/src/backend/executor/execTuples.c
+++ b/src/backend/executor/execTuples.c
@@ -14,7 +14,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/executor/execTuples.c,v 1.13 1997/12/18 12:53:42 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/execTuples.c,v 1.14 1998/01/05 03:31:12 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -315,7 +315,7 @@ ExecAllocTableSlot(TupleTable table)
 		 * table->size =  newsize;
 		 */
 		elog(NOTICE, "Plan requires more slots than are available");
-		elog(WARN, "send mail to your local executor guru to fix this");
+		elog(ABORT, "send mail to your local executor guru to fix this");
 	}
 
 	/* ----------------
@@ -859,7 +859,7 @@ NodeGetResultTupleSlot(Plan *node)
 			 *	  should never get here
 			 * ----------------
 			 */
-			elog(WARN, "NodeGetResultTupleSlot: node not yet supported: %d ",
+			elog(ABORT, "NodeGetResultTupleSlot: node not yet supported: %d ",
 				 nodeTag(node));
 
 			return NULL;
diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c
index 653c4ed48f5..cecd2897781 100644
--- a/src/backend/executor/execUtils.c
+++ b/src/backend/executor/execUtils.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.21 1997/11/20 23:21:26 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.22 1998/01/05 03:31:13 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -499,7 +499,7 @@ ExecSetTypeInfo(int index,
 	 */
 	att = typeInfo[index];
 	if (att == NULL)
-		elog(WARN, "ExecSetTypeInfo: trying to assign through NULL");
+		elog(ABORT, "ExecSetTypeInfo: trying to assign through NULL");
 
 	/* ----------------
 	 *	assign values to the tuple descriptor, being careful not
@@ -1219,7 +1219,7 @@ setVarAttrLenForCreateTable(TupleDesc tupType, List *targetList,
 				heap_close(rd);
 			}
 			else
-				elog(WARN, "setVarAttrLenForCreateTable: can't get length for variable-length field");
+				elog(ABORT, "setVarAttrLenForCreateTable: can't get length for variable-length field");
 		}
 		tl = lnext(tl);
 	}
diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c
index 2037994027a..eb9a4b6bebc 100644
--- a/src/backend/executor/nodeAgg.c
+++ b/src/backend/executor/nodeAgg.c
@@ -170,7 +170,7 @@ ExecAgg(Agg *node)
 									   ObjectIdGetDatum(agg->basetype),
 									   0, 0);
 		if (!HeapTupleIsValid(aggTuple))
-			elog(WARN, "ExecAgg: cache lookup failed for aggregate \"%s\"(%s)",
+			elog(ABORT, "ExecAgg: cache lookup failed for aggregate \"%s\"(%s)",
 				 aggname,
 				 typeidTypeName(agg->basetype));
 		aggp = (Form_pg_aggregate) GETSTRUCT(aggTuple);
@@ -204,7 +204,7 @@ ExecAgg(Agg *node)
 			 * ------------------------------------------
 			 */
 			if (isNull2)
-				elog(WARN, "ExecAgg: agginitval2 is null");
+				elog(ABORT, "ExecAgg: agginitval2 is null");
 		}
 
 		if (OidIsValid(xfn1_oid))
@@ -305,7 +305,7 @@ ExecAgg(Agg *node)
 										  &isNull, &isDone);
 					break;
 				default:
-					elog(WARN, "ExecAgg: Bad Agg->Target for Agg %d", i);
+					elog(ABORT, "ExecAgg: Bad Agg->Target for Agg %d", i);
 			}
 
 			if (isNull && !aggregates[i]->usenulls)
@@ -355,7 +355,7 @@ ExecAgg(Agg *node)
 
 							break;
 						default:
-							elog(WARN, "ExecAgg: Bad Agg->Target for Agg %d", i);
+							elog(ABORT, "ExecAgg: Bad Agg->Target for Agg %d", i);
 					}
 					if (attlen == -1)
 					{
@@ -443,7 +443,7 @@ ExecAgg(Agg *node)
 				args[0] = (char *) value2[i];
 			}
 			else
-				elog(WARN, "ExecAgg: no valid transition functions??");
+				elog(ABORT, "ExecAgg: no valid transition functions??");
 			value1[i] =
 				(Datum) fmgr_c(aggfns->finalfn, aggfns->finalfn_oid,
 							   aggfns->finalfn_nargs, (FmgrValues *) args,
@@ -462,7 +462,7 @@ ExecAgg(Agg *node)
 			value1[i] = value2[i];
 		}
 		else
-			elog(WARN, "ExecAgg: no valid transition functions??");
+			elog(ABORT, "ExecAgg: no valid transition functions??");
 	}
 
 	/*
diff --git a/src/backend/executor/nodeHash.c b/src/backend/executor/nodeHash.c
index fbc7340700d..0d06ac5ac97 100644
--- a/src/backend/executor/nodeHash.c
+++ b/src/backend/executor/nodeHash.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/executor/nodeHash.c,v 1.13 1997/09/08 21:43:11 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/nodeHash.c,v 1.14 1998/01/05 03:31:16 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -90,7 +90,7 @@ ExecHash(Hash *node)
 
 	hashtable = node->hashtable;
 	if (hashtable == NULL)
-		elog(WARN, "ExecHash: hash table is NULL.");
+		elog(ABORT, "ExecHash: hash table is NULL.");
 
 	nbatch = hashtable->nbatch;
 
@@ -359,7 +359,7 @@ ExecHashTableCreate(Hash *node)
 
 	if (hashtable == NULL)
 	{
-		elog(WARN, "not enough memory for hashjoin.");
+		elog(ABORT, "not enough memory for hashjoin.");
 	}
 	/* ----------------
 	 *	initialize the hash table header
@@ -635,7 +635,7 @@ ExecHashOverflowInsert(HashJoinTable hashtable,
 		if (hashtable == NULL)
 		{
 			perror("repalloc");
-			elog(WARN, "can't expand hashtable.");
+			elog(ABORT, "can't expand hashtable.");
 		}
 #else
 		/* ------------------
@@ -644,7 +644,7 @@ ExecHashOverflowInsert(HashJoinTable hashtable,
 		 *	- Chris Dunlop, <chris@onthe.net.au>
 		 * ------------------
 		 */
-		elog(WARN, "hash table out of memory. Use -B parameter to increase buffers.");
+		elog(ABORT, "hash table out of memory. Use -B parameter to increase buffers.");
 #endif
 
 	}
diff --git a/src/backend/executor/nodeIndexscan.c b/src/backend/executor/nodeIndexscan.c
index ad6920a09bf..507117bd9ab 100644
--- a/src/backend/executor/nodeIndexscan.c
+++ b/src/backend/executor/nodeIndexscan.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/executor/nodeIndexscan.c,v 1.11 1997/11/20 23:21:28 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/nodeIndexscan.c,v 1.12 1998/01/05 03:31:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -641,7 +641,7 @@ ExecInitIndexScan(IndexScan *node, EState *estate, Plan *parent)
 
 			op = (Oper *) clause->oper;
 			if (!IsA(op, Oper))
-				elog(WARN, "ExecInitIndexScan: op not an Oper!");
+				elog(ABORT, "ExecInitIndexScan: op not an Oper!");
 
 			opid = op->opid;
 
@@ -757,7 +757,7 @@ ExecInitIndexScan(IndexScan *node, EState *estate, Plan *parent)
 				 * ----------------
 				 */
 				if (scanvar == LEFT_OP)
-					elog(WARN, "ExecInitIndexScan: %s",
+					elog(ABORT, "ExecInitIndexScan: %s",
 						 "both left and right op's are rel-vars");
 
 				/* ----------------
@@ -810,7 +810,7 @@ ExecInitIndexScan(IndexScan *node, EState *estate, Plan *parent)
 				 * ----------------
 				 */
 				if (scanvar == LEFT_OP)
-					elog(WARN, "ExecInitIndexScan: %s",
+					elog(ABORT, "ExecInitIndexScan: %s",
 						 "both left and right ops are rel-vars");
 
 				varattno = 1;
@@ -836,7 +836,7 @@ ExecInitIndexScan(IndexScan *node, EState *estate, Plan *parent)
 			 * ----------------
 			 */
 			if (scanvar == NO_OP)
-				elog(WARN, "ExecInitIndexScan: %s",
+				elog(ABORT, "ExecInitIndexScan: %s",
 					 "neither leftop nor rightop refer to scan relation");
 
 			/* ----------------
diff --git a/src/backend/executor/nodeSort.c b/src/backend/executor/nodeSort.c
index 3dd8f4d70fb..0c0f265ea11 100644
--- a/src/backend/executor/nodeSort.c
+++ b/src/backend/executor/nodeSort.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/executor/nodeSort.c,v 1.10 1997/09/15 14:27:37 vadim Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/nodeSort.c,v 1.11 1998/01/05 03:31:20 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -56,7 +56,7 @@ FormSortKeys(Sort *sortnode)
 	 * ----------------
 	 */
 	if (keycount <= 0)
-		elog(WARN, "FormSortKeys: keycount <= 0");
+		elog(ABORT, "FormSortKeys: keycount <= 0");
 	sortkeys = (ScanKey) palloc(keycount * sizeof(ScanKeyData));
 
 	/* ----------------
diff --git a/src/backend/executor/nodeTee.c b/src/backend/executor/nodeTee.c
index dc46e949662..719d8eaed1a 100644
--- a/src/backend/executor/nodeTee.c
+++ b/src/backend/executor/nodeTee.c
@@ -15,7 +15,7 @@
  *		ExecEndTee
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/executor/Attic/nodeTee.c,v 1.13 1997/11/28 17:27:31 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/executor/Attic/nodeTee.c,v 1.14 1998/01/05 03:31:21 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -329,7 +329,7 @@ ExecTee(Tee *node, Plan *parent)
 	}
 	else
 	{
-		elog(WARN, "A Tee node can only be executed from its left or right parent\n");
+		elog(ABORT, "A Tee node can only be executed from its left or right parent\n");
 		return NULL;
 	}
 
diff --git a/src/backend/lib/stringinfo.c b/src/backend/lib/stringinfo.c
index 639af1854f0..5a241953da3 100644
--- a/src/backend/lib/stringinfo.c
+++ b/src/backend/lib/stringinfo.c
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/lib/stringinfo.c,v 1.5 1997/09/08 02:23:05 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/lib/stringinfo.c,v 1.6 1998/01/05 03:31:24 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -36,14 +36,14 @@ makeStringInfo()
 	res = (StringInfo) palloc(sizeof(StringInfoData));
 	if (res == NULL)
 	{
-		elog(WARN, "makeStringInfo: Out of memory!");
+		elog(ABORT, "makeStringInfo: Out of memory!");
 	}
 
 	size = 100;
 	res->data = palloc(size);
 	if (res->data == NULL)
 	{
-		elog(WARN,
+		elog(ABORT,
 		   "makeStringInfo: Out of memory! (%ld bytes requested)", size);
 	}
 	res->maxlen = size;
@@ -103,7 +103,7 @@ appendStringInfo(StringInfo str, char *buffer)
 		s = palloc(newlen);
 		if (s == NULL)
 		{
-			elog(WARN,
+			elog(ABORT,
 				 "appendStringInfo: Out of memory (%d bytes requested)",
 				 newlen);
 		}
diff --git a/src/backend/libpq/be-fsstubs.c b/src/backend/libpq/be-fsstubs.c
index 0445779bcc9..4482e338c42 100644
--- a/src/backend/libpq/be-fsstubs.c
+++ b/src/backend/libpq/be-fsstubs.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/libpq/be-fsstubs.c,v 1.17 1997/12/08 04:42:45 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/libpq/be-fsstubs.c,v 1.18 1998/01/05 03:31:26 momjian Exp $
  *
  * NOTES
  *	  This should be moved to a more appropriate place.  It is here
@@ -100,12 +100,12 @@ lo_close(int fd)
 
 	if (fd >= MAX_LOBJ_FDS)
 	{
-		elog(WARN, "lo_close: large obj descriptor (%d) out of range", fd);
+		elog(ABORT, "lo_close: large obj descriptor (%d) out of range", fd);
 		return -2;
 	}
 	if (cookies[fd] == NULL)
 	{
-		elog(WARN, "lo_close: invalid large obj descriptor (%d)", fd);
+		elog(ABORT, "lo_close: invalid large obj descriptor (%d)", fd);
 		return -3;
 	}
 #if FSDB
@@ -150,7 +150,7 @@ lo_lseek(int fd, int offset, int whence)
 
 	if (fd >= MAX_LOBJ_FDS)
 	{
-		elog(WARN, "lo_seek: large obj descriptor (%d) out of range", fd);
+		elog(ABORT, "lo_seek: large obj descriptor (%d) out of range", fd);
 		return -2;
 	}
 
@@ -200,12 +200,12 @@ lo_tell(int fd)
 {
 	if (fd >= MAX_LOBJ_FDS)
 	{
-		elog(WARN, "lo_tell: large object descriptor (%d) out of range", fd);
+		elog(ABORT, "lo_tell: large object descriptor (%d) out of range", fd);
 		return -2;
 	}
 	if (cookies[fd] == NULL)
 	{
-		elog(WARN, "lo_tell: invalid large object descriptor (%d)", fd);
+		elog(ABORT, "lo_tell: invalid large object descriptor (%d)", fd);
 		return -3;
 	}
 	return inv_tell(cookies[fd]);
@@ -273,7 +273,7 @@ lo_import(text *filename)
 	fd = open(fnamebuf, O_RDONLY, 0666);
 	if (fd < 0)
 	{							/* error */
-		elog(WARN, "be_lo_import: can't open unix file\"%s\"\n",
+		elog(ABORT, "be_lo_import: can't open unix file\"%s\"\n",
 			 fnamebuf);
 	}
 
@@ -283,7 +283,7 @@ lo_import(text *filename)
 	lobj = inv_create(INV_READ | INV_WRITE);
 	if (lobj == NULL)
 	{
-		elog(WARN, "lo_import: can't create inv object for \"%s\"",
+		elog(ABORT, "lo_import: can't create inv object for \"%s\"",
 			 fnamebuf);
 	}
 
@@ -301,7 +301,7 @@ lo_import(text *filename)
 		tmp = inv_write(lobj, buf, nbytes);
 		if (tmp < nbytes)
 		{
-			elog(WARN, "lo_import: error while reading \"%s\"",
+			elog(ABORT, "lo_import: error while reading \"%s\"",
 				 fnamebuf);
 		}
 	}
@@ -335,7 +335,7 @@ lo_export(Oid lobjId, text *filename)
 	lobj = inv_open(lobjId, INV_READ);
 	if (lobj == NULL)
 	{
-		elog(WARN, "lo_export: can't open inv object %d",
+		elog(ABORT, "lo_export: can't open inv object %d",
 			 lobjId);
 	}
 
@@ -348,7 +348,7 @@ lo_export(Oid lobjId, text *filename)
 	umask(oumask);
 	if (fd < 0)
 	{							/* error */
-		elog(WARN, "lo_export: can't open unix file\"%s\"",
+		elog(ABORT, "lo_export: can't open unix file\"%s\"",
 			 fnamebuf);
 	}
 
@@ -360,7 +360,7 @@ lo_export(Oid lobjId, text *filename)
 		tmp = write(fd, buf, nbytes);
 		if (tmp < nbytes)
 		{
-			elog(WARN, "lo_export: error while writing \"%s\"",
+			elog(ABORT, "lo_export: error while writing \"%s\"",
 				 fnamebuf);
 		}
 	}
diff --git a/src/backend/libpq/be-pqexec.c b/src/backend/libpq/be-pqexec.c
index d895f7a031d..8c19444db79 100644
--- a/src/backend/libpq/be-pqexec.c
+++ b/src/backend/libpq/be-pqexec.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/libpq/Attic/be-pqexec.c,v 1.11 1997/12/12 16:26:14 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/libpq/Attic/be-pqexec.c,v 1.12 1998/01/05 03:31:28 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -82,7 +82,7 @@ PQfn(int fnid,
 		}
 		else if (args[i].len > sizeof(int4))
 		{
-			elog(WARN, "arg_length of argument %d too long", i);
+			elog(ABORT, "arg_length of argument %d too long", i);
 		}
 		else
 		{
@@ -125,7 +125,7 @@ PQfn(int fnid,
  *		If a query is does not return tuples, return "C query-command".
  *		If there is an error: return "E error-message".
  *
- *		Note: if we get a serious error or an elog(WARN), then PQexec never
+ *		Note: if we get a serious error or an elog(ABORT), then PQexec never
  *		returns because the system longjmp's back to the main loop.
  * ----------------
  */
@@ -211,7 +211,7 @@ pqtest_PQexec(char *q)
 		case 'P':
 			a = PQparray(&res[1]);
 			if (a == NULL)
-				elog(WARN, "pqtest_PQexec: PQparray could not find portal %s",
+				elog(ABORT, "pqtest_PQexec: PQparray could not find portal %s",
 					 res);
 
 			t = PQntuples(a);
diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c
index ead2e900dc0..972910b0e9d 100644
--- a/src/backend/libpq/pqcomm.c
+++ b/src/backend/libpq/pqcomm.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/libpq/pqcomm.c,v 1.31 1997/12/16 15:58:14 thomas Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/libpq/pqcomm.c,v 1.32 1998/01/05 03:31:30 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -694,7 +694,7 @@ StreamConnection(int server_fd, Port *port)
 							 (struct sockaddr *) & port->raddr,
 							 &addrlen)) < 0)
 	{
-		elog(WARN, "postmaster: StreamConnection: accept: %m");
+		elog(ABORT, "postmaster: StreamConnection: accept: %m");
 		return (STATUS_ERROR);
 	}
 
@@ -703,7 +703,7 @@ StreamConnection(int server_fd, Port *port)
 	if (getsockname(port->sock, (struct sockaddr *) & port->laddr,
 					&addrlen) < 0)
 	{
-		elog(WARN, "postmaster: StreamConnection: getsockname: %m");
+		elog(ABORT, "postmaster: StreamConnection: getsockname: %m");
 		return (STATUS_ERROR);
 	}
 	if (family == AF_INET)
@@ -714,13 +714,13 @@ StreamConnection(int server_fd, Port *port)
 		pe = getprotobyname("TCP");
 		if (pe == NULL)
 		{
-			elog(WARN, "postmaster: getprotobyname failed");
+			elog(ABORT, "postmaster: getprotobyname failed");
 			return (STATUS_ERROR);
 		}
 		if (setsockopt(port->sock, pe->p_proto, TCP_NODELAY,
 					   &on, sizeof(on)) < 0)
 		{
-			elog(WARN, "postmaster: setsockopt failed");
+			elog(ABORT, "postmaster: setsockopt failed");
 			return (STATUS_ERROR);
 		}
 	}
diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c
index c5728dddd1c..9bb548d8da5 100644
--- a/src/backend/nodes/equalfuncs.c
+++ b/src/backend/nodes/equalfuncs.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.10 1997/09/08 21:44:02 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.11 1998/01/05 03:31:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -243,7 +243,7 @@ _equalParam(Param *a, Param *b)
 			return (true);
 			break;
 		default:
-			elog(WARN, "_equalParam: Invalid paramkind value: %d",
+			elog(ABORT, "_equalParam: Invalid paramkind value: %d",
 				 a->paramkind);
 	}
 
diff --git a/src/backend/nodes/list.c b/src/backend/nodes/list.c
index 2413839dc6b..28e9bc5f594 100644
--- a/src/backend/nodes/list.c
+++ b/src/backend/nodes/list.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/nodes/list.c,v 1.8 1997/12/19 16:54:15 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/nodes/list.c,v 1.9 1998/01/05 03:31:38 momjian Exp $
  *
  * NOTES
  *	  XXX a few of the following functions are duplicated to handle
@@ -237,7 +237,7 @@ nconc(List *l1, List *l2)
 	if (l2 == NIL)
 		return l1;
 	if (l1 == l2)
-		elog(WARN, "tryout to nconc a list to itself");
+		elog(ABORT, "tryout to nconc a list to itself");
 
 	for (temp = l1; lnext(temp) != NULL; temp = lnext(temp))
 		;
diff --git a/src/backend/nodes/read.c b/src/backend/nodes/read.c
index 60b45822eb6..28f3f208472 100644
--- a/src/backend/nodes/read.c
+++ b/src/backend/nodes/read.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/nodes/read.c,v 1.5 1997/09/08 02:23:43 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/nodes/read.c,v 1.6 1998/01/05 03:31:40 momjian Exp $
  *
  * HISTORY
  *	  AUTHOR			DATE			MAJOR EVENT
@@ -275,7 +275,7 @@ nodeRead(bool read_car_only)
 			make_dotted_pair_cell = true;
 			break;
 		default:
-			elog(WARN, "nodeRead: Bad type %d", type);
+			elog(ABORT, "nodeRead: Bad type %d", type);
 			break;
 	}
 	if (make_dotted_pair_cell)
diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c
index 8f1e6ff2655..7ac0e725e78 100644
--- a/src/backend/nodes/readfuncs.c
+++ b/src/backend/nodes/readfuncs.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.12 1997/12/27 06:40:59 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.13 1998/01/05 03:31:45 momjian Exp $
  *
  * NOTES
  *	  Most of the read functions for plan nodes are tested. (In fact, they
@@ -2034,7 +2034,7 @@ parsePlanString(void)
 	}
 	else
 	{
-		elog(WARN, "badly formatted planstring \"%.10s\"...\n", token);
+		elog(ABORT, "badly formatted planstring \"%.10s\"...\n", token);
 	}
 
 	return ((Node *) return_value);
@@ -2073,7 +2073,7 @@ readDatum(Oid type)
 	{
 		if (length > sizeof(Datum))
 		{
-			elog(WARN, "readValue: byval & length = %d", length);
+			elog(ABORT, "readValue: byval & length = %d", length);
 		}
 		s = (char *) (&res);
 		for (i = 0; i < sizeof(Datum); i++)
@@ -2101,7 +2101,7 @@ readDatum(Oid type)
 	token = lsptok(NULL, &tokenLength); /* skip the ']' */
 	if (token[0] != ']')
 	{
-		elog(WARN, "readValue: ']' expected, length =%d", length);
+		elog(ABORT, "readValue: ']' expected, length =%d", length);
 	}
 
 	return (res);
diff --git a/src/backend/optimizer/geqo/geqo_erx.c b/src/backend/optimizer/geqo/geqo_erx.c
index 8dbc935c872..584a6b87c24 100644
--- a/src/backend/optimizer/geqo/geqo_erx.c
+++ b/src/backend/optimizer/geqo/geqo_erx.c
@@ -3,7 +3,7 @@
 * geqo_erx.c--
 *	 edge recombination crossover [ER]
 *
-* $Id: geqo_erx.c,v 1.5 1997/09/08 21:44:16 momjian Exp $
+* $Id: geqo_erx.c,v 1.6 1998/01/05 03:31:48 momjian Exp $
 *
 *-------------------------------------------------------------------------
 */
@@ -353,7 +353,7 @@ gimme_gene(Edge edge, Edge *edge_table)
 			minimum_count = 1;
 		}
 		else if (minimum_count == -1)
-			elog(WARN, "gimme_gene: Internal error - minimum_count not set");
+			elog(ABORT, "gimme_gene: Internal error - minimum_count not set");
 		else if (edge_table[(int) friend].unused_edges == minimum_edges)
 			minimum_count++;
 
@@ -379,7 +379,7 @@ gimme_gene(Edge edge, Edge *edge_table)
 	}
 
 	/* ... should never be reached */
-	elog(WARN, "gimme_gene: neither shared nor minimum number nor random edge found");
+	elog(ABORT, "gimme_gene: neither shared nor minimum number nor random edge found");
 	return 0;					/* to keep the compiler quiet */
 }
 
@@ -487,6 +487,6 @@ edge_failure(Gene *gene, int index, Edge *edge_table, int num_gene)
 
 
 /* ... should never be reached */
-	elog(WARN, "edge_failure: no edge detected");
+	elog(ABORT, "edge_failure: no edge detected");
 	return 0;					/* to keep the compiler quiet */
 }
diff --git a/src/backend/optimizer/geqo/geqo_eval.c b/src/backend/optimizer/geqo/geqo_eval.c
index 7e721a34e89..97cda4ce78f 100644
--- a/src/backend/optimizer/geqo/geqo_eval.c
+++ b/src/backend/optimizer/geqo/geqo_eval.c
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: geqo_eval.c,v 1.15 1997/09/08 21:44:19 momjian Exp $
+ * $Id: geqo_eval.c,v 1.16 1998/01/05 03:31:49 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -737,6 +737,6 @@ geqo_nth(int stop, List *rels)
 			return lfirst(r);
 		i++;
 	}
-	elog(WARN, "geqo_nth: Internal error - ran off end of list");
+	elog(ABORT, "geqo_nth: Internal error - ran off end of list");
 	return NULL;				/* to keep compiler happy */
 }
diff --git a/src/backend/optimizer/geqo/geqo_misc.c b/src/backend/optimizer/geqo/geqo_misc.c
index e26a8ec5e40..d88954b2653 100644
--- a/src/backend/optimizer/geqo/geqo_misc.c
+++ b/src/backend/optimizer/geqo/geqo_misc.c
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: geqo_misc.c,v 1.5 1997/09/08 21:44:26 momjian Exp $
+ * $Id: geqo_misc.c,v 1.6 1998/01/05 03:31:51 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -53,7 +53,7 @@ avg_pool(Pool *pool)
 	double		cumulative = 0.0;
 
 	if (pool->size == 0)
-		elog(WARN, "avg_pool: pool_size of zero");
+		elog(ABORT, "avg_pool: pool_size of zero");
 
 	for (i = 0; i < pool->size; i++)
 		cumulative = cumulative + pool->data[i].worth;
diff --git a/src/backend/optimizer/path/predmig.c b/src/backend/optimizer/path/predmig.c
index 3ee98d0b14e..12c1a336c85 100644
--- a/src/backend/optimizer/path/predmig.c
+++ b/src/backend/optimizer/path/predmig.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/predmig.c,v 1.6 1997/09/08 21:45:07 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/predmig.c,v 1.7 1998/01/05 03:31:54 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -133,7 +133,7 @@ xfunc_predmig(JoinPath pathnode,/* root of the join tree */
 	/* sanity check */
 	if ((!streamroot && laststream) ||
 		(streamroot && !laststream))
-		elog(WARN, "called xfunc_predmig with bad inputs");
+		elog(ABORT, "called xfunc_predmig with bad inputs");
 	if (streamroot)
 		Assert(xfunc_check_stream(streamroot));
 
@@ -333,7 +333,7 @@ xfunc_prdmig_pullup(Stream origstream, Stream pullme, JoinPath joinpath)
 		 orignode = (Stream) get_downstream(orignode))
 		 /* empty body in for loop */ ;
 	if (!orignode)
-		elog(WARN, "Didn't find matching node in original stream");
+		elog(ABORT, "Didn't find matching node in original stream");
 
 
 	/* pull up this node as far as it should go */
@@ -790,14 +790,14 @@ xfunc_check_stream(Stream node)
 	{
 		if ((Stream) get_upstream((Stream) get_downstream(temp)) != temp)
 		{
-			elog(WARN, "bad pointers in stream");
+			elog(ABORT, "bad pointers in stream");
 			return (false);
 		}
 		if (!is_clause(temp))
 		{
 			if ((tmp = xfunc_num_relids(temp)) >= numrelids)
 			{
-				elog(WARN, "Joins got reordered!");
+				elog(ABORT, "Joins got reordered!");
 				return (false);
 			}
 			numrelids = tmp;
diff --git a/src/backend/optimizer/path/prune.c b/src/backend/optimizer/path/prune.c
index f7ff4e206c0..4358f191503 100644
--- a/src/backend/optimizer/path/prune.c
+++ b/src/backend/optimizer/path/prune.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/prune.c,v 1.8 1997/12/23 03:27:23 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/prune.c,v 1.9 1998/01/05 03:31:55 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -133,7 +133,7 @@ prune_rel_paths(List *rel_list)
 			rel->size = compute_joinrel_size(cheapest);
 		}
 		else
-			elog(WARN, "non JoinPath called");
+			elog(ABORT, "non JoinPath called");
 	}
 }
 
diff --git a/src/backend/optimizer/path/xfunc.c b/src/backend/optimizer/path/xfunc.c
index 08f0b13cec8..f04e8d3acf7 100644
--- a/src/backend/optimizer/path/xfunc.c
+++ b/src/backend/optimizer/path/xfunc.c
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/xfunc.c,v 1.9 1997/12/22 05:41:59 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/xfunc.c,v 1.10 1998/01/05 03:31:56 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -461,7 +461,7 @@ xfunc_local_expense(LispValue clause)
 	}
 	else
 	{
-		elog(WARN, "Clause node of undetermined type");
+		elog(ABORT, "Clause node of undetermined type");
 		return (-1);
 	}
 }
@@ -497,7 +497,7 @@ xfunc_func_expense(LispValue node, LispValue args)
 	{
 		/* don't trust the opid in the Oper node.  Use the opno. */
 		if (!(funcid = get_opcode(get_opno((Oper) node))))
-			elog(WARN, "Oper's function is undefined");
+			elog(ABORT, "Oper's function is undefined");
 	}
 	else
 	{
@@ -507,7 +507,7 @@ xfunc_func_expense(LispValue node, LispValue args)
 	/* look up tuple in cache */
 	tupl = SearchSysCacheTuple(PROOID, ObjectIdGetDatum(funcid), 0, 0, 0);
 	if (!HeapTupleIsValid(tupl))
-		elog(WARN, "Cache lookup failed for procedure %d", funcid);
+		elog(ABORT, "Cache lookup failed for procedure %d", funcid);
 	proc = (Form_pg_proc) GETSTRUCT(tupl);
 
 	/*
@@ -622,7 +622,7 @@ xfunc_width(LispValue clause)
 							  PointerGetDatum(get_vartype((Var) clause)),
 								   0, 0, 0);
 		if (!HeapTupleIsValid(tupl))
-			elog(WARN, "Cache lookup failed for type %d",
+			elog(ABORT, "Cache lookup failed for type %d",
 				 get_vartype((Var) clause));
 		type = (TypeTupleForm) GETSTRUCT(tupl);
 		if (get_varattno((Var) clause) == 0)
@@ -686,7 +686,7 @@ xfunc_width(LispValue clause)
 					   ObjectIdGetDatum(get_opno((Oper) get_op(clause))),
 								   0, 0, 0);
 		if (!HeapTupleIsValid(tupl))
-			elog(WARN, "Cache lookup failed for procedure %d",
+			elog(ABORT, "Cache lookup failed for procedure %d",
 				 get_opno((Oper) get_op(clause)));
 		return (xfunc_func_width
 				((RegProcedure) (((OperatorTupleForm) (GETSTRUCT(tupl)))->oprcode),
@@ -717,7 +717,7 @@ xfunc_width(LispValue clause)
 	}
 	else
 	{
-		elog(WARN, "Clause node of undetermined type");
+		elog(ABORT, "Clause node of undetermined type");
 		return (-1);
 	}
 
@@ -855,7 +855,7 @@ xfunc_find_references(LispValue clause)
 	}
 	else
 	{
-		elog(WARN, "Clause node of undetermined type");
+		elog(ABORT, "Clause node of undetermined type");
 		return ((List) LispNil);
 	}
 }
@@ -1192,7 +1192,7 @@ xfunc_fixvars(LispValue clause, /* clause being pulled up */
 			xfunc_fixvars(lfirst(tmpclause), rel, varno);
 	else
 	{
-		elog(WARN, "Clause node of undetermined type");
+		elog(ABORT, "Clause node of undetermined type");
 	}
 }
 
@@ -1320,7 +1320,7 @@ xfunc_func_width(RegProcedure funcid, LispValue args)
 	Assert(RegProcedureIsValid(funcid));
 	tupl = SearchSysCacheTuple(PROOID, ObjectIdGetDatum(funcid), 0, 0, 0);
 	if (!HeapTupleIsValid(tupl))
-		elog(WARN, "Cache lookup failed for procedure %d", funcid);
+		elog(ABORT, "Cache lookup failed for procedure %d", funcid);
 	proc = (Form_pg_proc) GETSTRUCT(tupl);
 
 	/* if function returns a tuple, get the width of that */
@@ -1338,7 +1338,7 @@ xfunc_func_width(RegProcedure funcid, LispValue args)
 								   ObjectIdGetDatum(proc->prorettype),
 								   0, 0, 0);
 		if (!HeapTupleIsValid(tupl))
-			elog(WARN, "Cache lookup failed for type %d", proc->prorettype);
+			elog(ABORT, "Cache lookup failed for type %d", proc->prorettype);
 		type = (TypeTupleForm) GETSTRUCT(tupl);
 		/* if the type length is known, return that */
 		if (type->typlen != -1)
@@ -1421,7 +1421,7 @@ xfunc_LispRemove(LispValue foo, List bar)
 			sanity = true;		/* found a matching item to remove! */
 
 	if (!sanity)
-		elog(WARN, "xfunc_LispRemove: didn't find a match!");
+		elog(ABORT, "xfunc_LispRemove: didn't find a match!");
 
 	return (result);
 }
diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c
index 521dcd5f416..b9c1a9a9bb6 100644
--- a/src/backend/optimizer/plan/createplan.c
+++ b/src/backend/optimizer/plan/createplan.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.20 1997/12/18 12:54:04 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.21 1998/01/05 03:31:59 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -185,7 +185,7 @@ create_scan_node(Path *best_path, List *tlist)
 			break;
 
 		default:
-			elog(WARN, "create_scan_node: unknown node type",
+			elog(ABORT, "create_scan_node: unknown node type",
 				 best_path->pathtype);
 			break;
 	}
@@ -252,7 +252,7 @@ create_join_node(JoinPath *best_path, List *tlist)
 			break;
 		default:
 			/* do nothing */
-			elog(WARN, "create_join_node: unknown node type",
+			elog(ABORT, "create_join_node: unknown node type",
 				 best_path->path.pathtype);
 	}
 
@@ -294,7 +294,7 @@ create_seqscan_node(Path *best_path, List *tlist, List *scan_clauses)
 
 	temp = best_path->parent->relids;
 	if (temp == NULL)
-		elog(WARN, "scanrelid is empty");
+		elog(ABORT, "scanrelid is empty");
 	else
 		scan_relid = (Index) lfirsti(temp);		/* ??? who takes care of
 												 * lnext? - ay */
@@ -364,7 +364,7 @@ create_indexscan_node(IndexPath *best_path,
 										 ObjectIdGetDatum(lfirsti(ixid)),
 										 0, 0, 0);
 		if (!HeapTupleIsValid(indexTuple))
-			elog(WARN, "create_plan: index %d not found",
+			elog(ABORT, "create_plan: index %d not found",
 				 lfirsti(ixid));
 		index = (IndexTupleForm) GETSTRUCT(indexTuple);
 		if (index->indislossy)
@@ -915,7 +915,7 @@ make_temp(List *tlist,
 			break;
 
 		default:
-			elog(WARN, "make_temp: unknown temp type %d", temptype);
+			elog(ABORT, "make_temp: unknown temp type %d", temptype);
 
 	}
 	return (retval);
diff --git a/src/backend/optimizer/plan/planmain.c b/src/backend/optimizer/plan/planmain.c
index 8691215b466..730cd0dd7ea 100644
--- a/src/backend/optimizer/plan/planmain.c
+++ b/src/backend/optimizer/plan/planmain.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planmain.c,v 1.13 1997/12/22 05:42:04 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planmain.c,v 1.14 1998/01/05 03:32:03 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -407,7 +407,7 @@ make_groupPlan(List **tlist,
 
 	if (length(glc) != 0)
 	{
-		elog(WARN, "group attribute disappeared from target list");
+		elog(ABORT, "group attribute disappeared from target list");
 	}
 
 	/*
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index bb33f49092d..057fca9d3b0 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planner.c,v 1.18 1997/12/29 01:12:45 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planner.c,v 1.19 1998/01/05 03:32:04 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -279,7 +279,7 @@ pg_checkretval(Oid rettype, QueryTreeList *queryTreeList)
 		if (rettype == InvalidOid)
 			return;
 		else
-			elog(WARN, "return type mismatch in function decl: final query is a catalog utility");
+			elog(ABORT, "return type mismatch in function decl: final query is a catalog utility");
 	}
 
 	/* okay, it's an ordinary query */
@@ -294,7 +294,7 @@ pg_checkretval(Oid rettype, QueryTreeList *queryTreeList)
 	if (rettype == InvalidOid)
 	{
 		if (cmd == CMD_SELECT)
-			elog(WARN,
+			elog(ABORT,
 				 "function declared with no return type, but final query is a retrieve");
 		else
 			return;
@@ -302,14 +302,14 @@ pg_checkretval(Oid rettype, QueryTreeList *queryTreeList)
 
 	/* by here, the function is declared to return some type */
 	if ((typ = typeidType(rettype)) == NULL)
-		elog(WARN, "can't find return type %d for function\n", rettype);
+		elog(ABORT, "can't find return type %d for function\n", rettype);
 
 	/*
 	 * test 3:	if the function is declared to return a value, then the
 	 * final query had better be a retrieve.
 	 */
 	if (cmd != CMD_SELECT)
-		elog(WARN, "function declared to return type %s, but final query is not a retrieve", typeTypeName(typ));
+		elog(ABORT, "function declared to return type %s, but final query is not a retrieve", typeTypeName(typ));
 
 	/*
 	 * test 4:	for base type returns, the target list should have exactly
@@ -319,11 +319,11 @@ pg_checkretval(Oid rettype, QueryTreeList *queryTreeList)
 	if (typeTypeRelid(typ) == InvalidOid)
 	{
 		if (exec_tlist_length(tlist) > 1)
-			elog(WARN, "function declared to return %s returns multiple values in final retrieve", typeTypeName(typ));
+			elog(ABORT, "function declared to return %s returns multiple values in final retrieve", typeTypeName(typ));
 
 		resnode = (Resdom *) ((TargetEntry *) lfirst(tlist))->resdom;
 		if (resnode->restype != rettype)
-			elog(WARN, "return type mismatch in function: declared to return %s, returns %s", typeTypeName(typ), typeidTypeName(resnode->restype));
+			elog(ABORT, "return type mismatch in function: declared to return %s, returns %s", typeTypeName(typ), typeidTypeName(resnode->restype));
 
 		/* by here, base return types match */
 		return;
@@ -352,13 +352,13 @@ pg_checkretval(Oid rettype, QueryTreeList *queryTreeList)
 	reln = heap_open(typeTypeRelid(typ));
 
 	if (!RelationIsValid(reln))
-		elog(WARN, "cannot open relation relid %d", typeTypeRelid(typ));
+		elog(ABORT, "cannot open relation relid %d", typeTypeRelid(typ));
 
 	relid = reln->rd_id;
 	relnatts = reln->rd_rel->relnatts;
 
 	if (exec_tlist_length(tlist) != relnatts)
-		elog(WARN, "function declared to return type %s does not retrieve (%s.*)", typeTypeName(typ), typeTypeName(typ));
+		elog(ABORT, "function declared to return type %s does not retrieve (%s.*)", typeTypeName(typ), typeTypeName(typ));
 
 	/* expect attributes 1 .. n in order */
 	for (i = 1; i <= relnatts; i++)
@@ -388,14 +388,14 @@ pg_checkretval(Oid rettype, QueryTreeList *queryTreeList)
 			else if (IsA(thenode, Func))
 				tletype = (Oid) get_functype((Func *) thenode);
 			else
-				elog(WARN, "function declared to return type %s does not retrieve (%s.all)", typeTypeName(typ), typeTypeName(typ));
+				elog(ABORT, "function declared to return type %s does not retrieve (%s.all)", typeTypeName(typ), typeTypeName(typ));
 		}
 		else
-			elog(WARN, "function declared to return type %s does not retrieve (%s.all)", typeTypeName(typ), typeTypeName(typ));
+			elog(ABORT, "function declared to return type %s does not retrieve (%s.all)", typeTypeName(typ), typeTypeName(typ));
 #endif
 		/* reach right in there, why don't you? */
 		if (tletype != reln->rd_att->attrs[i - 1]->atttypid)
-			elog(WARN, "function declared to return type %s does not retrieve (%s.all)", typeTypeName(typ), typeTypeName(typ));
+			elog(ABORT, "function declared to return type %s does not retrieve (%s.all)", typeTypeName(typ), typeTypeName(typ));
 	}
 
 	heap_close(reln);
diff --git a/src/backend/optimizer/plan/setrefs.c b/src/backend/optimizer/plan/setrefs.c
index 7c8371a79c4..b9d840154e3 100644
--- a/src/backend/optimizer/plan/setrefs.c
+++ b/src/backend/optimizer/plan/setrefs.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/optimizer/plan/setrefs.c,v 1.10 1997/12/22 05:42:10 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/optimizer/plan/setrefs.c,v 1.11 1998/01/05 03:32:05 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -201,7 +201,7 @@ set_temp_tlist_references(Temp *temp)
 	}
 	else
 	{
-		elog(WARN, "calling set_temp_tlist_references with empty lefttree");
+		elog(ABORT, "calling set_temp_tlist_references with empty lefttree");
 	}
 }
 
@@ -651,7 +651,7 @@ replace_result_clause(List *clause,
 		/*
 		 * Ooops! we can not handle that!
 		 */
-		elog(WARN, "replace_result_clause: Can not handle this tlist!\n");
+		elog(ABORT, "replace_result_clause: Can not handle this tlist!\n");
 	}
 }
 
@@ -809,7 +809,7 @@ replace_agg_clause(Node *clause, List *subplanTargetList)
 		/*
 		 * Ooops! we can not handle that!
 		 */
-		elog(WARN, "replace_agg_clause: Can not handle this tlist!\n");
+		elog(ABORT, "replace_agg_clause: Can not handle this tlist!\n");
 	}
 
 }
@@ -902,7 +902,7 @@ del_agg_clause(Node *clause)
 		/*
 		 * Ooops! we can not handle that!
 		 */
-		elog(WARN, "del_agg_clause: Can not handle this tlist!\n");
+		elog(ABORT, "del_agg_clause: Can not handle this tlist!\n");
 	}
 	return NULL;
 }
diff --git a/src/backend/optimizer/util/plancat.c b/src/backend/optimizer/util/plancat.c
index 15271d33b9b..0c7e52f82c8 100644
--- a/src/backend/optimizer/util/plancat.c
+++ b/src/backend/optimizer/util/plancat.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/optimizer/util/plancat.c,v 1.11 1997/11/20 23:22:01 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/optimizer/util/plancat.c,v 1.12 1998/01/05 03:32:09 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -77,7 +77,7 @@ relation_info(Query *root, Index relid,
 	}
 	else
 	{
-		elog(WARN, "RelationCatalogInformation: Relation %d not found",
+		elog(ABORT, "RelationCatalogInformation: Relation %d not found",
 			 relationObjectId);
 	}
 
@@ -152,7 +152,7 @@ index_info(Query *root, bool first, int relid, IdxInfoRetval *info)
 							  1, &indexKey);
 	}
 	if (!HeapScanIsValid(scan))
-		elog(WARN, "index_info: scan not started");
+		elog(ABORT, "index_info: scan not started");
 	indexTuple = heap_getnext(scan, 0, (Buffer *) NULL);
 	if (!HeapTupleIsValid(indexTuple))
 	{
@@ -218,7 +218,7 @@ index_info(Query *root, bool first, int relid, IdxInfoRetval *info)
 										UInt16GetDatum(amstrategy),
 										0);
 		if (!HeapTupleIsValid(amopTuple))
-			elog(WARN, "index_info: no amop %d %d %d",
+			elog(ABORT, "index_info: no amop %d %d %d",
 				 relam, index->indclass[i], amstrategy);
 		info->orderOprs[i] =
 			((Form_pg_amop) GETSTRUCT(amopTuple))->amopopr;
@@ -349,10 +349,10 @@ restriction_selectivity(Oid functionObjectId,
 							(char *) constFlag,
 							NULL);
 	if (!PointerIsValid(result))
-		elog(WARN, "RestrictionClauseSelectivity: bad pointer");
+		elog(ABORT, "RestrictionClauseSelectivity: bad pointer");
 
 	if (*result < 0.0 || *result > 1.0)
-		elog(WARN, "RestrictionClauseSelectivity: bad value %lf",
+		elog(ABORT, "RestrictionClauseSelectivity: bad value %lf",
 			 *result);
 
 	return ((Cost) *result);
@@ -388,10 +388,10 @@ join_selectivity(Oid functionObjectId,
 							(char *) (int) attributeNumber2,
 							NULL);
 	if (!PointerIsValid(result))
-		elog(WARN, "JoinClauseSelectivity: bad pointer");
+		elog(ABORT, "JoinClauseSelectivity: bad pointer");
 
 	if (*result < 0.0 || *result > 1.0)
-		elog(WARN, "JoinClauseSelectivity: bad value %lf",
+		elog(ABORT, "JoinClauseSelectivity: bad value %lf",
 			 *result);
 
 	return ((Cost) *result);
@@ -532,7 +532,7 @@ IndexSelectivity(Oid indexrelid,
 								 ObjectIdGetDatum(indexrelid),
 								 0, 0, 0);
 	if (!HeapTupleIsValid(indRel))
-		elog(WARN, "IndexSelectivity: index %d not found",
+		elog(ABORT, "IndexSelectivity: index %d not found",
 			 indexrelid);
 	relam = ((Form_pg_class) GETSTRUCT(indRel))->relam;
 
@@ -540,7 +540,7 @@ IndexSelectivity(Oid indexrelid,
 									 ObjectIdGetDatum(indexrelid),
 									 0, 0, 0);
 	if (!HeapTupleIsValid(indexTuple))
-		elog(WARN, "IndexSelectivity: index %d not found",
+		elog(ABORT, "IndexSelectivity: index %d not found",
 			 indexrelid);
 	index = (IndexTupleForm) GETSTRUCT(indexTuple);
 
@@ -595,7 +595,7 @@ IndexSelectivity(Oid indexrelid,
 										ObjectIdGetDatum(relam),
 										0);
 		if (!HeapTupleIsValid(amopTuple))
-			elog(WARN, "IndexSelectivity: no amop %d %d",
+			elog(ABORT, "IndexSelectivity: no amop %d %d",
 				 indclass, operatorObjectIds[n]);
 		amop = (Form_pg_amop) GETSTRUCT(amopTuple);
 
diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c
index 38be6719629..659cd255db3 100644
--- a/src/backend/parser/analyze.c
+++ b/src/backend/parser/analyze.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.60 1997/12/29 05:13:35 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.61 1998/01/05 03:32:12 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -478,7 +478,7 @@ printf("transformCreateStmt- found constraint(s) on column %s\n",column->colname
 printf("transformCreateStmt- found NOT NULL constraint on column %s\n",column->colname);
 #endif
 								if (column->is_not_null)
-									elog(WARN,"CREATE TABLE/NOT NULL already specified"
+									elog(ERROR,"CREATE TABLE/NOT NULL already specified"
 										" for %s.%s", stmt->relname, column->colname);
 								column->is_not_null = TRUE;
 								break;
@@ -488,7 +488,7 @@ printf("transformCreateStmt- found NOT NULL constraint on column %s\n",column->c
 printf("transformCreateStmt- found DEFAULT clause on column %s\n",column->colname);
 #endif
 								if (column->defval != NULL)
-									elog(WARN,"CREATE TABLE/DEFAULT multiple values specified"
+									elog(ERROR,"CREATE TABLE/DEFAULT multiple values specified"
 										" for %s.%s", stmt->relname, column->colname);
 								column->defval = constraint->def;
 								break;
@@ -525,7 +525,7 @@ printf("transformCreateStmt- found CHECK clause on column %s\n",column->colname)
 								break;
 
 							default:
-								elog(WARN,"parser: internal error; unrecognized constraint",NULL);
+								elog(ERROR,"parser: internal error; unrecognized constraint",NULL);
 								break;
 						}
 						clist = lnext(clist);
@@ -569,16 +569,16 @@ printf("transformCreateStmt- found CHECK clause\n");
 
 					case CONSTR_NOTNULL:
 					case CONSTR_DEFAULT:
-						elog(WARN,"parser: internal error; illegal context for constraint",NULL);
+						elog(ERROR,"parser: internal error; illegal context for constraint",NULL);
 						break;
 					default:
-						elog(WARN,"parser: internal error; unrecognized constraint",NULL);
+						elog(ERROR,"parser: internal error; unrecognized constraint",NULL);
 						break;
 				}
 				break;
 
 			default:
-				elog(WARN,"parser: internal error; unrecognized node",NULL);
+				elog(ERROR,"parser: internal error; unrecognized node",NULL);
 		}
 
 		elements = lnext(elements);
@@ -601,7 +601,7 @@ printf("transformCreateStmt- found CHECK clause\n");
 	{
 		constraint = lfirst(dlist);
 		if (nodeTag(constraint) != T_Constraint)
-			elog(WARN,"parser: internal error; unrecognized deferred node",NULL);
+			elog(ERROR,"parser: internal error; unrecognized deferred node",NULL);
 
 #if PARSEDEBUG
 printf("transformCreateStmt- found deferred constraint %s\n",
@@ -610,12 +610,12 @@ printf("transformCreateStmt- found deferred constraint %s\n",
 
 		if (constraint->contype == CONSTR_PRIMARY)
 			if (have_pkey)
-				elog(WARN,"CREATE TABLE/PRIMARY KEY multiple primary keys"
+				elog(ERROR,"CREATE TABLE/PRIMARY KEY multiple primary keys"
 					" for table %s are not legal", stmt->relname);
 			else 
 				have_pkey = TRUE;
 		else if (constraint->contype != CONSTR_UNIQUE)
-			elog(WARN,"parser: internal error; unrecognized deferred constraint",NULL);
+			elog(ERROR,"parser: internal error; unrecognized deferred constraint",NULL);
 
 #if PARSEDEBUG
 printf("transformCreateStmt- found deferred %s clause\n",
@@ -630,7 +630,7 @@ printf("transformCreateStmt- found deferred %s clause\n",
 		else if (constraint->contype == CONSTR_PRIMARY)
 		{
 			if (have_pkey)
-				elog(WARN,"CREATE TABLE/PRIMARY KEY multiple keys for table %s are not legal", stmt->relname);
+				elog(ERROR,"CREATE TABLE/PRIMARY KEY multiple keys for table %s are not legal", stmt->relname);
 
 			have_pkey = TRUE;
 			index->idxname = makeTableName(stmt->relname, "pkey", NULL);
@@ -664,7 +664,7 @@ printf("transformCreateStmt- check column %s for key match\n", column->colname);
 				columns = lnext(columns);
 			}
 			if (column == NULL)
-				elog(WARN,"parser: column '%s' in key does not exist",key->name);
+				elog(ERROR,"parser: column '%s' in key does not exist",key->name);
 
 			if (constraint->contype == CONSTR_PRIMARY)
 			{
@@ -687,7 +687,7 @@ printf("transformCreateStmt- mark column %s as NOT NULL\n", column->colname);
 		}
 
 		if (index->idxname == NULL)
-			elog(WARN,"parser: unable to construct implicit index for table %s"
+			elog(ERROR,"parser: unable to construct implicit index for table %s"
 				"; name too long", stmt->relname);
 		else
 			elog(NOTICE,"CREATE TABLE/%s will create implicit index %s for table %s",
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 963d5adf0dc..daa2aab1bba 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.83 1998/01/04 04:31:08 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.84 1998/01/05 03:32:18 momjian Exp $
  *
  * HISTORY
  *	  AUTHOR			DATE			MAJOR EVENT
@@ -590,17 +590,17 @@ alter_clause:  ADD opt_column columnDef
 					Node *lp = lfirst($3);
 
 					if (length($3) != 1)
-						elog(WARN,"ALTER TABLE/ADD() allows one column only",NULL);
+						elog(ABORT,"ALTER TABLE/ADD() allows one column only",NULL);
 					$$ = lp;
 				}
 			| DROP opt_column ColId
-				{	elog(WARN,"ALTER TABLE/DROP COLUMN not yet implemented",NULL); }
+				{	elog(ABORT,"ALTER TABLE/DROP COLUMN not yet implemented",NULL); }
 			| ALTER opt_column ColId SET DEFAULT default_expr
-				{	elog(WARN,"ALTER TABLE/ALTER COLUMN/SET DEFAULT not yet implemented",NULL); }
+				{	elog(ABORT,"ALTER TABLE/ALTER COLUMN/SET DEFAULT not yet implemented",NULL); }
 			| ALTER opt_column ColId DROP DEFAULT
-				{	elog(WARN,"ALTER TABLE/ALTER COLUMN/DROP DEFAULT not yet implemented",NULL); }
+				{	elog(ABORT,"ALTER TABLE/ALTER COLUMN/DROP DEFAULT not yet implemented",NULL); }
 			| ADD ConstraintElem
-				{	elog(WARN,"ALTER TABLE/ADD CONSTRAINT not yet implemented",NULL); }
+				{	elog(ABORT,"ALTER TABLE/ADD CONSTRAINT not yet implemented",NULL); }
 		;
 
 
@@ -811,11 +811,11 @@ default_expr:  AexprConst
 			| default_expr '*' default_expr
 				{	$$ = nconc( $1, lcons( makeString( "*"), $3)); }
 			| default_expr '=' default_expr
-				{	elog(WARN,"boolean expressions not supported in DEFAULT",NULL); }
+				{	elog(ABORT,"boolean expressions not supported in DEFAULT",NULL); }
 			| default_expr '<' default_expr
-				{	elog(WARN,"boolean expressions not supported in DEFAULT",NULL); }
+				{	elog(ABORT,"boolean expressions not supported in DEFAULT",NULL); }
 			| default_expr '>' default_expr
-				{	elog(WARN,"boolean expressions not supported in DEFAULT",NULL); }
+				{	elog(ABORT,"boolean expressions not supported in DEFAULT",NULL); }
 			| ':' default_expr
 				{	$$ = lcons( makeString( ":"), $2); }
 			| ';' default_expr
@@ -848,7 +848,7 @@ default_expr:  AexprConst
 			| default_expr Op default_expr
 				{
 					if (!strcmp("<=", $2) || !strcmp(">=", $2))
-						elog(WARN,"boolean expressions not supported in DEFAULT",NULL);
+						elog(ABORT,"boolean expressions not supported in DEFAULT",NULL);
 					$$ = nconc( $1, lcons( makeString( $2), $3));
 				}
 			| Op default_expr
@@ -1200,13 +1200,13 @@ TriggerOneEvent:		INSERT	{ $$ = 'i'; }
 TriggerForSpec:  FOR name name
 				{
 						if ( strcmp ($2, "each") != 0 )
-								elog(WARN,"parser: syntax error near %s",$2);
+								elog(ABORT,"parser: syntax error near %s",$2);
 						if ( strcmp ($3, "row") == 0 )
 								$$ = TRUE;
 						else if ( strcmp ($3, "statement") == 0 )
 								$$ = FALSE;
 						else
-								elog(WARN,"parser: syntax error near %s",$3);
+								elog(ABORT,"parser: syntax error near %s",$3);
 				}
 		;
 
@@ -1379,7 +1379,7 @@ opt_direction:	FORWARD							{ $$ = FORWARD; }
 
 fetch_how_many:  Iconst
 			   { $$ = $1;
-				 if ($1 <= 0) elog(WARN,"Please specify nonnegative count for fetch",NULL); }
+				 if ($1 <= 0) elog(ABORT,"Please specify nonnegative count for fetch",NULL); }
 		| ALL							{ $$ = 0; /* 0 means fetch all tuples*/ }
 		| /*EMPTY*/						{ $$ = 1; /*default*/ }
 		;
@@ -1597,7 +1597,7 @@ RecipeStmt:  EXECUTE RECIPE recipe_name
 				{
 					RecipeStmt *n;
 					if (!IsTransactionBlock())
-						elog(WARN,"EXECUTE RECIPE may only be used in begin/end transaction blocks",NULL);
+						elog(ABORT,"EXECUTE RECIPE may only be used in begin/end transaction blocks",NULL);
 
 					n = makeNode(RecipeStmt);
 					n->recipeName = $3;
@@ -1725,7 +1725,7 @@ MathOp:	'+'				{ $$ = "+"; }
 
 oper_argtypes:	name
 				{
-				   elog(WARN,"parser: argument type missing (use NONE for unary operators)",NULL);
+				   elog(ABORT,"parser: argument type missing (use NONE for unary operators)",NULL);
 				}
 		| name ',' name
 				{ $$ = makeList(makeString($1), makeString($3), -1); }
@@ -2063,7 +2063,7 @@ VacuumStmt:  VACUUM opt_verbose opt_analyze
 					n->vacrel = $4;
 					n->va_spec = $5;
 					if ( $5 != NIL && !$4 )
-						elog(WARN,"parser: syntax error at or near \"(\"",NULL);
+						elog(ABORT,"parser: syntax error at or near \"(\"",NULL);
 					$$ = (Node *)n;
 				}
 		;
@@ -2240,7 +2240,7 @@ CursorStmt:  DECLARE name opt_binary CURSOR FOR
 					 *							-- mao
 					 */
 					if (!IsTransactionBlock())
-						elog(WARN,"Named portals may only be used in begin/end transaction blocks",NULL);
+						elog(ABORT,"Named portals may only be used in begin/end transaction blocks",NULL);
 
 					n->portalname = $2;
 					n->binary = $3;
@@ -2444,7 +2444,7 @@ having_clause:  HAVING a_expr					{ $$ = $2; }
 from_clause:  FROM '(' relation_expr join_expr JOIN relation_expr join_spec ')'
 				{
 					$$ = NIL;
-					elog(WARN,"JOIN not yet implemented",NULL);
+					elog(ABORT,"JOIN not yet implemented",NULL);
 				}
 		| FROM from_list						{ $$ = $2; }
 		| /*EMPTY*/								{ $$ = NIL; }
@@ -2453,7 +2453,7 @@ from_clause:  FROM '(' relation_expr join_expr JOIN relation_expr join_spec ')'
 from_list:	from_list ',' from_val
 				{ $$ = lappend($1, $3); }
 		| from_val CROSS JOIN from_val
-				{ elog(WARN,"CROSS JOIN not yet implemented",NULL); }
+				{ elog(ABORT,"CROSS JOIN not yet implemented",NULL); }
 		| from_val
 				{ $$ = lcons($1, NIL); }
 		;
@@ -2480,19 +2480,19 @@ from_val:  relation_expr AS ColLabel
 
 join_expr:  NATURAL join_expr					{ $$ = NULL; }
 		| FULL join_outer
-				{ elog(WARN,"FULL OUTER JOIN not yet implemented",NULL); }
+				{ elog(ABORT,"FULL OUTER JOIN not yet implemented",NULL); }
 		| LEFT join_outer
-				{ elog(WARN,"LEFT OUTER JOIN not yet implemented",NULL); }
+				{ elog(ABORT,"LEFT OUTER JOIN not yet implemented",NULL); }
 		| RIGHT join_outer
-				{ elog(WARN,"RIGHT OUTER JOIN not yet implemented",NULL); }
+				{ elog(ABORT,"RIGHT OUTER JOIN not yet implemented",NULL); }
 		| OUTER_P
-				{ elog(WARN,"OUTER JOIN not yet implemented",NULL); }
+				{ elog(ABORT,"OUTER JOIN not yet implemented",NULL); }
 		| INNER_P
-				{ elog(WARN,"INNER JOIN not yet implemented",NULL); }
+				{ elog(ABORT,"INNER JOIN not yet implemented",NULL); }
 		| UNION
-				{ elog(WARN,"UNION JOIN not yet implemented",NULL); }
+				{ elog(ABORT,"UNION JOIN not yet implemented",NULL); }
 		| /*EMPTY*/
-				{ elog(WARN,"INNER JOIN not yet implemented",NULL); }
+				{ elog(ABORT,"INNER JOIN not yet implemented",NULL); }
 		;
 
 join_outer:  OUTER_P							{ $$ = NULL; }
@@ -2653,13 +2653,13 @@ Numeric:  FLOAT opt_float
 opt_float:  '(' Iconst ')'
 				{
 					if ($2 < 1)
-						elog(WARN,"precision for FLOAT must be at least 1",NULL);
+						elog(ABORT,"precision for FLOAT must be at least 1",NULL);
 					else if ($2 < 7)
 						$$ = xlateSqlType("float4");
 					else if ($2 < 16)
 						$$ = xlateSqlType("float8");
 					else
-						elog(WARN,"precision for FLOAT must be less than 16",NULL);
+						elog(ABORT,"precision for FLOAT must be less than 16",NULL);
 				}
 		| /*EMPTY*/
 				{
@@ -2670,14 +2670,14 @@ opt_float:  '(' Iconst ')'
 opt_numeric:  '(' Iconst ',' Iconst ')'
 				{
 					if ($2 != 9)
-						elog(WARN,"NUMERIC precision %d must be 9",$2);
+						elog(ABORT,"NUMERIC precision %d must be 9",$2);
 					if ($4 != 0)
-						elog(WARN,"NUMERIC scale %d must be zero",$4);
+						elog(ABORT,"NUMERIC scale %d must be zero",$4);
 				}
 		| '(' Iconst ')'
 				{
 					if ($2 != 9)
-						elog(WARN,"NUMERIC precision %d must be 9",$2);
+						elog(ABORT,"NUMERIC precision %d must be 9",$2);
 				}
 		| /*EMPTY*/
 				{
@@ -2688,15 +2688,15 @@ opt_numeric:  '(' Iconst ',' Iconst ')'
 opt_decimal:  '(' Iconst ',' Iconst ')'
 				{
 					if ($2 > 9)
-						elog(WARN,"DECIMAL precision %d exceeds implementation limit of 9",$2);
+						elog(ABORT,"DECIMAL precision %d exceeds implementation limit of 9",$2);
 					if ($4 != 0)
-						elog(WARN,"DECIMAL scale %d must be zero",$4);
+						elog(ABORT,"DECIMAL scale %d must be zero",$4);
 					$$ = NULL;
 				}
 		| '(' Iconst ')'
 				{
 					if ($2 > 9)
-						elog(WARN,"DECIMAL precision %d exceeds implementation limit of 9",$2);
+						elog(ABORT,"DECIMAL precision %d exceeds implementation limit of 9",$2);
 					$$ = NULL;
 				}
 		| /*EMPTY*/
@@ -2722,14 +2722,14 @@ Character:  character '(' Iconst ')'
 					else
 						yyerror("parse error");
 					if ($3 < 1)
-						elog(WARN,"length for '%s' type must be at least 1",$1);
+						elog(ABORT,"length for '%s' type must be at least 1",$1);
 					else if ($3 > 4096)
 						/* we can store a char() of length up to the size
 						 * of a page (8KB) - page headers and friends but
 						 * just to be safe here...	- ay 6/95
 						 * XXX note this hardcoded limit - thomas 1997-07-13
 						 */
-						elog(WARN,"length for type '%s' cannot exceed 4096",$1);
+						elog(ABORT,"length for type '%s' cannot exceed 4096",$1);
 
 					/* we actually implement this sort of like a varlen, so
 					 * the first 4 bytes is the length. (the difference
@@ -2762,7 +2762,7 @@ character:  CHARACTER opt_varying opt_charset opt_collate
 						}
 					};
 					if ($4 != NULL)
-					elog(WARN,"COLLATE %s not yet implemented",$4);
+					elog(ABORT,"COLLATE %s not yet implemented",$4);
 					$$ = type;
 				}
 		| CHAR opt_varying						{ $$ = xlateSqlType($2? "varchar": "char"); }
@@ -3098,7 +3098,7 @@ a_expr:  attr opt_indirection
 		 */
 		| EXISTS '(' SubSelect ')'
 				{
-					elog(WARN,"EXISTS not yet implemented",NULL);
+					elog(ABORT,"EXISTS not yet implemented",NULL);
 					$$ = $3;
 				}
 		| EXTRACT '(' extract_list ')'
@@ -3428,7 +3428,7 @@ trim_list:  a_expr FROM expr_list
 
 in_expr:  SubSelect
 				{
-					elog(WARN,"IN (SUBSELECT) not yet implemented",NULL);
+					elog(ABORT,"IN (SUBSELECT) not yet implemented",NULL);
 					$$ = $1;
 				}
 		| in_expr_nodes
@@ -3445,7 +3445,7 @@ in_expr_nodes:  AexprConst
 
 not_in_expr:  SubSelect
 				{
-					elog(WARN,"NOT IN (SUBSELECT) not yet implemented",NULL);
+					elog(ABORT,"NOT IN (SUBSELECT) not yet implemented",NULL);
 					$$ = $1;
 				}
 		| not_in_expr_nodes
@@ -3606,7 +3606,7 @@ relation_name:	SpecialRuleRelation
 					/* disallow refs to variable system tables */
 					if (strcmp(LogRelationName, $1) == 0
 					   || strcmp(VariableRelationName, $1) == 0)
-						elog(WARN,"%s cannot be accessed by users",$1);
+						elog(ABORT,"%s cannot be accessed by users",$1);
 					else
 						$$ = $1;
 					StrNCpy(saved_relname, $1, NAMEDATALEN);
@@ -3765,14 +3765,14 @@ SpecialRuleRelation:  CURRENT
 					if (QueryIsRule)
 						$$ = "*CURRENT*";
 					else
-						elog(WARN,"CURRENT used in non-rule query",NULL);
+						elog(ABORT,"CURRENT used in non-rule query",NULL);
 				}
 		| NEW
 				{
 					if (QueryIsRule)
 						$$ = "*NEW*";
 					else
-						elog(WARN,"NEW used in non-rule query",NULL);
+						elog(ABORT,"NEW used in non-rule query",NULL);
 				}
 		;
 
@@ -3800,7 +3800,7 @@ makeRowExpr(char *opr, List *largs, List *rargs)
 	Node *larg, *rarg;
 
 	if (length(largs) != length(rargs))
-		elog(WARN,"Unequal number of entries in row expression",NULL);
+		elog(ABORT,"Unequal number of entries in row expression",NULL);
 
 	if (lnext(largs) != NIL)
 		expr = makeRowExpr(opr,lnext(largs),lnext(rargs));
@@ -3828,7 +3828,7 @@ makeRowExpr(char *opr, List *largs, List *rargs)
 	}
 	else
 	{
-		elog(WARN,"Operator '%s' not implemented for row expressions",opr);
+		elog(ABORT,"Operator '%s' not implemented for row expressions",opr);
 	}
 
 #if FALSE
@@ -3858,7 +3858,7 @@ mapTargetColumns(List *src, List *dst)
 	ResTarget *d;
 
 	if (length(src) != length(dst))
-		elog(WARN,"CREATE TABLE/AS SELECT has mismatched column count",NULL);
+		elog(ABORT,"CREATE TABLE/AS SELECT has mismatched column count",NULL);
 
 	while ((src != NIL) && (dst != NIL))
 	{
@@ -4069,7 +4069,7 @@ makeConstantList( A_Const *n)
 {
 	char *defval = NULL;
 	if (nodeTag(n) != T_A_Const) {
-		elog(WARN,"Cannot handle non-constant parameter",NULL);
+		elog(ABORT,"Cannot handle non-constant parameter",NULL);
 
 	} else if (n->val.type == T_Float) {
 		defval = (char*) palloc(20+1);
@@ -4086,7 +4086,7 @@ makeConstantList( A_Const *n)
 		strcat( defval, "'");
 
 	} else {
-		elog(WARN,"Internal error in makeConstantList(): cannot encode node",NULL);
+		elog(ABORT,"Internal error in makeConstantList(): cannot encode node",NULL);
 	};
 
 #ifdef PARSEDEBUG
diff --git a/src/backend/parser/keywords.c b/src/backend/parser/keywords.c
index 085be80824c..45c450f7d02 100644
--- a/src/backend/parser/keywords.c
+++ b/src/backend/parser/keywords.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.28 1997/12/16 05:04:00 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.29 1998/01/05 03:32:22 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -248,7 +248,7 @@ AtomValueGetString(int atomval)
 		if (ScanKeywords[i].value == atomval)
 			return (ScanKeywords[i].name);
 
-	elog(WARN, "AtomGetString called with bogus atom # : %d", atomval);
+	elog(ERROR, "AtomGetString called with bogus atom # : %d", atomval);
 	return (NULL);
 }
 
diff --git a/src/backend/parser/parse_agg.c b/src/backend/parser/parse_agg.c
index a244d0398ce..dfaaa991843 100644
--- a/src/backend/parser/parse_agg.c
+++ b/src/backend/parser/parse_agg.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_agg.c,v 1.5 1998/01/04 04:31:14 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_agg.c,v 1.6 1998/01/05 03:32:25 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -208,7 +208,7 @@ tleIsAggOrGroupCol(TargetEntry *tle, List *groupClause)
 		if (tle->resdom->resno == grpcl->entry->resdom->resno)
 		{
 			if (contain_agg_clause((Node *) expr))
-				elog(WARN, "parser: aggregates not allowed in GROUP BY clause");
+				elog(ERROR, "parser: aggregates not allowed in GROUP BY clause");
 			return TRUE;
 		}
 	}
@@ -248,7 +248,7 @@ parseCheckAggregates(ParseState *pstate, Query *qry)
 	 * non-group column in target list may fail.)
 	 */
 	if (contain_agg_clause(qry->qual))
-		elog(WARN, "parser: aggregates not allowed in WHERE clause");
+		elog(ERROR, "parser: aggregates not allowed in WHERE clause");
 
 	/*
 	 * the target list can only contain aggregates, group columns and
@@ -259,7 +259,7 @@ parseCheckAggregates(ParseState *pstate, Query *qry)
 		TargetEntry *tle = lfirst(tl);
 
 		if (!tleIsAggOrGroupCol(tle, qry->groupClause))
-			elog(WARN,
+			elog(ERROR,
 				 "parser: illegal use of aggregates or non-group column in target list");
 	}
 
@@ -271,7 +271,7 @@ parseCheckAggregates(ParseState *pstate, Query *qry)
  * Need to change here when we get HAVING works. Currently
  * qry->havingQual is NULL.		- vadim 04/05/97
 	if (!exprIsAggOrGroupCol(qry->havingQual, qry->groupClause))
-		elog(WARN,
+		elog(ERROR,
 			 "parser: illegal use of aggregates or non-group column in HAVING clause");
  */
 	return;
@@ -295,7 +295,7 @@ ParseAgg(ParseState *pstate, char *aggname, Oid basetype,
 									  0, 0);
 	if (!HeapTupleIsValid(theAggTuple))
 	{
-		elog(WARN, "aggregate %s does not exist", aggname);
+		elog(ERROR, "aggregate %s does not exist", aggname);
 	}
 
 	/*
@@ -346,7 +346,7 @@ ParseAgg(ParseState *pstate, char *aggname, Oid basetype,
 				break;
 			}
 			if (first_valid_rte == NULL)
-				elog(WARN, "Can't find column to do aggregate(*) on.");
+				elog(ERROR, "Can't find column to do aggregate(*) on.");
 				
 			attr->relname = first_valid_rte->refname;
 			attr->attrs = lcons(makeString(
@@ -379,7 +379,7 @@ ParseAgg(ParseState *pstate, char *aggname, Oid basetype,
 			tp1 = typeidType(basetype);
 			tp2 = typeidType(vartype);
 			elog(NOTICE, "Aggregate type mismatch:");
-			elog(WARN, "%s works on %s, not %s", aggname,
+			elog(ERROR, "%s works on %s, not %s", aggname,
 				 typeTypeName(tp1), typeTypeName(tp2));
 		}
 	}
@@ -411,11 +411,11 @@ agg_error(char *caller, char *aggname, Oid basetypeID)
 
 	if (basetypeID == InvalidOid)
 	{
-		elog(WARN, "%s: aggregate '%s' for all types does not exist", caller, aggname);
+		elog(ERROR, "%s: aggregate '%s' for all types does not exist", caller, aggname);
 	}
 	else
 	{
-		elog(WARN, "%s: aggregate '%s' for '%s' does not exist", caller, aggname,
+		elog(ERROR, "%s: aggregate '%s' for '%s' does not exist", caller, aggname,
 			 typeidTypeName(basetypeID));
 	}
 }
diff --git a/src/backend/parser/parse_clause.c b/src/backend/parser/parse_clause.c
index 204f45bb59f..edd98195a63 100644
--- a/src/backend/parser/parse_clause.c
+++ b/src/backend/parser/parse_clause.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_clause.c,v 1.6 1997/12/29 04:31:31 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_clause.c,v 1.7 1998/01/05 03:32:26 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -75,7 +75,7 @@ transformWhereClause(ParseState *pstate, Node *a_expr)
 	pstate->p_in_where_clause = false;
 	if (exprType(qual) != BOOLOID)
 	{
-		elog(WARN,
+		elog(ERROR,
 			 "where clause must return type bool, not %s",
 			 typeidTypeName(exprType(qual)));
 	}
@@ -170,7 +170,7 @@ find_targetlist_entry(ParseState *pstate, SortGroupBy *sortgroupby, List *tlist)
 					if (real_rtable_pos == test_rtable_pos)
 					{
 						if (target_result != NULL)
-							elog(WARN, "Order/Group By '%s' is ambiguous", sortgroupby->name);
+							elog(ERROR, "Order/Group By '%s' is ambiguous", sortgroupby->name);
 						else
 							target_result = target;
 					}
@@ -178,7 +178,7 @@ find_targetlist_entry(ParseState *pstate, SortGroupBy *sortgroupby, List *tlist)
 				else
 				{
 					if (target_result != NULL)
-						elog(WARN, "Order/Group By '%s' is ambiguous", sortgroupby->name);
+						elog(ERROR, "Order/Group By '%s' is ambiguous", sortgroupby->name);
 					else
 						target_result = target;
 				}
@@ -208,7 +208,7 @@ transformGroupClause(ParseState *pstate, List *grouplist, List *targetlist)
 		restarget = find_targetlist_entry(pstate, lfirst(grouplist), targetlist);
 
 		if (restarget == NULL)
-			elog(WARN, "The field being grouped by must appear in the target list");
+			elog(ERROR, "The field being grouped by must appear in the target list");
 
 		grpcl->entry = restarget;
 		resdom = restarget->resdom;
@@ -267,7 +267,7 @@ transformSortClause(ParseState *pstate,
 		
 		restarget = find_targetlist_entry(pstate, sortby, targetlist);
 		if (restarget == NULL)
-			elog(WARN, "The field being ordered by must appear in the target list");
+			elog(ERROR, "The field being ordered by must appear in the target list");
 
 		sortcl->resdom = resdom = restarget->resdom;
 		sortcl->opoid = oprid(oper(sortby->useOp,
@@ -349,7 +349,7 @@ transformSortClause(ParseState *pstate,
 			}
 			if (i == NIL)
 			{
-				elog(WARN, "The field specified in the UNIQUE ON clause is not in the targetlist");
+				elog(ERROR, "The field specified in the UNIQUE ON clause is not in the targetlist");
 			}
 			s = sortlist;
 			foreach(s, sortlist)
diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c
index 3f90c04fc02..c17c3e9d48e 100644
--- a/src/backend/parser/parse_expr.c
+++ b/src/backend/parser/parse_expr.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.5 1998/01/04 04:53:50 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.6 1998/01/05 03:32:27 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -69,12 +69,12 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
 
 						uexpr = transformExpr(pstate, ai->uidx, precedence);	/* must exists */
 						if (exprType(uexpr) != INT4OID)
-							elog(WARN, "array index expressions must be int4's");
+							elog(ERROR, "array index expressions must be int4's");
 						if (ai->lidx != NULL)
 						{
 							lexpr = transformExpr(pstate, ai->lidx, precedence);
 							if (exprType(lexpr) != INT4OID)
-								elog(WARN, "array index expressions must be int4's");
+								elog(ERROR, "array index expressions must be int4's");
 						}
 #if 0
 						pfree(ai->uidx);
@@ -125,7 +125,7 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
 				toid = param_type(paramno);
 				if (!OidIsValid(toid))
 				{
-					elog(WARN, "Parameter '$%d' is out of range", paramno);
+					elog(ERROR, "Parameter '$%d' is out of range", paramno);
 				}
 				param = makeNode(Param);
 				param->paramkind = PARAM_NUM;
@@ -178,11 +178,11 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
 							Node	   *rexpr = transformExpr(pstate, a->rexpr, precedence);
 
 							if (exprType(lexpr) != BOOLOID)
-								elog(WARN, "left-hand side of AND is type '%s', not bool",
+								elog(ERROR, "left-hand side of AND is type '%s', not bool",
 									typeidTypeName(exprType(lexpr)));
 
 							if (exprType(rexpr) != BOOLOID)
-								elog(WARN, "right-hand side of AND is type '%s', not bool",
+								elog(ERROR, "right-hand side of AND is type '%s', not bool",
 									typeidTypeName(exprType(rexpr)));
 
 							expr->typeOid = BOOLOID;
@@ -198,10 +198,10 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
 							Node	   *rexpr = transformExpr(pstate, a->rexpr, precedence);
 
 							if (exprType(lexpr) != BOOLOID)
-								elog(WARN, "left-hand side of OR is type '%s', not bool",
+								elog(ERROR, "left-hand side of OR is type '%s', not bool",
 									 typeidTypeName(exprType(lexpr)));
 							if (exprType(rexpr) != BOOLOID)
-								elog(WARN, "right-hand side of OR is type '%s', not bool",
+								elog(ERROR, "right-hand side of OR is type '%s', not bool",
 									 typeidTypeName(exprType(rexpr)));
 							expr->typeOid = BOOLOID;
 							expr->opType = OR_EXPR;
@@ -215,7 +215,7 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
 							Node	   *rexpr = transformExpr(pstate, a->rexpr, precedence);
 
 							if (exprType(rexpr) != BOOLOID)
-								elog(WARN, "argument to NOT is type '%s', not bool",
+								elog(ERROR, "argument to NOT is type '%s', not bool",
 									 typeidTypeName(exprType(rexpr)));
 							expr->typeOid = BOOLOID;
 							expr->opType = NOT_EXPR;
@@ -251,7 +251,7 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
 			}
 		default:
 			/* should not reach here */
-			elog(WARN, "transformExpr: does not know how to transform node %d",
+			elog(ERROR, "transformExpr: does not know how to transform node %d",
 				 nodeTag(expr));
 			break;
 	}
@@ -305,7 +305,7 @@ transformIdent(ParseState *pstate, Node *expr, int precedence)
 	}
 
 	if (result == NULL)
-		elog(WARN, "attribute '%s' not found", ident->name);
+		elog(ERROR, "attribute '%s' not found", ident->name);
 
 	return result;
 }
@@ -350,7 +350,7 @@ exprType(Node *expr)
 			type = UNKNOWNOID;
 			break;
 		default:
-			elog(WARN, "exprType: don't know how to get type for %d node",
+			elog(ERROR, "exprType: don't know how to get type for %d node",
 				 nodeTag(expr));
 			break;
 	}
@@ -426,7 +426,7 @@ parser_typecast(Value *expr, TypeName *typename, int typlen)
 			sprintf(const_string, "%ld", expr->val.ival);
 			break;
 		default:
-			elog(WARN,
+			elog(ERROR,
 			"parser_typecast: cannot cast this expression to type '%s'",
 				 typename->name);
 	}
@@ -488,7 +488,7 @@ parser_typecast(Value *expr, TypeName *typename, int typlen)
 			break;
 
 		default:
-			elog(WARN, "unknown type %d", CInteger(lfirst(expr)));
+			elog(ERROR, "unknown type %d", CInteger(lfirst(expr)));
 	}
 #endif
 
@@ -612,7 +612,7 @@ parser_typecast2(Node *expr, Oid exprType, Type tp, int typlen)
 			const_string = (char *) textout((struct varlena *) const_string);
 			break;
 		default:
-			elog(WARN, "unknown type %u", exprType);
+			elog(ERROR, "unknown type %u", exprType);
 	}
 
 	if (!exprType)
diff --git a/src/backend/parser/parse_func.c b/src/backend/parser/parse_func.c
index 43c78e299de..be93156e3c1 100644
--- a/src/backend/parser/parse_func.c
+++ b/src/backend/parser/parse_func.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.4 1998/01/04 04:31:18 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.5 1998/01/05 03:32:28 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -114,7 +114,7 @@ ParseFunc(ParseState *pstate, char *funcname, List *fargs,
 	{
 		first_arg = lfirst(fargs);
 		if (first_arg == NULL)
-			elog(WARN, "function '%s' does not allow NULL input", funcname);
+			elog(ERROR, "function '%s' does not allow NULL input", funcname);
 	}
 
 	/*
@@ -184,7 +184,7 @@ ParseFunc(ParseState *pstate, char *funcname, List *fargs,
 					heap_close(rd);
 				}
 				else
-					elog(WARN,
+					elog(ERROR,
 						 "Type '%s' is not a relation type",
 						 typeidTypeName(toid));
 				argrelid = typeidTypeRelid(toid);
@@ -195,7 +195,7 @@ ParseFunc(ParseState *pstate, char *funcname, List *fargs,
 				 */
 				if ((get_attnum(argrelid, funcname) == InvalidAttrNumber)
 					&& strcmp(funcname, "*"))
-					elog(WARN, "Functions on sets are not yet supported");
+					elog(ERROR, "Functions on sets are not yet supported");
 			}
 
 			if (retval)
@@ -286,7 +286,7 @@ ParseFunc(ParseState *pstate, char *funcname, List *fargs,
 			if (exprType(pair) == UNKNOWNOID &&
 				!IsA(pair, Const))
 			{
-				elog(WARN, "ParseFunc: no function named '%s' that takes in an unknown type as argument #%d", funcname, nargs);
+				elog(ERROR, "ParseFunc: no function named '%s' that takes in an unknown type as argument #%d", funcname, nargs);
 			}
 			else
 				toid = exprType(pair);
@@ -329,7 +329,7 @@ ParseFunc(ParseState *pstate, char *funcname, List *fargs,
 	}
 
 	if (!exists)
-		elog(WARN, "no such attribute or function '%s'", funcname);
+		elog(ERROR, "no such attribute or function '%s'", funcname);
 
 	/* got it */
 	funcnode = makeNode(Func);
@@ -387,7 +387,7 @@ ParseFunc(ParseState *pstate, char *funcname, List *fargs,
 		Assert(length(fargs) == 1);
 		seq = (Const *) lfirst(fargs);
 		if (!IsA((Node *) seq, Const))
-			elog(WARN, "%s: only constant sequence names are acceptable", funcname);
+			elog(ERROR, "%s: only constant sequence names are acceptable", funcname);
 		seqname = lower ((text*)DatumGetPointer(seq->constvalue));
 		pfree (DatumGetPointer(seq->constvalue));
 		seq->constvalue = PointerGetDatum (seqname);
@@ -396,13 +396,13 @@ ParseFunc(ParseState *pstate, char *funcname, List *fargs,
 		if ((aclcheck_result = pg_aclcheck(seqrel, GetPgUserName(),
 			   ((funcid == SeqNextValueRegProcedure) ? ACL_WR : ACL_RD)))
 			!= ACLCHECK_OK)
-			elog(WARN, "%s.%s: %s",
+			elog(ERROR, "%s.%s: %s",
 			  seqrel, funcname, aclcheck_error_strings[aclcheck_result]);
 
 		pfree(seqrel);
 
 		if (funcid == SeqNextValueRegProcedure && pstate->p_in_where_clause)
-			elog(WARN, "nextval of a sequence in WHERE disallowed");
+			elog(ERROR, "nextval of a sequence in WHERE disallowed");
 	}
 
 	expr = makeNode(Expr);
@@ -441,7 +441,7 @@ funcid_get_rettype(Oid funcid)
 									 0, 0, 0);
 
 	if (!HeapTupleIsValid(func_tuple))
-		elog(WARN, "function  %d does not exist", funcid);
+		elog(ERROR, "function  %d does not exist", funcid);
 
 	funcrettype = (Oid)
 		((Form_pg_proc) GETSTRUCT(func_tuple))->prorettype;
@@ -721,7 +721,7 @@ func_get_detail(char *funcname,
 		{
 			tp = typeidType(oid_array[0]);
 			if (typeTypeFlag(tp) == 'c')
-				elog(WARN, "no such attribute or function \"%s\"",
+				elog(ERROR, "no such attribute or function \"%s\"",
 					 funcname);
 		}
 		func_error("func_get_detail", funcname, nargs, oid_array);
@@ -883,7 +883,7 @@ static int find_inheritors(Oid relid, Oid **supervec)
 
 			/* save the type id, rather than the relation id */
 			if ((rd = heap_open(qentry->sqe_relid)) == (Relation) NULL)
-				elog(WARN, "relid %d does not exist", qentry->sqe_relid);
+				elog(ERROR, "relid %d does not exist", qentry->sqe_relid);
 			qentry->sqe_relid = typeTypeId(typenameType(RelationGetRelationName(rd)->data));
 			heap_close(rd);
 
@@ -1029,7 +1029,7 @@ setup_tlist(char *attname, Oid relid)
 
 	attno = get_attnum(relid, attname);
 	if (attno < 0)
-		elog(WARN, "cannot reference attribute '%s' of tuple params/return values for functions", attname);
+		elog(ERROR, "cannot reference attribute '%s' of tuple params/return values for functions", attname);
 
 	typeid = get_atttype(relid, attno);
 	resnode = makeResdom(1,
@@ -1130,7 +1130,7 @@ ParseComplexProjection(ParseState *pstate,
 					}
 					else
 					{
-						elog(WARN,
+						elog(ERROR,
 							 "Function '%s' has bad returntype %d",
 							 funcname, argtype);
 					}
@@ -1200,7 +1200,7 @@ ParseComplexProjection(ParseState *pstate,
 
 				}
 
-				elog(WARN, "Function '%s' has bad returntype %d",
+				elog(ERROR, "Function '%s' has bad returntype %d",
 					 funcname, argtype);
 				break;
 			}
@@ -1267,7 +1267,7 @@ func_error(char *caller, char *funcname, int nargs, Oid *argtypes)
 		ptr += strlen(ptr);
 	}
 
-	elog(WARN, "%s: function %s(%s) does not exist", caller, funcname, p);
+	elog(ERROR, "%s: function %s(%s) does not exist", caller, funcname, p);
 }
 
 
diff --git a/src/backend/parser/parse_node.c b/src/backend/parser/parse_node.c
index d77df5a998d..503e42c8250 100644
--- a/src/backend/parser/parse_node.c
+++ b/src/backend/parser/parse_node.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_node.c,v 1.4 1997/12/29 05:13:46 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_node.c,v 1.5 1998/01/05 03:32:29 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -126,7 +126,7 @@ disallow_setop(char *op, Type optype, Node *operand)
 	{
 		elog(NOTICE, "An operand to the '%s' operator returns a set of %s,",
 			 op, typeTypeName(optype));
-		elog(WARN, "but '%s' takes single values, not sets.",
+		elog(ERROR, "but '%s' takes single values, not sets.",
 			 op);
 	}
 }
@@ -268,7 +268,7 @@ make_var(ParseState *pstate, char *refname, char *attrname, Oid *type_id)
 
 	rd = heap_open(rte->relid);
 
-	attid = attnameAttNum(rd, attrname); /* could elog(WARN) */
+	attid = attnameAttNum(rd, attrname); /* could elog(ERROR) */
 	vartypeid = attnumTypeId(rd, attid);
 
 	varnode = makeVar(vnum, attid, vartypeid, vnum, attid);
@@ -311,7 +311,7 @@ make_array_ref(Node *expr,
 									 0, 0, 0);
 
 	if (!HeapTupleIsValid(type_tuple))
-		elog(WARN, "make_array_ref: Cache lookup failed for type %d\n",
+		elog(ERROR, "make_array_ref: Cache lookup failed for type %d\n",
 			 typearray);
 
 	/* get the array type struct from the type tuple */
@@ -319,7 +319,7 @@ make_array_ref(Node *expr,
 
 	if (type_struct_array->typelem == InvalidOid)
 	{
-		elog(WARN, "make_array_ref: type %s is not an array",
+		elog(ERROR, "make_array_ref: type %s is not an array",
 			 (Name) &(type_struct_array->typname.data[0]));
 	}
 
@@ -328,7 +328,7 @@ make_array_ref(Node *expr,
 							ObjectIdGetDatum(type_struct_array->typelem),
 									 0, 0, 0);
 	if (!HeapTupleIsValid(type_tuple))
-		elog(WARN, "make_array_ref: Cache lookup failed for type %d\n",
+		elog(ERROR, "make_array_ref: Cache lookup failed for type %d\n",
 			 typearray);
 
 	type_struct_element = (TypeTupleForm) GETSTRUCT(type_tuple);
@@ -393,7 +393,7 @@ make_array_set(Expr *target_expr,
 									 0, 0, 0);
 
 	if (!HeapTupleIsValid(type_tuple))
-		elog(WARN, "make_array_ref: Cache lookup failed for type %d\n",
+		elog(ERROR, "make_array_ref: Cache lookup failed for type %d\n",
 			 typearray);
 
 	/* get the array type struct from the type tuple */
@@ -401,7 +401,7 @@ make_array_set(Expr *target_expr,
 
 	if (type_struct_array->typelem == InvalidOid)
 	{
-		elog(WARN, "make_array_ref: type %s is not an array",
+		elog(ERROR, "make_array_ref: type %s is not an array",
 			 (Name) &(type_struct_array->typname.data[0]));
 	}
 	/* get the type tuple for the element type */
@@ -410,7 +410,7 @@ make_array_set(Expr *target_expr,
 									 0, 0, 0);
 
 	if (!HeapTupleIsValid(type_tuple))
-		elog(WARN, "make_array_ref: Cache lookup failed for type %d\n",
+		elog(ERROR, "make_array_ref: Cache lookup failed for type %d\n",
 			 typearray);
 
 	type_struct_element = (TypeTupleForm) GETSTRUCT(type_tuple);
diff --git a/src/backend/parser/parse_oper.c b/src/backend/parser/parse_oper.c
index 4fbe3f1446f..ebd7d1cc718 100644
--- a/src/backend/parser/parse_oper.c
+++ b/src/backend/parser/parse_oper.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_oper.c,v 1.4 1998/01/01 05:44:54 thomas Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_oper.c,v 1.5 1998/01/05 03:32:29 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -367,7 +367,7 @@ oper(char *op, Oid arg1, Oid arg2, bool noWarnings)
 					elog(NOTICE, "there is more than one operator %s for types", op);
 					elog(NOTICE, "%s and %s. You will have to retype this query",
 						 typeTypeName(tp1), typeTypeName(tp2));
-					elog(WARN, "using an explicit cast");
+					elog(ERROR, "using an explicit cast");
 				}
 				return (NULL);
 			}
@@ -473,7 +473,7 @@ right_oper(char *op, Oid arg)
 		ncandidates = unary_oper_get_candidates(op, arg, &candidates, 'r');
 		if (ncandidates == 0)
 		{
-			elog(WARN,
+			elog(ERROR,
 				 "Can't find right op: %s for type %d", op, arg);
 			return (NULL);
 		}
@@ -490,7 +490,7 @@ right_oper(char *op, Oid arg)
 		{
 			elog(NOTICE, "there is more than one right operator %s", op);
 			elog(NOTICE, "you will have to retype this query");
-			elog(WARN, "using an explicit cast");
+			elog(ERROR, "using an explicit cast");
 			return (NULL);
 		}
 	}
@@ -518,7 +518,7 @@ left_oper(char *op, Oid arg)
 		ncandidates = unary_oper_get_candidates(op, arg, &candidates, 'l');
 		if (ncandidates == 0)
 		{
-			elog(WARN,
+			elog(ERROR,
 				 "Can't find left op: %s for type %d", op, arg);
 			return (NULL);
 		}
@@ -535,7 +535,7 @@ left_oper(char *op, Oid arg)
 		{
 			elog(NOTICE, "there is more than one left operator %s", op);
 			elog(NOTICE, "you will have to retype this query");
-			elog(WARN, "using an explicit cast");
+			elog(ERROR, "using an explicit cast");
 			return (NULL);
 		}
 	}
@@ -575,7 +575,7 @@ op_error(char *op, Oid arg1, Oid arg2)
 	}
 	else
 	{
-		elog(WARN, "left hand side of operator %s has an unknown type, probably a bad attribute name", op);
+		elog(ERROR, "left hand side of operator %s has an unknown type, probably a bad attribute name", op);
 	}
 
 	if (typeidIsValid(arg2))
@@ -584,7 +584,7 @@ op_error(char *op, Oid arg1, Oid arg2)
 	}
 	else
 	{
-		elog(WARN, "right hand side of operator %s has an unknown type, probably a bad attribute name", op);
+		elog(ERROR, "right hand side of operator %s has an unknown type, probably a bad attribute name", op);
 	}
 
 #if FALSE
@@ -592,10 +592,10 @@ op_error(char *op, Oid arg1, Oid arg2)
 		 op, typeTypeName(tp1), typeTypeName(tp2));
 	elog(NOTICE, "You will either have to retype this query using an");
 	elog(NOTICE, "explicit cast, or you will have to define the operator");
-	elog(WARN, "%s for %s and %s using CREATE OPERATOR",
+	elog(ERROR, "%s for %s and %s using CREATE OPERATOR",
 		 op, typeTypeName(tp1), typeTypeName(tp2));
 #endif
-	elog(WARN, "There is no operator '%s' for types '%s' and '%s'"
+	elog(ERROR, "There is no operator '%s' for types '%s' and '%s'"
 		"\n\tYou will either have to retype this query using an explicit cast,"
 		"\n\tor you will have to define the operator using CREATE OPERATOR",
 		op, typeTypeName(tp1), typeTypeName(tp2));
diff --git a/src/backend/parser/parse_relation.c b/src/backend/parser/parse_relation.c
index e2c53ed1523..dc5a11a8df5 100644
--- a/src/backend/parser/parse_relation.c
+++ b/src/backend/parser/parse_relation.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_relation.c,v 1.4 1998/01/04 04:31:19 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_relation.c,v 1.5 1998/01/05 03:32:30 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -130,7 +130,7 @@ colnameRangeTableEntry(ParseState *pstate, char *colname)
 			{
 				if (!pstate->p_is_insert ||
 					rte != pstate->p_target_rangetblentry)
-					elog(WARN, "Column %s is ambiguous", colname);
+					elog(ERROR, "Column %s is ambiguous", colname);
 			}
 			else
 				rte_result = rte;
@@ -155,7 +155,7 @@ addRangeTableEntry(ParseState *pstate,
 
 	if (pstate != NULL &&
 		refnameRangeTableEntry(pstate->p_rtable, refname) != NULL)
-		elog(WARN, "Table name %s specified more than once", refname);
+		elog(ERROR, "Table name %s specified more than once", refname);
 
 	rte->relname = pstrdup(relname);
 	rte->refname = pstrdup(refname);
@@ -163,7 +163,7 @@ addRangeTableEntry(ParseState *pstate,
 	relation = heap_openr(relname);
 	if (relation == NULL)
 	{
-		elog(WARN, "%s: %s",
+		elog(ERROR, "%s: %s",
 			 relname, aclcheck_error_strings[ACLCHECK_NO_CLASS]);
 	}
 
@@ -216,7 +216,7 @@ expandAll(ParseState *pstate, char *relname, char *refname, int *this_resno)
 
 	if (rdesc == NULL)
 	{
-		elog(WARN, "Unable to expand all -- heap_open failed on %s",
+		elog(ERROR, "Unable to expand all -- heap_open failed on %s",
 			 rte->refname);
 		return NIL;
 	}
@@ -274,7 +274,7 @@ attnameAttNum(Relation rd, char *a)
 			return (special_attr[i].code);
 
 	/* on failure */
-	elog(WARN, "Relation %s does not have attribute %s",
+	elog(ERROR, "Relation %s does not have attribute %s",
 		 RelationGetRelationName(rd), a);
 	return 0;  /* lint */
 }
@@ -319,7 +319,7 @@ attnumAttName(Relation rd, int attrno)
 				return (name);
 			}
 		}
-		elog(WARN, "Illegal attr no %d for relation %s",
+		elog(ERROR, "Illegal attr no %d for relation %s",
 			 attrno, RelationGetRelationName(rd));
 	}
 	else if (attrno >= 1 && attrno <= RelationGetNumberOfAttributes(rd))
@@ -329,7 +329,7 @@ attnumAttName(Relation rd, int attrno)
 	}
 	else
 	{
-		elog(WARN, "Illegal attr no %d for relation %s",
+		elog(ERROR, "Illegal attr no %d for relation %s",
 			 attrno, RelationGetRelationName(rd));
 	}
 
@@ -380,7 +380,7 @@ handleTargetColname(ParseState *pstate, char **resname,
 			pstate->p_insert_columns = lnext(pstate->p_insert_columns);
 		}
 		else
-			elog(WARN, "insert: more expressions than target columns");
+			elog(ERROR, "insert: more expressions than target columns");
 	}
 	if (pstate->p_is_insert || pstate->p_is_update)
 		checkTargetTypes(pstate, *resname, refname, colname);
@@ -410,13 +410,13 @@ checkTargetTypes(ParseState *pstate, char *target_colname,
 	{
 		rte = colnameRangeTableEntry(pstate, colname);
 		if (rte == (RangeTblEntry *) NULL)
-			elog(WARN, "attribute %s not found", colname);
+			elog(ERROR, "attribute %s not found", colname);
 		refname = rte->refname;
 	}
 
 /*
 	if (pstate->p_is_insert && rte == pstate->p_target_rangetblentry)
-		elog(WARN, "%s not available in this context", colname);
+		elog(ERROR, "%s not available in this context", colname);
 */
 	rd = heap_open(rte->relid);
 
@@ -427,13 +427,13 @@ checkTargetTypes(ParseState *pstate, char *target_colname,
 	attrtype_target = attnumTypeId(pstate->p_target_relation, resdomno_target);
 
 	if (attrtype_id != attrtype_target)
-		elog(WARN, "Type of %s does not match target column %s",
+		elog(ERROR, "Type of %s does not match target column %s",
 			 colname, target_colname);
 
 	if ((attrtype_id == BPCHAROID || attrtype_id == VARCHAROID) &&
 		rd->rd_att->attrs[resdomno_id - 1]->attlen !=
 	pstate->p_target_relation->rd_att->attrs[resdomno_target - 1]->attlen)
-		elog(WARN, "Length of %s does not match length of target column %s",
+		elog(ERROR, "Length of %s does not match length of target column %s",
 			 colname, target_colname);
 
 	heap_close(rd);
diff --git a/src/backend/parser/parse_target.c b/src/backend/parser/parse_target.c
index a7049b0b3f7..eccdbda6b4e 100644
--- a/src/backend/parser/parse_target.c
+++ b/src/backend/parser/parse_target.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.4 1998/01/04 04:31:22 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.5 1998/01/05 03:32:31 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -105,7 +105,7 @@ transformTargetList(ParseState *pstate, List *targetlist)
 
 						if (exprType(expr) != UNKNOWNOID ||
 							!IsA(expr, Const))
-							elog(WARN, "yyparse: string constant expected");
+							elog(ERROR, "yyparse: string constant expected");
 
 						val = (char *) textout((struct varlena *)
 										   ((Const *) expr)->constvalue);
@@ -116,14 +116,14 @@ transformTargetList(ParseState *pstate, List *targetlist)
 
 							aind->uidx = transformExpr(pstate, aind->uidx, EXPR_COLUMN_FIRST);
 							if (!IsA(aind->uidx, Const))
-								elog(WARN,
+								elog(ERROR,
 									 "Array Index for Append should be a constant");
 							uindx[i] = ((Const *) aind->uidx)->constvalue;
 							if (aind->lidx != NULL)
 							{
 								aind->lidx = transformExpr(pstate, aind->lidx, EXPR_COLUMN_FIRST);
 								if (!IsA(aind->lidx, Const))
-									elog(WARN,
+									elog(ERROR,
 										 "Array Index for Append should be a constant");
 								lindx[i] = ((Const *) aind->lidx)->constvalue;
 							}
@@ -132,7 +132,7 @@ transformTargetList(ParseState *pstate, List *targetlist)
 								lindx[i] = 1;
 							}
 							if (lindx[i] > uindx[i])
-								elog(WARN, "yyparse: lower index cannot be greater than upper index");
+								elog(ERROR, "yyparse: lower index cannot be greater than upper index");
 							sprintf(str, "[%d:%d]", lindx[i], uindx[i]);
 							str += strlen(str);
 							i++;
@@ -143,7 +143,7 @@ transformTargetList(ParseState *pstate, List *targetlist)
 						resdomno = attnameAttNum(rd, res->name);
 						ndims = attnumAttNelems(rd, resdomno);
 						if (i != ndims)
-							elog(WARN, "yyparse: array dimensions do not match");
+							elog(ERROR, "yyparse: array dimensions do not match");
 						constval = makeNode(Value);
 						constval->type = T_String;
 						constval->val.str = save_str;
@@ -290,7 +290,7 @@ transformTargetList(ParseState *pstate, List *targetlist)
 				}
 			default:
 				/* internal error */
-				elog(WARN,
+				elog(ERROR,
 					 "internal error: do not know how to transform targetlist");
 				break;
 		}
@@ -334,7 +334,7 @@ make_targetlist_expr(ParseState *pstate,
 	Resdom	   *resnode;
 
 	if (expr == NULL)
-		elog(WARN, "make_targetlist_expr: invalid use of NULL expression");
+		elog(ERROR, "make_targetlist_expr: invalid use of NULL expression");
 
 	type_id = exprType(expr);
 	if (type_id == InvalidOid)
@@ -417,7 +417,7 @@ make_targetlist_expr(ParseState *pstate,
 			else if ((attrtype == FLOAT4OID) && (type_id == FLOAT8OID))
 				lfirst(expr) = lispInteger(FLOAT4OID);
 			else
-				elog(WARN, "unequal type in tlist : %s \n", colname);
+				elog(ERROR, "unequal type in tlist : %s \n", colname);
 		}
 
 		Input_is_string = false;
@@ -449,7 +449,7 @@ make_targetlist_expr(ParseState *pstate,
 			else
 			{
 				/* currently, we can't handle casting of expressions */
-				elog(WARN, "parser: attribute '%s' is of type '%s' but expression is of type '%s'",
+				elog(ERROR, "parser: attribute '%s' is of type '%s' but expression is of type '%s'",
 					 colname,
 					 typeidTypeName(attrtype),
 					 typeidTypeName(type_id));
@@ -564,7 +564,7 @@ makeTargetNames(ParseState *pstate, List *cols)
 			attnameAttNum(pstate->p_target_relation, name);
 			foreach(nxt, lnext(tl))
 				if (!strcmp(name, ((Ident *) lfirst(nxt))->name))
-					elog (WARN, "Attribute '%s' should be specified only once", name);
+					elog(ERROR, "Attribute '%s' should be specified only once", name);
 		}
 	}
 	
@@ -596,7 +596,7 @@ expandAllTables(ParseState *pstate)
 
 	/* this should not happen */
 	if (rtable == NULL)
-		elog(WARN, "cannot expand: null p_rtable");
+		elog(ERROR, "cannot expand: null p_rtable");
 
 	/*
 	 * go through the range table and make a list of range table entries
diff --git a/src/backend/parser/parse_type.c b/src/backend/parser/parse_type.c
index c20b042de96..ef238f9fd07 100644
--- a/src/backend/parser/parse_type.c
+++ b/src/backend/parser/parse_type.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_type.c,v 1.2 1997/11/26 01:11:32 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_type.c,v 1.3 1998/01/05 03:32:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -44,7 +44,7 @@ typeidTypeName(Oid id)
 	if (!(tup = SearchSysCacheTuple(TYPOID, ObjectIdGetDatum(id),
 									0, 0, 0)))
 	{
-		elog(WARN, "type id lookup of %ud failed", id);
+		elog(ERROR, "type id lookup of %ud failed", id);
 		return (NULL);
 	}
 	typetuple = (TypeTupleForm) GETSTRUCT(tup);
@@ -60,7 +60,7 @@ typeidType(Oid id)
 	if (!(tup = SearchSysCacheTuple(TYPOID, ObjectIdGetDatum(id),
 									0, 0, 0)))
 	{
-		elog(WARN, "type id lookup of %ud failed", id);
+		elog(ERROR, "type id lookup of %ud failed", id);
 		return (NULL);
 	}
 	return ((Type) tup);
@@ -74,12 +74,12 @@ typenameType(char *s)
 
 	if (s == NULL)
 	{
-		elog(WARN, "type(): Null type");
+		elog(ERROR, "type(): Null type");
 	}
 
 	if (!(tup = SearchSysCacheTuple(TYPNAME, PointerGetDatum(s), 0, 0, 0)))
 	{
-		elog(WARN, "type name lookup of %s failed", s);
+		elog(ERROR, "type name lookup of %s failed", s);
 	}
 	return ((Type) tup);
 }
@@ -89,7 +89,7 @@ Oid
 typeTypeId(Type tp)
 {
 	if (tp == NULL)
-		elog(WARN, "typeTypeId() called with NULL type struct");
+		elog(ERROR, "typeTypeId() called with NULL type struct");
 	return (tp->t_oid);
 }
 
@@ -159,7 +159,7 @@ typeidRetoutfunc(Oid type_id)
 									ObjectIdGetDatum(type_id),
 									0, 0, 0);
 	if (!HeapTupleIsValid(typeTuple))
-		elog(WARN, "typeidRetoutfunc: Invalid type - oid = %u", type_id);
+		elog(ERROR, "typeidRetoutfunc: Invalid type - oid = %u", type_id);
 
 	type = (TypeTupleForm) GETSTRUCT(typeTuple);
 	outfunc = type->typoutput;
@@ -177,7 +177,7 @@ typeidTypeRelid(Oid type_id)
 									ObjectIdGetDatum(type_id),
 									0, 0, 0);
 	if (!HeapTupleIsValid(typeTuple))
-		elog(WARN, "typeidTypeRelid: Invalid type - oid = %u", type_id);
+		elog(ERROR, "typeidTypeRelid: Invalid type - oid = %u", type_id);
 
 	type = (TypeTupleForm) GETSTRUCT(typeTuple);
 	infunc = type->typrelid;
@@ -204,7 +204,7 @@ typeidTypElem(Oid type_id)
 										  ObjectIdGetDatum(type_id),
 										  0, 0, 0)))
 	{
-		elog(WARN, "type id lookup of %u failed", type_id);
+		elog(ERROR, "type id lookup of %u failed", type_id);
 	}
 	type = (TypeTupleForm) GETSTRUCT(typeTuple);
 
@@ -225,7 +225,7 @@ GetArrayElementType(Oid typearray)
 									 0, 0, 0);
 
 	if (!HeapTupleIsValid(type_tuple))
-		elog(WARN, "GetArrayElementType: Cache lookup failed for type %d",
+		elog(ERROR, "GetArrayElementType: Cache lookup failed for type %d",
 			 typearray);
 
 	/* get the array type struct from the type tuple */
@@ -233,7 +233,7 @@ GetArrayElementType(Oid typearray)
 
 	if (type_struct_array->typelem == InvalidOid)
 	{
-		elog(WARN, "GetArrayElementType: type %s is not an array",
+		elog(ERROR, "GetArrayElementType: type %s is not an array",
 			 (Name) &(type_struct_array->typname.data[0]));
 	}
 
@@ -252,7 +252,7 @@ typeidRetinfunc(Oid type_id)
 									ObjectIdGetDatum(type_id),
 									0, 0, 0);
 	if (!HeapTupleIsValid(typeTuple))
-		elog(WARN, "typeidRetinfunc: Invalid type - oid = %u", type_id);
+		elog(ERROR, "typeidRetinfunc: Invalid type - oid = %u", type_id);
 
 	type = (TypeTupleForm) GETSTRUCT(typeTuple);
 	infunc = type->typinput;
@@ -273,7 +273,7 @@ FindDelimiter(char *typename)
 										  PointerGetDatum(typename),
 										  0, 0, 0)))
 	{
-		elog(WARN, "type name lookup of %s failed", typename);
+		elog(ERROR, "type name lookup of %s failed", typename);
 	}
 	type = (TypeTupleForm) GETSTRUCT(typeTuple);
 
diff --git a/src/backend/parser/scan.c b/src/backend/parser/scan.c
index 344fcfe3633..5fda06ea805 100644
--- a/src/backend/parser/scan.c
+++ b/src/backend/parser/scan.c
@@ -1,7 +1,7 @@
 /* A lexical scanner generated by flex */
 
 /* Scanner skeleton version:
- * $Header: /cvsroot/pgsql/src/backend/parser/Attic/scan.c,v 1.5 1997/12/09 03:11:00 scrappy Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/Attic/scan.c,v 1.6 1998/01/05 03:32:34 momjian Exp $
  */
 
 #define FLEX_SCANNER
@@ -539,7 +539,7 @@ char *yytext;
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/Attic/scan.c,v 1.5 1997/12/09 03:11:00 scrappy Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/Attic/scan.c,v 1.6 1998/01/05 03:32:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -954,7 +954,7 @@ YY_RULE_SETUP
 					errno = 0;
 					yylval.ival = strtol((char *)literal,&endptr,2);
 					if (*endptr != '\0' || errno == ERANGE)
-						elog(WARN,"Bad binary integer input '%s'",literal);
+						elog(ABORT,"Bad binary integer input '%s'",literal);
 					return (ICONST);
 				}
 	YY_BREAK
@@ -965,7 +965,7 @@ YY_RULE_SETUP
 #line 206 "scan.l"
 {
 					if ((llen+yyleng) > (MAX_PARSE_BUFFER - 1))
-						elog(WARN,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
+						elog(ABORT,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
 					memcpy(literal+llen, yytext, yyleng+1);
 					llen += yyleng;
 				}
@@ -997,7 +997,7 @@ YY_RULE_SETUP
 					errno = 0;
 					yylval.ival = strtol((char *)literal,&endptr,16);
 					if (*endptr != '\0' || errno == ERANGE)
-						elog(WARN,"Bad hexadecimal integer input '%s'",literal);
+						elog(ABORT,"Bad hexadecimal integer input '%s'",literal);
 					return (ICONST);
 				}
 	YY_BREAK
@@ -1026,7 +1026,7 @@ YY_RULE_SETUP
 #line 243 "scan.l"
 {
 					if ((llen+yyleng) > (MAX_PARSE_BUFFER - 1))
-						elog(WARN,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
+						elog(ABORT,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
 					memcpy(literal+llen, yytext, yyleng+1);
 					llen += yyleng;
 				}
@@ -1036,7 +1036,7 @@ YY_RULE_SETUP
 #line 249 "scan.l"
 {
 					if ((llen+yyleng-1) > (MAX_PARSE_BUFFER - 1))
-						elog(WARN,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
+						elog(ABORT,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
 					memcpy(literal+llen, yytext, yyleng+1);
 					*(literal+llen) = '\'';
 					llen += yyleng;
@@ -1047,7 +1047,7 @@ YY_RULE_SETUP
 #line 257 "scan.l"
 {
 					if ((llen+yyleng-1) > (MAX_PARSE_BUFFER - 1))
-						elog(WARN,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
+						elog(ABORT,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
 					memcpy(literal+llen, yytext, yyleng+1);
 					llen += yyleng;
 				}
@@ -1081,7 +1081,7 @@ YY_RULE_SETUP
 #line 277 "scan.l"
 {
 					if ((llen+yyleng) > (MAX_PARSE_BUFFER - 1))
-						elog(WARN,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
+						elog(ABORT,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
 					memcpy(literal+llen, yytext, yyleng+1);
 					llen += yyleng;
 				}
@@ -1159,7 +1159,7 @@ YY_RULE_SETUP
 					errno = 0;
 					yylval.ival = strtol((char *)yytext,&endptr,10);
 					if (*endptr != '\0' || errno == ERANGE)
-						elog(WARN,"Bad integer input '%s'",yytext);
+						elog(ABORT,"Bad integer input '%s'",yytext);
 					return (ICONST);
 				}
 	YY_BREAK
@@ -1173,7 +1173,7 @@ YY_RULE_SETUP
 					errno = 0;
 					yylval.dval = strtod(((char *)yytext),&endptr);
 					if (*endptr != '\0' || errno == ERANGE)
-					elog(WARN,"Bad float8 input '%s'",yytext);
+					elog(ABORT,"Bad float8 input '%s'",yytext);
 					CheckFloat8Val(yylval.dval);
 					return (FCONST);
 				}
@@ -1187,7 +1187,7 @@ YY_RULE_SETUP
 					errno = 0;
 					yylval.ival = strtol((char *)yytext,&endptr,10);
 					if (*endptr != '\0' || errno == ERANGE)
-						elog(WARN,"Bad integer input '%s'",yytext);
+						elog(ABORT,"Bad integer input '%s'",yytext);
 					return (ICONST);
 				}
 	YY_BREAK
@@ -1200,7 +1200,7 @@ YY_RULE_SETUP
 					errno = 0;
 					yylval.dval = strtod((char *)yytext,&endptr);
 					if (*endptr != '\0' || errno == ERANGE)
-						elog(WARN,"Bad float input '%s'",yytext);
+						elog(ABORT,"Bad float input '%s'",yytext);
 					CheckFloat8Val(yylval.dval);
 					return (FCONST);
 				}
@@ -2133,7 +2133,7 @@ int main()
 
 void yyerror(char message[])
 {
-	elog(WARN, "parser: %s at or near \"%s\"", message, yytext);
+	elog(ABORT, "parser: %s at or near \"%s\"", message, yytext);
 }
 
 int yywrap()
diff --git a/src/backend/parser/scan.l b/src/backend/parser/scan.l
index 9e300ba111f..1617472fbc3 100644
--- a/src/backend/parser/scan.l
+++ b/src/backend/parser/scan.l
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.32 1997/12/05 01:12:53 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.33 1998/01/05 03:32:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -199,13 +199,13 @@ other			.
 					errno = 0;
 					yylval.ival = strtol((char *)literal,&endptr,2);
 					if (*endptr != '\0' || errno == ERANGE)
-						elog(WARN,"Bad binary integer input '%s'",literal);
+						elog(ABORT,"Bad binary integer input '%s'",literal);
 					return (ICONST);
 				}
 <xh>{xhinside}	|
 <xb>{xbinside}	{
 					if ((llen+yyleng) > (MAX_PARSE_BUFFER - 1))
-						elog(WARN,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
+						elog(ABORT,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
 					memcpy(literal+llen, yytext, yyleng+1);
 					llen += yyleng;
 				}
@@ -225,7 +225,7 @@ other			.
 					errno = 0;
 					yylval.ival = strtol((char *)literal,&endptr,16);
 					if (*endptr != '\0' || errno == ERANGE)
-						elog(WARN,"Bad hexadecimal integer input '%s'",literal);
+						elog(ABORT,"Bad hexadecimal integer input '%s'",literal);
 					return (ICONST);
 				}
 
@@ -242,13 +242,13 @@ other			.
 <xq>{xqdouble}	|
 <xq>{xqinside}	{
 					if ((llen+yyleng) > (MAX_PARSE_BUFFER - 1))
-						elog(WARN,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
+						elog(ABORT,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
 					memcpy(literal+llen, yytext, yyleng+1);
 					llen += yyleng;
 				}
 <xq>{xqembedded} {
 					if ((llen+yyleng-1) > (MAX_PARSE_BUFFER - 1))
-						elog(WARN,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
+						elog(ABORT,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
 					memcpy(literal+llen, yytext, yyleng+1);
 					*(literal+llen) = '\'';
 					llen += yyleng;
@@ -256,7 +256,7 @@ other			.
 
 <xq>{xqliteral} {
 					if ((llen+yyleng-1) > (MAX_PARSE_BUFFER - 1))
-						elog(WARN,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
+						elog(ABORT,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
 					memcpy(literal+llen, yytext, yyleng+1);
 					llen += yyleng;
 				}
@@ -276,7 +276,7 @@ other			.
 				}
 <xd>{xdinside}	{
 					if ((llen+yyleng) > (MAX_PARSE_BUFFER - 1))
-						elog(WARN,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
+						elog(ABORT,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
 					memcpy(literal+llen, yytext, yyleng+1);
 					llen += yyleng;
 				}
@@ -318,7 +318,7 @@ other			.
 					errno = 0;
 					yylval.ival = strtol((char *)yytext,&endptr,10);
 					if (*endptr != '\0' || errno == ERANGE)
-						elog(WARN,"Bad integer input '%s'",yytext);
+						elog(ABORT,"Bad integer input '%s'",yytext);
 					return (ICONST);
 				}
 {real}/{space}*-{number} {
@@ -328,7 +328,7 @@ other			.
 					errno = 0;
 					yylval.dval = strtod(((char *)yytext),&endptr);
 					if (*endptr != '\0' || errno == ERANGE)
-					elog(WARN,"Bad float8 input '%s'",yytext);
+					elog(ABORT,"Bad float8 input '%s'",yytext);
 					CheckFloat8Val(yylval.dval);
 					return (FCONST);
 				}
@@ -338,7 +338,7 @@ other			.
 					errno = 0;
 					yylval.ival = strtol((char *)yytext,&endptr,10);
 					if (*endptr != '\0' || errno == ERANGE)
-						elog(WARN,"Bad integer input '%s'",yytext);
+						elog(ABORT,"Bad integer input '%s'",yytext);
 					return (ICONST);
 				}
 {real}			{
@@ -347,7 +347,7 @@ other			.
 					errno = 0;
 					yylval.dval = strtod((char *)yytext,&endptr);
 					if (*endptr != '\0' || errno == ERANGE)
-						elog(WARN,"Bad float input '%s'",yytext);
+						elog(ABORT,"Bad float input '%s'",yytext);
 					CheckFloat8Val(yylval.dval);
 					return (FCONST);
 				}
@@ -377,7 +377,7 @@ other			.
 
 void yyerror(char message[])
 {
-	elog(WARN, "parser: %s at or near \"%s\"", message, yytext);
+	elog(ABORT, "parser: %s at or near \"%s\"", message, yytext);
 }
 
 int yywrap()
diff --git a/src/backend/port/dynloader/linux.c b/src/backend/port/dynloader/linux.c
index 2bf33c58fbe..0be13945b47 100644
--- a/src/backend/port/dynloader/linux.c
+++ b/src/backend/port/dynloader/linux.c
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/port/dynloader/linux.c,v 1.4 1998/01/02 03:40:04 scrappy Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/port/dynloader/linux.c,v 1.5 1998/01/05 03:32:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -32,7 +32,7 @@ void	   *
 pg_dlopen(char *filename)
 {
 #ifndef HAVE_DLD_H
-	elog(WARN, "dynamic load not supported");
+	elog(ABORT, "dynamic load not supported");
 	return (NULL);
 #else
 	static int	dl_initialized = 0;
diff --git a/src/backend/rewrite/rewriteDefine.c b/src/backend/rewrite/rewriteDefine.c
index 92562142556..3dccd1bf50f 100644
--- a/src/backend/rewrite/rewriteDefine.c
+++ b/src/backend/rewrite/rewriteDefine.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteDefine.c,v 1.9 1997/12/11 17:36:38 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteDefine.c,v 1.10 1998/01/05 03:32:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -98,7 +98,7 @@ InsertRule(char *rulname,
 	eventrel = heap_openr(evobj);
 	if (eventrel == NULL)
 	{
-		elog(WARN, "rules cannot be defined on relations not in schema");
+		elog(ABORT, "rules cannot be defined on relations not in schema");
 	}
 	eventrel_oid = RelationGetRelationId(eventrel);
 
@@ -118,7 +118,7 @@ InsertRule(char *rulname,
 		evqual = "nil";
 
 	if (IsDefinedRewriteRule(rulname))
-		elog(WARN, "Attempt to insert rule '%s' failed: already exists",
+		elog(ABORT, "Attempt to insert rule '%s' failed: already exists",
 			 rulname);
 	strcpyq(actionbuf, actiontree);
 	strcpyq(qualbuf, evqual);
@@ -130,7 +130,7 @@ InsertRule(char *rulname,
 	if (strlen(template) + strlen(rulname) + strlen(actionbuf) +
 		strlen(qualbuf) + 20 /* fudge fac */ > RULE_PLAN_SIZE)
 	{
-		elog(WARN, "DefineQueryRewrite: rule plan string too big.");
+		elog(ABORT, "DefineQueryRewrite: rule plan string too big.");
 	}
 	sprintf(rulebuf, template,
 			rulname, evtype, eventrel_oid, evslot_index, actionbuf,
@@ -156,12 +156,12 @@ ValidateRule(int event_type,
 	if (((event_type == CMD_INSERT) || (event_type == CMD_DELETE)) &&
 		eslot_string)
 	{
-		elog(WARN,
+		elog(ABORT,
 		"rules not allowed for insert or delete events to an attribute");
 	}
 
 	if (event_qual && !*action && is_instead)
-		elog(WARN,
+		elog(ABORT,
 		"event_quals on 'instead nothing' rules not currently supported");
 
 #if 0
@@ -211,7 +211,7 @@ DefineQueryRewrite(RuleStmt *stmt)
 	event_relation = heap_openr(event_obj->relname);
 	if (event_relation == NULL)
 	{
-		elog(WARN, "virtual relations not supported yet");
+		elog(ABORT, "virtual relations not supported yet");
 	}
 	ev_relid = RelationGetRelationId(event_relation);
 
@@ -265,7 +265,7 @@ DefineQueryRewrite(RuleStmt *stmt)
 
 		/* what is the max size of type text? XXX -- glass */
 		if (length(action) > 15)
-			elog(WARN, "max # of actions exceeded");
+			elog(ABORT, "max # of actions exceeded");
 		prs2_addToRelation(ev_relid, ruleId, event_type, event_attno,
 						   is_instead, event_qual, action);
 	}
diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c
index 1f6bd86343c..0f9d3f3762e 100644
--- a/src/backend/rewrite/rewriteHandler.c
+++ b/src/backend/rewrite/rewriteHandler.c
@@ -6,7 +6,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.7 1998/01/04 04:31:28 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.8 1998/01/05 03:32:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -647,7 +647,7 @@ deepRewriteQuery(Query *parsetree)
 
 	if (++numQueryRewriteInvoked > REWRITE_INVOKE_MAX)
 	{
-		elog(WARN, "query rewritten %d times, may contain cycles",
+		elog(ABORT, "query rewritten %d times, may contain cycles",
 			 numQueryRewriteInvoked - 1);
 	}
 
diff --git a/src/backend/rewrite/rewriteRemove.c b/src/backend/rewrite/rewriteRemove.c
index c73dc261c0a..0da9dab3314 100644
--- a/src/backend/rewrite/rewriteRemove.c
+++ b/src/backend/rewrite/rewriteRemove.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteRemove.c,v 1.7 1997/11/24 05:08:40 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteRemove.c,v 1.8 1998/01/05 03:32:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -39,13 +39,13 @@ RewriteGetRuleEventRel(char *rulename)
 	htp = SearchSysCacheTuple(REWRITENAME, PointerGetDatum(rulename),
 							  0, 0, 0);
 	if (!HeapTupleIsValid(htp))
-		elog(WARN, "RewriteGetRuleEventRel: rule \"%s\" not found",
+		elog(ABORT, "RewriteGetRuleEventRel: rule \"%s\" not found",
 			 rulename);
 	eventrel = ((Form_pg_rewrite) GETSTRUCT(htp))->ev_class;
 	htp = SearchSysCacheTuple(RELOID, PointerGetDatum(eventrel),
 							  0, 0, 0);
 	if (!HeapTupleIsValid(htp))
-		elog(WARN, "RewriteGetRuleEventRel: class %d not found",
+		elog(ABORT, "RewriteGetRuleEventRel: class %d not found",
 			 eventrel);
 	return ((Form_pg_class) GETSTRUCT(htp))->relname.data;
 }
@@ -99,7 +99,7 @@ RemoveRewriteRule(char *ruleName)
 	if (!HeapTupleIsValid(tuple))
 	{
 		heap_close(RewriteRelation);
-		elog(WARN, "No rule with name = '%s' was found.\n", ruleName);
+		elog(ABORT, "No rule with name = '%s' was found.\n", ruleName);
 	}
 
 	/*
@@ -116,7 +116,7 @@ RemoveRewriteRule(char *ruleName)
 	if (isNull)
 	{
 		/* XXX strange!!! */
-		elog(WARN, "RemoveRewriteRule: null event target relation!");
+		elog(ABORT, "RemoveRewriteRule: null event target relation!");
 	}
 	eventRelationOid = DatumGetObjectId(eventRelationOidDatum);
 
diff --git a/src/backend/rewrite/rewriteSupport.c b/src/backend/rewrite/rewriteSupport.c
index 814f84271b0..450b4619275 100644
--- a/src/backend/rewrite/rewriteSupport.c
+++ b/src/backend/rewrite/rewriteSupport.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteSupport.c,v 1.12 1997/11/20 23:22:39 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteSupport.c,v 1.13 1998/01/05 03:32:47 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -56,7 +56,7 @@ RuleIdGetActionInfo(Oid ruleoid, bool *instead_flag, Query **parseTrees)
 									ObjectIdGetDatum(ruleoid),
 									0, 0, 0);
 	if (ruletuple == NULL)
-		elog(WARN, "rule %u isn't in rewrite system relation", ruleoid);
+		elog(ABORT, "rule %u isn't in rewrite system relation", ruleoid);
 
 	ruleaction = (char *)heap_getattr(ruletuple,
 									  InvalidBuffer,
@@ -72,7 +72,7 @@ RuleIdGetActionInfo(Oid ruleoid, bool *instead_flag, Query **parseTrees)
 
 	if (action_is_null || instead_is_null)
 	{
-		elog(WARN, "internal error: rewrite rule not properly set up");
+		elog(ABORT, "internal error: rewrite rule not properly set up");
 	}
 
 	ruleaction = textout((struct varlena *) ruleaction);
diff --git a/src/backend/storage/buffer/buf_init.c b/src/backend/storage/buffer/buf_init.c
index 3ede3dcf59c..98b2eeaa1c8 100644
--- a/src/backend/storage/buffer/buf_init.c
+++ b/src/backend/storage/buffer/buf_init.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/buffer/buf_init.c,v 1.15 1997/11/02 15:25:36 vadim Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/buffer/buf_init.c,v 1.16 1998/01/05 03:32:51 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -155,10 +155,10 @@ InitBufferPool(IPCKey key)
 	 */
 	if (sizeof(struct sbufdesc) != PADDED_SBUFDESC_SIZE ||
 		sizeof(struct sbufdesc_unpadded) > PADDED_SBUFDESC_SIZE)
-		elog(WARN, "Internal error:  sbufdesc does not have the proper size, "
+		elog(ABORT, "Internal error:  sbufdesc does not have the proper size, "
 			 "contact the Postgres developers");
 	if (sizeof(struct sbufdesc_unpadded) <= PADDED_SBUFDESC_SIZE / 2)
-		elog(WARN, "Internal error:  sbufdesc is greatly over-sized, "
+		elog(ABORT, "Internal error:  sbufdesc is greatly over-sized, "
 			 "contact the Postgres developers");
 
 	Data_Descriptors = NBuffers;
diff --git a/src/backend/storage/buffer/buf_table.c b/src/backend/storage/buffer/buf_table.c
index 7fa9ab380e6..3d06262a1db 100644
--- a/src/backend/storage/buffer/buf_table.c
+++ b/src/backend/storage/buffer/buf_table.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/buffer/buf_table.c,v 1.8 1997/09/08 21:46:46 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/buffer/buf_table.c,v 1.9 1998/01/05 03:32:52 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -87,7 +87,7 @@ BufTableLookup(BufferTag *tagPtr)
 
 	if (!result)
 	{
-		elog(WARN, "BufTableLookup: BufferLookup table corrupted");
+		elog(ABORT, "BufTableLookup: BufferLookup table corrupted");
 		return (NULL);
 	}
 	if (!found)
@@ -122,7 +122,7 @@ BufTableDelete(BufferDesc *buf)
 
 	if (!(result && found))
 	{
-		elog(WARN, "BufTableDelete: BufferLookup table corrupted");
+		elog(ABORT, "BufTableDelete: BufferLookup table corrupted");
 		return (FALSE);
 	}
 
@@ -145,14 +145,14 @@ BufTableInsert(BufferDesc *buf)
 	if (!result)
 	{
 		Assert(0);
-		elog(WARN, "BufTableInsert: BufferLookup table corrupted");
+		elog(ABORT, "BufTableInsert: BufferLookup table corrupted");
 		return (FALSE);
 	}
 	/* found something else in the table ! */
 	if (found)
 	{
 		Assert(0);
-		elog(WARN, "BufTableInsert: BufferLookup table corrupted");
+		elog(ABORT, "BufTableInsert: BufferLookup table corrupted");
 		return (FALSE);
 	}
 
diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c
index e81a8d1dffe..fde40b528dc 100644
--- a/src/backend/storage/buffer/bufmgr.c
+++ b/src/backend/storage/buffer/bufmgr.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/buffer/bufmgr.c,v 1.29 1997/11/21 18:11:04 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/buffer/bufmgr.c,v 1.30 1998/01/05 03:32:54 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -444,7 +444,7 @@ BufferAlloc(Relation reln,
 
 		/*
 		 * But it can return buf == NULL if we are in aborting transaction
-		 * now and so elog(WARN,...) in GetFreeBuffer will not abort
+		 * now and so elog(ABORT,...) in GetFreeBuffer will not abort
 		 * again.
 		 */
 		if (buf == NULL)
@@ -834,7 +834,7 @@ FlushBuffer(Buffer buffer, bool release)
 
 	if (status == SM_FAIL)
 	{
-		elog(WARN, "FlushBuffer: cannot flush block %u of the relation %s",
+		elog(ABORT, "FlushBuffer: cannot flush block %u of the relation %s",
 			 bufHdr->tag.blockNum, bufHdr->sb_relname);
 		return (STATUS_ERROR);
 	}
@@ -1009,7 +1009,7 @@ BufferSync()
 					UnpinBuffer(bufHdr);
 					if (bufHdr->flags & BM_IO_ERROR)
 					{
-						elog(WARN, "BufferSync: write error %u for %s",
+						elog(ABORT, "BufferSync: write error %u for %s",
 							 bufHdr->tag.blockNum, bufHdr->sb_relname);
 					}
 					if (reln != (Relation) NULL)
@@ -1054,7 +1054,7 @@ BufferSync()
 				if (status == SM_FAIL)
 				{
 					bufHdr->flags |= BM_IO_ERROR;
-					elog(WARN, "BufferSync: cannot write %u for %s",
+					elog(ABORT, "BufferSync: cannot write %u for %s",
 						 bufHdr->tag.blockNum, bufHdr->sb_relname);
 				}
 				BufferFlushCount++;
diff --git a/src/backend/storage/buffer/freelist.c b/src/backend/storage/buffer/freelist.c
index b2f9fd7e9ae..5dbf4fab1e6 100644
--- a/src/backend/storage/buffer/freelist.c
+++ b/src/backend/storage/buffer/freelist.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/buffer/freelist.c,v 1.7 1997/09/08 20:56:47 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/buffer/freelist.c,v 1.8 1998/01/05 03:32:56 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -189,7 +189,7 @@ GetFreeBuffer()
 	{
 
 		/* queue is empty. All buffers in the buffer pool are pinned. */
-		elog(WARN, "out of free buffers: time to abort !\n");
+		elog(ABORT, "out of free buffers: time to abort !\n");
 		return (NULL);
 	}
 	buf = &(BufferDescriptors[SharedFreeList->freeNext]);
diff --git a/src/backend/storage/buffer/localbuf.c b/src/backend/storage/buffer/localbuf.c
index b7a8bba37a4..4e8ee8fd29c 100644
--- a/src/backend/storage/buffer/localbuf.c
+++ b/src/backend/storage/buffer/localbuf.c
@@ -15,7 +15,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/buffer/localbuf.c,v 1.14 1997/11/21 18:11:07 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/buffer/localbuf.c,v 1.15 1998/01/05 03:32:58 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -110,7 +110,7 @@ LocalBufferAlloc(Relation reln, BlockNumber blockNum, bool *foundPtr)
 		}
 	}
 	if (bufHdr == NULL)
-		elog(WARN, "no empty local buffer.");
+		elog(ABORT, "no empty local buffer.");
 
 	/*
 	 * this buffer is not referenced but it might still be dirty (the last
diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c
index c64b7c01096..65a8bed408d 100644
--- a/src/backend/storage/file/fd.c
+++ b/src/backend/storage/file/fd.c
@@ -6,7 +6,7 @@
  * Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $Id: fd.c,v 1.27 1997/11/07 06:38:15 thomas Exp $
+ *	  $Id: fd.c,v 1.28 1998/01/05 03:33:00 momjian Exp $
  *
  * NOTES:
  *
@@ -586,7 +586,7 @@ tryAgain:
 
 	if (fileName == NULL)
 	{
-		elog(WARN, "fileNameOpenFile: NULL fname");
+		elog(ABORT, "fileNameOpenFile: NULL fname");
 	}
 	vfdP->fileName = malloc(strlen(fileName) + 1);
 	strcpy(vfdP->fileName, fileName);
@@ -763,7 +763,7 @@ FileSeek(File file, long offset, int whence)
 					lseek(VfdCache[file].fd, offset, whence);
 				return returnCode;
 			default:
-				elog(WARN, "FileSeek: invalid whence: %d", whence);
+				elog(ABORT, "FileSeek: invalid whence: %d", whence);
 				break;
 		}
 	}
diff --git a/src/backend/storage/ipc/ipc.c b/src/backend/storage/ipc/ipc.c
index adb357193ba..1d08318007c 100644
--- a/src/backend/storage/ipc/ipc.c
+++ b/src/backend/storage/ipc/ipc.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/ipc/ipc.c,v 1.16 1997/09/18 20:21:26 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/ipc/ipc.c,v 1.17 1998/01/05 03:33:04 momjian Exp $
  *
  * NOTES
  *
@@ -89,7 +89,7 @@ PrivateMemoryCreate(IpcMemoryKey memKey,
 	IpcPrivateMem[memid].id = memid;
 	IpcPrivateMem[memid].memptr = malloc(size);
 	if (IpcPrivateMem[memid].memptr == NULL)
-		elog(WARN, "PrivateMemoryCreate: not enough memory to malloc");
+		elog(ABORT, "PrivateMemoryCreate: not enough memory to malloc");
 	MemSet(IpcPrivateMem[memid].memptr, 0, size);		/* XXX PURIFY */
 
 	return (memid++);
diff --git a/src/backend/storage/ipc/shmem.c b/src/backend/storage/ipc/shmem.c
index 1303c1bdef9..dca616d5775 100644
--- a/src/backend/storage/ipc/shmem.c
+++ b/src/backend/storage/ipc/shmem.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/ipc/shmem.c,v 1.14 1997/09/18 20:21:30 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/ipc/shmem.c,v 1.15 1998/01/05 03:33:06 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -418,7 +418,7 @@ ShmemPIDLookup(int pid, SHMEM_OFFSET *locationPtr)
 	{
 
 		SpinRelease(BindingLock);
-		elog(WARN, "ShmemInitPID: BindingTable corrupted");
+		elog(ABORT, "ShmemInitPID: BindingTable corrupted");
 		return (FALSE);
 
 	}
@@ -469,7 +469,7 @@ ShmemPIDDestroy(int pid)
 	if (!result)
 	{
 
-		elog(WARN, "ShmemPIDDestroy: PID table corrupted");
+		elog(ABORT, "ShmemPIDDestroy: PID table corrupted");
 		return (INVALID_OFFSET);
 
 	}
@@ -555,7 +555,7 @@ ShmemInitStruct(char *name, unsigned long size, bool *foundPtr)
 
 		SpinRelease(BindingLock);
 
-		elog(WARN, "ShmemInitStruct: Binding Table corrupted");
+		elog(ABORT, "ShmemInitStruct: Binding Table corrupted");
 		return (NULL);
 
 	}
@@ -640,6 +640,6 @@ TransactionIdIsInProgress(TransactionId xid)
 	}
 
 	SpinRelease(BindingLock);
-	elog(WARN, "TransactionIdIsInProgress: BindingTable corrupted");
+	elog(ABORT, "TransactionIdIsInProgress: BindingTable corrupted");
 	return (false);
 }
diff --git a/src/backend/storage/large_object/inv_api.c b/src/backend/storage/large_object/inv_api.c
index 2b961e01b4a..06eaa4473a3 100644
--- a/src/backend/storage/large_object/inv_api.c
+++ b/src/backend/storage/large_object/inv_api.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.24 1997/11/28 17:27:50 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.25 1998/01/05 03:33:09 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -111,14 +111,14 @@ inv_create(int flags)
 	if (SearchSysCacheTuple(RELNAME, PointerGetDatum(objname),
 							0, 0, 0) != NULL)
 	{
-		elog(WARN,
+		elog(ABORT,
 		  "internal error: %s already exists -- cannot create large obj",
 			 objname);
 	}
 	if (SearchSysCacheTuple(RELNAME, PointerGetDatum(indname),
 							0, 0, 0) != NULL)
 	{
-		elog(WARN,
+		elog(ABORT,
 		  "internal error: %s already exists -- cannot create large obj",
 			 indname);
 	}
@@ -147,7 +147,7 @@ inv_create(int flags)
 
 	if (!RelationIsValid(r))
 	{
-		elog(WARN, "cannot create large object on %s under inversion",
+		elog(ABORT, "cannot create large object on %s under inversion",
 			 smgrout(DEFAULT_SMGR));
 	}
 
@@ -172,7 +172,7 @@ inv_create(int flags)
 
 	if (!RelationIsValid(indr))
 	{
-		elog(WARN, "cannot create index for large obj on %s under inversion",
+		elog(ABORT, "cannot create index for large obj on %s under inversion",
 			 smgrout(DEFAULT_SMGR));
 	}
 
diff --git a/src/backend/storage/lmgr/lmgr.c b/src/backend/storage/lmgr/lmgr.c
index c54ff59e03b..c9481d09f86 100644
--- a/src/backend/storage/lmgr/lmgr.c
+++ b/src/backend/storage/lmgr/lmgr.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lmgr.c,v 1.9 1997/11/24 05:08:43 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lmgr.c,v 1.10 1998/01/05 03:33:16 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -434,7 +434,7 @@ RelationUnsetLockForRead(Relation relation)
 	 */
 	if (!LockInfoIsValid(linfo))
 	{
-		elog(WARN,
+		elog(ABORT,
 			 "Releasing a lock on %s with invalid lock information",
 			 RelationGetRelationName(relation));
 	}
@@ -527,7 +527,7 @@ RelationUnsetLockForWrite(Relation relation)
 
 	if (!LockInfoIsValid(linfo))
 	{
-		elog(WARN,
+		elog(ABORT,
 			 "Releasing a lock on %s with invalid lock information",
 			 RelationGetRelationName(relation));
 	}
@@ -769,7 +769,7 @@ RelationUnsetSingleWLockPage(Relation relation,
 		return;
 
 	if (!LockInfoIsValid(relation->lockInfo))
-		elog(WARN,
+		elog(ABORT,
 			 "Releasing a lock on %s with invalid lock information",
 			 RelationGetRelationName(relation));
 
@@ -816,7 +816,7 @@ RelationUnsetSingleRLockPage(Relation relation,
 		return;
 
 	if (!LockInfoIsValid(relation->lockInfo))
-		elog(WARN,
+		elog(ABORT,
 			 "Releasing a lock on %s with invalid lock information",
 			 RelationGetRelationName(relation));
 
diff --git a/src/backend/storage/lmgr/lock.c b/src/backend/storage/lmgr/lock.c
index 116f431e3da..9d41201dd4f 100644
--- a/src/backend/storage/lmgr/lock.c
+++ b/src/backend/storage/lmgr/lock.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lock.c,v 1.16 1997/09/18 20:21:35 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lock.c,v 1.17 1998/01/05 03:33:22 momjian Exp $
  *
  * NOTES
  *	  Outside modules can create a lock table and acquire/release
@@ -802,7 +802,7 @@ WaitOnLock(LOCKTAB *ltable, LockTableId tableId, LOCK *lock, LOCKT lockt)
 		lock->holders[lockt]--;
 		LOCK_DUMP_AUX("WaitOnLock: aborting on lock", lock, lockt);
 		SpinRelease(ltable->ctl->masterLock);
-		elog(WARN, "WaitOnLock: error on wakeup - Aborting this transaction");
+		elog(ABORT, "WaitOnLock: error on wakeup - Aborting this transaction");
 	}
 
 	LOCK_DUMP_AUX("WaitOnLock: wakeup on lock", lock, lockt);
@@ -887,7 +887,7 @@ LockRelease(LockTableId tableId, LOCKTAG *lockName, LOCKT lockt)
 #endif
 
 	/*
-	 * let the caller print its own error message, too. Do not elog(WARN).
+	 * let the caller print its own error message, too. Do not elog(ABORT).
 	 */
 	if (!lock)
 	{
diff --git a/src/backend/storage/lmgr/multi.c b/src/backend/storage/lmgr/multi.c
index 6862111e2d3..5786cadd64e 100644
--- a/src/backend/storage/lmgr/multi.c
+++ b/src/backend/storage/lmgr/multi.c
@@ -12,7 +12,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/lmgr/Attic/multi.c,v 1.8 1997/09/18 20:21:38 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/lmgr/Attic/multi.c,v 1.9 1998/01/05 03:33:25 momjian Exp $
  *
  * NOTES:
  *	 (1) The lock.c module assumes that the caller here is doing
@@ -100,14 +100,14 @@ InitMultiLevelLockm()
 	MultiTableId = tableId;
 	if (!(MultiTableId))
 	{
-		elog(WARN, "InitMultiLockm: couldnt initialize lock table");
+		elog(ABORT, "InitMultiLockm: couldnt initialize lock table");
 	}
 	/* -----------------------
 	 * No short term lock table for now.  -Jeff 15 July 1991
 	 *
 	 * ShortTermTableId = LockTabRename(tableId);
 	 * if (! (ShortTermTableId)) {
-	 *	 elog(WARN,"InitMultiLockm: couldnt rename lock table");
+	 *	 elog(ABORT,"InitMultiLockm: couldnt rename lock table");
 	 * }
 	 * -----------------------
 	 */
@@ -237,7 +237,7 @@ MultiAcquire(LockTableId tableId,
 			locks[2] = lockt;
 			break;
 		default:
-			elog(WARN, "MultiAcquire: bad lock level");
+			elog(ABORT, "MultiAcquire: bad lock level");
 			return (FALSE);
 	}
 
@@ -390,7 +390,7 @@ MultiRelease(LockTableId tableId,
 			locks[2] = lockt;
 			break;
 		default:
-			elog(WARN, "MultiRelease: bad lockt");
+			elog(ABORT, "MultiRelease: bad lockt");
 	}
 
 	/*
@@ -435,7 +435,7 @@ MultiRelease(LockTableId tableId,
 			status = LockRelease(tableId, tmpTag, locks[i]);
 			if (!status)
 			{
-				elog(WARN, "MultiRelease: couldn't release after error");
+				elog(ABORT, "MultiRelease: couldn't release after error");
 			}
 		}
 	}
diff --git a/src/backend/storage/lmgr/proc.c b/src/backend/storage/lmgr/proc.c
index d9d0c46b656..f5baaa3eb9d 100644
--- a/src/backend/storage/lmgr/proc.c
+++ b/src/backend/storage/lmgr/proc.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.23 1997/10/30 17:23:59 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.24 1998/01/05 03:33:26 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -46,7 +46,7 @@
  *		This is so that we can support more backends. (system-wide semaphore
  *		sets run out pretty fast.)				  -ay 4/95
  *
- * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.23 1997/10/30 17:23:59 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.24 1998/01/05 03:33:26 momjian Exp $
  */
 #include <sys/time.h>
 #include <unistd.h>
@@ -163,13 +163,13 @@ InitProcess(IPCKey key)
 	if (!found)
 	{
 		/* this should not happen. InitProcGlobal() is called before this. */
-		elog(WARN, "InitProcess: Proc Header uninitialized");
+		elog(ABORT, "InitProcess: Proc Header uninitialized");
 	}
 
 	if (MyProc != NULL)
 	{
 		SpinRelease(ProcStructLock);
-		elog(WARN, "ProcInit: you already exist");
+		elog(ABORT, "ProcInit: you already exist");
 		return;
 	}
 
@@ -803,7 +803,7 @@ ProcGetNewSemKeyAndNum(IPCKey *key, int *semNum)
 	}
 
 	/* if we reach here, all the semaphores are in use. */
-	elog(WARN, "InitProc: cannot allocate a free semaphore");
+	elog(ABORT, "InitProc: cannot allocate a free semaphore");
 }
 
 /*
diff --git a/src/backend/storage/page/bufpage.c b/src/backend/storage/page/bufpage.c
index f54eefd84e8..86fa599c8e3 100644
--- a/src/backend/storage/page/bufpage.c
+++ b/src/backend/storage/page/bufpage.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/page/bufpage.c,v 1.11 1997/09/18 20:21:41 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/page/bufpage.c,v 1.12 1998/01/05 03:33:29 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -134,7 +134,7 @@ PageAddItem(Page page,
 			if (((*itemId).lp_flags & LP_USED) ||
 				((*itemId).lp_len != 0))
 			{
-				elog(WARN, "PageAddItem: tried overwrite of used ItemId");
+				elog(ABORT, "PageAddItem: tried overwrite of used ItemId");
 				return (InvalidOffsetNumber);
 			}
 		}
diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c
index eaee63f2d48..ff852dc0039 100644
--- a/src/backend/storage/smgr/md.c
+++ b/src/backend/storage/smgr/md.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/smgr/md.c,v 1.24 1997/11/07 06:38:19 thomas Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/smgr/md.c,v 1.25 1998/01/05 03:33:32 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -568,7 +568,7 @@ mdnblocks(Relation reln)
 			{
 				v->mdfd_chain = _mdfd_openseg(reln, segno, O_CREAT);
 				if (v->mdfd_chain == (MdfdVec *) NULL)
-					elog(WARN, "cannot count blocks for %.16s -- open failed",
+					elog(ABORT, "cannot count blocks for %.16s -- open failed",
 						 RelationGetRelationName(reln));
 			}
 
@@ -808,7 +808,7 @@ _mdfd_getseg(Relation reln, int blkno, int oflag)
 	if (fd < 0)
 	{
 		if ((fd = mdopen(reln)) < 0)
-			elog(WARN, "cannot open relation %.16s",
+			elog(ABORT, "cannot open relation %.16s",
 				 RelationGetRelationName(reln));
 		reln->rd_fd = fd;
 	}
@@ -823,7 +823,7 @@ _mdfd_getseg(Relation reln, int blkno, int oflag)
 			v->mdfd_chain = _mdfd_openseg(reln, i, oflag);
 
 			if (v->mdfd_chain == (MdfdVec *) NULL)
-				elog(WARN, "cannot open segment %d of relation %.16s",
+				elog(ABORT, "cannot open segment %d of relation %.16s",
 					 i, RelationGetRelationName(reln));
 		}
 		v = v->mdfd_chain;
diff --git a/src/backend/storage/smgr/smgr.c b/src/backend/storage/smgr/smgr.c
index cda65c57f26..69be719f241 100644
--- a/src/backend/storage/smgr/smgr.c
+++ b/src/backend/storage/smgr/smgr.c
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/smgr/smgr.c,v 1.11 1997/09/08 21:47:38 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/smgr/smgr.c,v 1.12 1998/01/05 03:33:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -132,7 +132,7 @@ smgrcreate(int16 which, Relation reln)
 	int			fd;
 
 	if ((fd = (*(smgrsw[which].smgr_create)) (reln)) < 0)
-		elog(WARN, "cannot open %s",
+		elog(ABORT, "cannot open %s",
 			 &(reln->rd_rel->relname.data[0]));
 
 	return (fd);
@@ -149,7 +149,7 @@ smgrunlink(int16 which, Relation reln)
 	int			status;
 
 	if ((status = (*(smgrsw[which].smgr_unlink)) (reln)) == SM_FAIL)
-		elog(WARN, "cannot unlink %s",
+		elog(ABORT, "cannot unlink %s",
 			 &(reln->rd_rel->relname.data[0]));
 
 	return (status);
@@ -169,7 +169,7 @@ smgrextend(int16 which, Relation reln, char *buffer)
 	status = (*(smgrsw[which].smgr_extend)) (reln, buffer);
 
 	if (status == SM_FAIL)
-		elog(WARN, "%s: cannot extend",
+		elog(ABORT, "%s: cannot extend",
 			 &(reln->rd_rel->relname.data[0]));
 
 	return (status);
@@ -187,7 +187,7 @@ smgropen(int16 which, Relation reln)
 	int			fd;
 
 	if ((fd = (*(smgrsw[which].smgr_open)) (reln)) < 0)
-		elog(WARN, "cannot open %s",
+		elog(ABORT, "cannot open %s",
 			 &(reln->rd_rel->relname.data[0]));
 
 	return (fd);
@@ -209,7 +209,7 @@ int
 smgrclose(int16 which, Relation reln)
 {
 	if ((*(smgrsw[which].smgr_close)) (reln) == SM_FAIL)
-		elog(WARN, "cannot close %s",
+		elog(ABORT, "cannot close %s",
 			 &(reln->rd_rel->relname.data[0]));
 
 	return (SM_SUCCESS);
@@ -233,7 +233,7 @@ smgrread(int16 which, Relation reln, BlockNumber blocknum, char *buffer)
 	status = (*(smgrsw[which].smgr_read)) (reln, blocknum, buffer);
 
 	if (status == SM_FAIL)
-		elog(WARN, "cannot read block %d of %s",
+		elog(ABORT, "cannot read block %d of %s",
 			 blocknum, &(reln->rd_rel->relname.data[0]));
 
 	return (status);
@@ -255,7 +255,7 @@ smgrwrite(int16 which, Relation reln, BlockNumber blocknum, char *buffer)
 	status = (*(smgrsw[which].smgr_write)) (reln, blocknum, buffer);
 
 	if (status == SM_FAIL)
-		elog(WARN, "cannot write block %d of %s",
+		elog(ABORT, "cannot write block %d of %s",
 			 blocknum, &(reln->rd_rel->relname.data[0]));
 
 	return (status);
@@ -272,7 +272,7 @@ smgrflush(int16 which, Relation reln, BlockNumber blocknum, char *buffer)
 	status = (*(smgrsw[which].smgr_flush)) (reln, blocknum, buffer);
 
 	if (status == SM_FAIL)
-		elog(WARN, "cannot flush block %d of %s to stable store",
+		elog(ABORT, "cannot flush block %d of %s to stable store",
 			 blocknum, &(reln->rd_rel->relname.data[0]));
 
 	return (status);
@@ -310,7 +310,7 @@ smgrblindwrt(int16 which,
 											   blkno, buffer);
 
 	if (status == SM_FAIL)
-		elog(WARN, "cannot write block %d of %s [%s] blind",
+		elog(ABORT, "cannot write block %d of %s [%s] blind",
 			 blkno, relstr, dbstr);
 
 	pfree(dbstr);
@@ -332,7 +332,7 @@ smgrnblocks(int16 which, Relation reln)
 	int			nblocks;
 
 	if ((nblocks = (*(smgrsw[which].smgr_nblocks)) (reln)) < 0)
-		elog(WARN, "cannot count blocks for %s",
+		elog(ABORT, "cannot count blocks for %s",
 			 &(reln->rd_rel->relname.data[0]));
 
 	return (nblocks);
@@ -354,7 +354,7 @@ smgrtruncate(int16 which, Relation reln, int nblocks)
 	if (smgrsw[which].smgr_truncate)
 	{
 		if ((newblks = (*(smgrsw[which].smgr_truncate)) (reln, nblocks)) < 0)
-			elog(WARN, "cannot truncate %s to %d blocks",
+			elog(ABORT, "cannot truncate %s to %d blocks",
 				 &(reln->rd_rel->relname.data[0]), nblocks);
 	}
 
@@ -406,7 +406,7 @@ bool
 smgriswo(int16 smgrno)
 {
 	if (smgrno < 0 || smgrno >= NSmgr)
-		elog(WARN, "illegal storage manager number %d", smgrno);
+		elog(ABORT, "illegal storage manager number %d", smgrno);
 
 	return (smgrwo[smgrno]);
 }
diff --git a/src/backend/storage/smgr/smgrtype.c b/src/backend/storage/smgr/smgrtype.c
index dec7c18f14d..05fbd5ab276 100644
--- a/src/backend/storage/smgr/smgrtype.c
+++ b/src/backend/storage/smgr/smgrtype.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/smgr/smgrtype.c,v 1.5 1997/09/08 21:47:42 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/smgr/smgrtype.c,v 1.6 1998/01/05 03:33:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -49,7 +49,7 @@ smgrin(char *s)
 		if (strcmp(s, StorageManager[i].smgr_name) == 0)
 			return ((int2) i);
 	}
-	elog(WARN, "smgrin: illegal storage manager name %s", s);
+	elog(ABORT, "smgrin: illegal storage manager name %s", s);
 	return 0;
 }
 
@@ -59,7 +59,7 @@ smgrout(int2 i)
 	char	   *s;
 
 	if (i >= NStorageManagers || i < 0)
-		elog(WARN, "Illegal storage manager id %d", i);
+		elog(ABORT, "Illegal storage manager id %d", i);
 
 	s = (char *) palloc(strlen(StorageManager[i].smgr_name) + 1);
 	strcpy(s, StorageManager[i].smgr_name);
diff --git a/src/backend/tcop/aclchk.c b/src/backend/tcop/aclchk.c
index 0021213365c..9c7ed14cd5b 100644
--- a/src/backend/tcop/aclchk.c
+++ b/src/backend/tcop/aclchk.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/tcop/Attic/aclchk.c,v 1.20 1997/11/25 22:06:08 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/tcop/Attic/aclchk.c,v 1.21 1998/01/05 03:33:40 momjian Exp $
  *
  * NOTES
  *	  See acl.h.
@@ -120,7 +120,7 @@ ChangeAcl(char *relname,
 	 */
 	relation = heap_openr(RelationRelationName);
 	if (!RelationIsValid(relation))
-		elog(WARN, "ChangeAcl: could not open '%s'??",
+		elog(ABORT, "ChangeAcl: could not open '%s'??",
 			 RelationRelationName);
 	fmgr_info(NameEqualRegProcedure, &relkey[0].sk_func, &relkey[0].sk_nargs);
 	relkey[0].sk_argument = NameGetDatum(relname);
@@ -134,7 +134,7 @@ ChangeAcl(char *relname,
 	{
 		heap_endscan(hsdp);
 		heap_close(relation);
-		elog(WARN, "ChangeAcl: class \"%s\" not found",
+		elog(ABORT, "ChangeAcl: class \"%s\" not found",
 			 relname);
 		return;
 	}
@@ -205,7 +205,7 @@ get_grosysid(char *groname)
 	}
 	else
 	{
-		elog(WARN, "non-existent group \"%s\"", groname);
+		elog(ABORT, "non-existent group \"%s\"", groname);
 	}
 	return (id);
 }
@@ -370,7 +370,7 @@ aclcheck(Acl *acl, AclId id, AclIdType idtype, AclMode mode)
 		case ACL_IDTYPE_WORLD:
 			break;
 		default:
-			elog(WARN, "aclcheck: bogus ACL id type: %d", idtype);
+			elog(ABORT, "aclcheck: bogus ACL id type: %d", idtype);
 			break;
 	}
 
@@ -393,7 +393,7 @@ pg_aclcheck(char *relname, char *usename, AclMode mode)
 	htp = SearchSysCacheTuple(USENAME, PointerGetDatum(usename),
 							  0, 0, 0);
 	if (!HeapTupleIsValid(htp))
-		elog(WARN, "pg_aclcheck: user \"%s\" not found",
+		elog(ABORT, "pg_aclcheck: user \"%s\" not found",
 			 usename);
 	id = (AclId) ((Form_pg_user) GETSTRUCT(htp))->usesysid;
 
@@ -445,9 +445,9 @@ pg_aclcheck(char *relname, char *usename, AclMode mode)
 							  0, 0, 0);
 	if (!HeapTupleIsValid(htp))
 	{
-		elog(WARN, "pg_aclcheck: class \"%s\" not found",
+		elog(ABORT, "pg_aclcheck: class \"%s\" not found",
 			 relname);
-		/* an elog(WARN) kills us, so no need to return anything. */
+		/* an elog(ABORT) kills us, so no need to return anything. */
 	}
 	if (!heap_attisnull(htp, Anum_pg_class_relacl))
 	{
@@ -528,7 +528,7 @@ pg_ownercheck(char *usename,
 	htp = SearchSysCacheTuple(USENAME, PointerGetDatum(usename),
 							  0, 0, 0);
 	if (!HeapTupleIsValid(htp))
-		elog(WARN, "pg_ownercheck: user \"%s\" not found",
+		elog(ABORT, "pg_ownercheck: user \"%s\" not found",
 			 usename);
 	user_id = (AclId) ((Form_pg_user) GETSTRUCT(htp))->usesysid;
 
@@ -550,30 +550,30 @@ pg_ownercheck(char *usename,
 	{
 		case OPROID:
 			if (!HeapTupleIsValid(htp))
-				elog(WARN, "pg_ownercheck: operator %ld not found",
+				elog(ABORT, "pg_ownercheck: operator %ld not found",
 					 PointerGetDatum(value));
 			owner_id = ((OperatorTupleForm) GETSTRUCT(htp))->oprowner;
 			break;
 		case PRONAME:
 			if (!HeapTupleIsValid(htp))
-				elog(WARN, "pg_ownercheck: function \"%s\" not found",
+				elog(ABORT, "pg_ownercheck: function \"%s\" not found",
 					 value);
 			owner_id = ((Form_pg_proc) GETSTRUCT(htp))->proowner;
 			break;
 		case RELNAME:
 			if (!HeapTupleIsValid(htp))
-				elog(WARN, "pg_ownercheck: class \"%s\" not found",
+				elog(ABORT, "pg_ownercheck: class \"%s\" not found",
 					 value);
 			owner_id = ((Form_pg_class) GETSTRUCT(htp))->relowner;
 			break;
 		case TYPNAME:
 			if (!HeapTupleIsValid(htp))
-				elog(WARN, "pg_ownercheck: type \"%s\" not found",
+				elog(ABORT, "pg_ownercheck: type \"%s\" not found",
 					 value);
 			owner_id = ((TypeTupleForm) GETSTRUCT(htp))->typowner;
 			break;
 		default:
-			elog(WARN, "pg_ownercheck: invalid cache id: %d",
+			elog(ABORT, "pg_ownercheck: invalid cache id: %d",
 				 cacheid);
 			break;
 	}
@@ -594,7 +594,7 @@ pg_func_ownercheck(char *usename,
 	htp = SearchSysCacheTuple(USENAME, PointerGetDatum(usename),
 							  0, 0, 0);
 	if (!HeapTupleIsValid(htp))
-		elog(WARN, "pg_func_ownercheck: user \"%s\" not found",
+		elog(ABORT, "pg_func_ownercheck: user \"%s\" not found",
 			 usename);
 	user_id = (AclId) ((Form_pg_user) GETSTRUCT(htp))->usesysid;
 
@@ -635,7 +635,7 @@ pg_aggr_ownercheck(char *usename,
 	htp = SearchSysCacheTuple(USENAME, PointerGetDatum(usename),
 							  0, 0, 0);
 	if (!HeapTupleIsValid(htp))
-		elog(WARN, "pg_aggr_ownercheck: user \"%s\" not found",
+		elog(ABORT, "pg_aggr_ownercheck: user \"%s\" not found",
 			 usename);
 	user_id = (AclId) ((Form_pg_user) GETSTRUCT(htp))->usesysid;
 
diff --git a/src/backend/tcop/fastpath.c b/src/backend/tcop/fastpath.c
index b4fb2ebaec4..6a030956993 100644
--- a/src/backend/tcop/fastpath.c
+++ b/src/backend/tcop/fastpath.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/tcop/fastpath.c,v 1.8 1997/12/06 22:57:03 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/tcop/fastpath.c,v 1.9 1998/01/05 03:33:44 momjian Exp $
  *
  * NOTES
  *	  This cruft is the server side of PQfn.
@@ -199,7 +199,7 @@ update_fp_info(Oid func_id, struct fp_info * fip)
 	 * Since the validity of this structure is determined by whether the
 	 * funcid is OK, we clear the funcid here.	It must not be set to the
 	 * correct value until we are about to return with a good struct
-	 * fp_info, since we can be interrupted (i.e., with an elog(WARN,
+	 * fp_info, since we can be interrupted (i.e., with an elog(ABORT,
 	 * ...)) at any time.
 	 */
 	MemSet((char *) fip, 0, (int) sizeof(struct fp_info));
@@ -209,7 +209,7 @@ update_fp_info(Oid func_id, struct fp_info * fip)
 								   0, 0, 0);
 	if (!HeapTupleIsValid(func_htp))
 	{
-		elog(WARN, "update_fp_info: cache lookup for function %d failed",
+		elog(ABORT, "update_fp_info: cache lookup for function %d failed",
 			 func_id);
 	}
 	pp = (Form_pg_proc) GETSTRUCT(func_htp);
@@ -226,7 +226,7 @@ update_fp_info(Oid func_id, struct fp_info * fip)
 										   0, 0, 0);
 			if (!HeapTupleIsValid(type_htp))
 			{
-				elog(WARN, "update_fp_info: bad argument type %d for %d",
+				elog(ABORT, "update_fp_info: bad argument type %d for %d",
 					 argtypes[i], func_id);
 			}
 			tp = (TypeTupleForm) GETSTRUCT(type_htp);
@@ -241,7 +241,7 @@ update_fp_info(Oid func_id, struct fp_info * fip)
 									   0, 0, 0);
 		if (!HeapTupleIsValid(type_htp))
 		{
-			elog(WARN, "update_fp_info: bad return type %d for %d",
+			elog(ABORT, "update_fp_info: bad return type %d for %d",
 				 rettype, func_id);
 		}
 		tp = (TypeTupleForm) GETSTRUCT(type_htp);
@@ -267,7 +267,7 @@ update_fp_info(Oid func_id, struct fp_info * fip)
  *
  * RETURNS:
  *		nothing of significance.
- *		All errors result in elog(WARN,...).
+ *		All errors result in elog(ABORT,...).
  */
 int
 HandleFunctionRequest()
@@ -297,7 +297,7 @@ HandleFunctionRequest()
 
 	if (fip->nargs != nargs)
 	{
-		elog(WARN, "HandleFunctionRequest: actual arguments (%d) != registered arguments (%d)",
+		elog(ABORT, "HandleFunctionRequest: actual arguments (%d) != registered arguments (%d)",
 			 nargs, fip->nargs);
 	}
 
@@ -328,7 +328,7 @@ HandleFunctionRequest()
 				{				/* ... varlena */
 					if (!(p = palloc(argsize + VARHDRSZ)))
 					{
-						elog(WARN, "HandleFunctionRequest: palloc failed");
+						elog(ABORT, "HandleFunctionRequest: palloc failed");
 					}
 					VARSIZE(p) = argsize + VARHDRSZ;
 					pq_getnchar(VARDATA(p), 0, argsize);
@@ -338,7 +338,7 @@ HandleFunctionRequest()
 					/* XXX cross our fingers and trust "argsize" */
 					if (!(p = palloc(argsize)))
 					{
-						elog(WARN, "HandleFunctionRequest: palloc failed");
+						elog(ABORT, "HandleFunctionRequest: palloc failed");
 					}
 					pq_getnchar(p, 0, argsize);
 				}
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index 42a6bd88546..64b7e99d986 100644
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.57 1997/12/16 15:57:00 thomas Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.58 1998/01/05 03:33:46 momjian Exp $
  *
  * NOTES
  *	  this is the "main" module of the postgres backend and
@@ -125,7 +125,7 @@ jmp_buf		Warn_restart;
 sigjmp_buf	Warn_restart;
 
 #endif							/* defined(nextstep) */
-int			InWarn;
+int			InErrorOrAbort;
 
 extern int	NBuffers;
 
@@ -728,7 +728,7 @@ pg_exec_query_dest(char *query_string,/* string to execute */
  *		signal handler routines used in PostgresMain()
  *
  *		handle_warn() is used to catch kill(getpid(),1) which
- *		occurs when elog(WARN) is called.
+ *		occurs when elog(ABORT) is called.
  *
  *		quickdie() occurs when signalled by the postmaster.
  *		Some backend has bought the farm,
@@ -774,7 +774,7 @@ die(SIGNAL_ARGS)
 static void
 FloatExceptionHandler(SIGNAL_ARGS)
 {
-	elog(WARN, "floating point exception!"
+	elog(ABORT, "floating point exception!"
 		" The last floating point operation either exceeded legal ranges"
 		" or was a divide by zero");
 }
@@ -1343,7 +1343,7 @@ PostgresMain(int argc, char *argv[])
 	 *	so that the slaves signal the master to abort the transaction
 	 *	rather than calling AbortCurrentTransaction() themselves.
 	 *
-	 *	Note:  elog(WARN) causes a kill(getpid(),1) to occur sending
+	 *	Note:  elog(ABORT) causes a kill(getpid(),1) to occur sending
 	 *		   us back here.
 	 * ----------------
 	 */
@@ -1352,7 +1352,7 @@ PostgresMain(int argc, char *argv[])
 
 	if (sigsetjmp(Warn_restart, 1) != 0)
 	{
-		InWarn = 1;
+		InErrorOrAbort = 1;
 
 		time(&tim);
 
@@ -1363,7 +1363,7 @@ PostgresMain(int argc, char *argv[])
 
 		AbortCurrentTransaction();
 	}
-	InWarn = 0;
+	InErrorOrAbort = 0;
 
 	/* ----------------
 	 *	POSTGRES main processing loop begins here
@@ -1372,7 +1372,7 @@ PostgresMain(int argc, char *argv[])
 	if (IsUnderPostmaster == false)
 	{
 		puts("\nPOSTGRES backend interactive interface");
-		puts("$Revision: 1.57 $ $Date: 1997/12/16 15:57:00 $");
+		puts("$Revision: 1.58 $ $Date: 1998/01/05 03:33:46 $");
 	}
 
 	/* ----------------
@@ -1565,7 +1565,7 @@ PostgresMain(int argc, char *argv[])
 				break;
 
 			default:
-				elog(WARN, "unknown frontend message was recieved");
+				elog(ABORT, "unknown frontend message was recieved");
 		}
 
 		/* ----------------
diff --git a/src/backend/tcop/pquery.c b/src/backend/tcop/pquery.c
index 360f41303e5..cc7517a5a68 100644
--- a/src/backend/tcop/pquery.c
+++ b/src/backend/tcop/pquery.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/tcop/pquery.c,v 1.11 1997/09/18 20:22:05 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/tcop/pquery.c,v 1.12 1998/01/05 03:33:48 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -166,7 +166,7 @@ ProcessPortal(char *portalName,
 	 */
 
 	if (PortalNameIsSpecial(portalName))
-		elog(WARN,
+		elog(ABORT,
 			 "The portal name %s is reserved for internal use",
 			 portalName);
 
diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c
index 4ee0c2cd4e0..27b735653e9 100644
--- a/src/backend/tcop/utility.c
+++ b/src/backend/tcop/utility.c
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.33 1998/01/01 05:48:14 thomas Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.34 1998/01/05 03:33:49 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -183,24 +183,24 @@ ProcessUtility(Node * parsetree,
 				{
 					relname = strVal(lfirst(arg));
 					if (IsSystemRelationName(relname))
-						elog(WARN, "class \"%s\" is a system catalog",
+						elog(ABORT, "class \"%s\" is a system catalog",
 							 relname);
 					rel = heap_openr(relname);
 					if (RelationIsValid(rel))
 					{
 						if (stmt->sequence &&
 							rel->rd_rel->relkind != RELKIND_SEQUENCE)
-							elog(WARN, "Use DROP TABLE to drop table '%s'",
+							elog(ABORT, "Use DROP TABLE to drop table '%s'",
 								 relname);
 						if (!(stmt->sequence) &&
 							rel->rd_rel->relkind == RELKIND_SEQUENCE)
-							elog(WARN, "Use DROP SEQUENCE to drop sequence '%s'",
+							elog(ABORT, "Use DROP SEQUENCE to drop sequence '%s'",
 								 relname);
 						heap_close(rel);
 					}
 #ifndef NO_SECURITY
 					if (!pg_ownercheck(userName, relname, RELNAME))
-						elog(WARN, "you do not own class \"%s\"",
+						elog(ABORT, "you do not own class \"%s\"",
 							 relname);
 #endif
 				}
@@ -263,11 +263,11 @@ ProcessUtility(Node * parsetree,
 
 				relname = stmt->relname;
 				if (IsSystemRelationName(relname))
-					elog(WARN, "class \"%s\" is a system catalog",
+					elog(ABORT, "class \"%s\" is a system catalog",
 						 relname);
 #ifndef NO_SECURITY
 				if (!pg_ownercheck(userName, relname, RELNAME))
-					elog(WARN, "you do not own class \"%s\"",
+					elog(ABORT, "you do not own class \"%s\"",
 						 relname);
 #endif
 
@@ -327,7 +327,7 @@ ProcessUtility(Node * parsetree,
 				{
 					relname = strVal(lfirst(i));
 					if (!pg_ownercheck(userName, relname, RELNAME))
-						elog(WARN, "you do not own class \"%s\"",
+						elog(ABORT, "you do not own class \"%s\"",
 							 relname);
 				}
 #endif
@@ -413,7 +413,7 @@ ProcessUtility(Node * parsetree,
 				relname = stmt->object->relname;
 				aclcheck_result = pg_aclcheck(relname, userName, ACL_RU);
 				if (aclcheck_result != ACLCHECK_OK)
-					elog(WARN, "%s: %s", relname, aclcheck_error_strings[aclcheck_result]);
+					elog(ABORT, "%s: %s", relname, aclcheck_error_strings[aclcheck_result]);
 #endif
 				commandTag = "CREATE";
 				CHECK_IF_ABORTED();
@@ -453,11 +453,11 @@ ProcessUtility(Node * parsetree,
 					case INDEX:
 						relname = stmt->name;
 						if (IsSystemRelationName(relname))
-							elog(WARN, "class \"%s\" is a system catalog index",
+							elog(ABORT, "class \"%s\" is a system catalog index",
 								 relname);
 #ifndef NO_SECURITY
 						if (!pg_ownercheck(userName, relname, RELNAME))
-							elog(WARN, "%s: %s", relname, aclcheck_error_strings[ACLCHECK_NOT_OWNER]);
+							elog(ABORT, "%s: %s", relname, aclcheck_error_strings[ACLCHECK_NOT_OWNER]);
 #endif
 						RemoveIndex(relname);
 						break;
@@ -472,7 +472,7 @@ ProcessUtility(Node * parsetree,
 							aclcheck_result = pg_aclcheck(relationName, userName, ACL_RU);
 							if (aclcheck_result != ACLCHECK_OK)
 							{
-								elog(WARN, "%s: %s", relationName, aclcheck_error_strings[aclcheck_result]);
+								elog(ABORT, "%s: %s", relationName, aclcheck_error_strings[aclcheck_result]);
 							}
 #endif
 							RemoveRewriteRule(rulename);
@@ -494,7 +494,7 @@ ProcessUtility(Node * parsetree,
 							ruleName = MakeRetrieveViewRuleName(viewName);
 							relationName = RewriteGetRuleEventRel(ruleName);
 							if (!pg_ownercheck(userName, relationName, RELNAME))
-								elog(WARN, "%s: %s", relationName, aclcheck_error_strings[ACLCHECK_NOT_OWNER]);
+								elog(ABORT, "%s: %s", relationName, aclcheck_error_strings[ACLCHECK_NOT_OWNER]);
 							pfree(ruleName);
 #endif
 							RemoveView(viewName);
@@ -546,7 +546,7 @@ ProcessUtility(Node * parsetree,
 
 		case T_VersionStmt:
 			{
-				elog(WARN, "CREATE VERSION is not currently implemented");
+				elog(ABORT, "CREATE VERSION is not currently implemented");
 			}
 			break;
 
@@ -609,7 +609,7 @@ ProcessUtility(Node * parsetree,
 				filename = stmt->filename;
 				closeAllVfds();
 				if ((fp = AllocateFile(filename, "r")) == NULL)
-					elog(WARN, "LOAD: could not open file %s", filename);
+					elog(ABORT, "LOAD: could not open file %s", filename);
 				FreeFile(fp);
 				load_file(filename);
 			}
@@ -754,7 +754,7 @@ ProcessUtility(Node * parsetree,
 			 *
 			 */
 		default:
-			elog(WARN, "ProcessUtility: command #%d unsupported",
+			elog(ABORT, "ProcessUtility: command #%d unsupported",
 				 nodeTag(parsetree));
 			break;
 	}
diff --git a/src/backend/tcop/variable.c b/src/backend/tcop/variable.c
index 6834c10eb7d..c6fe6244933 100644
--- a/src/backend/tcop/variable.c
+++ b/src/backend/tcop/variable.c
@@ -2,7 +2,7 @@
  * Routines for handling of 'SET var TO',
  *  'SHOW var' and 'RESET var' statements.
  *
- * $Id: variable.c,v 1.24 1997/12/04 23:17:13 thomas Exp $
+ * $Id: variable.c,v 1.25 1998/01/05 03:33:50 momjian Exp $
  *
  */
 
@@ -53,7 +53,7 @@ get_token(char **tok, char **val, const char *str)
 	while (isspace(*str))
 		str++;
 	if (*str == ',' || *str == '=')
-		elog(WARN, "Syntax error near (%s): empty setting", str);
+		elog(ABORT, "Syntax error near (%s): empty setting", str);
 
 	/* end of string? then return NULL */
 	if (!(*str))
@@ -94,7 +94,7 @@ get_token(char **tok, char **val, const char *str)
 	}
 	else if ((val == NULL) || (*str != '='))
 	{
-		elog(WARN, "Syntax error near (%s)", str);
+		elog(ABORT, "Syntax error near (%s)", str);
 	};
 
 	str++;						/* '=': get value */
@@ -105,7 +105,7 @@ get_token(char **tok, char **val, const char *str)
 		str++;
 
 	if (*str == ',' || !(*str))
-		elog(WARN, "Syntax error near (=%s)", str);
+		elog(ABORT, "Syntax error near (=%s)", str);
 
 	start = str;
 
@@ -131,7 +131,7 @@ get_token(char **tok, char **val, const char *str)
 	if (*str == ',')
 		return (++str);
 
-	elog(WARN, "Syntax error near (%s)", str);
+	elog(ABORT, "Syntax error near (%s)", str);
 
 	return str;
 }
@@ -172,10 +172,10 @@ parse_geqo(const char *value)
 
 	rest = get_token(&tok, &val, value);
 	if (tok == NULL)
-		elog(WARN, "Value undefined");
+		elog(ABORT, "Value undefined");
 
 	if ((rest) && (*rest != '\0'))
-		elog(WARN, "Unable to parse '%s'", value);
+		elog(ABORT, "Unable to parse '%s'", value);
 
 	if (strcasecmp(tok, "on") == 0)
 	{
@@ -185,7 +185,7 @@ parse_geqo(const char *value)
 		{
 			geqo_rels = pg_atoi(val, sizeof(int32), '\0');
 			if (geqo_rels <= 1)
-				elog(WARN, "Bad value for # of relations (%s)", val);
+				elog(ABORT, "Bad value for # of relations (%s)", val);
 			PFREE(val);
 		}
 		_use_geqo_ = true;
@@ -194,11 +194,11 @@ parse_geqo(const char *value)
 	else if (strcasecmp(tok, "off") == 0)
 	{
 		if ((val != NULL) && (*val != '\0'))
-			elog(WARN, "%s does not allow a parameter", tok);
+			elog(ABORT, "%s does not allow a parameter", tok);
 		_use_geqo_ = false;
 	}
 	else
-		elog(WARN, "Bad value for GEQO (%s)", value);
+		elog(ABORT, "Bad value for GEQO (%s)", value);
 
 	PFREE(tok);
 	return TRUE;
@@ -242,7 +242,7 @@ parse_r_plans(const char *value)
 	else if (strcasecmp(value, "off") == 0)
 		_use_right_sided_plans_ = false;
 	else
-		elog(WARN, "Bad value for Right-sided Plans (%s)", value);
+		elog(ABORT, "Bad value for Right-sided Plans (%s)", value);
 
 	return TRUE;
 }
@@ -392,7 +392,7 @@ parse_date(const char *value)
 		}
 		else
 		{
-			elog(WARN, "Bad value for date style (%s)", tok);
+			elog(ABORT, "Bad value for date style (%s)", tok);
 		}
 		PFREE(tok);
 	}
@@ -490,7 +490,7 @@ parse_timezone(const char *value)
 		strcpy(tzbuf, "TZ=");
 		strcat(tzbuf, tok);
 		if (putenv(tzbuf) != 0)
-			elog(WARN, "Unable to set TZ environment variable to %s", tok);
+			elog(ABORT, "Unable to set TZ environment variable to %s", tok);
 
 		tzset();
 		PFREE(tok);
@@ -528,13 +528,13 @@ reset_timezone()
 		strcpy(tzbuf, "TZ=");
 		strcat(tzbuf, TZvalue);
 		if (putenv(tzbuf) != 0)
-			elog(WARN, "Unable to set TZ environment variable to %s", TZvalue);
+			elog(ABORT, "Unable to set TZ environment variable to %s", TZvalue);
 	}
 	else
 	{
 		strcpy(tzbuf, "=");
 		if (putenv(tzbuf) != 0)
-			elog(WARN, "Unable to clear TZ environment variable", NULL);
+			elog(ABORT, "Unable to clear TZ environment variable", NULL);
 	}
 	tzset();
 
diff --git a/src/backend/utils/adt/acl.c b/src/backend/utils/adt/acl.c
index f855c6cabad..55be65d2892 100644
--- a/src/backend/utils/adt/acl.c
+++ b/src/backend/utils/adt/acl.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.21 1997/12/29 05:13:57 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.22 1998/01/05 03:33:53 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -54,7 +54,7 @@ getid(char *s, char *n)
 	for (id = s, len = 0; isalnum(*s) || *s == '_'; ++len, ++s)
 		;
 	if (len > sizeof(NameData))
-		elog(WARN, "getid: identifier cannot be >%d characters",
+		elog(ABORT, "getid: identifier cannot be >%d characters",
 			 sizeof(NameData));
 	if (len > 0)
 		memmove(n, id, len);
@@ -102,11 +102,11 @@ aclparse(char *s, AclItem *aip, unsigned *modechg)
 		}
 		else if (strcmp(name, ACL_IDTYPE_UID_KEYWORD))
 		{
-			elog(WARN, "aclparse: bad keyword, must be [group|user]");
+			elog(ABORT, "aclparse: bad keyword, must be [group|user]");
 		}
 		s = getid(s, name);		/* move s to the name beyond the keyword */
 		if (name[0] == '\0')
-			elog(WARN, "aclparse: a name must follow the [group|user] keyword");
+			elog(ABORT, "aclparse: a name must follow the [group|user] keyword");
 	}
 	if (name[0] == '\0')
 		aip->ai_idtype = ACL_IDTYPE_WORLD;
@@ -123,7 +123,7 @@ aclparse(char *s, AclItem *aip, unsigned *modechg)
 			*modechg = ACL_MODECHG_EQL;
 			break;
 		default:
-			elog(WARN, "aclparse: mode change flag must use \"%s\"",
+			elog(ABORT, "aclparse: mode change flag must use \"%s\"",
 				 ACL_MODECHG_STR);
 	}
 
@@ -145,7 +145,7 @@ aclparse(char *s, AclItem *aip, unsigned *modechg)
 				aip->ai_mode |= ACL_RU;
 				break;
 			default:
-				elog(WARN, "aclparse: mode flags must use \"%s\"",
+				elog(ABORT, "aclparse: mode flags must use \"%s\"",
 					 ACL_MODE_STR);
 		}
 	}
@@ -156,7 +156,7 @@ aclparse(char *s, AclItem *aip, unsigned *modechg)
 			htp = SearchSysCacheTuple(USENAME, PointerGetDatum(name),
 									  0, 0, 0);
 			if (!HeapTupleIsValid(htp))
-				elog(WARN, "aclparse: non-existent user \"%s\"", name);
+				elog(ABORT, "aclparse: non-existent user \"%s\"", name);
 			aip->ai_id = ((Form_pg_user) GETSTRUCT(htp))->usesysid;
 			break;
 		case ACL_IDTYPE_GID:
@@ -188,10 +188,10 @@ makeacl(int n)
 	Size		size;
 
 	if (n < 0)
-		elog(WARN, "makeacl: invalid size: %d\n", n);
+		elog(ABORT, "makeacl: invalid size: %d\n", n);
 	size = ACL_N_SIZE(n);
 	if (!(new_acl = (Acl *) palloc(size)))
-		elog(WARN, "makeacl: palloc failed on %d\n", size);
+		elog(ABORT, "makeacl: palloc failed on %d\n", size);
 	MemSet((char *) new_acl, 0, size);
 	new_acl->size = size;
 	new_acl->ndim = 1;
@@ -216,18 +216,18 @@ aclitemin(char *s)
 	AclItem    *aip;
 
 	if (!s)
-		elog(WARN, "aclitemin: null string");
+		elog(ABORT, "aclitemin: null string");
 
 	aip = (AclItem *) palloc(sizeof(AclItem));
 	if (!aip)
-		elog(WARN, "aclitemin: palloc failed");
+		elog(ABORT, "aclitemin: palloc failed");
 	s = aclparse(s, aip, &modechg);
 	if (modechg != ACL_MODECHG_EQL)
-		elog(WARN, "aclitemin: cannot accept anything but = ACLs");
+		elog(ABORT, "aclitemin: cannot accept anything but = ACLs");
 	while (isspace(*s))
 		++s;
 	if (*s)
-		elog(WARN, "aclitemin: extra garbage at end of specification");
+		elog(ABORT, "aclitemin: extra garbage at end of specification");
 	return (aip);
 }
 
@@ -257,7 +257,7 @@ aclitemout(AclItem *aip)
 
 	p = out = palloc(strlen("group =arwR ") + 1 + NAMEDATALEN);
 	if (!out)
-		elog(WARN, "aclitemout: palloc failed");
+		elog(ABORT, "aclitemout: palloc failed");
 	*p = '\0';
 
 	switch (aip->ai_idtype)
@@ -296,7 +296,7 @@ aclitemout(AclItem *aip)
 		case ACL_IDTYPE_WORLD:
 			break;
 		default:
-			elog(WARN, "aclitemout: bad ai_idtype: %d", aip->ai_idtype);
+			elog(ABORT, "aclitemout: bad ai_idtype: %d", aip->ai_idtype);
 			break;
 	}
 	while (*p)
@@ -420,7 +420,7 @@ aclinsert3(Acl *old_acl, AclItem *mod_aip, unsigned modechg)
 		new_aip = ACL_DAT(new_acl);
 		if (dst == 0)
 		{						/* start */
-			elog(WARN, "aclinsert3: insertion before world ACL??");
+			elog(ABORT, "aclinsert3: insertion before world ACL??");
 		}
 		else if (dst >= num)
 		{						/* end */
@@ -534,7 +534,7 @@ aclremove(Acl *old_acl, AclItem *mod_aip)
 		new_aip = ACL_DAT(new_acl);
 		if (dst == 0)
 		{						/* start */
-			elog(WARN, "aclremove: removal of the world ACL??");
+			elog(ABORT, "aclremove: removal of the world ACL??");
 		}
 		else if (dst == old_num - 1)
 		{						/* end */
diff --git a/src/backend/utils/adt/arrayfuncs.c b/src/backend/utils/adt/arrayfuncs.c
index 0b352fd309f..9ce02de5409 100644
--- a/src/backend/utils/adt/arrayfuncs.c
+++ b/src/backend/utils/adt/arrayfuncs.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.21 1997/12/06 22:57:10 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.22 1998/01/05 03:33:54 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -145,14 +145,14 @@ array_in(char *string,			/* input array in external form */
 			}
 			for (q = p; isdigit(*q); q++);
 			if (*q != ']')
-				elog(WARN, "array_in: missing ']' in array declaration");
+				elog(ABORT, "array_in: missing ']' in array declaration");
 			*q = '\0';
 			dim[ndim] = atoi(p);
 			if ((dim[ndim] < 0) || (lBound[ndim] < 0))
-				elog(WARN, "array_in: array dimensions need to be positive");
+				elog(ABORT, "array_in: array dimensions need to be positive");
 			dim[ndim] = dim[ndim] - lBound[ndim] + 1;
 			if (dim[ndim] < 0)
-				elog(WARN, "array_in: upper_bound cannot be < lower_bound");
+				elog(ABORT, "array_in: upper_bound cannot be < lower_bound");
 			p = q + 1;
 			ndim++;
 		}
@@ -171,7 +171,7 @@ array_in(char *string,			/* input array in external form */
 		}
 		else
 		{
-			elog(WARN, "array_in: Need to specify dimension");
+			elog(ABORT, "array_in: Need to specify dimension");
 		}
 	}
 	else
@@ -179,7 +179,7 @@ array_in(char *string,			/* input array in external form */
 		while (isspace(*p))
 			p++;
 		if (strncmp(p, ASSGN, strlen(ASSGN)))
-			elog(WARN, "array_in: missing assignment operator");
+			elog(ABORT, "array_in: missing assignment operator");
 		p += strlen(ASSGN);
 		while (isspace(*p))
 			p++;
@@ -249,7 +249,7 @@ array_in(char *string,			/* input array in external form */
 		memmove((char *) ARR_LBOUND(retval), (char *) lBound, ndim * sizeof(int));
 		memmove(ARR_DATA_PTR(retval), dataPtr, bytes);
 #endif
-		elog(WARN, "large object arrays not supported");
+		elog(ABORT, "large object arrays not supported");
 	}
 	pfree(string_save);
 	return ((char *) retval);
@@ -302,7 +302,7 @@ _ArrayCount(char *str, int dim[], int typdelim)
 					 * Signal a premature end of the string.  DZ -
 					 * 2-9-1996
 					 */
-					elog(WARN, "malformed array constant: %s", str);
+					elog(ABORT, "malformed array constant: %s", str);
 					break;
 				case '\"':
 					scanning_string = !scanning_string;
@@ -425,7 +425,7 @@ _ReadArrayStr(char *arrayStr,
 						p++;
 						nest_level++;
 						if (nest_level > ndim)
-							elog(WARN, "array_in: illformed array constant");
+							elog(ABORT, "array_in: illformed array constant");
 						indx[nest_level - 1] = 0;
 						indx[ndim - 1] = 0;
 					}
@@ -460,7 +460,7 @@ _ReadArrayStr(char *arrayStr,
 		}
 		*q = '\0';
 		if (i >= nitems)
-			elog(WARN, "array_in: illformed array constant");
+			elog(ABORT, "array_in: illformed array constant");
 		values[i] = (*inputproc) (p, typelem);
 		p = ++q;
 		if (!eoArray)
@@ -544,27 +544,27 @@ _ReadLOArray(char *str,
 		if (!strcmp(word, "-chunk"))
 		{
 			if (str == NULL)
-				elog(WARN, "array_in: access pattern file required");
+				elog(ABORT, "array_in: access pattern file required");
 			str = _AdvanceBy1word(str, &accessfile);
 		}
 		else if (!strcmp(word, "-noreorg"))
 		{
 			if (str == NULL)
-				elog(WARN, "array_in: chunk file required");
+				elog(ABORT, "array_in: chunk file required");
 			str = _AdvanceBy1word(str, &chunkfile);
 		}
 		else
 		{
-			elog(WARN, "usage: <input file> -chunk DEFAULT/<access pattern file> -invert/-native [-noreorg <chunk file>]");
+			elog(ABORT, "usage: <input file> -chunk DEFAULT/<access pattern file> -invert/-native [-noreorg <chunk file>]");
 		}
 	}
 
 	if (inputfile == NULL)
-		elog(WARN, "array_in: missing file name");
+		elog(ABORT, "array_in: missing file name");
 	lobjId = lo_creat(0);
 	*fd = lo_open(lobjId, INV_READ);
 	if (*fd < 0)
-		elog(WARN, "Large object create failed");
+		elog(ABORT, "Large object create failed");
 	retStr = inputfile;
 	*nbytes = strlen(retStr) + 2;
 
@@ -573,7 +573,7 @@ _ReadLOArray(char *str,
 		FILE	   *afd;
 
 		if ((afd = AllocateFile(accessfile, "r")) == NULL)
-			elog(WARN, "unable to open access pattern file");
+			elog(ABORT, "unable to open access pattern file");
 		*chunkFlag = true;
 		retStr = _ChunkArray(*fd, afd, ndim, dim, baseSize, nbytes,
 							 chunkfile);
@@ -836,7 +836,7 @@ array_ref(ArrayType *array,
 		 * fixed length arrays -- these are assumed to be 1-d
 		 */
 		if (indx[0] * elmlen > arraylen)
-			elog(WARN, "array_ref: array bound exceeded");
+			elog(ABORT, "array_ref: array bound exceeded");
 		retval = (char *) array + indx[0] * elmlen;
 		return _ArrayCast(retval, reftype, elmlen);
 	}
@@ -964,7 +964,7 @@ array_clip(ArrayType *array,
 
 	for (i = 0; i < n; i++)
 		if (lowerIndx[i] > upperIndx[i])
-			elog(WARN, "lowerIndex cannot be larger than upperIndx");
+			elog(ABORT, "lowerIndex cannot be larger than upperIndx");
 	mda_get_range(n, span, lowerIndx, upperIndx);
 
 	if (ARR_IS_LO(array))
@@ -980,7 +980,7 @@ array_clip(ArrayType *array,
 					rsize;
 
 		if (len < 0)
-			elog(WARN, "array_clip: array of variable length objects not supported");
+			elog(ABORT, "array_clip: array of variable length objects not supported");
 #ifdef LOARRAY
 		lo_name = (char *) ARR_DATA_PTR(array);
 		if ((fd = LOopen(lo_name, ARR_IS_INV(array) ? INV_READ : O_RDONLY)) < 0)
@@ -1098,7 +1098,7 @@ array_set(ArrayType *array,
 		 * fixed length arrays -- these are assumed to be 1-d
 		 */
 		if (indx[0] * elmlen > arraylen)
-			elog(WARN, "array_ref: array bound exceeded");
+			elog(ABORT, "array_ref: array bound exceeded");
 		pos = (char *) array + indx[0] * elmlen;
 		ArrayCastAndSet(dataPtr, (bool) reftype, elmlen, pos);
 		return ((char *) array);
@@ -1110,7 +1110,7 @@ array_set(ArrayType *array,
 
 	if (!SanityCheckInput(ndim, n, dim, lb, indx))
 	{
-		elog(WARN, "array_set: array bound exceeded");
+		elog(ABORT, "array_set: array bound exceeded");
 		return ((char *) array);
 	}
 	offset = GetOffset(n, dim, lb, indx);
@@ -1225,7 +1225,7 @@ array_assgn(ArrayType *array,
 	if (array == (ArrayType *) NULL)
 		RETURN_NULL;
 	if (len < 0)
-		elog(WARN, "array_assgn:updates on arrays of variable length elements not allowed");
+		elog(ABORT, "array_assgn:updates on arrays of variable length elements not allowed");
 
 	dim = ARR_DIMS(array);
 	lb = ARR_LBOUND(array);
@@ -1239,7 +1239,7 @@ array_assgn(ArrayType *array,
 
 	for (i = 0; i < n; i++)
 		if (lowerIndx[i] > upperIndx[i])
-			elog(WARN, "lowerIndex larger than upperIndx");
+			elog(ABORT, "lowerIndex larger than upperIndx");
 
 	if (ARR_IS_LO(array))
 	{
@@ -1315,7 +1315,7 @@ system_cache_lookup(Oid element_type,
 
 	if (!HeapTupleIsValid(typeTuple))
 	{
-		elog(WARN, "array_out: Cache lookup failed for type %d\n",
+		elog(ABORT, "array_out: Cache lookup failed for type %d\n",
 			 element_type);
 		return;
 	}
@@ -1350,7 +1350,7 @@ _ArrayCast(char *value, bool byval, int len)
 			case 4:
 				return ((Datum) *(int32 *) value);
 			default:
-				elog(WARN, "array_ref: byval and elt len > 4!");
+				elog(ABORT, "array_ref: byval and elt len > 4!");
 				break;
 		}
 	}
@@ -1734,7 +1734,7 @@ _array_newLO(int *fd, int flag)
 	strcpy(saveName, p);
 #ifdef LOARRAY
 	if ((*fd = LOcreat(saveName, 0600, flag)) < 0)
-		elog(WARN, "Large object create failed");
+		elog(ABORT, "Large object create failed");
 #endif
 	return (p);
 }
diff --git a/src/backend/utils/adt/bool.c b/src/backend/utils/adt/bool.c
index 084e22c2f8c..dafb46cd3e0 100644
--- a/src/backend/utils/adt/bool.c
+++ b/src/backend/utils/adt/bool.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/bool.c,v 1.11 1997/11/07 06:30:20 thomas Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/bool.c,v 1.12 1998/01/05 03:33:55 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -72,7 +72,7 @@ boolin(char *b)
 			break;
 	}
 
-	elog(WARN,"Bad boolean external representation '%s'", b);
+	elog(ABORT,"Bad boolean external representation '%s'", b);
 	/* not reached */
 	return (FALSE);
 } /* boolin() */
diff --git a/src/backend/utils/adt/cash.c b/src/backend/utils/adt/cash.c
index bec369d0fb4..e70cb036455 100644
--- a/src/backend/utils/adt/cash.c
+++ b/src/backend/utils/adt/cash.c
@@ -9,7 +9,7 @@
  * workings can be found in the book "Software Solutions in C" by
  * Dale Schumacher, Academic Press, ISBN: 0-12-632360-7.
  *
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/cash.c,v 1.18 1997/10/25 05:11:06 thomas Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/cash.c,v 1.19 1998/01/05 03:33:56 momjian Exp $
  */
 
 #include <stdio.h>
@@ -156,10 +156,10 @@ printf( "cashin- precision %d; decimal %c; thousands %c; currency %c; positive %
 		s++;
 
 	if (*s != '\0')
-		elog(WARN, "Bad money external representation %s", str);
+		elog(ABORT, "Bad money external representation %s", str);
 
 	if (!PointerIsValid(result = PALLOCTYPE(Cash)))
-		elog(WARN, "Memory allocation failed, can't input cash '%s'", str);
+		elog(ABORT, "Memory allocation failed, can't input cash '%s'", str);
 
 	*result = (value * sgn);
 
@@ -257,7 +257,7 @@ cash_out(Cash *in_value)
 	if (minus)
 	{
 		if (!PointerIsValid(result = PALLOC(CASH_BUFSZ + 2 - count + strlen(nsymbol))))
-			elog(WARN, "Memory allocation failed, can't output cash", NULL);
+			elog(ABORT, "Memory allocation failed, can't output cash", NULL);
 
 		/* Position code of 0 means use parens */
 		if (convention == 0)
@@ -270,7 +270,7 @@ cash_out(Cash *in_value)
 	else
 	{
 		if (!PointerIsValid(result = PALLOC(CASH_BUFSZ + 2 - count)))
-			elog(WARN, "Memory allocation failed, can't output cash", NULL);
+			elog(ABORT, "Memory allocation failed, can't output cash", NULL);
 
 		strcpy(result, buf + count);
 	}
@@ -346,7 +346,7 @@ cash_pl(Cash *c1, Cash *c2)
 		return (NULL);
 
 	if (!PointerIsValid(result = PALLOCTYPE(Cash)))
-		elog(WARN, "Memory allocation failed, can't add cash", NULL);
+		elog(ABORT, "Memory allocation failed, can't add cash", NULL);
 
 	*result = (*c1 + *c2);
 
@@ -366,7 +366,7 @@ cash_mi(Cash *c1, Cash *c2)
 		return (NULL);
 
 	if (!PointerIsValid(result = PALLOCTYPE(Cash)))
-		elog(WARN, "Memory allocation failed, can't subtract cash", NULL);
+		elog(ABORT, "Memory allocation failed, can't subtract cash", NULL);
 
 	*result = (*c1 - *c2);
 
@@ -386,7 +386,7 @@ cash_mul_flt8(Cash *c, float8 *f)
 		return (NULL);
 
 	if (!PointerIsValid(result = PALLOCTYPE(Cash)))
-		elog(WARN, "Memory allocation failed, can't multiply cash", NULL);
+		elog(ABORT, "Memory allocation failed, can't multiply cash", NULL);
 
 	*result = ((*f) * (*c));
 
@@ -419,10 +419,10 @@ cash_div_flt8(Cash *c, float8 *f)
 		return (NULL);
 
 	if (!PointerIsValid(result = PALLOCTYPE(Cash)))
-		elog(WARN, "Memory allocation failed, can't divide cash", NULL);
+		elog(ABORT, "Memory allocation failed, can't divide cash", NULL);
 
 	if (*f == 0.0)
-		elog(WARN, "cash_div:  divide by 0.0 error");
+		elog(ABORT, "cash_div:  divide by 0.0 error");
 
 	*result = rint(*c / *f);
 
@@ -441,7 +441,7 @@ cash_mul_flt4(Cash *c, float4 *f)
 		return (NULL);
 
 	if (!PointerIsValid(result = PALLOCTYPE(Cash)))
-		elog(WARN, "Memory allocation failed, can't multiply cash", NULL);
+		elog(ABORT, "Memory allocation failed, can't multiply cash", NULL);
 
 	*result = ((*f) * (*c));
 
@@ -474,10 +474,10 @@ cash_div_flt4(Cash *c, float4 *f)
 		return (NULL);
 
 	if (!PointerIsValid(result = PALLOCTYPE(Cash)))
-		elog(WARN, "Memory allocation failed, can't divide cash", NULL);
+		elog(ABORT, "Memory allocation failed, can't divide cash", NULL);
 
 	if (*f == 0.0)
-		elog(WARN, "cash_div:  divide by 0.0 error");
+		elog(ABORT, "cash_div:  divide by 0.0 error");
 
 	*result = rint(*c / *f);
 
@@ -497,7 +497,7 @@ cash_mul_int4(Cash *c, int4 i)
 		return (NULL);
 
 	if (!PointerIsValid(result = PALLOCTYPE(Cash)))
-		elog(WARN, "Memory allocation failed, can't multiply cash", NULL);
+		elog(ABORT, "Memory allocation failed, can't multiply cash", NULL);
 
 	*result = ((i) * (*c));
 
@@ -530,10 +530,10 @@ cash_div_int4(Cash *c, int4 i)
 		return (NULL);
 
 	if (!PointerIsValid(result = PALLOCTYPE(Cash)))
-		elog(WARN, "Memory allocation failed, can't divide cash", NULL);
+		elog(ABORT, "Memory allocation failed, can't divide cash", NULL);
 
 	if (i == 0)
-		elog(WARN, "cash_idiv:  divide by 0 error");
+		elog(ABORT, "cash_idiv:  divide by 0 error");
 
 	*result = rint(*c / i);
 
@@ -553,7 +553,7 @@ cash_mul_int2(Cash *c, int2 s)
 		return (NULL);
 
 	if (!PointerIsValid(result = PALLOCTYPE(Cash)))
-		elog(WARN, "Memory allocation failed, can't multiply cash", NULL);
+		elog(ABORT, "Memory allocation failed, can't multiply cash", NULL);
 
 	*result = ((s) * (*c));
 
@@ -586,10 +586,10 @@ cash_div_int2(Cash *c, int2 s)
 		return (NULL);
 
 	if (!PointerIsValid(result = PALLOCTYPE(Cash)))
-		elog(WARN, "Memory allocation failed, can't divide cash", NULL);
+		elog(ABORT, "Memory allocation failed, can't divide cash", NULL);
 
 	if (s == 0)
-		elog(WARN, "cash_div:  divide by 0 error");
+		elog(ABORT, "cash_div:  divide by 0 error");
 
 	*result = rint(*c / s);
 
@@ -609,7 +609,7 @@ cashlarger(Cash *c1, Cash *c2)
 		return (NULL);
 
 	if (!PointerIsValid(result = PALLOCTYPE(Cash)))
-		elog(WARN, "Memory allocation failed, can't return larger cash", NULL);
+		elog(ABORT, "Memory allocation failed, can't return larger cash", NULL);
 
 	*result = ((*c1 > *c2) ? *c1 : *c2);
 
@@ -629,7 +629,7 @@ cashsmaller(Cash *c1, Cash *c2)
 		return (NULL);
 
 	if (!PointerIsValid(result = PALLOCTYPE(Cash)))
-		elog(WARN, "Memory allocation failed, can't return smaller cash", NULL);
+		elog(ABORT, "Memory allocation failed, can't return smaller cash", NULL);
 
 	*result = ((*c1 < *c2) ? *c1 : *c2);
 
diff --git a/src/backend/utils/adt/chunk.c b/src/backend/utils/adt/chunk.c
index 0fc431314cb..9ae09c8d4ec 100644
--- a/src/backend/utils/adt/chunk.c
+++ b/src/backend/utils/adt/chunk.c
@@ -6,7 +6,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/chunk.c,v 1.11 1997/12/06 22:57:12 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/chunk.c,v 1.12 1998/01/05 03:33:58 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -104,7 +104,7 @@ _ChunkArray(int fd,
 	else
 		cfd = LOopen(chunkfile, O_RDONLY);
 	if (cfd < 0)
-		elog(WARN, "Unable to open chunk file");
+		elog(ABORT, "Unable to open chunk file");
 #endif
 
 	strcpy(cInfo.lo_name, chunkfile);
@@ -148,11 +148,11 @@ GetChunkSize(FILE *fd,
 	 */
 	fscanf(fd, "%d", &N);
 	if (N > MAXPAT)
-		elog(WARN, "array_in: too many access pattern elements");
+		elog(ABORT, "array_in: too many access pattern elements");
 	for (i = 0; i < N; i++)
 		for (j = 0; j < ndim + 1; j++)
 			if (fscanf(fd, "%d ", &(A[i][j])) == EOF)
-				elog(WARN, "array_in: bad access pattern input");
+				elog(ABORT, "array_in: bad access pattern input");
 
 	/*
 	 * estimate chunk size
@@ -413,12 +413,12 @@ seek_and_read(int pos, int size, char buff[], int fp, int from)
 
 	/* Assuming only one file */
 	if (lo_lseek(fp, pos, from) < 0)
-		elog(WARN, "File seek error");
+		elog(ABORT, "File seek error");
 #ifdef LOARRAY
 	v = (struct varlena *) LOread(fp, size);
 #endif
 	if (VARSIZE(v) - VARHDRSZ < size)
-		elog(WARN, "File read error");
+		elog(ABORT, "File read error");
 	memmove(buff, VARDATA(v), size);
 	pfree(v);
 	return (1);
diff --git a/src/backend/utils/adt/date.c b/src/backend/utils/adt/date.c
index 5f76ffc8fa3..92903f6e8b9 100644
--- a/src/backend/utils/adt/date.c
+++ b/src/backend/utils/adt/date.c
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/date.c,v 1.19 1997/09/20 16:17:45 thomas Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/date.c,v 1.20 1998/01/05 03:33:59 momjian Exp $
  *
  * NOTES
  *	 This code is actually (almost) unused.
@@ -129,14 +129,14 @@ reltimein(char *str)
 	char		lowstr[MAXDATELEN + 1];
 
 	if (!PointerIsValid(str))
-		elog(WARN, "Bad (null) date external representation", NULL);
+		elog(ABORT, "Bad (null) date external representation", NULL);
 
 	if (strlen(str) > MAXDATELEN)
-		elog(WARN, "Bad (length) reltime external representation '%s'", str);
+		elog(ABORT, "Bad (length) reltime external representation '%s'", str);
 
 	if ((ParseDateTime(str, lowstr, field, ftype, MAXDATEFIELDS, &nf) != 0)
 		|| (DecodeDateDelta(field, ftype, nf, &dtype, tm, &fsec) != 0))
-		elog(WARN, "Bad reltime external representation '%s'", str);
+		elog(ABORT, "Bad reltime external representation '%s'", str);
 
 #ifdef DATEDEBUG
 	printf("reltimein- %d fields are type %d (DTK_DATE=%d)\n", nf, dtype, DTK_DATE);
@@ -153,7 +153,7 @@ reltimein(char *str)
 			return (INVALID_RELTIME);
 	}
 
-	elog(WARN, "Bad reltime (internal coding error) '%s'", str);
+	elog(ABORT, "Bad reltime (internal coding error) '%s'", str);
 	return (INVALID_RELTIME);
 }								/* reltimein() */
 
@@ -361,7 +361,7 @@ reltime_timespan(RelativeTime reltime)
 				month;
 
 	if (!PointerIsValid(result = PALLOCTYPE(TimeSpan)))
-		elog(WARN, "Memory allocation failed, can't convert reltime to timespan", NULL);
+		elog(ABORT, "Memory allocation failed, can't convert reltime to timespan", NULL);
 
 	switch (reltime)
 	{
diff --git a/src/backend/utils/adt/datetime.c b/src/backend/utils/adt/datetime.c
index 065da7a28e1..ecaa04044c1 100644
--- a/src/backend/utils/adt/datetime.c
+++ b/src/backend/utils/adt/datetime.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/datetime.c,v 1.18 1997/12/23 19:23:07 thomas Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/datetime.c,v 1.19 1998/01/05 03:34:00 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -71,14 +71,14 @@ date_in(char *str)
 	char		lowstr[MAXDATELEN + 1];
 
 	if (!PointerIsValid(str))
-		elog(WARN, "Bad (null) date external representation", NULL);
+		elog(ABORT, "Bad (null) date external representation", NULL);
 
 #ifdef DATEDEBUG
 	printf("date_in- input string is %s\n", str);
 #endif
 	if ((ParseDateTime(str, lowstr, field, ftype, MAXDATEFIELDS, &nf) != 0)
 	 || (DecodeDateTime(field, ftype, nf, &dtype, tm, &fsec, &tzp) != 0))
-		elog(WARN, "Bad date external representation %s", str);
+		elog(ABORT, "Bad date external representation %s", str);
 
 	switch (dtype)
 	{
@@ -96,15 +96,15 @@ date_in(char *str)
 			break;
 
 		default:
-			elog(WARN, "Unrecognized date external representation %s", str);
+			elog(ABORT, "Unrecognized date external representation %s", str);
 	}
 
 	if (tm->tm_year < 0 || tm->tm_year > 32767)
-		elog(WARN, "date_in: year must be limited to values 0 through 32767 in '%s'", str);
+		elog(ABORT, "date_in: year must be limited to values 0 through 32767 in '%s'", str);
 	if (tm->tm_mon < 1 || tm->tm_mon > 12)
-		elog(WARN, "date_in: month must be limited to values 1 through 12 in '%s'", str);
+		elog(ABORT, "date_in: month must be limited to values 1 through 12 in '%s'", str);
 	if (tm->tm_mday < 1 || tm->tm_mday > day_tab[isleap(tm->tm_year)][tm->tm_mon - 1])
-		elog(WARN, "date_in: day must be limited to values 1 through %d in '%s'",
+		elog(ABORT, "date_in: day must be limited to values 1 through %d in '%s'",
 			 day_tab[isleap(tm->tm_year)][tm->tm_mon - 1], str);
 
 	date = (date2j(tm->tm_year, tm->tm_mon, tm->tm_mday) - date2j(2000, 1, 1));
@@ -239,7 +239,7 @@ date_datetime(DateADT dateVal)
 	result = PALLOCTYPE(DateTime);
 
 	if (date2tm(dateVal, &tz, tm, &fsec, &tzn) != 0)
-		elog(WARN, "Unable to convert date to datetime", NULL);
+		elog(ABORT, "Unable to convert date to datetime", NULL);
 
 #ifdef DATEDEBUG
 	printf("date_datetime- date is %d.%02d.%02d\n", tm->tm_year, tm->tm_mon, tm->tm_mday);
@@ -247,7 +247,7 @@ date_datetime(DateADT dateVal)
 #endif
 
 	if (tm2datetime(tm, fsec, &tz, result) != 0)
-		elog(WARN, "Datetime out of range", NULL);
+		elog(ABORT, "Datetime out of range", NULL);
 
 	return (result);
 } /* date_datetime() */
@@ -267,10 +267,10 @@ datetime_date(DateTime *datetime)
 	char	   *tzn;
 
 	if (!PointerIsValid(datetime))
-		elog(WARN, "Unable to convert null datetime to date", NULL);
+		elog(ABORT, "Unable to convert null datetime to date", NULL);
 
 	if (DATETIME_NOT_FINITE(*datetime))
-		elog(WARN, "Unable to convert datetime to date", NULL);
+		elog(ABORT, "Unable to convert datetime to date", NULL);
 
 	if (DATETIME_IS_EPOCH(*datetime))
 	{
@@ -285,7 +285,7 @@ datetime_date(DateTime *datetime)
 	else
 	{
 		if (datetime2tm(*datetime, &tz, tm, &fsec, &tzn) != 0)
-			elog(WARN, "Unable to convert datetime to date", NULL);
+			elog(ABORT, "Unable to convert datetime to date", NULL);
 	}
 
 	result = (date2j(tm->tm_year, tm->tm_mon, tm->tm_mday) - date2j(2000, 1, 1));
@@ -310,7 +310,7 @@ abstime_date(AbsoluteTime abstime)
 		case INVALID_ABSTIME:
 		case NOSTART_ABSTIME:
 		case NOEND_ABSTIME:
-			elog(WARN, "Unable to convert reserved abstime value to date", NULL);
+			elog(ABORT, "Unable to convert reserved abstime value to date", NULL);
 
 			/*
 			 * pretend to drop through to make compiler think that result
@@ -440,18 +440,18 @@ time_in(char *str)
 	int			ftype[MAXDATEFIELDS];
 
 	if (!PointerIsValid(str))
-		elog(WARN, "Bad (null) time external representation", NULL);
+		elog(ABORT, "Bad (null) time external representation", NULL);
 
 	if ((ParseDateTime(str, lowstr, field, ftype, MAXDATEFIELDS, &nf) != 0)
 		|| (DecodeTimeOnly(field, ftype, nf, &dtype, tm, &fsec) != 0))
-		elog(WARN, "Bad time external representation '%s'", str);
+		elog(ABORT, "Bad time external representation '%s'", str);
 
 	if ((tm->tm_hour < 0) || (tm->tm_hour > 23))
-		elog(WARN, "Hour must be limited to values 0 through 23 in '%s'", str);
+		elog(ABORT, "Hour must be limited to values 0 through 23 in '%s'", str);
 	if ((tm->tm_min < 0) || (tm->tm_min > 59))
-		elog(WARN, "Minute must be limited to values 0 through 59 in '%s'", str);
+		elog(ABORT, "Minute must be limited to values 0 through 59 in '%s'", str);
 	if ((tm->tm_sec < 0) || ((tm->tm_sec + fsec) >= 60))
-		elog(WARN, "Second must be limited to values 0 through < 60 in '%s'", str);
+		elog(ABORT, "Second must be limited to values 0 through < 60 in '%s'", str);
 
 	time = PALLOCTYPE(TimeADT);
 
@@ -565,10 +565,10 @@ datetime_time(DateTime *datetime)
 	char	   *tzn;
 
 	if (!PointerIsValid(datetime))
-		elog(WARN, "Unable to convert null datetime to date", NULL);
+		elog(ABORT, "Unable to convert null datetime to date", NULL);
 
 	if (DATETIME_NOT_FINITE(*datetime))
-		elog(WARN, "Unable to convert datetime to date", NULL);
+		elog(ABORT, "Unable to convert datetime to date", NULL);
 
 	if (DATETIME_IS_EPOCH(*datetime))
 	{
@@ -583,7 +583,7 @@ datetime_time(DateTime *datetime)
 	else
 	{
 		if (datetime2tm(*datetime, &tz, tm, &fsec, &tzn) != 0)
-			elog(WARN, "Unable to convert datetime to date", NULL);
+			elog(ABORT, "Unable to convert datetime to date", NULL);
 	}
 
 	result = PALLOCTYPE(TimeADT);
diff --git a/src/backend/utils/adt/datum.c b/src/backend/utils/adt/datum.c
index b1045765575..f7cee89aeb8 100644
--- a/src/backend/utils/adt/datum.c
+++ b/src/backend/utils/adt/datum.c
@@ -6,7 +6,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/datum.c,v 1.7 1997/09/08 02:30:35 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/datum.c,v 1.8 1998/01/05 03:34:01 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -61,7 +61,7 @@ datumGetSize(Datum value, Oid type, bool byVal, Size len)
 		}
 		else
 		{
-			elog(WARN,
+			elog(ABORT,
 				 "datumGetSize: Error: type=%ld, byVaL with len=%d",
 				 (long) type, len);
 		}
@@ -78,7 +78,7 @@ datumGetSize(Datum value, Oid type, bool byVal, Size len)
 			s = (struct varlena *) DatumGetPointer(value);
 			if (!PointerIsValid(s))
 			{
-				elog(WARN,
+				elog(ABORT,
 					 "datumGetSize: Invalid Datum Pointer");
 			}
 			size = (Size) VARSIZE(s);
@@ -132,7 +132,7 @@ datumCopy(Datum value, Oid type, bool byVal, Size len)
 		s = (char *) palloc(realSize);
 		if (s == NULL)
 		{
-			elog(WARN, "datumCopy: out of memory\n");
+			elog(ABORT, "datumCopy: out of memory\n");
 		}
 		memmove(s, DatumGetPointer(value), realSize);
 		res = (Datum) s;
diff --git a/src/backend/utils/adt/dt.c b/src/backend/utils/adt/dt.c
index 3e9290a815c..ff3ac875a11 100644
--- a/src/backend/utils/adt/dt.c
+++ b/src/backend/utils/adt/dt.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/dt.c,v 1.47 1997/12/23 19:26:31 thomas Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/dt.c,v 1.48 1998/01/05 03:34:03 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -109,11 +109,11 @@ datetime_in(char *str)
 	char		lowstr[MAXDATELEN + 1];
 
 	if (!PointerIsValid(str))
-		elog(WARN, "Bad (null) datetime external representation", NULL);
+		elog(ABORT, "Bad (null) datetime external representation", NULL);
 
 	if ((ParseDateTime(str, lowstr, field, ftype, MAXDATEFIELDS, &nf) != 0)
 	  || (DecodeDateTime(field, ftype, nf, &dtype, tm, &fsec, &tz) != 0))
-		elog(WARN, "Bad datetime external representation '%s'", str);
+		elog(ABORT, "Bad datetime external representation '%s'", str);
 
 	result = PALLOCTYPE(DateTime);
 
@@ -121,7 +121,7 @@ datetime_in(char *str)
 	{
 		case DTK_DATE:
 			if (tm2datetime(tm, fsec, &tz, result) != 0)
-				elog(WARN, "Datetime out of range '%s'", str);
+				elog(ABORT, "Datetime out of range '%s'", str);
 
 #ifdef DATEDEBUG
 			printf("datetime_in- date is %f\n", *result);
@@ -150,7 +150,7 @@ datetime_in(char *str)
 			break;
 
 		default:
-			elog(WARN, "Internal coding error, can't input datetime '%s'", str);
+			elog(ABORT, "Internal coding error, can't input datetime '%s'", str);
 	}
 
 	return (result);
@@ -225,11 +225,11 @@ timespan_in(char *str)
 	fsec = 0;
 
 	if (!PointerIsValid(str))
-		elog(WARN, "Bad (null) timespan external representation", NULL);
+		elog(ABORT, "Bad (null) timespan external representation", NULL);
 
 	if ((ParseDateTime(str, lowstr, field, ftype, MAXDATEFIELDS, &nf) != 0)
 		|| (DecodeDateDelta(field, ftype, nf, &dtype, tm, &fsec) != 0))
-		elog(WARN, "Bad timespan external representation '%s'", str);
+		elog(ABORT, "Bad timespan external representation '%s'", str);
 
 	span = PALLOCTYPE(TimeSpan);
 
@@ -241,12 +241,12 @@ timespan_in(char *str)
 #if FALSE
 				TIMESPAN_INVALID(span);
 #endif
-				elog(WARN, "Bad timespan external representation '%s'", str);
+				elog(ABORT, "Bad timespan external representation '%s'", str);
 			}
 			break;
 
 		default:
-			elog(WARN, "Internal coding error, can't input timespan '%s'", str);
+			elog(ABORT, "Internal coding error, can't input timespan '%s'", str);
 	}
 
 	return (span);
@@ -272,7 +272,7 @@ timespan_out(TimeSpan *span)
 		return (NULL);
 
 	if (EncodeTimeSpan(tm, fsec, DateStyle, buf) != 0)
-		elog(WARN, "Unable to format timespan", NULL);
+		elog(ABORT, "Unable to format timespan", NULL);
 
 	result = PALLOC(strlen(buf) + 1);
 
@@ -904,7 +904,7 @@ datetime_pl_span(DateTime *datetime, TimeSpan *span)
 					   tm->tm_year, tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);
 #endif
 				if (tm2datetime(tm, fsec, &tz, &dt) != 0)
-					elog(WARN, "Unable to add datetime and timespan", NULL);
+					elog(ABORT, "Unable to add datetime and timespan", NULL);
 
 			}
 			else
@@ -1106,10 +1106,10 @@ timespan_div(TimeSpan *span1, float8 *arg2)
 		return NULL;
 
 	if (!PointerIsValid(result = PALLOCTYPE(TimeSpan)))
-		elog(WARN, "Memory allocation failed, can't subtract timespans", NULL);
+		elog(ABORT, "Memory allocation failed, can't subtract timespans", NULL);
 
 	if (*arg2 == 0.0)
-		elog(WARN, "timespan_div:  divide by 0.0 error");
+		elog(ABORT, "timespan_div:  divide by 0.0 error");
 
 	result->month = rint(span1->month / *arg2);
 	result->time = JROUND(span1->time / *arg2);
@@ -1238,7 +1238,7 @@ datetime_age(DateTime *datetime1, DateTime *datetime2)
 
 		if (tm2timespan(tm, fsec, result) != 0)
 		{
-			elog(WARN, "Unable to decode datetime", NULL);
+			elog(ABORT, "Unable to decode datetime", NULL);
 		}
 
 #if FALSE
@@ -1255,7 +1255,7 @@ datetime_age(DateTime *datetime1, DateTime *datetime2)
 	}
 	else
 	{
-		elog(WARN, "Unable to decode datetime", NULL);
+		elog(ABORT, "Unable to decode datetime", NULL);
 	}
 
 	return (result);
@@ -1436,7 +1436,7 @@ datetime_trunc(text *units, DateTime *datetime)
 	{
 #if FALSE
 /* should return null but Postgres doesn't like that currently. - tgl 97/06/12 */
-		elog(WARN, "Datetime is not finite", NULL);
+		elog(ABORT, "Datetime is not finite", NULL);
 #endif
 		*result = 0;
 
@@ -1480,7 +1480,7 @@ datetime_trunc(text *units, DateTime *datetime)
 					break;
 
 				default:
-					elog(WARN, "Datetime units '%s' not supported", lowunits);
+					elog(ABORT, "Datetime units '%s' not supported", lowunits);
 					result = NULL;
 			}
 
@@ -1513,7 +1513,7 @@ datetime_trunc(text *units, DateTime *datetime)
 			}
 
 			if (tm2datetime(tm, fsec, &tz, result) != 0)
-				elog(WARN, "Unable to truncate datetime to '%s'", lowunits);
+				elog(ABORT, "Unable to truncate datetime to '%s'", lowunits);
 
 #if FALSE
 		}
@@ -1526,7 +1526,7 @@ datetime_trunc(text *units, DateTime *datetime)
 		}
 		else
 		{
-			elog(WARN, "Datetime units '%s' not recognized", lowunits);
+			elog(ABORT, "Datetime units '%s' not recognized", lowunits);
 			result = NULL;
 		}
 	}
@@ -1580,7 +1580,7 @@ timespan_trunc(text *units, TimeSpan *timespan)
 	if (TIMESPAN_IS_INVALID(*timespan))
 	{
 #if FALSE
-		elog(WARN, "Timespan is not finite", NULL);
+		elog(ABORT, "Timespan is not finite", NULL);
 #endif
 		result = NULL;
 
@@ -1623,12 +1623,12 @@ timespan_trunc(text *units, TimeSpan *timespan)
 					break;
 
 				default:
-					elog(WARN, "Timespan units '%s' not supported", lowunits);
+					elog(ABORT, "Timespan units '%s' not supported", lowunits);
 					result = NULL;
 			}
 
 			if (tm2timespan(tm, fsec, result) != 0)
-				elog(WARN, "Unable to truncate timespan to '%s'", lowunits);
+				elog(ABORT, "Unable to truncate timespan to '%s'", lowunits);
 
 		}
 		else
@@ -1652,7 +1652,7 @@ timespan_trunc(text *units, TimeSpan *timespan)
 	}
 	else
 	{
-		elog(WARN, "Timespan units '%s' not recognized", units);
+		elog(ABORT, "Timespan units '%s' not recognized", units);
 		result = NULL;
 	}
 
@@ -1708,7 +1708,7 @@ datetime_part(text *units, DateTime *datetime)
 	{
 #if FALSE
 /* should return null but Postgres doesn't like that currently. - tgl 97/06/12 */
-		elog(WARN, "Datetime is not finite", NULL);
+		elog(ABORT, "Datetime is not finite", NULL);
 #endif
 		*result = 0;
 
@@ -1774,7 +1774,7 @@ datetime_part(text *units, DateTime *datetime)
 					break;
 
 				default:
-					elog(WARN, "Datetime units '%s' not supported", lowunits);
+					elog(ABORT, "Datetime units '%s' not supported", lowunits);
 					*result = 0;
 			}
 
@@ -1790,28 +1790,28 @@ datetime_part(text *units, DateTime *datetime)
 
 				case DTK_DOW:
 					if (datetime2tm(dt, &tz, tm, &fsec, &tzn) != 0)
-						elog(WARN, "Unable to encode datetime", NULL);
+						elog(ABORT, "Unable to encode datetime", NULL);
 
 					*result = j2day(date2j(tm->tm_year, tm->tm_mon, tm->tm_mday));
 					break;
 
 				case DTK_DOY:
 					if (datetime2tm(dt, &tz, tm, &fsec, &tzn) != 0)
-						elog(WARN, "Unable to encode datetime", NULL);
+						elog(ABORT, "Unable to encode datetime", NULL);
 
 					*result = (date2j(tm->tm_year, tm->tm_mon, tm->tm_mday)
 						- date2j(tm->tm_year, 1, 1) + 1);
 					break;
 
 				default:
-					elog(WARN, "Datetime units '%s' not supported", lowunits);
+					elog(ABORT, "Datetime units '%s' not supported", lowunits);
 					*result = 0;
 			}
 
 		}
 		else
 		{
-			elog(WARN, "Datetime units '%s' not recognized", lowunits);
+			elog(ABORT, "Datetime units '%s' not recognized", lowunits);
 			*result = 0;
 		}
 	}
@@ -1864,7 +1864,7 @@ timespan_part(text *units, TimeSpan *timespan)
 	if (TIMESPAN_IS_INVALID(*timespan))
 	{
 #if FALSE
-		elog(WARN, "Timespan is not finite", NULL);
+		elog(ABORT, "Timespan is not finite", NULL);
 #endif
 		*result = 0;
 
@@ -1925,7 +1925,7 @@ timespan_part(text *units, TimeSpan *timespan)
 					break;
 
 				default:
-					elog(WARN, "Timespan units '%s' not yet supported", units);
+					elog(ABORT, "Timespan units '%s' not yet supported", units);
 					result = NULL;
 			}
 
@@ -1949,7 +1949,7 @@ timespan_part(text *units, TimeSpan *timespan)
 	}
 	else
 	{
-		elog(WARN, "Timespan units '%s' not recognized", units);
+		elog(ABORT, "Timespan units '%s' not recognized", units);
 		*result = 0;
 	}
 
@@ -2005,7 +2005,7 @@ datetime_zone(text *zone, DateTime *datetime)
 		 * could return null but Postgres doesn't like that currently. -
 		 * tgl 97/06/12
 		 */
-		elog(WARN, "Datetime is not finite", NULL);
+		elog(ABORT, "Datetime is not finite", NULL);
 		result = NULL;
 
 	}
@@ -2018,7 +2018,7 @@ datetime_zone(text *zone, DateTime *datetime)
 		dt = dt2local(dt, tz);
 
 		if (datetime2tm(dt, NULL, tm, &fsec, NULL) != 0)
-			elog(WARN, "Datetime not legal", NULL);
+			elog(ABORT, "Datetime not legal", NULL);
 
 		up = upzone;
 		lp = lowzone;
@@ -2039,7 +2039,7 @@ datetime_zone(text *zone, DateTime *datetime)
 	}
 	else
 	{
-		elog(WARN, "Time zone '%s' not recognized", lowzone);
+		elog(ABORT, "Time zone '%s' not recognized", lowzone);
 		result = NULL;
 	}
 
diff --git a/src/backend/utils/adt/filename.c b/src/backend/utils/adt/filename.c
index b618a3d6b8a..267689dc2ee 100644
--- a/src/backend/utils/adt/filename.c
+++ b/src/backend/utils/adt/filename.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/filename.c,v 1.11 1997/10/25 01:10:36 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/filename.c,v 1.12 1998/01/05 03:34:06 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -48,7 +48,7 @@ filename_in(char *file)
 
 			if ((pw = getpwnam(userName)) == NULL)
 			{
-				elog(WARN, "User %s is not a Unix user on the db server.",
+				elog(ABORT, "User %s is not a Unix user on the db server.",
 					 userName);
 			}
 
@@ -77,7 +77,7 @@ filename_in(char *file)
 			/* printf("name: %s\n"); */
 			if ((pw = getpwnam(name)) == NULL)
 			{
-				elog(WARN, "No such user: %s\n", name);
+				elog(ABORT, "No such user: %s\n", name);
 				ind = 0;
 			}
 			else
@@ -112,7 +112,7 @@ filename_in(char *file)
 		}
 		else
 		{
-			elog(WARN, "Couldn't find %s in your environment", environment);
+			elog(ABORT, "Couldn't find %s in your environment", environment);
 		}
 	}
 	else
@@ -132,6 +132,6 @@ filename_out(char *s)
 		return ((char *) NULL);
 	ret = (char *) palloc(strlen(s) + 1);
 	if (!ret)
-		elog(WARN, "filename_out: palloc failed");
+		elog(ABORT, "filename_out: palloc failed");
 	return (strcpy(ret, s));
 }
diff --git a/src/backend/utils/adt/float.c b/src/backend/utils/adt/float.c
index 6917e52f247..daaee8445f1 100644
--- a/src/backend/utils/adt/float.c
+++ b/src/backend/utils/adt/float.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.24 1997/09/26 20:32:02 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.25 1998/01/05 03:34:07 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -161,9 +161,9 @@ CheckFloat4Val(double val)
 	return;
 #else
 	if (fabs(val) > FLOAT4_MAX)
-		elog(WARN, "Bad float4 input format -- overflow");
+		elog(ABORT, "Bad float4 input format -- overflow");
 	if (val != 0.0 && fabs(val) < FLOAT4_MIN)
-		elog(WARN, "Bad float4 input format -- underflow");
+		elog(ABORT, "Bad float4 input format -- underflow");
 	return;
 #endif							/* UNSAFE_FLOATS */
 }
@@ -186,9 +186,9 @@ CheckFloat8Val(double val)
 	return;
 #else
 	if (fabs(val) > FLOAT8_MAX)
-		elog(WARN, "Bad float8 input format -- overflow");
+		elog(ABORT, "Bad float8 input format -- overflow");
 	if (val != 0.0 && fabs(val) < FLOAT8_MIN)
-		elog(WARN, "Bad float8 input format -- underflow");
+		elog(ABORT, "Bad float8 input format -- underflow");
 	return;
 #endif							/* UNSAFE_FLOATS */
 }
@@ -210,7 +210,7 @@ float4in(char *num)
 	errno = 0;
 	val = strtod(num, &endptr);
 	if (*endptr != '\0' || errno == ERANGE)
-		elog(WARN, "Bad float4 input format '%s'", num);
+		elog(ABORT, "Bad float4 input format '%s'", num);
 
 	/*
 	 * if we get here, we have a legal double, still need to check to see
@@ -257,7 +257,7 @@ float8in(char *num)
 	errno = 0;
 	val = strtod(num, &endptr);
 	if (*endptr != '\0' || errno == ERANGE)
-		elog(WARN, "Bad float8 input format '%s'", num);
+		elog(ABORT, "Bad float8 input format '%s'", num);
 
 	CheckFloat8Val(val);
 	*result = val;
@@ -515,7 +515,7 @@ float4div(float32 arg1, float32 arg2)
 		return (float32) NULL;
 
 	if (*arg2 == 0.0)
-		elog(WARN, "float4div: divide by zero error");
+		elog(ABORT, "float4div: divide by zero error");
 
 	val = *arg1 / *arg2;
 
@@ -609,7 +609,7 @@ float8div(float64 arg1, float64 arg2)
 	result = (float64) palloc(sizeof(float64data));
 
 	if (*arg2 == 0.0)
-		elog(WARN, "float8div: divide by zero error");
+		elog(ABORT, "float8div: divide by zero error");
 
 	val = *arg1 / *arg2;
 	CheckFloat8Val(val);
@@ -806,10 +806,10 @@ dtoi4(float64 num)
 	int32		result;
 
 	if (!PointerIsValid(num))
-		elog(WARN, "dtoi4: unable to convert null", NULL);
+		elog(ABORT, "dtoi4: unable to convert null", NULL);
 
 	if ((*num < INT_MIN) || (*num > INT_MAX))
-		elog(WARN, "dtoi4: integer out of range", NULL);
+		elog(ABORT, "dtoi4: integer out of range", NULL);
 
 	result = rint(*num);
 	return (result);
@@ -825,10 +825,10 @@ dtoi2(float64 num)
 	int16		result;
 
 	if (!PointerIsValid(num))
-		elog(WARN, "dtoi2: unable to convert null", NULL);
+		elog(ABORT, "dtoi2: unable to convert null", NULL);
 
 	if ((*num < SHRT_MIN) || (*num > SHRT_MAX))
-		elog(WARN, "dtoi2: integer out of range", NULL);
+		elog(ABORT, "dtoi2: integer out of range", NULL);
 
 	result = rint(*num);
 	return (result);
@@ -874,10 +874,10 @@ ftoi4(float32 num)
 	int32		result;
 
 	if (!PointerIsValid(num))
-		elog(WARN, "ftoi4: unable to convert null", NULL);
+		elog(ABORT, "ftoi4: unable to convert null", NULL);
 
 	if ((*num < INT_MIN) || (*num > INT_MAX))
-		elog(WARN, "ftoi4: integer out of range", NULL);
+		elog(ABORT, "ftoi4: integer out of range", NULL);
 
 	result = rint(*num);
 	return (result);
@@ -893,10 +893,10 @@ ftoi2(float32 num)
 	int16		result;
 
 	if (!PointerIsValid(num))
-		elog(WARN, "ftoi2: unable to convert null", NULL);
+		elog(ABORT, "ftoi2: unable to convert null", NULL);
 
 	if ((*num < SHRT_MIN) || (*num > SHRT_MAX))
-		elog(WARN, "ftoi2: integer out of range", NULL);
+		elog(ABORT, "ftoi2: integer out of range", NULL);
 
 	result = rint(*num);
 	return (result);
@@ -1052,7 +1052,7 @@ dpow(float64 arg1, float64 arg2)
 #else
 	if (!finite(*result))
 #endif
-		elog(WARN, "pow() result is out of range");
+		elog(ABORT, "pow() result is out of range");
 
 	CheckFloat8Val(*result);
 	return (result);
@@ -1083,7 +1083,7 @@ dexp(float64 arg1)
 #else
 	if (!finite(*result))
 #endif
-		elog(WARN, "exp() result is out of range");
+		elog(ABORT, "exp() result is out of range");
 
 	CheckFloat8Val(*result);
 	return (result);
@@ -1107,9 +1107,9 @@ dlog1(float64 arg1)
 
 	tmp = *arg1;
 	if (tmp == 0.0)
-		elog(WARN, "can't take log of zero");
+		elog(ABORT, "can't take log of zero");
 	if (tmp < 0)
-		elog(WARN, "can't take log of a negative number");
+		elog(ABORT, "can't take log of a negative number");
 	*result = (float64data) log(tmp);
 
 	CheckFloat8Val(*result);
@@ -1185,7 +1185,7 @@ float48div(float32 arg1, float64 arg2)
 	result = (float64) palloc(sizeof(float64data));
 
 	if (*arg2 == 0.0)
-		elog(WARN, "float48div: divide by zero");
+		elog(ABORT, "float48div: divide by zero");
 
 	*result = *arg1 / *arg2;
 	CheckFloat8Val(*result);
@@ -1255,7 +1255,7 @@ float84div(float64 arg1, float32 arg2)
 	result = (float64) palloc(sizeof(float64data));
 
 	if (*arg2 == 0.0)
-		elog(WARN, "float48div: divide by zero");
+		elog(ABORT, "float48div: divide by zero");
 
 	*result = *arg1 / *arg2;
 	CheckFloat8Val(*result);
diff --git a/src/backend/utils/adt/geo_ops.c b/src/backend/utils/adt/geo_ops.c
index acbbec30ac8..ff19149d902 100644
--- a/src/backend/utils/adt/geo_ops.c
+++ b/src/backend/utils/adt/geo_ops.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/geo_ops.c,v 1.26 1997/09/25 14:09:04 thomas Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/geo_ops.c,v 1.27 1998/01/05 03:34:08 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -294,7 +294,7 @@ path_encode(bool closed, int npts, Point *pt)
 	{
 		*cp++ = LDELIM;
 		if (!pair_encode(pt->x, pt->y, cp))
-			elog(WARN, "Unable to format path", NULL);
+			elog(ABORT, "Unable to format path", NULL);
 		cp += strlen(cp);
 		*cp++ = RDELIM;
 		*cp++ = DELIM;
@@ -364,11 +364,11 @@ box_in(char *str)
 				y;
 
 	if (!PointerIsValid(str))
-		elog(WARN, " Bad (null) box external representation", NULL);
+		elog(ABORT, " Bad (null) box external representation", NULL);
 
 	if ((!path_decode(FALSE, 2, str, &isopen, &s, &(box->high)))
 		|| (*s != '\0'))
-		elog(WARN, "Bad box external representation '%s'", str);
+		elog(ABORT, "Bad box external representation '%s'", str);
 
 	/* reorder corners if necessary... */
 	if (box->high.x < box->low.x)
@@ -1058,10 +1058,10 @@ path_in(char *str)
 	int			depth = 0;
 
 	if (!PointerIsValid(str))
-		elog(WARN, "Bad (null) path external representation");
+		elog(ABORT, "Bad (null) path external representation");
 
 	if ((npts = pair_count(str, ',')) <= 0)
-		elog(WARN, "Bad path external representation '%s'", str);
+		elog(ABORT, "Bad path external representation '%s'", str);
 
 	s = str;
 	while (isspace(*s))
@@ -1082,7 +1082,7 @@ path_in(char *str)
 
 	if ((!path_decode(TRUE, npts, s, &isopen, &s, &(path->p[0])))
 		&& (!((depth == 0) && (*s == '\0'))) && !((depth >= 1) && (*s == RDELIM)))
-		elog(WARN, "Bad path external representation '%s'", str);
+		elog(ABORT, "Bad path external representation '%s'", str);
 
 	path->closed = (!isopen);
 
@@ -1367,10 +1367,10 @@ point_in(char *str)
 	char	   *s;
 
 	if (!PointerIsValid(str))
-		elog(WARN, "Bad (null) point external representation");
+		elog(ABORT, "Bad (null) point external representation");
 
 	if (!pair_decode(str, &x, &y, &s) || (strlen(s) > 0))
-		elog(WARN, "Bad point external representation '%s'", str);
+		elog(ABORT, "Bad point external representation '%s'", str);
 
 	point = PALLOCTYPE(Point);
 
@@ -1549,13 +1549,13 @@ lseg_in(char *str)
 	char	   *s;
 
 	if (!PointerIsValid(str))
-		elog(WARN, " Bad (null) lseg external representation", NULL);
+		elog(ABORT, " Bad (null) lseg external representation", NULL);
 
 	lseg = PALLOCTYPE(LSEG);
 
 	if ((!path_decode(TRUE, 2, str, &isopen, &s, &(lseg->p[0])))
 		|| (*s != '\0'))
-		elog(WARN, "Bad lseg external representation '%s'", str);
+		elog(ABORT, "Bad lseg external representation '%s'", str);
 
 	lseg->m = point_sl(&lseg->p[0], &lseg->p[1]);
 
@@ -2037,7 +2037,7 @@ dist_cpoly(CIRCLE *circle, POLYGON *poly)
 	LSEG		seg;
 
 	if (!PointerIsValid(circle) || !PointerIsValid(poly))
-		elog(WARN, "Invalid (null) input for distance", NULL);
+		elog(ABORT, "Invalid (null) input for distance", NULL);
 
 	if (point_inside(&(circle->center), poly->npts, poly->p))
 	{
@@ -2242,7 +2242,7 @@ Point *
 close_pb(Point *pt, BOX *box)
 {
 	/* think about this one for a while */
-	elog(WARN, "close_pb not implemented", NULL);
+	elog(ABORT, "close_pb not implemented", NULL);
 
 	return (NULL);
 }
@@ -2273,7 +2273,7 @@ Point *
 close_sb(LSEG *lseg, BOX *box)
 {
 	/* think about this one for a while */
-	elog(WARN, "close_sb not implemented", NULL);
+	elog(ABORT, "close_sb not implemented", NULL);
 
 	return (NULL);
 }
@@ -2282,7 +2282,7 @@ Point *
 close_lb(LINE *line, BOX *box)
 {
 	/* think about this one for a while */
-	elog(WARN, "close_lb not implemented", NULL);
+	elog(ABORT, "close_lb not implemented", NULL);
 
 	return (NULL);
 }
@@ -2531,7 +2531,7 @@ make_bound_box(POLYGON *poly)
 	}
 	else
 	{
-		elog(WARN, "Unable to create bounding box for empty polygon", NULL);
+		elog(ABORT, "Unable to create bounding box for empty polygon", NULL);
 	}
 }
 
@@ -2553,10 +2553,10 @@ poly_in(char *str)
 	char	   *s;
 
 	if (!PointerIsValid(str))
-		elog(WARN, " Bad (null) polygon external representation");
+		elog(ABORT, " Bad (null) polygon external representation");
 
 	if ((npts = pair_count(str, ',')) <= 0)
-		elog(WARN, "Bad polygon external representation '%s'", str);
+		elog(ABORT, "Bad polygon external representation '%s'", str);
 
 	size = offsetof(POLYGON, p[0]) +(sizeof(poly->p[0]) * npts);
 	poly = PALLOC(size);
@@ -2567,7 +2567,7 @@ poly_in(char *str)
 
 	if ((!path_decode(FALSE, npts, str, &isopen, &s, &(poly->p[0])))
 		|| (*s != '\0'))
-		elog(WARN, "Bad polygon external representation '%s'", str);
+		elog(ABORT, "Bad polygon external representation '%s'", str);
 
 	make_bound_box(poly);
 
@@ -2870,7 +2870,7 @@ point_div(Point *p1, Point *p2)
 	div = (p2->x * p2->x) + (p2->y * p2->y);
 
 	if (div == 0.0)
-		elog(WARN, "point_div:  divide by 0.0 error");
+		elog(ABORT, "point_div:  divide by 0.0 error");
 
 	result->x = ((p1->x * p2->x) + (p1->y * p2->y)) / div;
 	result->y = ((p2->x * p1->y) - (p2->y * p1->x)) / div;
@@ -3139,7 +3139,7 @@ path_center(PATH *path)
 	if (!PointerIsValid(path))
 		return (NULL);
 
-	elog(WARN, "path_center not implemented", NULL);
+	elog(ABORT, "path_center not implemented", NULL);
 
 	result = PALLOCTYPE(Point);
 	result = NULL;
@@ -3158,7 +3158,7 @@ path_poly(PATH *path)
 		return (NULL);
 
 	if (!path->closed)
-		elog(WARN, "Open path cannot be converted to polygon", NULL);
+		elog(ABORT, "Open path cannot be converted to polygon", NULL);
 
 	size = offsetof(POLYGON, p[0]) +(sizeof(poly->p[0]) * path->npts);
 	poly = PALLOC(size);
@@ -3197,7 +3197,7 @@ upgradepath(PATH *path)
 		return (NULL);
 
 	if (!isoldpath(path))
-		elog(WARN, "upgradepath: path already upgraded?", NULL);
+		elog(ABORT, "upgradepath: path already upgraded?", NULL);
 
 	npts = (path->npts - 1);
 	size = offsetof(PATH, p[0]) +(sizeof(path->p[0]) * npts);
@@ -3463,7 +3463,7 @@ circle_in(char *str)
 	int			depth = 0;
 
 	if (!PointerIsValid(str))
-		elog(WARN, " Bad (null) circle external representation", NULL);
+		elog(ABORT, " Bad (null) circle external representation", NULL);
 
 	circle = PALLOCTYPE(CIRCLE);
 
@@ -3483,7 +3483,7 @@ circle_in(char *str)
 	}
 
 	if (!pair_decode(s, &circle->center.x, &circle->center.y, &s))
-		elog(WARN, "Bad circle external representation '%s'", str);
+		elog(ABORT, "Bad circle external representation '%s'", str);
 
 	if (*s == DELIM)
 		s++;
@@ -3491,7 +3491,7 @@ circle_in(char *str)
 		s++;
 
 	if ((!single_decode(s, &circle->radius, &s)) || (circle->radius < 0))
-		elog(WARN, "Bad circle external representation '%s'", str);
+		elog(ABORT, "Bad circle external representation '%s'", str);
 
 	while (depth > 0)
 	{
@@ -3505,12 +3505,12 @@ circle_in(char *str)
 		}
 		else
 		{
-			elog(WARN, "Bad circle external representation '%s'", str);
+			elog(ABORT, "Bad circle external representation '%s'", str);
 		}
 	}
 
 	if (*s != '\0')
-		elog(WARN, "Bad circle external representation '%s'", str);
+		elog(ABORT, "Bad circle external representation '%s'", str);
 
 	return (circle);
 }								/* circle_in() */
@@ -3532,13 +3532,13 @@ circle_out(CIRCLE *circle)
 	*cp++ = LDELIM_C;
 	*cp++ = LDELIM;
 	if (!pair_encode(circle->center.x, circle->center.y, cp))
-		elog(WARN, "Unable to format circle", NULL);
+		elog(ABORT, "Unable to format circle", NULL);
 
 	cp += strlen(cp);
 	*cp++ = RDELIM;
 	*cp++ = DELIM;
 	if (!single_encode(circle->radius, cp))
-		elog(WARN, "Unable to format circle", NULL);
+		elog(ABORT, "Unable to format circle", NULL);
 
 	cp += strlen(cp);
 	*cp++ = RDELIM_C;
@@ -4000,7 +4000,7 @@ circle_poly(int npts, CIRCLE *circle)
 		return (NULL);
 
 	if (FPzero(circle->radius) || (npts < 2))
-		elog(WARN, "Unable to convert circle to polygon", NULL);
+		elog(ABORT, "Unable to convert circle to polygon", NULL);
 
 	size = offsetof(POLYGON, p[0]) +(sizeof(poly->p[0]) * npts);
 	poly = PALLOC(size);
@@ -4036,7 +4036,7 @@ poly_circle(POLYGON *poly)
 		return (NULL);
 
 	if (poly->npts < 2)
-		elog(WARN, "Unable to convert polygon to circle", NULL);
+		elog(ABORT, "Unable to convert polygon to circle", NULL);
 
 	circle = PALLOCTYPE(CIRCLE);
 
@@ -4059,7 +4059,7 @@ poly_circle(POLYGON *poly)
 	circle->radius /= poly->npts;
 
 	if (FPzero(circle->radius))
-		elog(WARN, "Unable to convert polygon to circle", NULL);
+		elog(ABORT, "Unable to convert polygon to circle", NULL);
 
 	return (circle);
 }								/* poly_circle() */
diff --git a/src/backend/utils/adt/int.c b/src/backend/utils/adt/int.c
index 06013c21065..41aa26b6b84 100644
--- a/src/backend/utils/adt/int.c
+++ b/src/backend/utils/adt/int.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/int.c,v 1.10 1997/11/17 16:24:17 thomas Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/int.c,v 1.11 1998/01/05 03:34:09 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -232,9 +232,9 @@ int16
 i4toi2(int32 arg1)
 {
 	if (arg1 < SHRT_MIN)
-		elog(WARN, "i4toi2: '%d' causes int2 underflow", arg1);
+		elog(ABORT, "i4toi2: '%d' causes int2 underflow", arg1);
 	if (arg1 > SHRT_MAX)
-		elog(WARN, "i4toi2: '%d' causes int2 overflow", arg1);
+		elog(ABORT, "i4toi2: '%d' causes int2 overflow", arg1);
 
 	return ((int16) arg1);
 }
diff --git a/src/backend/utils/adt/nabstime.c b/src/backend/utils/adt/nabstime.c
index f5363a878da..a1607246d20 100644
--- a/src/backend/utils/adt/nabstime.c
+++ b/src/backend/utils/adt/nabstime.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.36 1997/10/30 14:06:47 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.37 1998/01/05 03:34:11 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -256,14 +256,14 @@ nabstimein(char *str)
 				ftype[MAXDATEFIELDS];
 
 	if (!PointerIsValid(str))
-		elog(WARN, "Bad (null) abstime external representation", NULL);
+		elog(ABORT, "Bad (null) abstime external representation", NULL);
 
 	if (strlen(str) > MAXDATELEN)
-		elog(WARN, "Bad (length) abstime external representation '%s'", str);
+		elog(ABORT, "Bad (length) abstime external representation '%s'", str);
 
 	if ((ParseDateTime(str, lowstr, field, ftype, MAXDATEFIELDS, &nf) != 0)
 	  || (DecodeDateTime(field, ftype, nf, &dtype, tm, &fsec, &tz) != 0))
-		elog(WARN, "Bad abstime external representation '%s'", str);
+		elog(ABORT, "Bad abstime external representation '%s'", str);
 
 #ifdef DATEDEBUG
 	printf("nabstimein- %d fields are type %d (DTK_DATE=%d)\n", nf, dtype, DTK_DATE);
@@ -296,7 +296,7 @@ nabstimein(char *str)
 			break;
 
 		default:
-			elog(WARN, "Bad abstime (internal coding error) '%s'", str);
+			elog(ABORT, "Bad abstime (internal coding error) '%s'", str);
 			result = INVALID_ABSTIME;
 			break;
 	};
@@ -547,7 +547,7 @@ abstime_datetime(AbsoluteTime abstime)
 	DateTime   *result;
 
 	if (!PointerIsValid(result = PALLOCTYPE(DateTime)))
-		elog(WARN, "Unable to allocate space to convert abstime to datetime", NULL);
+		elog(ABORT, "Unable to allocate space to convert abstime to datetime", NULL);
 
 	switch (abstime)
 	{
diff --git a/src/backend/utils/adt/numutils.c b/src/backend/utils/adt/numutils.c
index 01f187be7f0..7cbdd7d48c1 100644
--- a/src/backend/utils/adt/numutils.c
+++ b/src/backend/utils/adt/numutils.c
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/numutils.c,v 1.19 1997/12/20 00:10:29 scrappy Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/numutils.c,v 1.20 1998/01/05 03:34:12 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -58,9 +58,9 @@ pg_atoi(char *s, int size, int c)
 	errno = 0;
 	l = strtol(s, &badp, 10);
 	if (errno)					/* strtol must set ERANGE */
-		elog(WARN, "pg_atoi: error reading \"%s\": %m", s);
+		elog(ABORT, "pg_atoi: error reading \"%s\": %m", s);
 	if (badp && *badp && (*badp != c))
-		elog(WARN, "pg_atoi: error in \"%s\": can\'t parse \"%s\"", s, badp);
+		elog(ABORT, "pg_atoi: error in \"%s\": can\'t parse \"%s\"", s, badp);
 
 	switch (size)
 	{
@@ -70,12 +70,12 @@ pg_atoi(char *s, int size, int c)
 			if (l < INT_MIN)
 			{
 				errno = ERANGE;
-				elog(WARN, "pg_atoi: error reading \"%s\": %m", s);
+				elog(ABORT, "pg_atoi: error reading \"%s\": %m", s);
 			}
 			if (l > INT_MAX)
 			{
 				errno = ERANGE;
-				elog(WARN, "pg_atoi: error reading \"%s\": %m", s);
+				elog(ABORT, "pg_atoi: error reading \"%s\": %m", s);
 			}
 #endif							/* HAS_LONG_LONG */
 			break;
@@ -83,28 +83,28 @@ pg_atoi(char *s, int size, int c)
 			if (l < SHRT_MIN)
 			{
 				errno = ERANGE;
-				elog(WARN, "pg_atoi: error reading \"%s\": %m", s);
+				elog(ABORT, "pg_atoi: error reading \"%s\": %m", s);
 			}
 			if (l > SHRT_MAX)
 			{
 				errno = ERANGE;
-				elog(WARN, "pg_atoi: error reading \"%s\": %m", s);
+				elog(ABORT, "pg_atoi: error reading \"%s\": %m", s);
 			}
 			break;
 		case sizeof(int8):
 			if (l < SCHAR_MIN)
 			{
 				errno = ERANGE;
-				elog(WARN, "pg_atoi: error reading \"%s\": %m", s);
+				elog(ABORT, "pg_atoi: error reading \"%s\": %m", s);
 			}
 			if (l > SCHAR_MAX)
 			{
 				errno = ERANGE;
-				elog(WARN, "pg_atoi: error reading \"%s\": %m", s);
+				elog(ABORT, "pg_atoi: error reading \"%s\": %m", s);
 			}
 			break;
 		default:
-			elog(WARN, "pg_atoi: invalid result size: %d", size);
+			elog(ABORT, "pg_atoi: invalid result size: %d", size);
 	}
 	return ((int32) l);
 }
diff --git a/src/backend/utils/adt/oidname.c b/src/backend/utils/adt/oidname.c
index 27d28a072ec..f4a4d72d352 100644
--- a/src/backend/utils/adt/oidname.c
+++ b/src/backend/utils/adt/oidname.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/oidname.c,v 1.9 1997/10/25 01:10:41 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/oidname.c,v 1.10 1998/01/05 03:34:13 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -40,7 +40,7 @@ oidnamein(char *inStr)
 		StrNCpy(oc->name.data, inptr, NAMEDATALEN);
 	}
 	else
-		elog(WARN, "Bad input data for type oidname");
+		elog(ABORT, "Bad input data for type oidname");
 
 	return oc;
 }
diff --git a/src/backend/utils/adt/regexp.c b/src/backend/utils/adt/regexp.c
index 21b34249bd4..074e0a695c5 100644
--- a/src/backend/utils/adt/regexp.c
+++ b/src/backend/utils/adt/regexp.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/regexp.c,v 1.11 1997/10/25 01:10:44 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/regexp.c,v 1.12 1998/01/05 03:34:14 momjian Exp $
  *
  *		Alistair Crooks added the code for the regex caching
  *		agc - cached the regular expressions used - there's a good chance
@@ -157,7 +157,7 @@ RE_compile_and_execute(struct varlena * text_re, char *text, int cflags)
 		rev[oldest].cre_s = (char *) NULL;
 		pg95_regerror(regcomp_result, &rev[oldest].cre_re, errMsg,
 					  sizeof(errMsg));
-		elog(WARN, "regcomp failed with error %s", errMsg);
+		elog(ABORT, "regcomp failed with error %s", errMsg);
 	}
 
 	/* not reached */
diff --git a/src/backend/utils/adt/regproc.c b/src/backend/utils/adt/regproc.c
index bc090184de6..ee36f1ea343 100644
--- a/src/backend/utils/adt/regproc.c
+++ b/src/backend/utils/adt/regproc.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/regproc.c,v 1.10 1997/11/20 23:23:00 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/regproc.c,v 1.11 1998/01/05 03:34:14 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -45,7 +45,7 @@ regprocin(char *proname)
 	proc = heap_openr(ProcedureRelationName);
 	if (!RelationIsValid(proc))
 	{
-		elog(WARN, "regprocin: could not open %s",
+		elog(ABORT, "regprocin: could not open %s",
 			 ProcedureRelationName);
 		return (0);
 	}
@@ -59,7 +59,7 @@ regprocin(char *proname)
 	if (!HeapScanIsValid(procscan))
 	{
 		heap_close(proc);
-		elog(WARN, "regprocin: could not being scan of %s",
+		elog(ABORT, "regprocin: could not being scan of %s",
 			 ProcedureRelationName);
 		return (0);
 	}
@@ -104,7 +104,7 @@ regprocout(RegProcedure proid)
 	proc = heap_openr(ProcedureRelationName);
 	if (!RelationIsValid(proc))
 	{
-		elog(WARN, "regprocout: could not open %s",
+		elog(ABORT, "regprocout: could not open %s",
 			 ProcedureRelationName);
 		return (0);
 	}
@@ -118,7 +118,7 @@ regprocout(RegProcedure proid)
 	if (!HeapScanIsValid(procscan))
 	{
 		heap_close(proc);
-		elog(WARN, "regprocout: could not being scan of %s",
+		elog(ABORT, "regprocout: could not being scan of %s",
 			 ProcedureRelationName);
 		return (0);
 	}
@@ -176,7 +176,7 @@ oid8types(Oid (*oidArray)[])
 	type = heap_openr(TypeRelationName);
 	if (!RelationIsValid(type))
 	{
-		elog(WARN, "int8typeout: could not open %s",
+		elog(ABORT, "int8typeout: could not open %s",
 			 TypeRelationName);
 		return (0);
 	}
@@ -196,7 +196,7 @@ oid8types(Oid (*oidArray)[])
 			if (!HeapScanIsValid(typescan))
 			{
 				heap_close(type);
-				elog(WARN, "int8typeout: could not being scan of %s",
+				elog(ABORT, "int8typeout: could not being scan of %s",
 					 TypeRelationName);
 				return (0);
 			}
diff --git a/src/backend/utils/adt/selfuncs.c b/src/backend/utils/adt/selfuncs.c
index 32d23366b1b..02d818c15be 100644
--- a/src/backend/utils/adt/selfuncs.c
+++ b/src/backend/utils/adt/selfuncs.c
@@ -12,7 +12,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.12 1997/11/24 05:09:03 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.13 1998/01/05 03:34:16 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -287,7 +287,7 @@ getattdisbursion(Oid relid, AttrNumber attnum)
 							  0, 0);
 	if (!HeapTupleIsValid(atp))
 	{
-		elog(WARN, "getattdisbursion: no attribute tuple %d %d",
+		elog(ABORT, "getattdisbursion: no attribute tuple %d %d",
 			 relid, attnum);
 		return (0);
 	}
@@ -304,7 +304,7 @@ getattdisbursion(Oid relid, AttrNumber attnum)
 	 */
 	if (!HeapTupleIsValid(atp))
 	{
-		elog(WARN, "getattdisbursion: no relation tuple %d", relid);
+		elog(ABORT, "getattdisbursion: no relation tuple %d", relid);
 		return (0);
 	}
 	ntuples = ((Form_pg_class) GETSTRUCT(atp))->reltuples;
@@ -357,7 +357,7 @@ gethilokey(Oid relid,
 		*low = "n";
 
 		/*
-		 * XXX			elog(WARN, "gethilokey: statistic tuple not
+		 * XXX			elog(ABORT, "gethilokey: statistic tuple not
 		 * found");
 		 */
 		return;
@@ -417,9 +417,9 @@ btreesel(Oid operatorObjectId,
 	}
 
 	if (!PointerIsValid(result))
-		elog(WARN, "Btree Selectivity: bad pointer");
+		elog(ABORT, "Btree Selectivity: bad pointer");
 	if (*result < 0.0 || *result > 1.0)
-		elog(WARN, "Btree Selectivity: bad value %lf", *result);
+		elog(ABORT, "Btree Selectivity: bad value %lf", *result);
 
 	return (result);
 }
@@ -465,7 +465,7 @@ btreenpage(Oid operatorObjectId,
 							  0, 0, 0);
 	if (!HeapTupleIsValid(atp))
 	{
-		elog(WARN, "btreenpage: no index tuple %d", indexrelid);
+		elog(ABORT, "btreenpage: no index tuple %d", indexrelid);
 		return (0);
 	}
 
@@ -503,7 +503,7 @@ hashsel(Oid operatorObjectId,
 								  0, 0, 0);
 		if (!HeapTupleIsValid(atp))
 		{
-			elog(WARN, "hashsel: no index tuple %d", indexrelid);
+			elog(ABORT, "hashsel: no index tuple %d", indexrelid);
 			return (0);
 		}
 		ntuples = ((Form_pg_class) GETSTRUCT(atp))->reltuples;
@@ -530,9 +530,9 @@ hashsel(Oid operatorObjectId,
 	}
 
 	if (!PointerIsValid(result))
-		elog(WARN, "Hash Table Selectivity: bad pointer");
+		elog(ABORT, "Hash Table Selectivity: bad pointer");
 	if (*result < 0.0 || *result > 1.0)
-		elog(WARN, "Hash Table Selectivity: bad value %lf", *result);
+		elog(ABORT, "Hash Table Selectivity: bad value %lf", *result);
 
 	return (result);
 
@@ -559,7 +559,7 @@ hashnpage(Oid operatorObjectId,
 							  0, 0, 0);
 	if (!HeapTupleIsValid(atp))
 	{
-		elog(WARN, "hashsel: no index tuple %d", indexrelid);
+		elog(ABORT, "hashsel: no index tuple %d", indexrelid);
 		return (0);
 	}
 
diff --git a/src/backend/utils/adt/sets.c b/src/backend/utils/adt/sets.c
index 1076714150c..2fcc27c9046 100644
--- a/src/backend/utils/adt/sets.c
+++ b/src/backend/utils/adt/sets.c
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/sets.c,v 1.9 1997/11/24 05:09:04 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/sets.c,v 1.10 1998/01/05 03:34:16 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -90,7 +90,7 @@ SetDefine(char *querystr, char *typename)
 							  ObjectIdGetDatum(setoid),
 							  0, 0, 0);
 	if (!HeapTupleIsValid(tup))
-		elog(WARN, "setin: unable to define set %s", querystr);
+		elog(ABORT, "setin: unable to define set %s", querystr);
 
 	/*
 	 * We can tell whether the set was already defined by checking the
@@ -145,7 +145,7 @@ SetDefine(char *querystr, char *typename)
 			setoid = newtup->t_oid;
 		}
 		else
-			elog(WARN, "setin: could not find new set oid tuple");
+			elog(ABORT, "setin: could not find new set oid tuple");
 		heap_endscan(pg_proc_scan);
 
 		if (RelationGetRelationTupleForm(procrel)->relhasindex)
diff --git a/src/backend/utils/adt/varchar.c b/src/backend/utils/adt/varchar.c
index f52f52d47bc..2b2d8c65d80 100644
--- a/src/backend/utils/adt/varchar.c
+++ b/src/backend/utils/adt/varchar.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.14 1997/12/23 19:24:43 thomas Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.15 1998/01/05 03:34:19 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -75,7 +75,7 @@ bpcharin(char *s, int dummy, int typlen)
 	}
 
 	if (len > 4096)
-		elog(WARN, "bpcharin: length of char() must be less than 4096");
+		elog(ABORT, "bpcharin: length of char() must be less than 4096");
 
 	result = (char *) palloc(typlen);
 	*(int32 *) result = typlen;
@@ -145,7 +145,7 @@ varcharin(char *s, int dummy, int typlen)
 	}
 
 	if (len > 4096)
-		elog(WARN, "varcharin: length of char() must be less than 4096");
+		elog(ABORT, "varcharin: length of char() must be less than 4096");
 
 	result = (char *) palloc(typlen);
 	*(int32 *) result = typlen;
@@ -199,7 +199,7 @@ int32
 bpcharlen(char *arg)
 {
 	if (!PointerIsValid(arg))
-		elog(WARN, "Bad (null) char() external representation", NULL);
+		elog(ABORT, "Bad (null) char() external representation", NULL);
 
 	return(bcTruelen(arg));
 } /* bpcharlen() */
@@ -355,7 +355,7 @@ int32
 varcharlen(char *arg)
 {
 	if (!PointerIsValid(arg))
-		elog(WARN, "Bad (null) varchar() external representation", NULL);
+		elog(ABORT, "Bad (null) varchar() external representation", NULL);
 
 	return(vcTruelen(arg));
 } /* vclen() */
diff --git a/src/backend/utils/adt/varlena.c b/src/backend/utils/adt/varlena.c
index e594a5fb9c0..b1fde3f8124 100644
--- a/src/backend/utils/adt/varlena.c
+++ b/src/backend/utils/adt/varlena.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.26 1998/01/01 05:50:50 thomas Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.27 1998/01/05 03:34:20 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -31,7 +31,7 @@
  *
  *		Non-printable characters must be passed as '\nnn' (octal) and are
  *		converted to internal form.  '\' must be passed as '\\'.
- *		elog(WARN, ...) if bad form.
+ *		elog(ABORT, ...) if bad form.
  *
  *		BUGS:
  *				The input is scaned twice.
@@ -46,7 +46,7 @@ byteain(char *inputText)
 	text	   *result;
 
 	if (inputText == NULL)
-		elog(WARN, "Bad input string for type bytea");
+		elog(ABORT, "Bad input string for type bytea");
 
 	for (byte = 0, tp = inputText; *tp != '\0'; byte++)
 		if (*tp++ == '\\')
@@ -56,7 +56,7 @@ byteain(char *inputText)
 			else if (!isdigit(*tp++) ||
 					 !isdigit(*tp++) ||
 					 !isdigit(*tp++))
-				elog(WARN, "Bad input string for type bytea");
+				elog(ABORT, "Bad input string for type bytea");
 		}
 	tp = inputText;
 	byte += VARHDRSZ;
@@ -195,7 +195,7 @@ int32
 textlen(text *t)
 {
 	if (!PointerIsValid(t))
-		elog(WARN,"Null input to textlen");
+		elog(ABORT,"Null input to textlen");
 
 	return (VARSIZE(t) - VARHDRSZ);
 } /* textlen() */
@@ -537,7 +537,7 @@ byteaGetByte(text *v, int32 n)
 
 	if (n >= len)
 	{
-		elog(WARN, "byteaGetByte: index (=%d) out of range [0..%d]",
+		elog(ABORT, "byteaGetByte: index (=%d) out of range [0..%d]",
 			 n, len - 1);
 	}
 
@@ -595,7 +595,7 @@ byteaSetByte(text *v, int32 n, int32 newByte)
 
 	if (n >= len)
 	{
-		elog(WARN,
+		elog(ABORT,
 			 "byteaSetByte: index (=%d) out of range [0..%d]",
 			 n, len - 1);
 	}
@@ -606,7 +606,7 @@ byteaSetByte(text *v, int32 n, int32 newByte)
 	res = (text *) palloc(VARSIZE(v));
 	if (res == NULL)
 	{
-		elog(WARN, "byteaSetByte: Out of memory (%d bytes requested)",
+		elog(ABORT, "byteaSetByte: Out of memory (%d bytes requested)",
 			 VARSIZE(v));
 	}
 	memmove((char *) res, (char *) v, VARSIZE(v));
@@ -641,7 +641,7 @@ byteaSetBit(text *v, int32 n, int32 newBit)
 	 */
 	if (newBit != 0 && newBit != 1)
 	{
-		elog(WARN, "byteaSetByte: new bit must be 0 or 1");
+		elog(ABORT, "byteaSetByte: new bit must be 0 or 1");
 	}
 
 	/*
diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c
index 86c15b63016..f49b58d5912 100644
--- a/src/backend/utils/cache/catcache.c
+++ b/src/backend/utils/cache/catcache.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.18 1997/11/24 05:09:09 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.19 1998/01/05 03:34:22 momjian Exp $
  *
  * Notes:
  *		XXX This needs to use exception.h to handle recovery when
@@ -568,7 +568,7 @@ ResetSystemCache()
 	CACHE1_elog(DEBUG, "ResetSystemCache called");
 	if (DisableCache)
 	{
-		elog(WARN, "ResetSystemCache: Called while cache disabled");
+		elog(ABORT, "ResetSystemCache: Called while cache disabled");
 		return;
 	}
 
@@ -605,7 +605,7 @@ ResetSystemCache()
 				nextelt = DLGetSucc(elt);
 				CatCacheRemoveCTup(cache, elt);
 				if (cache->cc_ntup == -1)
-					elog(WARN, "ResetSystemCache: cc_ntup<0 (software error)");
+					elog(ABORT, "ResetSystemCache: cc_ntup<0 (software error)");
 			}
 		}
 		cache->cc_ntup = 0;		/* in case of WARN error above */
@@ -892,7 +892,7 @@ SearchSysCache(struct catcache * cache,
 
 	if (DisableCache)
 	{
-		elog(WARN, "SearchSysCache: Called while cache disabled");
+		elog(ABORT, "SearchSysCache: Called while cache disabled");
 		return ((HeapTuple) NULL);
 	}
 
diff --git a/src/backend/utils/cache/fcache.c b/src/backend/utils/cache/fcache.c
index 7bfa62e564b..fa480813f0b 100644
--- a/src/backend/utils/cache/fcache.c
+++ b/src/backend/utils/cache/fcache.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/Attic/fcache.c,v 1.7 1997/09/08 21:48:49 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/Attic/fcache.c,v 1.8 1998/01/05 03:34:24 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -71,7 +71,7 @@ GetDynamicFuncArgType(Var *arg, ExprContext *econtext)
 	tup = SearchSysCacheTuple(TYPNAME, PointerGetDatum(relname),
 							  0, 0, 0);
 	if (!tup)
-		elog(WARN, "Lookup failed on type tuple for class %s",
+		elog(ABORT, "Lookup failed on type tuple for class %s",
 			 relname);
 
 	return tup->t_oid;
@@ -100,14 +100,14 @@ init_fcache(Oid foid,
 	retval = (FunctionCachePtr) palloc(sizeof(FunctionCache));
 
 	if (!use_syscache)
-		elog(WARN, "what the ????, init the fcache without the catalogs?");
+		elog(ABORT, "what the ????, init the fcache without the catalogs?");
 
 	procedureTuple = SearchSysCacheTuple(PROOID,
 										 ObjectIdGetDatum(foid),
 										 0, 0, 0);
 
 	if (!HeapTupleIsValid(procedureTuple))
-		elog(WARN,
+		elog(ABORT,
 			 "init_fcache: %s %d",
 			 "Cache lookup failed for procedure", foid);
 
@@ -128,7 +128,7 @@ init_fcache(Oid foid,
 									0, 0, 0);
 
 	if (!HeapTupleIsValid(typeTuple))
-		elog(WARN,
+		elog(ABORT,
 			 "init_fcache: %s %d",
 			 "Cache lookup failed for type",
 			 (procedureStruct)->prorettype);
@@ -311,6 +311,6 @@ setFcache(Node *node, Oid foid, List *argList, ExprContext *econtext)
 	}
 	else
 	{
-		elog(WARN, "init_fcache: node must be Oper or Func!");
+		elog(ABORT, "init_fcache: node must be Oper or Func!");
 	}
 }
diff --git a/src/backend/utils/cache/lsyscache.c b/src/backend/utils/cache/lsyscache.c
index 26980c6e2e6..fa4b0e655ca 100644
--- a/src/backend/utils/cache/lsyscache.c
+++ b/src/backend/utils/cache/lsyscache.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/lsyscache.c,v 1.7 1997/11/17 16:59:23 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/lsyscache.c,v 1.8 1998/01/05 03:34:26 momjian Exp $
  *
  * NOTES
  *	  Eventually, the index information should go through here, too.
@@ -148,7 +148,7 @@ get_attisset(Oid relid, char *attname)
 							   PointerGetDatum(attname),
 							   0, 0);
 	if (!HeapTupleIsValid(htup))
-		elog(WARN, "get_attisset: no attribute %s in relation %d",
+		elog(ABORT, "get_attisset: no attribute %s in relation %d",
 			 attname, relid);
 	if (heap_attisnull(htup, attno))
 		return (false);
@@ -203,7 +203,7 @@ get_opname(Oid opno)
 		return (pstrdup(optup.oprname.data));
 	else
 	{
-		elog(WARN, "can't look up operator %d\n", opno);
+		elog(ABORT, "can't look up operator %d\n", opno);
 		return NULL;
 	}
 }
diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c
index 90c560bbcd0..672e40fc9f1 100644
--- a/src/backend/utils/cache/relcache.c
+++ b/src/backend/utils/cache/relcache.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.30 1997/11/21 18:11:26 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.31 1998/01/05 03:34:29 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -371,7 +371,7 @@ scan_pg_rel_seq(RelationBuildDescInfo buildinfo)
 			break;
 
 		default:
-			elog(WARN, "ScanPgRelation: bad buildinfo");
+			elog(ABORT, "ScanPgRelation: bad buildinfo");
 			return NULL;
 	}
 
@@ -441,7 +441,7 @@ scan_pg_rel_ind(RelationBuildDescInfo buildinfo)
 			break;
 
 		default:
-			elog(WARN, "ScanPgRelation: bad buildinfo");
+			elog(ABORT, "ScanPgRelation: bad buildinfo");
 
 			/*
 			 * XXX I hope this is right.  It seems better than returning
@@ -583,7 +583,7 @@ build_tupdesc_seq(RelationBuildDescInfo buildinfo,
 	}
 
 	if (need > 0)
-		elog(WARN, "catalog is missing %d attribute%s for relid %d",
+		elog(ABORT, "catalog is missing %d attribute%s for relid %d",
 			 need, (need == 1 ? "" : "s"), relation->rd_id);
 
 	/* ----------------
@@ -617,7 +617,7 @@ build_tupdesc_ind(RelationBuildDescInfo buildinfo,
 		atttup = (HeapTuple) AttributeNumIndexScan(attrel, relation->rd_id, i);
 
 		if (!HeapTupleIsValid(atttup))
-			elog(WARN, "cannot find attribute %d of relation %.*s", i,
+			elog(ABORT, "cannot find attribute %d of relation %.*s", i,
 				 NAMEDATALEN, &(relation->rd_rel->relname.data[0]));
 		attp = (AttributeTupleForm) GETSTRUCT(atttup);
 
@@ -1738,7 +1738,7 @@ AttrDefaultFetch(Relation relation)
 			if (adform->adnum != attrdef[i].adnum)
 				continue;
 			if (attrdef[i].adsrc != NULL)
-				elog(WARN, "AttrDefaultFetch: second record found for attr %.*s in rel %.*s",
+				elog(ABORT, "AttrDefaultFetch: second record found for attr %.*s in rel %.*s",
 					 NAMEDATALEN, relation->rd_att->attrs[adform->adnum - 1]->attname.data,
 					 NAMEDATALEN, relation->rd_rel->relname.data);
 
@@ -1746,7 +1746,7 @@ AttrDefaultFetch(Relation relation)
 												 Anum_pg_attrdef_adbin,
 												 adrel->rd_att, &isnull);
 			if (isnull)
-				elog(WARN, "AttrDefaultFetch: adbin IS NULL for attr %.*s in rel %.*s",
+				elog(ABORT, "AttrDefaultFetch: adbin IS NULL for attr %.*s in rel %.*s",
 					 NAMEDATALEN, relation->rd_att->attrs[adform->adnum - 1]->attname.data,
 					 NAMEDATALEN, relation->rd_rel->relname.data);
 			attrdef[i].adbin = textout(val);
@@ -1754,7 +1754,7 @@ AttrDefaultFetch(Relation relation)
 												 Anum_pg_attrdef_adsrc,
 												 adrel->rd_att, &isnull);
 			if (isnull)
-				elog(WARN, "AttrDefaultFetch: adsrc IS NULL for attr %.*s in rel %.*s",
+				elog(ABORT, "AttrDefaultFetch: adsrc IS NULL for attr %.*s in rel %.*s",
 					 NAMEDATALEN, relation->rd_att->attrs[adform->adnum - 1]->attname.data,
 					 NAMEDATALEN, relation->rd_rel->relname.data);
 			attrdef[i].adsrc = textout(val);
@@ -1762,14 +1762,14 @@ AttrDefaultFetch(Relation relation)
 		}
 
 		if (i >= ndef)
-			elog(WARN, "AttrDefaultFetch: unexpected record found for attr %d in rel %.*s",
+			elog(ABORT, "AttrDefaultFetch: unexpected record found for attr %d in rel %.*s",
 				 adform->adnum,
 				 NAMEDATALEN, relation->rd_rel->relname.data);
 		ReleaseBuffer(buffer);
 	}
 
 	if (found < ndef)
-		elog(WARN, "AttrDefaultFetch: %d record not found for rel %.*s",
+		elog(ABORT, "AttrDefaultFetch: %d record not found for rel %.*s",
 			 ndef - found,
 			 NAMEDATALEN, relation->rd_rel->relname.data);
 
@@ -1821,28 +1821,28 @@ RelCheckFetch(Relation relation)
 		if (!HeapTupleIsValid(tuple))
 			continue;
 		if (found == ncheck)
-			elog(WARN, "RelCheckFetch: unexpected record found for rel %.*s",
+			elog(ABORT, "RelCheckFetch: unexpected record found for rel %.*s",
 				 NAMEDATALEN, relation->rd_rel->relname.data);
 
 		rcname = (Name) fastgetattr(tuple,
 									Anum_pg_relcheck_rcname,
 									rcrel->rd_att, &isnull);
 		if (isnull)
-			elog(WARN, "RelCheckFetch: rcname IS NULL for rel %.*s",
+			elog(ABORT, "RelCheckFetch: rcname IS NULL for rel %.*s",
 				 NAMEDATALEN, relation->rd_rel->relname.data);
 		check[found].ccname = nameout(rcname);
 		val = (struct varlena *) fastgetattr(tuple,
 											 Anum_pg_relcheck_rcbin,
 											 rcrel->rd_att, &isnull);
 		if (isnull)
-			elog(WARN, "RelCheckFetch: rcbin IS NULL for rel %.*s",
+			elog(ABORT, "RelCheckFetch: rcbin IS NULL for rel %.*s",
 				 NAMEDATALEN, relation->rd_rel->relname.data);
 		check[found].ccbin = textout(val);
 		val = (struct varlena *) fastgetattr(tuple,
 											 Anum_pg_relcheck_rcsrc,
 											 rcrel->rd_att, &isnull);
 		if (isnull)
-			elog(WARN, "RelCheckFetch: rcsrc IS NULL for rel %.*s",
+			elog(ABORT, "RelCheckFetch: rcsrc IS NULL for rel %.*s",
 				 NAMEDATALEN, relation->rd_rel->relname.data);
 		check[found].ccsrc = textout(val);
 		found++;
@@ -1851,7 +1851,7 @@ RelCheckFetch(Relation relation)
 	}
 
 	if (found < ncheck)
-		elog(WARN, "RelCheckFetch: %d record not found for rel %.*s",
+		elog(ABORT, "RelCheckFetch: %d record not found for rel %.*s",
 			 ncheck - found,
 			 NAMEDATALEN, relation->rd_rel->relname.data);
 
diff --git a/src/backend/utils/cache/syscache.c b/src/backend/utils/cache/syscache.c
index f12e17f03d8..9d17c150ce0 100644
--- a/src/backend/utils/cache/syscache.c
+++ b/src/backend/utils/cache/syscache.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/syscache.c,v 1.10 1997/10/28 15:03:06 vadim Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/cache/syscache.c,v 1.11 1998/01/05 03:34:32 momjian Exp $
  *
  * NOTES
  *	  These routines allow the parser/planner/executor to perform
@@ -371,7 +371,7 @@ InitCatalogCache()
 							 cacheinfo[cacheId].iScanFunc);
 			if (!PointerIsValid((char *) SysCache[cacheId]))
 			{
-				elog(WARN,
+				elog(ABORT,
 					 "InitCatalogCache: Can't init cache %.16s(%d)",
 					 cacheinfo[cacheId].name,
 					 cacheId);
@@ -402,7 +402,7 @@ SearchSysCacheTuple(int cacheId,		/* cache selection code */
 
 	if (cacheId < 0 || cacheId >= SysCacheSize)
 	{
-		elog(WARN, "SearchSysCacheTuple: Bad cache id %d", cacheId);
+		elog(ABORT, "SearchSysCacheTuple: Bad cache id %d", cacheId);
 		return ((HeapTuple) NULL);
 	}
 
@@ -423,7 +423,7 @@ SearchSysCacheTuple(int cacheId,		/* cache selection code */
 							 cacheinfo[cacheId].iScanFunc);
 			if (!PointerIsValid(SysCache[cacheId]))
 			{
-				elog(WARN,
+				elog(ABORT,
 					 "InitCatalogCache: Can't init cache %.16s(%d)",
 					 cacheinfo[cacheId].name,
 					 cacheId);
@@ -469,7 +469,7 @@ SearchSysCacheStruct(int cacheId,		/* cache selection code */
 
 	if (!PointerIsValid(returnStruct))
 	{
-		elog(WARN, "SearchSysCacheStruct: No receiving struct");
+		elog(ABORT, "SearchSysCacheStruct: No receiving struct");
 		return (0);
 	}
 	tp = SearchSysCacheTuple(cacheId, key1, key2, key3, key4);
@@ -537,7 +537,7 @@ SearchSysCacheGetAttribute(int cacheId,
 	}
 	else
 	{
-		elog(WARN,
+		elog(ABORT,
 			 "SearchSysCacheGetAttribute: Bad attr # %d in %s(%d)",
 			 attributeNumber, cacheName, cacheId);
 		return (NULL);
diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c
index ba3174508c2..73aeb489274 100644
--- a/src/backend/utils/error/elog.c
+++ b/src/backend/utils/error/elog.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/error/elog.c,v 1.20 1997/11/09 04:43:35 scrappy Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/error/elog.c,v 1.21 1998/01/05 03:34:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -74,7 +74,7 @@ elog(int lev, const char *fmt,...)
 				i = 0;
 			if (i > 30)
 				i = i % 30;
-			cp = "DEBUG:";
+			cp = "DEBUG:  ";
 			break;
 		case DEBUG:
 			i = ElogDebugIndentLevel;
@@ -170,12 +170,12 @@ elog(int lev, const char *fmt,...)
 	}
 #endif							/* !PG_STANDALONE */
 
-	if (lev == WARN)
+	if (lev == ERROR || lev == ABORT)
 	{
-		extern int	InWarn;
+		extern int	InErrorOrAbort;
 
 		ProcReleaseSpins(NULL); /* get rid of spinlocks we hold */
-		if (!InWarn)
+		if (!InErrorOrAbort)
 		{
 			kill(getpid(), 1);	/* abort to traffic cop */
 			pause();
diff --git a/src/backend/utils/fmgr/dfmgr.c b/src/backend/utils/fmgr/dfmgr.c
index 33c930d0a9f..d92893bfa20 100644
--- a/src/backend/utils/fmgr/dfmgr.c
+++ b/src/backend/utils/fmgr/dfmgr.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.14 1997/12/20 00:10:42 scrappy Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.15 1998/01/05 03:34:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -75,7 +75,7 @@ fmgr_dynamic(Oid procedureId, int *pronargs)
 										 0, 0, 0);
 	if (!HeapTupleIsValid(procedureTuple))
 	{
-		elog(WARN, "fmgr: Cache lookup failed for procedure %d\n",
+		elog(ABORT, "fmgr: Cache lookup failed for procedure %d\n",
 			 procedureId);
 		return ((func_ptr) NULL);
 	}
@@ -95,7 +95,7 @@ fmgr_dynamic(Oid procedureId, int *pronargs)
 	rdesc = heap_openr(ProcedureRelationName);
 	if (!RelationIsValid(rdesc))
 	{
-		elog(WARN, "fmgr: Could not open relation %s",
+		elog(ABORT, "fmgr: Could not open relation %s",
 			 ProcedureRelationName);
 		return ((func_ptr) NULL);
 	}
@@ -105,7 +105,7 @@ fmgr_dynamic(Oid procedureId, int *pronargs)
 	if (!PointerIsValid(probinattr) /* || isnull */ )
 	{
 		heap_close(rdesc);
-		elog(WARN, "fmgr: Could not extract probin for %d from %s",
+		elog(ABORT, "fmgr: Could not extract probin for %d from %s",
 			 procedureId, ProcedureRelationName);
 		return ((func_ptr) NULL);
 	}
@@ -150,7 +150,7 @@ handle_load(char *filename, char *funcname)
 		{
 			if (stat(filename, &stat_buf) == -1)
 			{
-				elog(WARN, "stat failed on file %s", filename);
+				elog(ABORT, "stat failed on file %s", filename);
 			}
 
 			for (file_scanner = file_list;
@@ -211,7 +211,7 @@ handle_load(char *filename, char *funcname)
 			}
 
 			free((char *) file_scanner);
-			elog(WARN, "Load of file %s failed: %s", filename, load_error);
+			elog(ABORT, "Load of file %s failed: %s", filename, load_error);
 		}
 
 		/*
@@ -227,7 +227,7 @@ handle_load(char *filename, char *funcname)
 
 	if (retval == (func_ptr) NULL)
 	{
-		elog(WARN, "Can't find function %s in file %s", funcname, filename);
+		elog(ABORT, "Can't find function %s in file %s", funcname, filename);
 	}
 
 	return (retval);
@@ -255,7 +255,7 @@ load_file(char *filename)
 
 	if (stat(filename, &stat_buf) == -1)
 	{
-		elog(WARN, "stat failed on file %s", filename);
+		elog(ABORT, "stat failed on file %s", filename);
 	}
 
 	if (file_list != (DynamicFileList *) NULL
diff --git a/src/backend/utils/fmgr/fmgr.c b/src/backend/utils/fmgr/fmgr.c
index a225c982555..72fe136c8b2 100644
--- a/src/backend/utils/fmgr/fmgr.c
+++ b/src/backend/utils/fmgr/fmgr.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.7 1997/10/28 15:05:32 vadim Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.8 1998/01/05 03:34:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -51,7 +51,7 @@ fmgr_pl(Oid func_id,
 										 0, 0, 0);
 	if (!HeapTupleIsValid(procedureTuple))
 	{
-		elog(WARN, "fmgr_pl(): Cache lookup of procedure %ld failed.",
+		elog(ABORT, "fmgr_pl(): Cache lookup of procedure %ld failed.",
 			 ObjectIdGetDatum(func_id));
 	}
 	procedureStruct = (Form_pg_proc) GETSTRUCT(procedureTuple);
@@ -62,7 +62,7 @@ fmgr_pl(Oid func_id,
 										0, 0, 0);
 	if (!HeapTupleIsValid(languageTuple))
 	{
-		elog(WARN, "fmgr_pl(): Cache lookup of language %ld for procedure %ld failed.",
+		elog(ABORT, "fmgr_pl(): Cache lookup of language %ld for procedure %ld failed.",
 			 ObjectIdGetDatum(procedureStruct->prolang),
 			 ObjectIdGetDatum(func_id));
 	}
@@ -72,7 +72,7 @@ fmgr_pl(Oid func_id,
 	fmgr_info(languageStruct->lanplcallfoid, &plcall_fn, &plcall_nargs);
 	if (plcall_fn == NULL)
 	{
-		elog(WARN, "fmgr_pl(): failed to load PL handler for procedure %ld.",
+		elog(ABORT, "fmgr_pl(): failed to load PL handler for procedure %ld.",
 			 ObjectIdGetDatum(func_id));
 	}
 
@@ -163,7 +163,7 @@ fmgr_c(func_ptr user_fn,
 									  values->data[8]);
 			break;
 		default:
-			elog(WARN, "fmgr_c: function %d: too many arguments (%d > %d)",
+			elog(ABORT, "fmgr_c: function %d: too many arguments (%d > %d)",
 				 func_id, n_arguments, MAXFMGRARGS);
 			break;
 	}
@@ -188,7 +188,7 @@ fmgr_info(Oid procedureId, func_ptr * function, int *nargs)
 											 0, 0, 0);
 		if (!HeapTupleIsValid(procedureTuple))
 		{
-			elog(WARN, "fmgr_info: function %d: cache lookup failed\n",
+			elog(ABORT, "fmgr_info: function %d: cache lookup failed\n",
 				 procedureId);
 		}
 		procedureStruct = (FormData_pg_proc *)
@@ -205,7 +205,7 @@ fmgr_info(Oid procedureId, func_ptr * function, int *nargs)
 			case INTERNALlanguageId:
 				user_fn = fmgr_lookupByName(procedureStruct->proname.data);
 				if (!user_fn)
-					elog(WARN, "fmgr_info: function %s: not in internal table",
+					elog(ABORT, "fmgr_info: function %s: not in internal table",
 						 procedureStruct->proname.data);
 				break;
 			case ClanguageId:
@@ -228,7 +228,7 @@ fmgr_info(Oid procedureId, func_ptr * function, int *nargs)
 													0, 0, 0);
 				if (!HeapTupleIsValid(languageTuple))
 				{
-					elog(WARN, "fmgr_info: %s %ld",
+					elog(ABORT, "fmgr_info: %s %ld",
 						 "Cache lookup for language %d failed",
 						 ObjectIdGetDatum(procedureStruct->prolang));
 				}
@@ -241,7 +241,7 @@ fmgr_info(Oid procedureId, func_ptr * function, int *nargs)
 				}
 				else
 				{
-					elog(WARN, "fmgr_info: function %d: unknown language %d",
+					elog(ABORT, "fmgr_info: function %d: unknown language %d",
 						 procedureId, language);
 				}
 				break;
@@ -282,7 +282,7 @@ fmgr(Oid procedureId,...)
 
 	if (pronargs > MAXFMGRARGS)
 	{
-		elog(WARN, "fmgr: function %d: too many arguments (%d > %d)",
+		elog(ABORT, "fmgr: function %d: too many arguments (%d > %d)",
 			 procedureId, pronargs, MAXFMGRARGS);
 	}
 	for (i = 0; i < pronargs; ++i)
@@ -317,7 +317,7 @@ fmgr_ptr(func_ptr user_fn, Oid func_id,...)
 	n_arguments = va_arg(pvar, int);
 	if (n_arguments > MAXFMGRARGS)
 	{
-		elog(WARN, "fmgr_ptr: function %d: too many arguments (%d > %d)",
+		elog(ABORT, "fmgr_ptr: function %d: too many arguments (%d > %d)",
 			 func_id, n_arguments, MAXFMGRARGS);
 	}
 	for (i = 0; i < n_arguments; ++i)
diff --git a/src/backend/utils/misc/database.c b/src/backend/utils/misc/database.c
index 11c4c99072d..c73764d69f8 100644
--- a/src/backend/utils/misc/database.c
+++ b/src/backend/utils/misc/database.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/misc/Attic/database.c,v 1.3 1997/11/20 23:23:16 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/misc/Attic/database.c,v 1.4 1998/01/05 03:34:49 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -61,7 +61,7 @@ GetDatabaseInfo(char *name, Oid *owner, char *path)
 
 	scan = heap_beginscan(dbrel, 0, false, 1, &scanKey);
 	if (!HeapScanIsValid(scan))
-		elog(WARN, "GetDatabaseInfo: cannot begin scan of %s", DatabaseRelationName);
+		elog(ABORT, "GetDatabaseInfo: cannot begin scan of %s", DatabaseRelationName);
 
 	/*
 	 * Since we're going to close the relation, copy the tuple.
diff --git a/src/backend/utils/sort/psort.c b/src/backend/utils/sort/psort.c
index fe25666ca5e..e8677066d4c 100644
--- a/src/backend/utils/sort/psort.c
+++ b/src/backend/utils/sort/psort.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/sort/Attic/psort.c,v 1.28 1997/11/24 05:09:21 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/sort/Attic/psort.c,v 1.29 1998/01/05 03:34:56 momjian Exp $
  *
  * NOTES
  *		Sorts the first relation into the second relation.
@@ -205,7 +205,7 @@ inittapes(Sort * node)
 	PS(node)->Tape[0].tp_prev = tp;
 
 	if (PS(node)->TapeRange <= 1)
-		elog(WARN, "inittapes: Could only allocate %d < 3 tapes\n",
+		elog(ABORT, "inittapes: Could only allocate %d < 3 tapes\n",
 			 PS(node)->TapeRange + 1);
 
 	PS(node)->Level = 1;
@@ -1009,7 +1009,7 @@ gettape()
 
 	file = AllocateFile(tp->tl_name, "w+");
 	if (file == NULL)
-		elog(WARN, "Open: %s in %s line %d, %s", tp->tl_name,
+		elog(ABORT, "Open: %s in %s line %d, %s", tp->tl_name,
 			 __FILE__, __LINE__, strerror(errno));
 
 	tp->tl_fd = fileno(file);
@@ -1034,7 +1034,7 @@ resettape(FILE * file)
 	for (tp = Tapes; tp != NULL && tp->tl_fd != fd; tp = tp->tl_next)
 		;
 	if (tp == NULL)
-		elog(WARN, "resettape: tape not found");
+		elog(ABORT, "resettape: tape not found");
 
 	file = freopen(tp->tl_name, "w+", file);
 	if (file == NULL)
diff --git a/src/include/utils/elog.h b/src/include/utils/elog.h
index 8fd93be9fa5..8375c2fdce9 100644
--- a/src/include/utils/elog.h
+++ b/src/include/utils/elog.h
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: elog.h,v 1.5 1997/09/08 02:39:39 momjian Exp $
+ * $Id: elog.h,v 1.6 1998/01/05 03:35:05 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -14,18 +14,21 @@
 #define ELOG_H
 
 #define NOTICE	0				/* random info - no special action */
-#define WARN	-1				/* Warning error - return to known state */
+#define ERROR	-2				/* user error - return to known state */
+#define ABORT	-1				/* system error - return to known state */
 #define FATAL	1				/* Fatal error - abort process */
-#define DEBUG	-2				/* debug message */
-#define NOIND	-3				/* debug message, don't indent as far */
+#define DEBUG	-3				/* debug message */
+#define NOIND	-4				/* debug message, don't indent as far */
 
+#ifdef NOT_USED
 #define PTIME	0x100			/* prepend time to message */
 #define POS		0x200			/* prepend source position to message */
 #define USERMSG 0x400			/* send message to user */
 #define TERM	0x800			/* send message to terminal */
 #define DBLOG	0x1000			/* put message in per db log */
 #define SLOG	0x2000			/* put message in system log */
-#define ABORT	0x4000			/* abort process after logging */
+#define ABORTX	0x4000			/* abort process after logging */
+#endif
 
 #define ELOG_MAXLEN 4096
 
diff --git a/src/test/regress/expected/abstime.out b/src/test/regress/expected/abstime.out
index 4ccff322d3f..a4313d0a44f 100644
--- a/src/test/regress/expected/abstime.out
+++ b/src/test/regress/expected/abstime.out
@@ -7,11 +7,11 @@ QUERY: INSERT INTO ABSTIME_TBL (f1) VALUES ('infinity'::abstime);
 QUERY: INSERT INTO ABSTIME_TBL (f1) VALUES ('-infinity'::abstime);
 QUERY: INSERT INTO ABSTIME_TBL (f1) VALUES ('May 10, 1947 23:59:12');
 QUERY: INSERT INTO ABSTIME_TBL (f1) VALUES ('Feb 35, 1946 10:00:00');
-WARN:Bad abstime external representation 'Feb 35, 1946 10:00:00'
+ERROR:  Bad abstime external representation 'Feb 35, 1946 10:00:00'
 QUERY: INSERT INTO ABSTIME_TBL (f1) VALUES ('Feb 28, 1984 25:08:10');
-WARN:Bad abstime external representation 'Feb 28, 1984 25:08:10'
+ERROR:  Bad abstime external representation 'Feb 28, 1984 25:08:10'
 QUERY: INSERT INTO ABSTIME_TBL (f1) VALUES ('bad date format');
-WARN:Bad abstime external representation 'bad date format'
+ERROR:  Bad abstime external representation 'bad date format'
 QUERY: INSERT INTO ABSTIME_TBL (f1) VALUES ('Jun 10, 1843');
 QUERY: SELECT '' AS eight, ABSTIME_TBL.*;
 eight|f1                          
diff --git a/src/test/regress/expected/alter_table.out b/src/test/regress/expected/alter_table.out
index dd30744f519..9da80caf97d 100644
--- a/src/test/regress/expected/alter_table.out
+++ b/src/test/regress/expected/alter_table.out
@@ -10,7 +10,7 @@ QUERY: ALTER TABLE temp ADD COLUMN h abstime;
 QUERY: ALTER TABLE temp ADD COLUMN i char;
 QUERY: ALTER TABLE temp ADD COLUMN j abstime[];
 QUERY: ALTER TABLE temp ADD COLUMN k dt;
-WARN:type name lookup of dt failed
+ERROR:  type name lookup of dt failed
 QUERY: ALTER TABLE temp ADD COLUMN l tid;
 QUERY: ALTER TABLE temp ADD COLUMN m xid;
 QUERY: ALTER TABLE temp ADD COLUMN n oid8;
@@ -33,7 +33,7 @@ QUERY: INSERT INTO temp (a, b, c, d, e, f, g, h, i, j, k, l, m, n, p, q, r, s, t
 	'1 2 3 4 5 6 7 8', 'magnetic disk', '(1.1,1.1)', '(4.1,4.1,3.1,3.1)',
 	'(0,2,4.1,4.1,3.1,3.1)', '(4.1,4.1,3.1,3.1)', '["current" "infinity"]',
 	'1/3', '1,char16', '{1.0,2.0,3.0,4.0}', '{1.0,2.0,3.0,4.0}', '{1,2,3,4}');
-WARN:Relation temp does not have attribute k
+ERROR:  Relation temp does not have attribute k
 QUERY: SELECT * FROM temp;
 initial|a|b|c|d|e|f|g|h|i|j|l|m|n|p|q|r|s|t|u|v|w|x|y|z
 -------+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
@@ -54,7 +54,7 @@ QUERY: ALTER TABLE temp ADD COLUMN h abstime;
 QUERY: ALTER TABLE temp ADD COLUMN i char;
 QUERY: ALTER TABLE temp ADD COLUMN j abstime[];
 QUERY: ALTER TABLE temp ADD COLUMN k dt;
-WARN:type name lookup of dt failed
+ERROR:  type name lookup of dt failed
 QUERY: ALTER TABLE temp ADD COLUMN l tid;
 QUERY: ALTER TABLE temp ADD COLUMN m xid;
 QUERY: ALTER TABLE temp ADD COLUMN n oid8;
@@ -77,7 +77,7 @@ QUERY: INSERT INTO temp (a, b, c, d, e, f, g, h, i, j, k, l, m, n, p, q, r, s, t
 	'1 2 3 4 5 6 7 8', 'magnetic disk', '(1.1,1.1)', '(4.1,4.1,3.1,3.1)',
 	'(0,2,4.1,4.1,3.1,3.1)', '(4.1,4.1,3.1,3.1)', '["current" "infinity"]',
 	'1/3', '1,char16', '{1.0,2.0,3.0,4.0}', '{1.0,2.0,3.0,4.0}', '{1,2,3,4}');
-WARN:Relation temp does not have attribute k
+ERROR:  Relation temp does not have attribute k
 QUERY: SELECT * FROM temp;
 initial|a|b|c|d|e|f|g|h|i|j|l|m|n|p|q|r|s|t|u|v|w|x|y|z
 -------+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
diff --git a/src/test/regress/expected/boolean.out b/src/test/regress/expected/boolean.out
index 7d37ac2d870..b40f48234eb 100644
--- a/src/test/regress/expected/boolean.out
+++ b/src/test/regress/expected/boolean.out
@@ -101,7 +101,7 @@ QUERY: INSERT INTO BOOLTBL2 (f1) VALUES ('False'::bool);
 QUERY: INSERT INTO BOOLTBL2 (f1) VALUES ('FALSE'::bool);
 QUERY: INSERT INTO BOOLTBL2 (f1)
    VALUES ('XXX'::bool);
-WARN:Bad boolean external representation 'XXX'
+ERROR:  Bad boolean external representation 'XXX'
 QUERY: SELECT '' AS f_4, BOOLTBL2.*;
 f_4|f1
 ---+--
diff --git a/src/test/regress/expected/box.out b/src/test/regress/expected/box.out
index e8e23c1587c..1363087a075 100644
--- a/src/test/regress/expected/box.out
+++ b/src/test/regress/expected/box.out
@@ -4,9 +4,9 @@ QUERY: INSERT INTO BOX_TBL (f1) VALUES ('(1.0,1.0,3.0,3.0)');
 QUERY: INSERT INTO BOX_TBL (f1) VALUES ('(2.5, 2.5, 2.5,3.5)');
 QUERY: INSERT INTO BOX_TBL (f1) VALUES ('(3.0, 3.0,3.0,3.0)');
 QUERY: INSERT INTO BOX_TBL (f1) VALUES ('(2.3, 4.5)');
-WARN:Bad box external representation '(2.3, 4.5)'
+ERROR:  Bad box external representation '(2.3, 4.5)'
 QUERY: INSERT INTO BOX_TBL (f1) VALUES ('asdfasdf(ad');
-WARN:Bad box external representation 'asdfasdf(ad'
+ERROR:  Bad box external representation 'asdfasdf(ad'
 QUERY: SELECT '' AS four, BOX_TBL.*;
 four|f1                 
 ----+-------------------
diff --git a/src/test/regress/expected/circle.out b/src/test/regress/expected/circle.out
index 38f8faa90de..05628711b36 100644
--- a/src/test/regress/expected/circle.out
+++ b/src/test/regress/expected/circle.out
@@ -6,11 +6,11 @@ QUERY: INSERT INTO CIRCLE_TBL VALUES ('((1,2),3)');
 QUERY: INSERT INTO CIRCLE_TBL VALUES ('<(100,200),10>');
 QUERY: INSERT INTO CIRCLE_TBL VALUES ('<(100,0),100>');
 QUERY: INSERT INTO CIRCLE_TBL VALUES ('<(-100,0),-100>');
-WARN:Bad circle external representation '<(-100,0),-100>'
+ERROR:  Bad circle external representation '<(-100,0),-100>'
 QUERY: INSERT INTO CIRCLE_TBL VALUES ('1abc,3,5');
-WARN:Bad circle external representation '1abc,3,5'
+ERROR:  Bad circle external representation '1abc,3,5'
 QUERY: INSERT INTO CIRCLE_TBL VALUES ('(3,(1,2),3)');
-WARN:Bad circle external representation '(3,(1,2),3)'
+ERROR:  Bad circle external representation '(3,(1,2),3)'
 QUERY: SELECT * FROM CIRCLE_TBL;
 f1            
 --------------
diff --git a/src/test/regress/expected/datetime.out b/src/test/regress/expected/datetime.out
index 47796247466..8731b1d04a5 100644
--- a/src/test/regress/expected/datetime.out
+++ b/src/test/regress/expected/datetime.out
@@ -146,9 +146,9 @@ QUERY: INSERT INTO DATETIME_TBL VALUES ('Jan 01 17:32:01 2000');
 QUERY: INSERT INTO DATETIME_TBL VALUES ('Dec 31 17:32:01 2000');
 QUERY: INSERT INTO DATETIME_TBL VALUES ('Jan 01 17:32:01 2001');
 QUERY: INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 -0097');
-WARN:Bad datetime external representation 'Feb 16 17:32:01 -0097'
+ERROR:  Bad datetime external representation 'Feb 16 17:32:01 -0097'
 QUERY: INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 5097 BC');
-WARN:Datetime out of range 'Feb 16 17:32:01 5097 BC'
+ERROR:  Datetime out of range 'Feb 16 17:32:01 5097 BC'
 QUERY: SELECT '' AS sixtythree, d1 FROM DATETIME_TBL;
 sixtythree|d1                             
 ----------+-------------------------------
diff --git a/src/test/regress/expected/errors.out b/src/test/regress/expected/errors.out
index ee26d461f7a..54575c26625 100644
--- a/src/test/regress/expected/errors.out
+++ b/src/test/regress/expected/errors.out
@@ -1,45 +1,45 @@
 QUERY: select 1
 select
 select * from nonesuch;
-WARN:parser: parse error at or near "select"
+ERROR:  parser: parse error at or near "select"
 QUERY: select nonesuch from pg_database;
-WARN:attribute 'nonesuch' not found
+ERROR:  attribute 'nonesuch' not found
 QUERY: select * from pg_database where nonesuch = pg_database.datname;
-WARN:attribute 'nonesuch' not found
+ERROR:  attribute 'nonesuch' not found
 QUERY: select * from pg_database where pg_database.datname = nonesuch;
-WARN:attribute 'nonesuch' not found
+ERROR:  attribute 'nonesuch' not found
 QUERY: select distinct on foobar from pg_database;
-WARN:parser: parse error at or near "from"
+ERROR:  parser: parse error at or near "from"
 QUERY: select distinct on foobar * from pg_database;
-WARN:The field specified in the UNIQUE ON clause is not in the targetlist
+ERROR:  The field specified in the UNIQUE ON clause is not in the targetlist
 QUERY: delete from;
-WARN:parser: parse error at or near ";"
+ERROR:  parser: parse error at or near ";"
 QUERY: delete from nonesuch;
-WARN:nonesuch: Table does not exist.
+ERROR:  nonesuch: Table does not exist.
 QUERY: drop table;
-WARN:parser: parse error at or near ";"
+ERROR:  parser: parse error at or near ";"
 QUERY: drop table nonesuch;
-WARN:Relation nonesuch Does Not Exist!
+ERROR:  Relation nonesuch Does Not Exist!
 QUERY: alter table rename;
-WARN:parser: parse error at or near "rename"
+ERROR:  parser: parse error at or near "rename"
 QUERY: alter table nonesuch rename to newnonesuch;
-WARN:renamerel: relation "nonesuch" does not exist
+ERROR:  renamerel: relation "nonesuch" does not exist
 QUERY: alter table nonesuch rename to stud_emp;
-WARN:renamerel: relation "nonesuch" does not exist
+ERROR:  renamerel: relation "nonesuch" does not exist
 QUERY: alter table stud_emp rename to pg_stud_emp;
-WARN:renamerel: Illegal class name: "pg_stud_emp" -- pg_ is reserved for system catalogs
+ERROR:  renamerel: Illegal class name: "pg_stud_emp" -- pg_ is reserved for system catalogs
 QUERY: alter table stud_emp rename to aggtest;
-WARN:renamerel: relation "aggtest" exists
+ERROR:  renamerel: relation "aggtest" exists
 QUERY: alter table stud_emp rename to stud_emp;
-WARN:renamerel: relation "stud_emp" exists
+ERROR:  renamerel: relation "stud_emp" exists
 QUERY: alter table nonesuchrel rename column nonesuchatt to newnonesuchatt;
-WARN:renameatt: relation "nonesuchrel" nonexistent
+ERROR:  renameatt: relation "nonesuchrel" nonexistent
 QUERY: alter table emp rename column nonesuchatt to newnonesuchatt;
-WARN:renameatt: attribute "nonesuchatt" nonexistent
+ERROR:  renameatt: attribute "nonesuchatt" nonexistent
 QUERY: alter table emp rename column salary to manager;
-WARN:renameatt: attribute "manager" exists
+ERROR:  renameatt: attribute "manager" exists
 QUERY: alter table emp rename column salary to oid;
-WARN:renameatt: attribute "oid" exists
+ERROR:  renameatt: attribute "oid" exists
 QUERY: abort;
 NOTICE:UserAbortTransactionBlock and not in in-progress state
 QUERY: end;
@@ -51,7 +51,7 @@ QUERY: create aggregate newavg1 (sfunc1 = int4pl,
 			  stype2 = int4,
 			  initcond1 = '0',
 			  initcond2 = '0');
-WARN:AggregateCreate: Aggregate must have final function with both transition functions
+ERROR:  AggregateCreate: Aggregate must have final function with both transition functions
 QUERY: create aggregate newavg2 (sfunc1 = int4pl,
 			  basetype = int4,
 			  stype1 = int4,
@@ -60,7 +60,7 @@ QUERY: create aggregate newavg2 (sfunc1 = int4pl,
 			  finalfunc = int4div,
 			  initcond1 = '0',
 			  initcond2 = '0');
-WARN:AggregateCreate: 'int4div'('int4','int2') does not exist
+ERROR:  AggregateCreate: 'int4div'('int4','int2') does not exist
 QUERY: create aggregate newavg3 (sfunc1 = int4pl,
 			  basetype = int4,
 			  stype1 = int4,
@@ -69,80 +69,80 @@ QUERY: create aggregate newavg3 (sfunc1 = int4pl,
 			  finalfunc = int2div,
 			  initcond1 = '0',
 			  initcond2 = '0');
-WARN:AggregateCreate: 'int2div'('int4','int4') does not exist
+ERROR:  AggregateCreate: 'int2div'('int4','int4') does not exist
 QUERY: create aggregate newcnt1 (sfunc2 = int4inc,
 			  stype2 = int4,
 			initcond2 = '0');
-WARN:Define: "basetype" unspecified
+ERROR:  Define: "basetype" unspecified
 QUERY: create aggregate newcnt1 (sfunc2 = int4inc,
 			  basetype = int4,
 			  stype2 = int4);
-WARN:AggregateCreate: transition function 2 MUST have an initial value
+ERROR:  AggregateCreate: transition function 2 MUST have an initial value
 QUERY: drop index;
-WARN:parser: parse error at or near ";"
+ERROR:  parser: parse error at or near ";"
 QUERY: drop index 314159;
-WARN:parser: parse error at or near "314159"
+ERROR:  parser: parse error at or near "314159"
 QUERY: drop index nonesuch;
-WARN:index "nonesuch" nonexistent
+ERROR:  index "nonesuch" nonexistent
 QUERY: drop aggregate;
-WARN:parser: parse error at or near ";"
+ERROR:  parser: parse error at or near ";"
 QUERY: drop aggregate 314159;
-WARN:parser: parse error at or near "314159"
+ERROR:  parser: parse error at or near "314159"
 QUERY: drop aggregate nonesuch;
-WARN:parser: parse error at or near ";"
+ERROR:  parser: parse error at or near ";"
 QUERY: drop aggregate newcnt1;
-WARN:parser: parse error at or near ";"
+ERROR:  parser: parse error at or near ";"
 QUERY: drop aggregate newcnt nonesuch;
-WARN:RemoveAggregate: type 'nonesuch' does not exist
+ERROR:  RemoveAggregate: type 'nonesuch' does not exist
 QUERY: drop aggregate newcnt float4;
-WARN:RemoveAggregate: aggregate 'newcnt' for 'float4' does not exist
+ERROR:  RemoveAggregate: aggregate 'newcnt' for 'float4' does not exist
 QUERY: drop function ();
-WARN:parser: parse error at or near "("
+ERROR:  parser: parse error at or near "("
 QUERY: drop function 314159();
-WARN:parser: parse error at or near "314159"
+ERROR:  parser: parse error at or near "314159"
 QUERY: drop function nonesuch();
-WARN:RemoveFunction: function nonesuch() does not exist
+ERROR:  RemoveFunction: function nonesuch() does not exist
 QUERY: drop type;
-WARN:parser: parse error at or near ";"
+ERROR:  parser: parse error at or near ";"
 QUERY: drop type 314159;
-WARN:parser: parse error at or near "314159"
+ERROR:  parser: parse error at or near "314159"
 QUERY: drop type nonesuch;
-WARN:RemoveType: type 'nonesuch' does not exist
+ERROR:  RemoveType: type 'nonesuch' does not exist
 QUERY: drop operator;
-WARN:parser: parse error at or near ";"
+ERROR:  parser: parse error at or near ";"
 QUERY: drop operator equals;
-WARN:parser: parse error at or near "equals"
+ERROR:  parser: parse error at or near "equals"
 QUERY: drop operator ===;
-WARN:parser: parse error at or near ";"
+ERROR:  parser: parse error at or near ";"
 QUERY: drop operator int4, int4;
-WARN:parser: parse error at or near "int4"
+ERROR:  parser: parse error at or near "int4"
 QUERY: drop operator (int4, int4);
-WARN:parser: parse error at or near "("
+ERROR:  parser: parse error at or near "("
 QUERY: drop operator === ();
-WARN:parser: parse error at or near ")"
+ERROR:  parser: parse error at or near ")"
 QUERY: drop operator === (int4);
-WARN:parser: argument type missing (use NONE for unary operators)
+ERROR:  parser: argument type missing (use NONE for unary operators)
 QUERY: drop operator === (int4, int4);
-WARN:RemoveOperator: binary operator '===' taking 'int4' and 'int4' does not exist
+ERROR:  RemoveOperator: binary operator '===' taking 'int4' and 'int4' does not exist
 QUERY: drop operator = (nonesuch);
-WARN:parser: argument type missing (use NONE for unary operators)
+ERROR:  parser: argument type missing (use NONE for unary operators)
 QUERY: drop operator = ( , int4);
-WARN:parser: parse error at or near ","
+ERROR:  parser: parse error at or near ","
 QUERY: drop operator = (nonesuch, int4);
-WARN:RemoveOperator: type 'nonesuch' does not exist
+ERROR:  RemoveOperator: type 'nonesuch' does not exist
 QUERY: drop operator = (int4, nonesuch);
-WARN:RemoveOperator: type 'nonesuch' does not exist
+ERROR:  RemoveOperator: type 'nonesuch' does not exist
 QUERY: drop operator = (int4, );
-WARN:parser: parse error at or near ")"
+ERROR:  parser: parse error at or near ")"
 QUERY: drop rule;
-WARN:parser: parse error at or near ";"
+ERROR:  parser: parse error at or near ";"
 QUERY: drop rule 314159;
-WARN:parser: parse error at or near "314159"
+ERROR:  parser: parse error at or near "314159"
 QUERY: drop rule nonesuch;
-WARN:RewriteGetRuleEventRel: rule "nonesuch" not found
+ERROR:  RewriteGetRuleEventRel: rule "nonesuch" not found
 QUERY: drop tuple rule nonesuch;
-WARN:parser: parse error at or near "tuple"
+ERROR:  parser: parse error at or near "tuple"
 QUERY: drop instance rule nonesuch;
-WARN:parser: parse error at or near "instance"
+ERROR:  parser: parse error at or near "instance"
 QUERY: drop rewrite rule nonesuch;
-WARN:parser: parse error at or near "rewrite"
+ERROR:  parser: parse error at or near "rewrite"
diff --git a/src/test/regress/expected/float4.out b/src/test/regress/expected/float4.out
index 85f09e5aa84..acea4c6c59e 100644
--- a/src/test/regress/expected/float4.out
+++ b/src/test/regress/expected/float4.out
@@ -5,13 +5,13 @@ QUERY: INSERT INTO FLOAT4_TBL(f1) VALUES ('-34.84');
 QUERY: INSERT INTO FLOAT4_TBL(f1) VALUES ('1.2345678901234e+20');
 QUERY: INSERT INTO FLOAT4_TBL(f1) VALUES ('1.2345678901234e-20');
 QUERY: INSERT INTO FLOAT4_TBL(f1) VALUES ('10e40');
-WARN:Bad float4 input format -- overflow
+ERROR:  Bad float4 input format -- overflow
 QUERY: INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e40');
-WARN:Bad float4 input format -- overflow
+ERROR:  Bad float4 input format -- overflow
 QUERY: INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-40');
-WARN:Bad float4 input format -- underflow
+ERROR:  Bad float4 input format -- underflow
 QUERY: INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-40');
-WARN:Bad float4 input format -- underflow
+ERROR:  Bad float4 input format -- underflow
 QUERY: SELECT '' AS five, FLOAT4_TBL.*;
 five|f1         
 ----+-----------
@@ -108,7 +108,7 @@ three|f1         |x
 (3 rows)
 
 QUERY: SELECT '' AS bad, f.f1 / '0.0' from FLOAT4_TBL f;
-WARN:float4div: divide by zero error
+ERROR:  float4div: divide by zero error
 QUERY: SELECT '' AS five, FLOAT4_TBL.*;
 five|f1         
 ----+-----------
diff --git a/src/test/regress/expected/float8.out b/src/test/regress/expected/float8.out
index b14cc49dd18..facfac9d706 100644
--- a/src/test/regress/expected/float8.out
+++ b/src/test/regress/expected/float8.out
@@ -5,13 +5,13 @@ QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-34.84');
 QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('1.2345678901234e+200');
 QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('1.2345678901234e-200');
 QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('10e400');
-WARN:Bad float8 input format '10e400'
+ERROR:  Bad float8 input format '10e400'
 QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e400');
-WARN:Bad float8 input format '-10e400'
+ERROR:  Bad float8 input format '-10e400'
 QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('10e-400');
-WARN:Bad float8 input format '10e-400'
+ERROR:  Bad float8 input format '10e-400'
 QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e-400');
-WARN:Bad float8 input format '-10e-400'
+ERROR:  Bad float8 input format '-10e-400'
 QUERY: SELECT '' AS five, FLOAT8_TBL.*;
 five|f1                  
 ----+--------------------
@@ -195,13 +195,13 @@ QUERY: UPDATE FLOAT8_TBL
    SET f1 = FLOAT8_TBL.f1 * '-1'
    WHERE FLOAT8_TBL.f1 > '0.0';
 QUERY: SELECT '' AS bad, f.f1 * '1e200' from FLOAT8_TBL f;
-WARN:Bad float8 input format -- overflow
+ERROR:  Bad float8 input format -- overflow
 QUERY: SELECT '' AS bad, f.f1 ^ '1e200' from FLOAT8_TBL f;
-WARN:pow() result is out of range
+ERROR:  pow() result is out of range
 QUERY: SELECT '' AS bad, (; (f.f1)) from FLOAT8_TBL f where f.f1 = '0.0' ;
-WARN:can't take log of zero
+ERROR:  can't take log of zero
 QUERY: SELECT '' AS bad, (; (f.f1)) from FLOAT8_TBL f where f.f1 < '0.0' ;
-WARN:can't take log of a negative number
+ERROR:  can't take log of a negative number
 QUERY: SELECT '' AS bad, : (f.f1) from FLOAT8_TBL f;
 bad|            ?column?
 ---+--------------------
@@ -213,7 +213,7 @@ bad|            ?column?
 (5 rows)
 
 QUERY: SELECT '' AS bad, f.f1 / '0.0' from FLOAT8_TBL f;
-WARN:float8div: divide by zero error
+ERROR:  float8div: divide by zero error
 QUERY: SELECT '' AS five, FLOAT8_TBL.*;
 five|f1                   
 ----+---------------------
diff --git a/src/test/regress/expected/geometry.out b/src/test/regress/expected/geometry.out
index d29a582f04e..92eb7a79070 100644
--- a/src/test/regress/expected/geometry.out
+++ b/src/test/regress/expected/geometry.out
@@ -90,7 +90,7 @@ QUERY: SELECT '' AS count, p.f1, l.s, l.s # p.f1 AS intersection
 NOTICE:there is no operator # for types lseg and point
 NOTICE:You will either have to retype this query using an
 NOTICE:explicit cast, or you will have to define the operator
-WARN:# for lseg and point using CREATE OPERATOR
+ERROR:  # for lseg and point using CREATE OPERATOR
 QUERY: SELECT '' AS thirty, p.f1, l.s, p.f1 ## l.s AS closest
    FROM LSEG_TBL l, POINT_TBL p;
 thirty|f1        |s                            |closest                             
diff --git a/src/test/regress/expected/int2.out b/src/test/regress/expected/int2.out
index ef79f91fc91..e5882dc5d01 100644
--- a/src/test/regress/expected/int2.out
+++ b/src/test/regress/expected/int2.out
@@ -3,13 +3,13 @@ QUERY: INSERT INTO INT2_TBL(f1) VALUES ('0');
 QUERY: INSERT INTO INT2_TBL(f1) VALUES ('1234');
 QUERY: INSERT INTO INT2_TBL(f1) VALUES ('-1234');
 QUERY: INSERT INTO INT2_TBL(f1) VALUES ('34.5');
-WARN:pg_atoi: error in "34.5": can't parse ".5"
+ERROR:  pg_atoi: error in "34.5": can't parse ".5"
 QUERY: INSERT INTO INT2_TBL(f1) VALUES ('32767');
 QUERY: INSERT INTO INT2_TBL(f1) VALUES ('-32767');
 QUERY: INSERT INTO INT2_TBL(f1) VALUES ('100000');
-WARN:pg_atoi: error reading "100000": Math result not representable
+ERROR:  pg_atoi: error reading "100000": Math result not representable
 QUERY: INSERT INTO INT2_TBL(f1) VALUES ('asdf');
-WARN:pg_atoi: error in "asdf": can't parse "asdf"
+ERROR:  pg_atoi: error in "asdf": can't parse "asdf"
 QUERY: SELECT '' AS five, INT2_TBL.*;
 five|    f1
 ----+------
diff --git a/src/test/regress/expected/int4.out b/src/test/regress/expected/int4.out
index 5abaae14552..b53ed3a0578 100644
--- a/src/test/regress/expected/int4.out
+++ b/src/test/regress/expected/int4.out
@@ -3,13 +3,13 @@ QUERY: INSERT INTO INT4_TBL(f1) VALUES ('0');
 QUERY: INSERT INTO INT4_TBL(f1) VALUES ('123456');
 QUERY: INSERT INTO INT4_TBL(f1) VALUES ('-123456');
 QUERY: INSERT INTO INT4_TBL(f1) VALUES ('34.5');
-WARN:pg_atoi: error in "34.5": can't parse ".5"
+ERROR:  pg_atoi: error in "34.5": can't parse ".5"
 QUERY: INSERT INTO INT4_TBL(f1) VALUES ('2147483647');
 QUERY: INSERT INTO INT4_TBL(f1) VALUES ('-2147483647');
 QUERY: INSERT INTO INT4_TBL(f1) VALUES ('1000000000000');
-WARN:pg_atoi: error reading "1000000000000": Math result not representable
+ERROR:  pg_atoi: error reading "1000000000000": Math result not representable
 QUERY: INSERT INTO INT4_TBL(f1) VALUES ('asdf');
-WARN:pg_atoi: error in "asdf": can't parse "asdf"
+ERROR:  pg_atoi: error in "asdf": can't parse "asdf"
 QUERY: SELECT '' AS five, INT4_TBL.*;
 five|         f1
 ----+-----------
diff --git a/src/test/regress/expected/lseg.out b/src/test/regress/expected/lseg.out
index cf9504b1b92..bf2e4a609f8 100644
--- a/src/test/regress/expected/lseg.out
+++ b/src/test/regress/expected/lseg.out
@@ -5,13 +5,13 @@ QUERY: INSERT INTO LSEG_TBL VALUES ('10,-10 ,-3,-4');
 QUERY: INSERT INTO LSEG_TBL VALUES ('[-1e6,2e2,3e5, -4e1]');
 QUERY: INSERT INTO LSEG_TBL VALUES ('(11,22,33,44)');
 QUERY: INSERT INTO LSEG_TBL VALUES ('(3asdf,2 ,3,4r2)');
-WARN:Bad lseg external representation '(3asdf,2 ,3,4r2)'
+ERROR:  Bad lseg external representation '(3asdf,2 ,3,4r2)'
 QUERY: INSERT INTO LSEG_TBL VALUES ('[1,2,3, 4');
-WARN:Bad lseg external representation '[1,2,3, 4'
+ERROR:  Bad lseg external representation '[1,2,3, 4'
 QUERY: INSERT INTO LSEG_TBL VALUES ('[(,2),(3,4)]');
-WARN:Bad lseg external representation '[(,2),(3,4)]'
+ERROR:  Bad lseg external representation '[(,2),(3,4)]'
 QUERY: INSERT INTO LSEG_TBL VALUES ('[(1,2),(3,4)');
-WARN:Bad lseg external representation '[(1,2),(3,4)'
+ERROR:  Bad lseg external representation '[(1,2),(3,4)'
 QUERY: select * from LSEG_TBL;
 s                            
 -----------------------------
@@ -26,7 +26,7 @@ QUERY: SELECT * FROM LSEG_TBL WHERE s <= '[(1,2),(3,4)]'::lseg;
 NOTICE:there is no operator <= for types lseg and lseg
 NOTICE:You will either have to retype this query using an
 NOTICE:explicit cast, or you will have to define the operator
-WARN:<= for lseg and lseg using CREATE OPERATOR
+ERROR:  <= for lseg and lseg using CREATE OPERATOR
 QUERY: SELECT * FROM LSEG_TBL WHERE (s <-> '[(1,2),(3,4)]'::lseg) < 10;
 s                 
 ------------------
diff --git a/src/test/regress/expected/oid.out b/src/test/regress/expected/oid.out
index ad6f783240d..0aa6675e21d 100644
--- a/src/test/regress/expected/oid.out
+++ b/src/test/regress/expected/oid.out
@@ -5,7 +5,7 @@ QUERY: INSERT INTO OID_TBL(f1) VALUES ('987');
 QUERY: INSERT INTO OID_TBL(f1) VALUES ('-1040');
 QUERY: INSERT INTO OID_TBL(f1) VALUES ('');
 QUERY: INSERT INTO OID_TBL(f1) VALUES ('asdfasd');
-WARN:pg_atoi: error in "asdfasd": can't parse "asdfasd"
+ERROR:  pg_atoi: error in "asdfasd": can't parse "asdfasd"
 QUERY: SELECT '' AS five, OID_TBL.*;
 five|   f1
 ----+-----
diff --git a/src/test/regress/expected/oidint2.out b/src/test/regress/expected/oidint2.out
index 62ea5a8dedc..fb3972fd43f 100644
--- a/src/test/regress/expected/oidint2.out
+++ b/src/test/regress/expected/oidint2.out
@@ -4,10 +4,10 @@ QUERY: INSERT INTO OIDINT2_TBL(f1) VALUES ('1235/9873');
 QUERY: INSERT INTO OIDINT2_TBL(f1) VALUES ('987/-1234');
 QUERY: INSERT INTO OIDINT2_TBL(f1) VALUES ('123456');
 QUERY: INSERT INTO OIDINT2_TBL(f1) VALUES ('123456/123456');
-WARN:pg_atoi: error reading "123456": Math result not representable
+ERROR:  pg_atoi: error reading "123456": Math result not representable
 QUERY: INSERT INTO OIDINT2_TBL(f1) VALUES ('');
 QUERY: INSERT INTO OIDINT2_TBL(f1) VALUES ('asdfasd');
-WARN:pg_atoi: error in "asdfasd": can't parse "asdfasd"
+ERROR:  pg_atoi: error in "asdfasd": can't parse "asdfasd"
 QUERY: SELECT '' AS five, OIDINT2_TBL.*;
 five|f1       
 ----+---------
diff --git a/src/test/regress/expected/oidint4.out b/src/test/regress/expected/oidint4.out
index 7bd85070377..b1df56b259f 100644
--- a/src/test/regress/expected/oidint4.out
+++ b/src/test/regress/expected/oidint4.out
@@ -4,10 +4,10 @@ QUERY: INSERT INTO OIDINT4_TBL(f1) VALUES ('1235/9873');
 QUERY: INSERT INTO OIDINT4_TBL(f1) VALUES ('987/-1234');
 QUERY: INSERT INTO OIDINT4_TBL(f1) VALUES ('123456');
 QUERY: INSERT INTO OIDINT4_TBL(f1) VALUES ('123456/1234568901234567890');
-WARN:pg_atoi: error reading "1234568901234567890": Math result not representable
+ERROR:  pg_atoi: error reading "1234568901234567890": Math result not representable
 QUERY: INSERT INTO OIDINT4_TBL(f1) VALUES ('');
 QUERY: INSERT INTO OIDINT4_TBL(f1) VALUES ('asdfasd');
-WARN:pg_atoi: error in "asdfasd": can't parse "asdfasd"
+ERROR:  pg_atoi: error in "asdfasd": can't parse "asdfasd"
 QUERY: SELECT '' AS five, OIDINT4_TBL.*;
 five|f1       
 ----+---------
diff --git a/src/test/regress/expected/oidname.out b/src/test/regress/expected/oidname.out
index fddf7b8ce3d..e7ad5da26fe 100644
--- a/src/test/regress/expected/oidname.out
+++ b/src/test/regress/expected/oidname.out
@@ -3,12 +3,12 @@ QUERY: INSERT INTO OIDNAME_TBL(f1) VALUES ('1234,abcd');
 QUERY: INSERT INTO OIDNAME_TBL(f1) VALUES ('1235,efgh');
 QUERY: INSERT INTO OIDNAME_TBL(f1) VALUES ('987,XXXX');
 QUERY: INSERT INTO OIDNAME_TBL(f1) VALUES ('123456');
-WARN:Bad input data for type oidname
+ERROR:  Bad input data for type oidname
 QUERY: INSERT INTO OIDNAME_TBL(f1) VALUES ('123456,abcdefghijklmnopqrsutvwyz');
 QUERY: INSERT INTO OIDNAME_TBL(f1) VALUES ('');
-WARN:Bad input data for type oidname
+ERROR:  Bad input data for type oidname
 QUERY: INSERT INTO OIDNAME_TBL(f1) VALUES ('asdfasd');
-WARN:Bad input data for type oidname
+ERROR:  Bad input data for type oidname
 QUERY: SELECT '' AS four, OIDNAME_TBL.*;
 four|f1                              
 ----+--------------------------------
diff --git a/src/test/regress/expected/path.out b/src/test/regress/expected/path.out
index 58e9ed87fd9..730356c734f 100644
--- a/src/test/regress/expected/path.out
+++ b/src/test/regress/expected/path.out
@@ -8,9 +8,9 @@ QUERY: INSERT INTO PATH_TBL VALUES ('[1,2,3, 4]');
 QUERY: INSERT INTO PATH_TBL VALUES ('[11,12,13,14]');
 QUERY: INSERT INTO PATH_TBL VALUES ('(11,12,13,14)');
 QUERY: INSERT INTO PATH_TBL VALUES ('[(,2),(3,4)]');
-WARN:Bad path external representation '[(,2),(3,4)]'
+ERROR:  Bad path external representation '[(,2),(3,4)]'
 QUERY: INSERT INTO PATH_TBL VALUES ('[(1,2),(3,4)');
-WARN:Bad path external representation '[(1,2),(3,4)'
+ERROR:  Bad path external representation '[(1,2),(3,4)'
 QUERY: SELECT f1 FROM PATH_TBL;
 f1                       
 -------------------------
diff --git a/src/test/regress/expected/point.out b/src/test/regress/expected/point.out
index c4130bae245..be209563ce2 100644
--- a/src/test/regress/expected/point.out
+++ b/src/test/regress/expected/point.out
@@ -5,12 +5,12 @@ QUERY: INSERT INTO POINT_TBL(f1) VALUES ('(-3.0,4.0)');
 QUERY: INSERT INTO POINT_TBL(f1) VALUES ('(5.1, 34.5)');
 QUERY: INSERT INTO POINT_TBL(f1) VALUES ('(-5.0,-12.0)');
 QUERY: INSERT INTO POINT_TBL(f1) VALUES ('asdfasdf');
-WARN:Bad point external representation 'asdfasdf'
+ERROR:  Bad point external representation 'asdfasdf'
 QUERY: INSERT INTO POINT_TBL(f1) VALUES ('10.0,10.0');
 QUERY: INSERT INTO POINT_TBL(f1) VALUES ('(10.0 10.0)');
-WARN:Bad point external representation '(10.0 10.0)'
+ERROR:  Bad point external representation '(10.0 10.0)'
 QUERY: INSERT INTO POINT_TBL(f1) VALUES ('(10.0,10.0');
-WARN:Bad point external representation '(10.0,10.0'
+ERROR:  Bad point external representation '(10.0,10.0'
 QUERY: SELECT '' AS six, POINT_TBL.*;
 six|f1        
 ---+----------
diff --git a/src/test/regress/expected/polygon.out b/src/test/regress/expected/polygon.out
index c5e125ffe5b..21108821074 100644
--- a/src/test/regress/expected/polygon.out
+++ b/src/test/regress/expected/polygon.out
@@ -4,15 +4,15 @@ QUERY: INSERT INTO POLYGON_TBL(f1) VALUES ('(3.0,1.0),(3.0,3.0),(1.0,0.0)');
 QUERY: INSERT INTO POLYGON_TBL(f1) VALUES ('(0.0,0.0)');
 QUERY: INSERT INTO POLYGON_TBL(f1) VALUES ('(0.0,1.0),(0.0,1.0)');
 QUERY: INSERT INTO POLYGON_TBL(f1) VALUES ('0.0');
-WARN:Bad polygon external representation '0.0'
+ERROR:  Bad polygon external representation '0.0'
 QUERY: INSERT INTO POLYGON_TBL(f1) VALUES ('(0.0 0.0');
-WARN:Bad polygon external representation '(0.0 0.0'
+ERROR:  Bad polygon external representation '(0.0 0.0'
 QUERY: INSERT INTO POLYGON_TBL(f1) VALUES ('(0,1,2)');
-WARN:Bad polygon external representation '(0,1,2)'
+ERROR:  Bad polygon external representation '(0,1,2)'
 QUERY: INSERT INTO POLYGON_TBL(f1) VALUES ('(0,1,2,3');
-WARN:Bad polygon external representation '(0,1,2,3'
+ERROR:  Bad polygon external representation '(0,1,2,3'
 QUERY: INSERT INTO POLYGON_TBL(f1) VALUES ('asdf');
-WARN:Bad polygon external representation 'asdf'
+ERROR:  Bad polygon external representation 'asdf'
 QUERY: SELECT '' AS four, POLYGON_TBL.*;
 four|f1                 
 ----+-------------------
diff --git a/src/test/regress/expected/reltime.out b/src/test/regress/expected/reltime.out
index 2a7a50be24f..83762b042db 100644
--- a/src/test/regress/expected/reltime.out
+++ b/src/test/regress/expected/reltime.out
@@ -6,9 +6,9 @@ QUERY: INSERT INTO RELTIME_TBL (f1) VALUES ('@ 34 year');
 QUERY: INSERT INTO RELTIME_TBL (f1) VALUES ('@ 3 months');
 QUERY: INSERT INTO RELTIME_TBL (f1) VALUES ('@ 14 seconds ago');
 QUERY: INSERT INTO RELTIME_TBL (f1) VALUES ('badly formatted reltime');
-WARN:Bad reltime external representation 'badly formatted reltime'
+ERROR:  Bad reltime external representation 'badly formatted reltime'
 QUERY: INSERT INTO RELTIME_TBL (f1) VALUES ('@ 30 eons ago');
-WARN:Bad reltime external representation '@ 30 eons ago'
+ERROR:  Bad reltime external representation '@ 30 eons ago'
 QUERY: SELECT '' AS six, RELTIME_TBL.*;
 six|f1           
 ---+-------------
diff --git a/src/test/regress/expected/strings.out b/src/test/regress/expected/strings.out
index 0b087085072..2d8cc516ac7 100644
--- a/src/test/regress/expected/strings.out
+++ b/src/test/regress/expected/strings.out
@@ -10,8 +10,8 @@ first line - next line - third line
 QUERY: SELECT 'first line'
 ' - next line' /* this comment is not allowed here */
 ' - third line';
-WARN:parser: parse error at or near "'"
+ERROR:  parser: parse error at or near "'"
 QUERY: SELECT text(f1) FROM CHAR_TBL;
-WARN:func_get_detail: function text(bpchar) does not exist
+ERROR:  func_get_detail: function text(bpchar) does not exist
 QUERY: SELECT text(f1) FROM VARCHAR_TBL;
-WARN:func_get_detail: function text(varchar) does not exist
+ERROR:  func_get_detail: function text(varchar) does not exist
diff --git a/src/test/regress/expected/timespan.out b/src/test/regress/expected/timespan.out
index ab21126f844..00f4feedf65 100644
--- a/src/test/regress/expected/timespan.out
+++ b/src/test/regress/expected/timespan.out
@@ -10,9 +10,9 @@ QUERY: INSERT INTO TIMESPAN_TBL (f1) VALUES ('6 years');
 QUERY: INSERT INTO TIMESPAN_TBL (f1) VALUES ('5 months');
 QUERY: INSERT INTO TIMESPAN_TBL (f1) VALUES ('5 months 12 hours');
 QUERY: INSERT INTO TIMESPAN_TBL (f1) VALUES ('badly formatted timespan');
-WARN:Bad timespan external representation 'badly formatted timespan'
+ERROR:  Bad timespan external representation 'badly formatted timespan'
 QUERY: INSERT INTO TIMESPAN_TBL (f1) VALUES ('@ 30 eons ago');
-WARN:Bad timespan external representation '@ 30 eons ago'
+ERROR:  Bad timespan external representation '@ 30 eons ago'
 QUERY: SELECT '' AS ten, TIMESPAN_TBL.*;
 ten|f1                           
 ---+-----------------------------
diff --git a/src/test/regress/expected/tinterval.out b/src/test/regress/expected/tinterval.out
index cd767923531..2caea890756 100644
--- a/src/test/regress/expected/tinterval.out
+++ b/src/test/regress/expected/tinterval.out
@@ -11,10 +11,10 @@ QUERY: INSERT INTO TINTERVAL_TBL (f1)
    VALUES ('["Feb 15 1990 12:15:03" "current"]');
 QUERY: INSERT INTO TINTERVAL_TBL (f1)
    VALUES ('["bad time specifications" ""]');
-WARN:Bad abstime external representation 'bad time specifications'
+ERROR:  Bad abstime external representation 'bad time specifications'
 QUERY: INSERT INTO TINTERVAL_TBL (f1)
    VALUES ('["" "infinity"]');
-WARN:Bad abstime external representation ''
+ERROR:  Bad abstime external representation ''
 QUERY: SELECT '' AS five, TINTERVAL_TBL.*;
 five|f1                                                             
 ----+---------------------------------------------------------------
diff --git a/src/test/regress/expected/triggers.out b/src/test/regress/expected/triggers.out
index 9cc97a42681..8f754dc4977 100644
--- a/src/test/regress/expected/triggers.out
+++ b/src/test/regress/expected/triggers.out
@@ -40,24 +40,24 @@ QUERY: insert into fkeys2 values (30, '3', 2);
 QUERY: insert into fkeys2 values (40, '4', 5);
 QUERY: insert into fkeys2 values (50, '5', 3);
 QUERY: insert into fkeys2 values (70, '5', 3);
-WARN:check_fkeys2_pkey_exist: tuple references non-existing key in pkeys
+ERROR:  check_fkeys2_pkey_exist: tuple references non-existing key in pkeys
 QUERY: insert into fkeys values (10, '1', 2);
 QUERY: insert into fkeys values (30, '3', 3);
 QUERY: insert into fkeys values (40, '4', 2);
 QUERY: insert into fkeys values (50, '5', 2);
 QUERY: insert into fkeys values (70, '5', 1);
-WARN:check_fkeys_pkey_exist: tuple references non-existing key in pkeys
+ERROR:  check_fkeys_pkey_exist: tuple references non-existing key in pkeys
 QUERY: insert into fkeys values (60, '6', 4);
-WARN:check_fkeys_pkey2_exist: tuple references non-existing key in fkeys2
+ERROR:  check_fkeys_pkey2_exist: tuple references non-existing key in fkeys2
 QUERY: delete from pkeys where pkey1 = 30 and pkey2 = '3';
 NOTICE:check_pkeys_fkey_cascade: 1 tuple(s) of fkeys are deleted
-WARN:check_fkeys2_fkey_restrict: tuple referenced in fkeys
+ERROR:  check_fkeys2_fkey_restrict: tuple referenced in fkeys
 QUERY: delete from pkeys where pkey1 = 40 and pkey2 = '4';
 NOTICE:check_pkeys_fkey_cascade: 1 tuple(s) of fkeys are deleted
 NOTICE:check_pkeys_fkey_cascade: 1 tuple(s) of fkeys2 are deleted
 QUERY: update pkeys set pkey1 = 7, pkey2 = '70' where pkey1 = 50 and pkey2 = '5';
 NOTICE:check_pkeys_fkey_cascade: 1 tuple(s) of fkeys are deleted
-WARN:check_fkeys2_fkey_restrict: tuple referenced in fkeys
+ERROR:  check_fkeys2_fkey_restrict: tuple referenced in fkeys
 QUERY: update pkeys set pkey1 = 7, pkey2 = '70' where pkey1 = 10 and pkey2 = '1';
 NOTICE:check_pkeys_fkey_cascade: 1 tuple(s) of fkeys are deleted
 NOTICE:check_pkeys_fkey_cascade: 1 tuple(s) of fkeys2 are deleted
@@ -258,7 +258,7 @@ set_ttdummy
 (1 row)
 
 QUERY: update tttest set price_on = -1 where price_id = 1;
-WARN:ttdummy (tttest): you can't change price_on and/or price_off columns (use set_ttdummy)
+ERROR:  ttdummy (tttest): you can't change price_on and/or price_off columns (use set_ttdummy)
 QUERY: select set_ttdummy(0);
 set_ttdummy
 -----------
diff --git a/src/test/regress/regress.c b/src/test/regress/regress.c
index c3fc622d82a..83bda8aae82 100644
--- a/src/test/regress/regress.c
+++ b/src/test/regress/regress.c
@@ -1,5 +1,5 @@
 /*
- * $Header: /cvsroot/pgsql/src/test/regress/regress.c,v 1.17 1997/11/10 15:43:26 thomas Exp $
+ * $Header: /cvsroot/pgsql/src/test/regress/regress.c,v 1.18 1998/01/05 03:35:14 momjian Exp $
  */
 
 #include <float.h>				/* faked on sunos */
@@ -372,7 +372,7 @@ funny_dup17()
 			SPI_gettype(tupdesc, 1));
 
 	if ((ret = SPI_exec(sql, 0)) < 0)
-		elog(WARN, "funny_dup17 (fired %s) on level %3d: SPI_exec (insert ...) returned %d",
+		elog(ABORT, "funny_dup17 (fired %s) on level %3d: SPI_exec (insert ...) returned %d",
 			 when, *level, ret);
 
 	inserted = SPI_processed;
@@ -384,7 +384,7 @@ funny_dup17()
 			SPI_gettype(tupdesc, 1));
 
 	if ((ret = SPI_exec(sql, 0)) < 0)
-		elog(WARN, "funny_dup17 (fired %s) on level %3d: SPI_exec (select ...) returned %d",
+		elog(ABORT, "funny_dup17 (fired %s) on level %3d: SPI_exec (select ...) returned %d",
 			 when, *level, ret);
 
 	if (SPI_processed > 0)
@@ -444,11 +444,11 @@ ttdummy()
 	int			i;
 
 	if (!CurrentTriggerData)
-		elog(WARN, "ttdummy: triggers are not initialized");
+		elog(ABORT, "ttdummy: triggers are not initialized");
 	if (TRIGGER_FIRED_FOR_STATEMENT(CurrentTriggerData->tg_event))
-		elog(WARN, "ttdummy: can't process STATEMENT events");
+		elog(ABORT, "ttdummy: can't process STATEMENT events");
 	if (TRIGGER_FIRED_AFTER(CurrentTriggerData->tg_event))
-		elog(WARN, "ttdummy: must be fired before event");
+		elog(ABORT, "ttdummy: must be fired before event");
 	if (TRIGGER_FIRED_BY_INSERT(CurrentTriggerData->tg_event))
 		elog (WARN, "ttdummy: can't process INSERT event");
 	if (TRIGGER_FIRED_BY_UPDATE(CurrentTriggerData->tg_event))
@@ -469,7 +469,7 @@ ttdummy()
 	trigger = CurrentTriggerData->tg_trigger;
 
 	if (trigger->tgnargs != 2)
-		elog(WARN, "ttdummy (%s): invalid (!= 2) number of arguments %d", 
+		elog(ABORT, "ttdummy (%s): invalid (!= 2) number of arguments %d", 
 				relname, trigger->tgnargs);
 	
 	args = trigger->tgargs;
@@ -482,28 +482,28 @@ ttdummy()
 	{
 		attnum[i] = SPI_fnumber (tupdesc, args[i]);
 		if ( attnum[i] < 0 )
-			elog(WARN, "ttdummy (%s): there is no attribute %s", relname, args[i]);
+			elog(ABORT, "ttdummy (%s): there is no attribute %s", relname, args[i]);
 		if (SPI_gettypeid (tupdesc, attnum[i]) != INT4OID)
-			elog(WARN, "ttdummy (%s): attributes %s and %s must be of abstime type", 
+			elog(ABORT, "ttdummy (%s): attributes %s and %s must be of abstime type", 
 					relname, args[0], args[1]);
 	}
 	
 	oldon = SPI_getbinval (trigtuple, tupdesc, attnum[0], &isnull);
 	if (isnull)
-		elog(WARN, "ttdummy (%s): %s must be NOT NULL", relname, args[0]);
+		elog(ABORT, "ttdummy (%s): %s must be NOT NULL", relname, args[0]);
 	
 	oldoff = SPI_getbinval (trigtuple, tupdesc, attnum[1], &isnull);
 	if (isnull)
-		elog(WARN, "ttdummy (%s): %s must be NOT NULL", relname, args[1]);
+		elog(ABORT, "ttdummy (%s): %s must be NOT NULL", relname, args[1]);
 	
 	if (newtuple != NULL)						/* UPDATE */
 	{
 		newon = SPI_getbinval (newtuple, tupdesc, attnum[0], &isnull);
 		if (isnull)
-			elog(WARN, "ttdummy (%s): %s must be NOT NULL", relname, args[0]);
+			elog(ABORT, "ttdummy (%s): %s must be NOT NULL", relname, args[0]);
 		newoff = SPI_getbinval (newtuple, tupdesc, attnum[1], &isnull);
 		if (isnull)
-			elog(WARN, "ttdummy (%s): %s must be NOT NULL", relname, args[1]);
+			elog(ABORT, "ttdummy (%s): %s must be NOT NULL", relname, args[1]);
 		
 		if ( oldon != newon || oldoff != newoff )
 			elog (WARN, "ttdummy (%s): you can't change %s and/or %s columns (use set_ttdummy)",
@@ -530,7 +530,7 @@ ttdummy()
 	
 	/* Connect to SPI manager */
 	if ((ret = SPI_connect()) < 0)
-		elog(WARN, "ttdummy (%s): SPI_connect returned %d", relname, ret);
+		elog(ABORT, "ttdummy (%s): SPI_connect returned %d", relname, ret);
 	
 	/* Fetch tuple values and nulls */
 	cvals = (Datum *) palloc (natts * sizeof (Datum));
@@ -581,11 +581,11 @@ ttdummy()
 		/* Prepare plan for query */
 		pplan = SPI_prepare(sql, natts, ctypes);
 		if (pplan == NULL)
-			elog(WARN, "ttdummy (%s): SPI_prepare returned %d", relname, SPI_result);
+			elog(ABORT, "ttdummy (%s): SPI_prepare returned %d", relname, SPI_result);
 		
 		pplan = SPI_saveplan(pplan);
 		if (pplan == NULL)
-			elog(WARN, "ttdummy (%s): SPI_saveplan returned %d", relname, SPI_result);
+			elog(ABORT, "ttdummy (%s): SPI_saveplan returned %d", relname, SPI_result);
 		
 		splan = pplan;
 	}
@@ -593,7 +593,7 @@ ttdummy()
 	ret = SPI_execp(splan, cvals, cnulls, 0);
 	
 	if (ret < 0)
-		elog(WARN, "ttdummy (%s): SPI_execp returned %d", relname, ret);
+		elog(ABORT, "ttdummy (%s): SPI_execp returned %d", relname, ret);
 	
 	/* Tuple to return to upper Executor ... */
 	if (newtuple)									/* UPDATE */
diff --git a/src/tutorial/C-code/beard.c b/src/tutorial/C-code/beard.c
index f6f01a57582..3c73d237784 100644
--- a/src/tutorial/C-code/beard.c
+++ b/src/tutorial/C-code/beard.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/tutorial/C-code/Attic/beard.c,v 1.3 1997/09/08 02:41:09 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/tutorial/C-code/Attic/beard.c,v 1.4 1998/01/05 03:35:52 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -34,10 +34,10 @@ beard(Oid picture)
 	int			cc;
 
 	if ((pic_fd = lo_open(picture, INV_READ)) == -1)
-		elog(WARN, "Cannot access picture large object");
+		elog(ABORT, "Cannot access picture large object");
 
 	if (lo_read(pic_fd, (char *) &ihdr, sizeof(ihdr)) != sizeof(ihdr))
-		elog(WARN, "Picture large object corrupted");
+		elog(ABORT, "Picture large object corrupted");
 
 	beardOffset = (ihdr.size / 3) * 2;
 
@@ -45,16 +45,16 @@ beard(Oid picture)
 	 * new large object
 	 */
 	if ((beard = lo_creat(INV_MD)) == 0)		/* ?? is this right? */
-		elog(WARN, "Cannot create new large object");
+		elog(ABORT, "Cannot create new large object");
 
 	if ((beard_fd = lo_open(beard, INV_WRITE)) == -1)
-		elog(WARN, "Cannot access beard large object");
+		elog(ABORT, "Cannot access beard large object");
 
 	lo_lseek(pic_fd, beardOffset, SET_CUR);
 	while ((cc = lo_read(pic_fd, buf, BUFSIZE)) > 0)
 	{
 		if (lo_write(beard_fd, buf, cc) != cc)
-			elog(WARN, "error while writing large object");
+			elog(ABORT, "error while writing large object");
 	}
 
 	lo_close(pic_fd);
diff --git a/src/tutorial/C-code/complex.c b/src/tutorial/C-code/complex.c
index 63ebd1cba5a..f697c980cbc 100644
--- a/src/tutorial/C-code/complex.c
+++ b/src/tutorial/C-code/complex.c
@@ -45,7 +45,7 @@ complex_in(char *str)
 
 	if (sscanf(str, " ( %lf , %lf )", &x, &y) != 2)
 	{
-		elog(WARN, "complex_in: error in parsing \"%s\"", str);
+		elog(ABORT, "complex_in: error in parsing \"%s\"", str);
 		return NULL;
 	}
 	result = (Complex *) palloc(sizeof(Complex));
-- 
GitLab